「MLP深層学習」の誤植?
はじめに
お久しぶりです!更新頻度が少なくすみません。
今回は、MLPの深層学習本を読んでいて、疑問に思った点・誤植と思われる点をまとめたいと思います。
まずは、本の紹介です。
- 作者:岡谷 貴之
- 発売日: 2015/04/08
- メディア: 単行本
第7刷です。
ちなみに第1刷・第2刷の誤植情報は、
http://www.kspub.co.jp/download/1529021a.pdf
に掲載されています。
[5/9]1つ誤植を追加しました。
p37(3.3)とその次の式
元の式:Momentumは、過去の重みの修正量を今回の重みの修正量に反映させる方法です。
更新後の重みベクトルをとするならば、
1つ前の重みベクトルは、のはずです。
ですので、となると思います。
また、その次のページの式(3.3)の書き換えは、
元の式:
となっていますが、
の定義にしたがって、先ほどの式を変形すれば、
p42(4.1)の前の文中の式
これは小さな誤植と思われます。文中抜粋:
(l-1)層目からl層目への重み行列は、行方向にl層目のユニット、列方向に(l-1)層目のユニットが並びます。
これは、l層目への総入力は、(l-1)層目のユニットの総和で表されるためです。
そして、ここでは、バイアスも(l-1)層目の0番目のユニットの1つと考えてしまおう!としています。
よって、この式は、
p51(4.15)の前の文中の式
元の式:デルタつまり、を成分に持つ行列を求めれば、
逆伝播計算が出来ます。
を求める必要があり、
つまりは、を最初に求める必要があります。
は、ErrorFunc.やActivationFunc.によって異なりますが、
回帰やクラス分類において、ErrorFunc.に二乗誤差やCrossEntropy、ActivationFunc.にLogistic関数やSoftmax関数を使用する場合は、
計算式が同じになります。それが、です。
よって、デルタ(行列)は、
p85 特徴マップのサイズの式
元の式:CNNで畳込みを行ったときに、出力される特徴マップのサイズは、元画像のサイズ(画素数)とフィルタのサイズ(画素数)で決まります。
画像内にフィルタ全体が収まる範囲内でフィルタを動かしたとき、単純に考えれば、特徴マップのサイズは、
元の式の間違いのパターンを示します。
元画像サイズW=10, フィルタサイズH=4のとき、
元の式では、となります。
ですが、実際には、です。
ただ、元の式は、「ふち」の量を計算式に含めるといった意味があるともとれます。
この後にpaddingの話がありますが、この時に「ふち」の分だけ画像をサイズを大きくするという作業があるため、
+1程度は誤差とみなし、の式を使おうという意図があるのかもしれません。(?)
また、paddingやstrideも考慮すると、特徴マップのサイズは、
padding量を、stride量をとすると、
[5/9追記] p92,p93 画素ごとの平均の式
元の式:
これは明らかに間違っていると思うのですが...
平均なので、1/Nがいるはずです。
よって、正しい式は、
93ページの文中の式も同じです。
元の式:
正しい式:
おわりに
以上が誤植?と思った箇所です!本に誤植があると、間違いを見つけるまでにかなり時間がかかりますが、
本の間違いを見つけられるほど、内容を理解し、間違いについて調べるからこそ力がつくのかなとも思います!
ただ、間違いをカンペキに理解するほどの時間がないので困りますが...(汗)
この訂正が合っているのか間違っているのか、詳しいかた、教えていただけると嬉しいです。
ではではー