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つの
ニューラルネットワークについてお話ししましたが、
この他にも様々なものが存在します。
また、かなりざっくりとした説明に留めて
しまいましたが、いずれ詳しい理論の説明や、
プログラムでの実装等も書いていきたいと思っています。
それでは、今回はここまでにしましょう。
お疲れ様でした!
前回:ニューラルネットワーク概論①