GTC 2015において、Facebookの研究者であるRob Fergus氏が「Visual Object Recognition Using Deep Convolutional Neural Networks」と題する発表を行った。この記事はFergus氏の発表を中心にしているが、ImageNet関係の情報などを筆者が補足しており、発表に含まれない情報も入っている。

なお、このFergus氏の発表は大人気で、室内の椅子は満席、さらに床に座り込んで聞く人で空きスペースは無く、それでも室内に入れず、ドアの近くに立って覗き込んで聞く人がいるという状況であった。

Deep Neural Network(DNN)の歴史を振り返ると、1989年のLuCunの業績が大きな転機になっている。LeCunは手書きの郵便番号の認識のために、次の図に示す多層の人工ニューロンのネットワークを使った。

LeCunの手書き郵便番号認識ニューラルネットワーク

最初の層は、近接した領域のピクセルのデータを畳み込むConvolutionを行う層があり、最後の3層でConvolution層での部品の認識結果を総合して対象を認識する構造になっている。その中の最後のOutput層は0~9の数字それぞれの確度を出力するための10個のニューロンで構成されている。この郵便番号認識はうまく動作し、大成功をおさめたことはご存じの通りである。

Convolutionを行う各層は、入力に対して特徴を抽出するフィルタを適用し、その結果を非線形の関数で変換する。線形である場合は複数の層を1つにまとめることができてしまうので、非線形であることが必須である。そして、小領域の結果の中から最大値を選ぶMax Poolingという処理を施す。Max Poolingは変換不変性を増し、出力情報量を減らす効果がある。

DNNの各層の構成。ピクセル画像に対して学習したフィルタを適用し、その結果に非線形の関数を適用し、小さな領域の中で最大値を選ぶMax Poolingを行う

フィルタリングは入力の画像に対してフィルタを適用する。フィルタは入力の画像の、例えば10×10ピクセルの領域の画像に対して、それぞれのピクセルの値に重みを掛けて総和を計算するという操作で、入力である10×10ピクセルの領域を元の画像全体の上で1ピクセル(数ピクセルというやり方もある)ずつずらせてフィルタ計算を行って行く。もちろん、この処理は順番に1ピクセルずつずらせてやるのではなく、並列に実行しても良い。

異なる特徴を抽出する何枚ものフィルタが使われるが、通常、各フィルタのサイズは同じでピクセルの重みづけだけが異なっている。

フィルタリングは左の画像に、その右下にあるようなフィルタを適用する。フィルタは多数作られ、異なる特徴を抽出する。右側の図は2つの異なるフィルタの出力

非線形関数は、当初はtanh(x)やsigmoid(x)が使われたが、2012年にトロント大学のHinton教授のグループがmax(0,x)を使うと学習速度が大幅に早まるという論文を発表し、max(0,x)が使われるようになった。この関数は入力が正の場合は正の出力となり、負の場合はゼロとなる整流器(ダイオード)のような特性であることから、Rectified Linear Functionと呼ばれている。

非線形関数は、整流ダイオードのような特性を持つRectified Linear Functionが使われ、負の値に対しては出力ゼロとして、正の値だけを抽出する

プーリング(Pooling)は、定義した小領域(通常、2×2か3×3)の中での最大値を選んで、その値を出力する。非線形関数の適用やプーリングは、フィルタリングで作られたそれぞれのフィーチャーマップについて個別に行われる。

プーリングは、例えば3×3の領域の中で最大値を選ぶ処理を行う

畳み込み処理を行う層は、学習を行うフィルタリング機能、非線形関数、プーリング機能を持っている。そして学習は、この画像は何が写っているという情報(ラベルと呼ぶ)が付いた画像を使って行われ、フィルタの入力ピクセルの重みづけを調整してラベルとの誤差が小さくなるようにする。この手順は出力側から入力に向かって順番に実行して行くのでバックプロパゲーション(Back Propagation)と呼ぶ。このやり方で精度を上げるためには多くの画像が必要である。

Convnetsは学習を行う畳み込み層、非線形関数、プーリング機能を持ち、これは何の画像という情報をもった入力を使って学習を行う。学習は多数の画像を使って行われる

(中編に続く)

GTC 2015の記事一覧

【レポート】GTC 2015 - NVIDIAの新製品発表とDeep Learning
【レポート】GTC 2015 - Baidu(百度)のDeep Learning
【レポート】GTC 2015 - GoogleのDeep Learning
【レポート】GTC 2015 - Deep Learning一色となった基調講演
【レポート】GTC 2015 - NVIDIA、7TFlopsの演算性能を実現したハイエンドGPU「Titan X」を発表