AI・人工知能について 13・畳み込みニューラルネットワーク

ディープラーニング・ネットワークモデル

ディープラーニングを行うニューラルネットワークの設計にはさまざまなものがあり、なおも次々と新たなものが考案され、提案されています。その中でも代表的なものを紹介します。

 

畳み込みニューラルネットワーク

畳み込みニューラルネットワーク Convolutional Neural Network (CNN)はディープニューラルネットワークにおいてもっとも代表的なネットワークです。1979年に福島邦彦が発表したネオコグニトロンから発展した、動物の脳の視覚野を参考にして構成された順伝播型のニューラルネットワークで、画像認識、動画認識、自然言語認識に用いられます。

 

「畳み込み」とは

「畳み込み Convolution」というのは、簡単に言うと「特徴を大ざっぱにつかむ」はたらきです。たとえば「×」の形を認識させるケースで、9×9の81ピクセルを持つ画像データを3×3で部分的特徴を表したグリッドを使って畳み込んでみます。

左が9×9の入力データで、右が「×」の斜線部分の特徴をあらわす3×3のグリッドです。

ここで、黒で示したオンのピクセルは「1」、白のオフ・ピクセルは「-1」の値を持つと考えてください。

そして右のグリッドを、入力データのいちばん左上に重ねます。そして重なったところの双方の値を乗算します。両方ともオンなら1×1=1、両方ともオフでも-1×-1=1、オンとオフなら1×-1=-1となります。すると、いちばん左上の計算結果は、

 

 

となります。

そしてこの9マスの平均値を出します。7÷9=0.7777……と循環小数ですが、とりあえず0.77としておきましょう。

次に上と同じことを、特徴グリッドを右に1ピクセル分ずらして行います。

平均値は-0.11です。

また特徴グリッドを1ピクセル分ずらして同じことを繰り返し、特徴グリッドが右上に重なるところまで行ったら、今度は1ピクセル分下にずらして同じ計算をし、左にずらして……というふうに続けていくと、最終的に7×7のグリッドに平均値が書き込まれたものが得られます。

これが「畳み込み」です。当初9×9だったデータが7×7に「大ざっぱつかみ」されました。数値が大きいマス目は特徴との近似が多く、小さいマス目は近似が少ないことをあらわします。

同じことを、「×」の別な部分的特徴である

でも行います。この例では、合計3つの畳み込み画像データが得られます(実際の画像認識では、もちろんもっと多数です)。

これがCNNの「畳み込み層」で行われる操作です。

 

プーリング

その結果得られた7×7のグリッドに書き込まれた平均値は、特徴グリッドと合致するピクセルが多いほど1に近づき、合致ピクセルが少ないほど-1に近い値をとります。たかだか×程度の記号であれば、3種の特徴グリッドで1回畳み込みを行えば数値の分布から「×なのかそうでないのか」認識できそうです。

しかし実際に扱われる画像データは200×200とか、あるいはもっと多いピクセル数です。それに、認識したい対象が写っている位置がちがっていたり、かたむいていたりすることもあります。そういう場合でもCNNが注目すべき対象に注目できるよう、「プーリング Pooling」という技法が使われます。

 

やり方は単純で、上の7×7の畳み込みグリッドで2×2ずつに区切り、そのうちの最大値だけを取るだけです。

左上の部分であれば、

 

 

 

 

となっているものを、

 

というふうにまとめてしまいます。すると最終的に、

 

 

となります。

薄く影を付けたところに強い合致が見られるわけで、マシンはそこに注目すれば効率的に認識できることになります(特徴点の位置ズレに対応)。また、特徴点の分布範囲を狭く絞りすぎてしまう「過学習」もある程度抑えられます。

ちなみに畳み込みとプーリングを行うとピクセル数はオリジナルの4分の1ほどになり、マシンへの計算負荷もかなり軽くなります。

 

全結合

次に、畳み込みで得られた特徴量分布と、プーリングで得られた重点的注目領域を合わせて評価する「全結合層」にデータが入力されます。全結合層では、次の出力層との間でそれぞれのすべてのノードが結合(接続)しています。

全結合層のノードと出力層のノードとを接続する線には、一本一本異なる重み付け値(特徴量 Weighting Factor)が定められており、これを入力データに乗じることにより、出力層である意味「投票」のようなものが行われ、画像が「○の確率が高い」、「×の確率が高い」といった結論を出していきます。

 

バックプロパゲーション

制限ボルツマンマシン(RBM)のところで出てきたのですが、CNNでもやはり、特徴量の修正・学習にはバックプロパゲーションBack-propagationが使われます。誤差逆伝播法です。出力されたデータと望ましいデータを対比して、誤差の小さい部分の特徴量は保持し、大きい部分の特徴量は変えていきます。

このプロセスを繰り返すことによって、CNNは認識力を高めていきます。

 

CNNの認識力

ディープラーニングの領域でもっとも良好なパフォーマンスを発揮しているのがCNN、畳み込みニューラルネットワークです。「人工知能は人間を超えるか」という技術的特異点(Singularity)の話がありますが、「認識力」の面ではCNNはすでに人間を超えている部分があります。しかもその研究開発はまだ途上にあり、多層化や操作パラメーターの設定など、まだまだ未研究の部分が多々ありますので、今後ますますパフォーマンスが上がっていくことも期待されます。

 

さて次の記事では、ディープラーニング以外の機械学習について話を広げてまいります。人工知能のキーワードのひとつである「データマイニング」にもつながっていきます。