Deep Neural Networkになると学習を収束させるのが計算量の面から困難になってくる. その1つの解決策として提示したのが,#10で扱ったオートエンコーダである. コンセプトとしては,最適な初期値を与えれば計算がうまくいくということにある. そのためにオートエンコーダを用いて事前学習を行うことによってパーセプトロンに初期値を与えた. #10のサンプルコードでは2層のパーセプトロンをオートエンコーダで事前学習させたが,これを更に多層にすればDeep Neural Networkになる.

この節では,Deep Neural Networkの学習を収束させる別のアプローチとして,ノード間結合数(パラメータの次元数)を減らして計算量を減らすことを考える. このようなニューラルネットワークを__畳込みニューラルネット(Convolution Neural Network, CNN)__という.

畳込みニューラルネット

全結合

これまで扱ってきたニューラルネットは,すべてノード間が全結合したニューラルネットであった. このように全結合していると,当然すべての結合に相当するパラメータの推定を行わなければならない. しかし,学習精度を上げるためには必ずしも全パラメータが必須というわけではない(現実のデータは疎(sparse)な構造を持つことが多い).

畳込み

そこで,このようにノード間結合を減らすことを考える. このようにすれば,推定すべきパラメータ数が減少し,ある程度計算量爆発を抑えることができる.

CNNは脳の受容野の仕組みを模したものである. 一層目の入力画像に対して,中間層は位置敏感性を持ち(つまり、各々の中間層ノードは入力層の特定の部位に反応する),出力層は中間層に比べて位置に鈍感である.

畳込みとプーリング

前者を__畳込み__,後者を__プーリング__という.

CNNは畳込みとプーリングという2種類の演算に対応する層を交互に重ねたニューラルネットワークである.