どうも、カタミチです。
さて、だいぶ進んできました。いよいよ6章に突入です。6章は「ディープラーニングの手法」です。5章が「ディープラーニングの概要」だったので、もう一段踏み込んだ感じの章ですかねー。見ていきましょう。
画像データの扱い
まずは、画像認識ですね。画像認識は、ディープラーニングの中でも一番研究が活発な分野です。別の書籍で、「画像認識は人間の視覚の代替」だと書かれていて目から鱗が落ちました。言われてみれば当たり前のことなんですが、人間が目で見て判断しているものを機械が行うことができるようになる…それが画像認識を使った技術なんだと捉えると、様々な場面で使えるものだと理解できました。
画像データは、縦横の2次元に数値が並んでいます。赤色、緑色、青色の3つの色情報で表現するRGB画像や、色相、彩度、明度で表すHSV画像などがあります。また、画像データは、縦横の位置関係が重要な意味を持つので、一列に分解してしまうと大事な関係が失われてしまうことは容易に想像がつきます。この画像データに適した構造として考えられたのが畳み込みニューラルネットワーク(CNN)です。
CNNの基本形
CNNは、人間が持つ視覚野の神経細胞の2つの働きを模すという発想から生まれているらしいです。AIを勉強すれば人間のメカニズムに迫ることもできる…非常に興味深いですね。
その2つの働きというのは…
・単純型細胞(S細胞):画像の濃淡パターンを検出する。
・複雑型細胞(C細胞):特徴の位置が変動しても同一の特徴であるとみなす。
この2つを最初に取り込んだモデルは、福島邦彦らによって考えられた、ネオコグニトロンと呼ばれるもので、S細胞層とC細胞層を交互に複数組み合わせた多層構造になっています。
その後、ヤン・ルカンによってLeNetと呼ばれる有名なモデルが考えられました。こちらは、畳み込み層とプーリング層の2種類を複数組み合わせた構造をしています。畳み込み層?プーリング層?と頭に「?」が浮かんでいたら、次の節で説明がありました。
畳み込み層
畳み込み処理とは、フィルタを用いて画像から特徴を抽出する操作のことです。
例えば、こんな画像とフィルタがあった時に…
フィルタの画像を左上から順番に重ねていき、画像とフィルタの値をそれぞれかけ合わせて総和を取っていく処理で特徴マップを作っていきます。
このフィルタの各値が通常のニューラルネットワークで言うところの重みになります。
この処理は、移動の不変性の獲得に貢献します、とあったのでてっきり上のC細胞に該当するのかと思いきや、畳み込み層=S細胞に該当するようです。はて。
プーリング層
で、C細胞に該当するのがプーリング層です。
プーリング処理とは、画像サイズを決められたルールに従って小さくする処理で、ダウンサンプリングやサブサンプリングとも呼ばれます。
…なんか、勉強するたびに用語に複数の呼び方が出てくるってことは、まだまだ過渡期の研究分野なんだなぁ、と理解もしつつ、用語を覚えるのもなかなか辛いですね(汗)
プーリングには、最大値プーリングや平均値プーリングがあります。
2×2の小領域を設定してその中の最大値を抽出して行くことで、新しくダウンサンプリングした特徴マップを得ます。
プーリング層では決められたルールに従い演算をするだけので、畳み込み層と違って学習すべきパラメータは存在しません。
全結合層
畳み込み層、プーリング層の出力は、画像のような2次元の特徴マップです。最終的には、2次元を1次元に変換する必要があります。
CNNでは、最後に全結合層という、通常のニューラルネットワークと同じ構造を積層し、特徴マップを1列に並べる処理をします。
ただ、最近のCNNの手法では全結合層を用いず、代わりに特徴マップの平均値を1つのユニットに値するGlobal Average Poolingと呼ばれる処理をすることが多くなってるそうです。
ということで
今日はここまで。
分かるような分からないような…という感じですが、画像認識は非常に興味のあるところなので、いずれは自分で手法を使いこなせるようになりたいですねー。
ではまた。
勉強に使ってる書籍はこちら↓
深層学習教科書 ディープラーニング G検定(ジェネラリスト)公式テキスト 第2版