Itsukaraの日記

最新IT技術を勉強・実践中。最近はDeep Learningに注力。

また本を買ってしまった(シンギュラリティ関連)+読書状況

本日、気晴らしに外出した際に、本屋で立ち読みしていたら、シンギュラリティ関連の本があり、ついつい買ってしまいました。まだ読んでいない本や、読みかけの本が沢山あるのに... 先日、機械学習関連の輪講に出てから、本の購入に関する心理的なタガが外れた気がします。

技術書と異なり熟考する必要はないので、楽しみながら読もうと思います。

以前に買って途中までしか読んでいなかった本

下記、以前に買って、1/3ぐらい読んだのですが、最初の1/3は、シンギュラリティの必然性に関し、同じようなことが繰り返し書いてあり、少し飽きてしまいました。そのため、残りの部分を読まずに放置してました。改めて後半をパラパラめくったところ、後半はシンギュラリティの内容が書かれてているので、この本も、後半含めて読もうと思いいます。

機械学習関連の読書状況

既に購入した機械学習関連の本は、深層学習を中心に読んでます。

以前に買った本で誤った説明が書いてあった「畳み込みニューラルネットワークのフィルター係数の逆伝搬方法」が一番気になったので、「Chapter 6 畳み込みニューラルネット」の「6.7 勾配の計算」を読んでいたのですが、少し分かりにくかったので、自分のために補足しておきます。(他の読者の方にも役立つようなことがあればうれしいですが...)

p.96で、重み行列Wの勾配として\partial Wという表記が出てきて分かりにくいと感じました。どうやら、\frac{\partial E}{\partial w_{ji}}を表しているらしいので、そのように書いてくれれば分かりやすかったのですが... 表記を変えて書き直して見ます。

本に書かれている下記の関係から始めます。(ちなみに、hは全てのフィルターを並べたベクトル、t_{ji}は「(l-1)層のユニットi」と「(l)層のユニットj」の係数をhから取り出すベクトル(1要素のみ1で他は0)」)

w_{ji}=t_{ji}^Th

上記をhr番目の要素h_r偏微分すると:
\frac{\partial w_{ji}}{\partial h_r}=t_{jir}

単純に、誤差関数Eh_r偏微分し、Ew_{ji}の関数であることと、上記を使うと下記になります。
\frac{\partial E}{\partial h_r}
=\sum_{i,j} {\frac{\partial E}{\partial w_{ji}} \frac{\partial w_{ji}}{\partial h_r}}
=\sum_{i,j} {\frac{\partial E}{\partial w_{ji}} t_{jir}}

ちなみに、本では、\frac{\partial E}{\partial h_r}({\partial h})_rと書いています。上記の右辺は、本のp.96の最後の式と同じですが、一般的な表記になっています。

後は、({\partial h})_rの式の前後に書かれた\frac{\partial E}{\partial w_{ji}}の計算式を使えば、\frac{\partial E}{\partial h_r}の値が計算できます。これでh_rに対するEの勾配が求められるので、後は、通常と同様に、この値を元にh_rの値を調整すれば良いです。

書き方が一般的ならば自明な式なので、一般的な書き方にして欲しかったです。