モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

Dropoutが効果的な理由についての疑問

現在のDeep Neural Networkがうまく収束できるようになっていることにはDropoutの効果が大きいと言われている。

Dropoutはニューラルネットで中間層などの入力を50%の確率で落としてやることで、非常に強い正規化が行われるというものだ。


なぜDropoutが効果がそのような効果を持つのかについて、Hinton先生が書かれたスライドに記述があった。


2012年のDeep Learningについての解説スライド資料
52ページあたりからDropoutについての解説がある

IPAM Summer School 2012 Tutorial on Deep Learning


層の入力となるニューロンをランダムに半分を落とすことで、組み合わせを多数作ることが出来るから、非常に多数のニューラルネットの平均値を得ることと同じ効果があり、それで性能が上がると説明されていた。



Hinton先生が書いてることに僕なんぞが疑問を抱くなんて、まったくもっておこがましいのだが、この説明はなんかどうもしっくりこなかった。

たしかに組み合わせは多数作れるけど、個々の元になってるニューロンは同じものが使われるのだから、非常に多くの回数学習を回すと、最終的に学習誤差を足し合わせた値を見たら全数が「生きて」いるときのものと同じになるんじゃないのだろうか。


「『みんなの意見』は案外正しい」というのがあったけど、あれは「多様な」「独立した」結果が集まるから正しくなるという前提があり、その前提が崩れていると機能しない。
ほんとうに同様の効果を狙うのならば、それと同じ前提が必要なのではないか。

ただ、ニューロンの重みが完全にシェアされた多数のニューラルネットワークだから強い正規化が行われる、と書いてあるから、逆に独立していないからこそ効果が得られるのだとすると、さらによくわからない。


Dropoutが効果がないとは全く思って無くて、間違いなく大きな効果が得られているはずだが、理由として挙げられている、多数のニューラルネットの平均値を取ったのと同じこと、という説明が別の理由があるのではないかと。


Dropoutにより超平面に「ゆれ」が起こるから、ローカルミニマムから脱出しやすいとか、そういうのかなあと思ったんだけど、なんの根拠もないのにそんな適当なこと書いてごめんなさいごめんなさい。


上記の疑問に対し、良い説明があるページや論文がありましたら教えてください。