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

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

[Ron Wilson,Altera Corporation. MONOist]

内部の仕組み

 ここからは CNN の内部を詳しく見ていきましょう。全てはネットワークの最初の層に到着したデータの2次元フレームから始まります。最初の畳み込み層では、一般的な小型畳み込みカーネル手法を使用してカーネルを畳み込み(例えば4x4ピクセルならば4x4セル)、画像内のピクセルごとに、ピクセル値を畳み込みの結果に置き換えます。

 その結果、フレームは実質的にやや小さくなり、フレーム内の各ピクセルの値は、そのピクセルを角とするセルと畳み込みカーネル内の特徴との類似度を示します。この形状には線分、角、T 字、またはその他があり、どこから得られるのかについては後で説明します。

 次に、通常はCNNの各畳み込み層でこの処理をその都度、別のカーネルで繰り返します。毎回異なる出力が生成されるこれを、「特徴マップ」と呼びます(CNNの最初の層は、元の画像に含まれる特定の特徴の推定位置をそれぞれ示す8つの特徴マップで構成される可能性があります)。

 印刷文字の認識を行う場合、垂直線分、水平線分、対角線分ごとに1つの機能マップが得られる他、異なる種類の結合に対して幾つかの機能マップが得られます。各マップは、元の画像とほぼ同じ数のピクセルを含んでいますが、それらを全て生成するのに必要な処理量は、画像内の全てのピクセルが全てのニューロンに結合されたニューラル層で必要な処理量のほんの一部分にすぎません。

 畳み込み層の最後の機能は、分かりやすいとは言いにくい非線形化です。多くのCNNデザインでは、各層で超越関数(通常は双曲線正接)を適用してピクセル値の範囲を制限し、出力が入力の一次結合にならないようにします。これはトレーニングのために後で重要になります。

 CNNは多くの場合、複数の畳み込み層で構成されます。その場合、2層目以降も複数の特徴マップを持つことになりますが、それらの特徴マップは2次元ではなく3次元畳み込みから得られます。特徴マップ内の各ピクセルは、小型3Dカーネルの加重和と前層内の各特徴マップからの対応するセルのピクセルの積です(図.2)。直感的に、応用数学者の読者ならば嫌がりそうなところですが、後続層の特徴マップは前層の特徴マップ内で特定された特徴(ここでの文字認識の例では、垂直線、対角線、全ての近接する結合)の組み合わせ位置のマップです。

図 2. 内部畳み込み層では 3D カーネルを前層の各特徴マップからの 2D セルで畳み込む 図 2. 内部畳み込み層では 3D カーネルを前層の各特徴マップからの 2D セルで畳み込む

 原理上、多数の畳み込み層を積み重ねるだけで、非常に複雑な特徴識別ネットワークの構築が可能です。しかし、ほとんどのアプリケーションの場合、そこまでするのは行き過ぎであり、隣接する特徴の組み合わせの位置を知りたい場合、HDピクセル・レベルまで位置を特定する必要はありません。

 この特徴マップの線分、角度、結合の特定の組み合わせが元の画像のその辺りにあったということが分かれば十分です。言い換えると、各畳み込み層の最後に、小セル内の全ピクセルの最大値のみを維持することで、各特徴マップをサブサンプリングできるということです。これは、各層で畳み込まなければならないデータの量の大幅な削減につながり、しかも結果の精度が低下しないことが経験上、判明しています。

Copyright © ITmedia, Inc. All Rights Reserved.