ニューロンの動作や学習の仕組みが理解できたとしても、ニューラルネットワークが画像を認識するような振る舞いをすることは簡単には理解できない。何か騙されているような気になった人もいるだろう。そこで、ここでは実際に画像認識しているニューラルネットワークを見ていくことにする。
一般にディープラーニングの性能の高さを証明してみせたのが、2012年に行われた画像認識のコンテスト(ImageNet Large Scale Visual Recognition Challenge。頭文字と西暦を組み合わせてILSVRC2012と略称される)で優勝したシステムだ。このシステムには、名前が付けられていないが、ディープラーニング関係では、開発者(Alex Krizhevsky)の名前を取ってAlexNetと呼ばれる。ImageNetは、スタンフォード大学が運営していて、正解の分かっている画像データ(全ての画像データに何が写っているのかを示すラベルが付けられている)を収集している。現在では、1400万以上の画像が2万2000弱のラベルに分類されている。
AlexNetは図1のような構成になっている。図の上のほうが切れているが、これは上下に同じものが並んでいる。学習は、2つのGPUに分けて実行している。高速化のため、一部の層ではGPU間でネットワークを独立させたままにしてある。これはGPUをまたがってニューロンを接続すると、GPU間でデータ転送の必要が生じ、学習速度に影響が出てしまうからである。2012年当時、3Gバイトのメモリーを搭載した米エヌビディア(NVIDIA)のグラフィックスボード「GeForce GTX 580」を2枚使って、120万枚の画像を学習するのに5~6日が必要だったという。
一番左側にあるのが、入力層で、入力画像は224×224ドットRGBの3層のニューロンとして表現されている。2層目(ニューラルネットワークとしては1層目)では、入力層の11×11×3ドットのRGB値の領域を切り出し、96個(上下48を合わせての数)のニューロンの入力とする。つまり11x11x3=363個の重みと1つのバイアス値を持つニューロンが29万個あるということだ。そうなるとパラメーターの数は364個×29万で1億を超える数になる(364個=363個の重み+1個のバイアス)。結果的には、この層で、11×11ドットの領域が96のパターンに分類されていく。
同様に3層目では、2層目の5×5の領域(入力層では27×27に相当する)の96パターンを256個のニューロンに接続している。これにより96パターンに分類された領域を近隣の領域とまとめて256に分類していることになる。