今日は Roboco の「AI講座」というか「機械学習講座」
テーマは
畳み込みニューラルネットワーク
(Convolutional Neural Network:CNN)
昨日、とりあえず勉強したところでは
画像を分割して細かく処理することで、ニューロンの数はそのままにつながりだけを減らし、処理をシンプルにする。
これについては
1975 コグニトロン(cognitron)
1979 ネオコグニトロン(Neo cognitron)
とか福島 邦彦 (Kunihiko Fukushima)氏のアイデアが生かされているらしい。
ネオコグニトロンの回路構造は、生理学の実験に基づく古典的な階層仮説をヒントにして考案された。図1のように、細胞の層を何段も階層的につないで組み立てた多層の神経回路である。この回路の中には、図形の特徴を抽出するS細胞の層と、特徴の位置ずれを吸収する働きを持つC細胞の層とが交互に並んでいる。S細胞、C細胞という呼び名は、それぞれが大脳の第1次視覚野に見られる単純型細胞(simple cell)と複雑型細胞(complex cell)に似た性質があるところから、その頭文字をとったものである。
で、これが面白いのだけど、S細胞は「エッジ(形の特徴)」をピタッと抽出するのだけど、C細胞は「ファジーにする」というか「細けえことはいいんだよ」という処理をする。その2つが相まって「認識」できるようにするわけね。
で、
元画像→畳み込み→プーリング→畳み込み→プーリング
と「畳み込み」と「プーリング」という作業を繰り返し最終出力に至る。
この「畳み込み」の処理がS細胞にあたり、「プーリング」の処理がC細胞にあたる。
なんか「きっちり勉強」と「ええかげん」の協力によって「認識」の実際の役に立つ、というのがめっちゃ面白い。
Perceptron は「知覚」
Cognitron は 「認識」
ネオコグニトロン
・winner-take-all (総取り)
・add-if-silent (反応しなけりゃ反応するニューロンを付け足す)