連載
» 2015年11月30日 07時00分 公開

SYSTEM DESIGN JOURNAL:畳み込みニューラルネットワークの使い方、分かりますか? (3/6)

[Ron Wilson,Altera Corporation. MONOist]

分類

 そうした畳み込み層とサブサンプリング層のペアを2〜3回経ると、小さな特徴マップが大量に生成されます。これらのマップはそれぞれ、元の画像に含まれる潜在的にかなり複雑なパターン(文字列や、歩行者の形をした物体)の有無および位置を表します。

 しかし、マップだけでなく意味を抽出する必要があります。「この手書き文字は米国初代大統領ジョージ・ワシントンを意味しているのか?」「前方の道路をふらふら歩いている歩行者はいないか?」に対する答えが必要なのです。

 これは認識ではなく分類の問題です。分類を実行するために、CNNは畳み込み層の後で完全結合ニューラルネットワーク層を利用します。最初のニューラル層で、各ニューロンは最後の畳み込み/サブサンプリング層内の全特徴マップから全てのピクセル値を受け取り、各値に所定の重みを乗じ、その和を非線形化します。その結果、得られる各ニューロンの出力は、事実上、元の画像全体について判定を表します。「誰かがこの“G. Washington”を署名したのか?」「道路の境界に人間かもしれない物体があるか?」に対する判定です。

 画像について必要な結論の抽象度が高いほど、ニューラル層を追加する必要があります。それらの層もそれぞれ完全結合ですが、最後の層はガウス結合パターンに切り替えるCNNアーキテクチャもあります。これまでのところ、層内のニューロンの数は比較的少ないものの、例えば「これはワシントン大統領が1期目の在任中に書いた文字か?」「あの酔っぱらいは、私が交差点に到達する前に転ぶ可能性があるか?」といった非常に複雑な判定を示している可能性があります。

 これまでの流れを追っていれば、CNN に提示される各新規フレームが、膨大な計算のトリガーとなることが理解頂けるはずです。この量の計算は、恐らく浮動小数点形式で実行する必要があります。

 入力層で、画像内にあり得る4x4セルごとに小型有限インパルス応答(FIR)フィルタを適用し、16回の乗算、何度かの加算、そして双曲線関数 tanh(x)の評価を行う必要があります。この一連の処理を、入力層の特徴マップごとに行わなければなりません。

 後続層では、前層からの各特徴マップ内に潜在的に存在し得る各セル(重複するものも全てを含めて)を畳み込みエンジンに送り、新しい層の全ての特徴マップを得ます。この処理は、サブサンプリングによって量が抑えられますが、それでもかなりの量です。しかし、この段階で完全結合層を評価するのに必要な作業に比べれば取るに足りません。

Copyright © ITmedia, Inc. All Rights Reserved.