画像処理とか機械学習とか

画像処理や機械学習関連の事について気まぐれで書いていきます。歩行者検出関係が多いと思います。ハリネズミもたまに出現します。

畳み込みニューラルネットワークとは?

今回は、Deep Learningのうち、近年画像の分野でどこの学会に行っても聞かないことはない畳み込みニューラルネットワーク(Convolutional Neural Network:CNN)について紹介したいと思います。

 

この記事は以前紹介した記事の続きとなります。

Deep Learningの基礎の基礎を知りたい方は以下のリンクから。

hiro2o2.hatenablog.jp

 

深層ニューラルネットワークでは、誤差逆伝播学習という学習手法によって、特徴量の学習が可能となりました。このような学習手法によって様々な問題への応用が可能となったが、層の数を増やすほど誤差伝播学習での学習が勾配消失問題などにより難しくなっていくという問題があります。

  •  畳み込みとは

層が多いネットワークの学習をうまく行うためのアイディアとしてあらかじめ、解きたい問題に対して結合をあらかじめ作りこむことにより学習を容易にするという手法があります。
画像にはよく畳み込みのフィルタにより特徴を計算する手法が用いられてきました。

codezine.jp

畳み込みニューラルネットワークで用いられる畳み込みも、これらの操作と同じで、画像をぼかしたり、エッジを強調したりする処理と同じです。

そして、画像を用いるネットワークの構造として、畳み込みとプーリング(解像度を粗くリサンプリングするような感じ)を繰り返す、畳み込みニューラルネットワークというネットワークが用いられるようになりました。

 

f:id:hiro2o2:20160205213405p:plain

発見と発明のデジタル博物館: 神経回路モデル「ネオコグニトロン」 (専門向け)より

 

畳み込みニューラルネットワークの元となるのは、日本の福島らが提案したネオコグニトロンというネットワークです。

このネットワークも、畳み込みとプーリングが繰り返される構造になっており、各層ごとに画像の特徴的な部分を抽出していきます。

畳み込みニューラルネットワークも、この畳込みとプーリングという特殊な操作を行う事以外、順伝播型ニューラルネットワークと同様に扱うことができます。
入力画像が与えられた時に、畳込みとプーリングにより画像の特徴を抽出し、全結合ネットワークに抽出した特徴を伝え、最終的にクラス識別を行います。

 

  • プーリングを行う利点

プーリングは、前の層の畳み込みの出力を粗くリサンプリングするようなイメージとなっており、これにより画像の多少のずれによる見え方の違いを吸収することが可能となり、少しのずれに不変な特徴量の獲得が可能となっています。

以前から画像認識で用いられてきたHOGなどの輝度勾配を用いる特徴量では画像をセルという重なりのない局所領域に分割し、それぞれの局所領域で輝度勾配のヒストグラムを計算することで画像のずれに対応していました。

 つまり、画像に特化したDeep Learningでは、畳み込みを行うフィルタの学習と画像のずれに対応するという二つを自動で行っていると言えます。

 

畳み込みニューラルネットワークは、近年、画像の分野における一般物体認識や特定物体認識において非常に良い結果を残しています。以下のスライドが非常に分かりやすいです。

www.slideshare.net

 

mnistという手書き文字認識はchainerなどのDeep Learning用のライブラリを用いて簡単に試すことが出来るので、ぜひチャレンジしてみてください。
chainerを使って畳み込みニューラルネットワークで画像分類やってみました。
ちなみにchainerは日本のPreferredNetworksという会社で開発されたライブラリです。

chainer.org

developer.nvidia.com