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

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

なぜCNNではAutoEncoder使わなくても学習が収束するのか

7月のGCPUG信州の発表資料をやっと公開したので、そこで質問が出てた、CNNがなんでAutoEncoder使わなくても学習が収束するのかの話でつらつら考えてたことを、今さら書いてみます。


その時はCNNはネオコグニトロンの子孫でネオコグニトロンは自己組織化するからではないか、というような回答をしました。
が後から調べてみたところだと、Dropoutで正規化が行われるようになったおかげで過学習でローカルミニマムにはまりにくくなり、AutoEncoderで事前学習しなくてもよくなった、という流れが正解らしいです。
(さらに今はDropoutを使わずにバッチ正規化でやる流れ)

Deep Learningと画像認識 〜歴史・理論・実践〜 65ページ

教師なし事前学習は最近ではほとんど用いられていない
なぜならDropoutのようなすぐれた正規化方法が登場したため


ただその後も、CNNはほんとに自己組織化するのだろうか?と考えていました。


CNNでは代表的なプーリング手法として、Average PoolingとMax Poolingとがありますが、最近だとMax Poolingのほうがよく使われているようです。
Max Poolingとは、そのエリアで最も良く反応したニューロンの出力だけを採用するものです。
ということは、それってネオコグニトロンで抑制性結合してるのと同じ効果があるのではないかと思ったのです。


きっとそれだ!と思ったんですけれども、さらによくよく考えてみると、抑制性結合というのは福島先生の最大値検出仮説にもとづいて設計されたものでした。「最大値検出」とはまさに「Max Pooling」そのものです。
だからMax Poolingで実装されてるCNNはまさにネオコグニトロンそのもので、なのでCNNは普通に自己組織化出来るのですね。


と考えると、CNNのMax Poolingは平行移動とかを吸収して次元削減するためのものだけに捉えられがちですが、実は自己組織化のための側面のほうも大きいのではないかと思いました。
とするとある程度深い層では、次元削減せず逆に増やすくらいでもいいのかもしれん、と思いました。
今まで層が進むにつれて次元削減すべきと思ってたんだけど、ある程度からは逆のほうが良かったりしないかな、と。


とここまで書いておきながらなんですが、最近2016年に福島先生ご自身がネオコグニトロンについて書かれた論文に

DeepCNNネオコグニトロンの学習

C細胞は,最近のdeep CNNとは異なり,max-poolingではなく平均化操作によってpoolingを行なっている

とあって、根本的に僕の理解が間違ってる?というような感じになっていますが…


(関連)

Dropoutが効果的な理由についての疑問 - モーグルとカバとパウダーの日記