ニューロンの動作や学習の仕組みが理解できたとしても、ニューラルネットワークが画像を認識するような振る舞いをすることは簡単には理解できない。何か騙されているような気になった人もいるだろう。そこで、ここでは実際に画像認識しているニューラルネットワークを見ていくことにする。

 一般にディープラーニングの性能の高さを証明してみせたのが、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日が必要だったという。

図1●ILSVRC2012で従来型の手法に比べて10%以上も高い正解率を出したAlexNet。上下に分かれているのは2つのGPUボードで学習を行わせるためにネットワークを分割したため
(出典:Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. "Imagenet classification with deep convolutional neural networks." Advances in neural information processing systems. 2012.より)
[画像のクリックで拡大表示]

 一番左側にあるのが、入力層で、入力画像は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のパターンに分類されていく。

図2●入力層と2層目の部分。論文の図では矩形で書いてあるが、2層目は、入力層の11×11ドットのRGB値の領域を1つのニューロンに割り当て4ドットずらした領域を隣のニューロンに割り当てている。このため1セットのニューロンは55×55となり、全く同じ接続のものが96セットあり、55×55×(48+48)という層構成になっていて96パターンを区別できる
[画像のクリックで拡大表示]
図3● 2層目が検出する96パターンを可視化したもの。上下は、学習するGPUの違いに対応
(出典:Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. "Imagenet classification with deep convolutional neural networks." Advances in neural information processing systems. 2012.より)
[画像のクリックで拡大表示]

 同様に3層目では、2層目の5×5の領域(入力層では27×27に相当する)の96パターンを256個のニューロンに接続している。これにより96パターンに分類された領域を近隣の領域とまとめて256に分類していることになる。

この先は会員の登録が必要です。有料会員(月額プラン)は申し込み初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら