最小二乗法の分かる部分までの備忘録

ようやく機械学習の勉強を開始。
まずは、以下の本を読み始めた。

第2章の最小二乗法を読んでみたけど、前にAI勉強会みたいなところで紹介されていた内容そっくりだったので、違和感なく理解出来た。
ただし!数学徒の小部屋というページで問題が…。

数式の変換に行間が有りまくりで、付け焼き刃の数学の勉強では全く理解出来ん。
読み飛ばしても何とかなる面もあるんだろうけど、数式が理解出来るようになりたいから数学を勉強した訳で、とりあえず理解出来る範囲で頑張ってみる事にした。

間違っているかもしれないけど、とりあえず備忘録として残していく。
2日経てば確実に忘れるので…。

63ページに出てくる以下の式(2.4)が偏微分後に、64ページの式(2.7)になるのが意味不明だった。

(2.4)の式

E_D = \frac{1}{2}\sum^N_{n=1}(\sum^M_{m=0}w_mx_n^m-t_n)^2

(2.7)の式

\sum^N_{n=1}(\sum^M_{m^\prime=0}w_m^\prime x^m\prime_n-t_n)x^m_n = 0

これは、(多分)合成関数の微分という事に気付いたので、そのように計算してみたら、何となく(2.7)の式になった。

自分なりの考え方

合成関数の微分公式は以下の通り。

f(g(x)) = f'(g(x))g'(x)

(2.4)の式の以下の部分をuとする。

u = \sum^M_{m=0}w_mx_n^m-t_n

\frac{1}{2}\sum^N_{n=1}(u)^2

そうすると、外側の微分は

f'(x) = \frac{1}{2}\sum^N_{n=1} * 2u = \sum^N_{n=1}u

になって、内側の微分(wで偏微分?)は

g'(x) = x^m_n

になる(と思われる)

ここで、Σ付きの変数を微分したら何でΣが消えるのか分からなかったんだけど、そこは最早諦めた…(※1)

※1 2018/1/15追記開始

Σが消える理由がようやく分かった気がする。
微分している w_m は特定の1個のwであって、Σで回しているw_{m\prime} の特定の1個に対応するから、偏微分すると一致しないwの部分は消えてしまうって事だろう。
だから内側の微分結果がx_n^m になると。

当たってると良いな…。

※1 2018/1/15追記完了

で、これらを合成関数の微分の公式に入れると

\sum^N_{n=1}(\sum^M_{m^\prime=0}w_m^\prime x^m\prime_n-t_n)x^m_n

になる。

続いて、65ページにある(2.9)から(2.11)への行列の変形が意味不明だったけど、多分これはtの部分を移項して両辺にφの逆行列を掛けた結果なんだろうと思った。
ただし、何で転置しているのかは不明…。 (※2)

※2 2018/1/15追記開始

wとtについては、1次元だから転置するのは何となく分かったんだけど、φを転置する理由が分からなかった。
でも、このページで実際に値を入れて計算している例を見て、転置している理由が分かった。

ITエンジニアのための機械学習理論入門 2-1

感謝です。

※2 2018/1/15追記完了

その後に出てくるヘッセ行列とやらで心が折れたので、最小二乗法の数式理解は一旦ここまで…。

参考にしたサイト
第11回 高階偏導関数 [偏微分]
最小二乗法の基礎を丁寧に
多変数関数の極値判定とヘッセ行列

機械学習の数式は、文系プログラマには敷居が高すぎるぜ…。

コメント

タイトルとURLをコピーしました