2017/03/10
17:57

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

畳み込みミューラルネットワークの畳み込み・プーリング層


みなさんこんにちは。
人工知能ラボの助手です。

今回は、前回お話しした最も基本的な
ニューラルネットワークを、使用するデータ
や得たい結果に合わせて改良した2つの
アルゴリズムについて見ていきましょう。

細かい理論や数式の話は今回はなしで、
「こんなものもあるんだ」というくらいの
イメージで読んでいただければ幸いです。



①畳み込みニューラルネットワーク(CNN)

主に画像認識の分野で使用されています。
画像認識と言ったらまずCNNだと言っていいくらい、この分野
では有名な手法です。

畳み込みニューラルネットは、人間の視覚野の構成を、
数式を使って再現したモデルです。

人間の視覚野には、ある特定の位置の特定の角度に反応する
S細胞と、特定の角度に反応する(局所性を取り除く)C細胞
という2種類の細胞が存在しています。

S細胞で抽出した特徴量のみでは、入力されたデータにある特徴が
拡大、縮小されたり、平行移動した場合の対応ができません。
(別の特徴として扱われてしまいます)

そこで、その変化に対応するのがC細胞です。
C細胞には、S細胞で抽出した特徴量の平行移動による
変化を吸収し、同一の特徴として扱えるよう処理する役割があります。

そして、この二つの細胞の働きを再現しているのがそれぞれ、
畳み込み(S細胞)プーリング(C細胞)という処理です。

記事冒頭の画像のように、畳み込み処理では、フィルター
(重みの行列)を作成し、これと入力データの各領域との
内積をとり、特徴マップと呼ばれるものを出力します。

畳み込みにより得られた特徴量は、入力データの持つ特徴が
何らかの理由により平行移動したり、拡大・縮小されてしまった場合
に、それらを同一のものとして扱うことができません。

そこで、この特徴マップに対してプーリングを行い、特徴の
平行移動による変化を吸収します。
プーリングにはいくつかの手法がありますが、よく使われるのが
最大値プーリングです。

特徴マップをm*mの大きさで区切り、各領域に分割し、
各領域内での最大値をとったものを新たな特徴マップと
する処理です。
こうすることにより、特徴量の不変性を得ることができます。

畳み込みニューラルネットでは、この二つの処理を繰り返して
得た特徴量を、最終的に全結合層と呼ばれる層に入力し、
画像の認識結果が出力されるという構成になっています。


②リカレントニューラルネットワーク(RNN)

時系列データの扱いに使用されるニューラルネットワークです。
有名な実用例で言うと、機械翻訳や動画の処理などが上げられます。

今まで出てきたニューラルネットは、基本的に一つの入力データ
に対して、一つの出力を返すというものになっていました。

しかし、リカレントニューラルネットでは、連続した複数の入力と
出力(教師データ)の組み合わせとなっているデータを学習
させることができます。

例えば翻訳は、ある英文(連続した単語であり、入力データとなる)と
その日本語訳(連続した単語であり、教師データとなる)
膨大な組み合わせをRNNによって学習させることで
精度を向上させていきます。

また、LSTM(Long short-term memory)などといったRNNを改良した
多くの手法が存在します。



今回は代表的な例としてこちらの2つの
ニューラルネットワークについてお話ししましたが、
この他にも様々なものが存在します。

また、かなりざっくりとした説明に留めて
しまいましたが、いずれ詳しい理論の説明や、
プログラムでの実装等も書いていきたいと思っています。

それでは、今回はここまでにしましょう。
お疲れ様でした!


前回:ニューラルネットワーク概論①