TECH INFO

ニューラルネットワーク概論2

 
 

今回は、ニューラルネットワークの応用である「畳み込みニューラルネットワーク(CNN)」、「リカレントニューラルネットワーク(RNN)」について解説していきたいと思います。
①畳み込みニューラルネットワーク(CNN)

主に画像認識の分野で使用されています。画像認識と言ったらまずCNNだと言っていいくらい、この分野では有名な手法です。
畳み込みニューラルネットは、人間の視覚野の構成を、数式を使って再現したモデルです。
視覚野には、ある特定の位置の特定の角度に反応するS細胞と、特定の角度に反応する(局所性を取り除く)C細胞という2種類の細胞が存在しています。
まずはS細胞による特徴抽出が行われるのですが、もしも抽出した特徴が拡大、縮小されたり、平行移動した場合にはS細胞のみでは対応できません。(別の特徴として扱われてしまいます) そこで、その変化に対応するのがC細胞です。C細胞には、S細胞で抽出した特徴量の平行移動による変化を吸収し、同一の特徴として扱えるよう処理する役割があります。
そして、この二つの細胞の働きを再現しているのがそれぞれ、畳み込み(S細胞)、プーリング(C細胞)と呼ばれる処理です。
畳み込み処理では、フィルターと呼ばれる重みの行列を作成し、これと入力画像の各領域との内積をとり、特徴マップと呼ばれるものを出力します。
畳み込みにより得られた特徴量は、入力データの持つ特徴が何らかの理由により平行移動したり、拡大・縮小されてしまった場合に、それらを同一のものとして扱うことができません。
そこで、この特徴マップに対してC細胞の役割を果たすプーリング処理を行うことにより、特徴の平行移動による変化を吸収します。プーリングにはいくつかの手法がありますが、よく使われるのが最大値プーリングです。
特徴マップを2*2などの大きさで区切り、各領域に分割し、各領域内での最大値をとって再び結合したものを新たな特徴マップとする処理です。こうすることにより、特徴量の不変性を得ることができます。
畳み込みニューラルネットは、最後にこの二つの処理を繰り返して得た特徴量を、全結合層と呼ばれる通常のパーセプトロンで構成された層に入力することで、最終的な画像の認識結果が出力されるという構成になっています。


図. 畳み込みニューラルネットワークの図
②リカレントニューラルネットワーク(RNN)

時系列データの扱いに使用されるニューラルネットワークです。有名な実用例で言うと、機械翻訳や動画の処理などが上げられます。
今まで出てきたニューラルネットは、基本的に一つの入力データに対して、一つの出力を返すというものになっていました。
しかし、リカレントニューラルネットでは、連続した複数の入力に対する出力を学習させることが出来ます。
例えば機械翻訳の例では、ある英文(連続した単語であり、入力データとなる)とその日本語訳(教師データとなる)の膨大な組み合わせをRNNによって学習させることで精度を向上させていきます。
また、LSTM(Long short-term memory)などといったRNNを長い時系列データにも対応できるよう改良した手法なども存在します。