畳み込みのさらに詳細な情報

一覧に戻る

 ここまで、畳み込み処理の基本的アイディアと深層畳み込みニューラルネットワークの効率的な訓練方法について学習してきました。畳み込みニューラルネットワークがどう動くのか、さらに理解を深めるために本記事で扱うトピックも押さえておくと良いでしょう。

畳み込み層 VS. 全結合層

 畳み込み層と全結合層の明瞭な違いは、これらの層の入力の接続数です。最も簡単な例として、入力データとして\(W✕W\)の2次元データがあったとき、畳み込み層は、1個のニューロンが小さな領域\(F✕F\)個の接続のみを必要とします。そのため、\(D\)個のニューロンの畳み込み層は、\(F✕F✕D\)個の接続のみを必要とします。一方、全結合層は、1個のニューロンが入力の全ての領域\(W✕W\)に対して、\(W✕W\)個の接続を必要とします。そのため、\(D\)個のニューロンの全結合層は\(W✕W✕D\)個の接続を必要とします。この様子を下図で比較しています。
 一般的に、オブジェクト(\(W\)=200)の情報を保つため、入力画像は少なくとも200✕200ピクセル程度を必要とします。3個のニューロン(\(D\)=3)で構成される全結合層の接続数は、200✕200✕3=120,000となります。一方、3個のニューロン(\(D\)=3)で構成される畳み込み層が、3✕3 (\(F=3\))の受容野を持つ場合の接続数は、\(3✕3✕3=27\)となります。このような場合、畳み込み層を利用することで、接続数が\(10⁵\)から\(10¹\)のオーダーで削減となるため、単純計算で5000倍の効率化を実現している構造だと言えます。入力画像が巨大であればあるほど、この削減効果は明白となります。

畳み込み層 vs. 全結合層

 計算機の観点からは、これらの接続は、ニューラルネットワークモデルの重みパラメータの数と対応関係があります。同じ入力画像が与えられた時、全結合層は、畳み込み層よりも多くの重みパラメータが必要となるため、コンピュータ上でより広いメモリ領域を必要とします。GPUを利用して深層ニューラルネットワークモデルを構築しようとしたとき、このことがボトルネックとなります。GPUでメモリが確保できない場合には、訓練に時間がかかってしまうため、全結合層は実用的とは言えません。
 学習済みのモデルの品質について、未知のオブジェクトを認識する精度を例に取ると、同じ画像のデータセットで、同じ階層数の全結合と畳み込みのモデルを学習して比較した場合、全結合によるモデルの精度は、畳み込みのモデルよりも悪くなります。その理由は、全結合ニューラルネットワークの場合は、畳み込みニューラルネットワークと比べて、極めて多くの訓練データを必要とするからです。このため、訓練データの量が十分でないと、ほとんど重みパラメータを学習出来ないままとなります。このことから、画像認識の課題に対しても、全結合ニューラルネットワークよりも、畳み込みニューラルネットワークでデザインしたほうが、上手く学習できるのです。

・畳み込みの進化

 畳み込み層は、私達の脳の中の視覚神経細胞(Visual Neuron)の機能を真似てコンピュータ上でニューロンを再現しようとして誕生しました。このことが畳み込み層を利用する最も重要な理由となっています。神経学者は、脳の視覚野の場所にある視覚神経細胞で物体を認識する効率的な仕組みを見つけたのです。視覚野の神経細胞は、階層に別れていて、前の階層の小さな領域から次の階層の僅かなニューロンにだけ接続する構造だったのです。
 視覚野では、近くにある神経細胞は重なり合った入力領域に接続され、類似する局所パターンとして認識します。最初の方の階層の神経細胞は、角や孤のような単純な形にだけ反応できます。また奥の方の階層の神経細胞は、もっと複雑な形を認識できるため、異なる物体を認識できるようになるとわかってきました。神経科学の分野のこれらの重要な発見に触発される形で、コンピュータサイエンスの分野では、畳み込みニューロン、畳み込み層、さらに深層畳み込みニューラルネットワークが発明されました。

深く小さい局所受容野 vs. 浅く広い受容野

 この他のトピックとして、畳み込みニューロンの受容野の形については、まだ言及していませんでした。深層畳み込みニューラルネットワークの記事で、効率的に入力画像の\(5✕5\)の領域を見る小さな\(3✕3\)の受容野持つ畳込みニューロンについて説明しましたが、もし、\(3✕3\)の受容野の代わりに\(5✕5\)の受容野を採用したらどうでしょう?このことについて考えていきます。
 まず、大きな受容野のニューロンは、小さな受容野のニューロンよりもより多くの重みパラメータを必要とします。これについて少し深堀っていきましょう。\(5✕5\)の受容野の1個の畳込みニューロンは、\(5✕5\)=25で25個の重みパラメータを必要とします。一方、\(3✕3\)の受容野を持つ2層の畳み込みニューロンを考えたとき、\(3✕3+3✕3\)=18で18個の重みパラメータとなり、広い受容野を採用したときよりも重みパラメータの数が少なくて済みます。この傾向は、より階層の多い、深い畳み込みニューラルネットワークを考えたときに如実に現れるため、重みパラメータの数を削減するためには、受容野を\(2✕2\)あるいは\(3✕3\)程度の小さい範囲で押さえることは重要になります。
 次に、それぞれの畳み込み処理は、例えばReLUのような非線形活性化関数により実現されています。階層化された小さな受容野は、上位の階層でより抽象的なパターンを認識できます。これは、解のニューロンが小さな角や孤といった基本的で規則なパターンを認識できて、さらにその上位で非線形関数によって不規則な抽象的なパターンを認識できます。
 このような処理は、同程度の重みパラメータ数で、大きな受容野を使った1個のニューロンでは不可能です。このため、単相非線形抽象化の複雑さが、多層非線形抽象化の複雑さに匹敵するわけです。
 

一覧に戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA