人工知能(2)画像認識

こんにちは。お久しぶりです。
アドバンストサービス部の村松です。

不定期AI紹介の第2回目として、今回もAIで用いられている手法について取り上げていきます。
今回は前回とは打って変わって、画像認識の基礎的な考え方をみていきます。

画像データ

まずはじめに、画像は画素という小さい点がたくさん集まってできています。
さらにその画素は、カラー画像であれば「赤」、「緑」、「青」などの色の情報を持っています。
パソコン上ではこれらの値がずらっと並んでいるようなイメージです。これを学習します。

画像の情報を学習させるとき、下図のようにどの位置にあっても同じ画像として学習させたいです。
ですが、画像は縦と横の位置情報が重要な意味を持っているため、並んでいる値をそのまま学習してもあまり良い結果が得られません。

そこで、この問題を解決する代表的な手法として、『畳み込みニューラルネットワーク(CNN)』があります。
この手法は画像を学習する際に非常によく用いられています。今回はこのCNNについて簡単に説明していきます。
ただし、ここでは核である畳み込みとブーリングについて説明することとし、ニューラルネットワークの説明は省きます。

畳み込み

畳み込みでは、下図のように画像データの画素値とフィルタをかけ合わせ、すべて足した値を特徴マップとして出力する処理を行います。

この処理を複数のフィルタに対して行い、フィルタ数分の特徴マップを作成します。
畳み込みでは、このフィルタを最適化することで学習を行います。
こうすることで、画像の位置情報を保持した学習が可能になります。

プーリング

プーリングでは、ダウンサンプリングと呼ばれるデータ量の削減を行います。
下図では、例として矩形範囲での最大値を取得しています。

この処理により、画像情報の微細な位置変化に対する影響を受けないようにすることができ、データ量の削減による処理時間の短縮もできます。
畳み込みではフィルタの学習を行っていましたが、ここでは学習は行われません。

これら畳み込みとプーリング(及びその他の処理)を合わせて畳み込みニューラルネットワークといいます。

AlexNet

CNNを用いた非常に有名なモデルとしてAlexNetを紹介します。

引用:https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf
上図の前半部分が畳み込みとプーリングの組み合わせです。
後半部分はここでは説明していないですが全結合層というもので、出力の形を1次元にして通常のニューラルネットワークに接続しています。

以上により、位置情報が保持された学習が可能になります。
しかし、この手法では識別対象の物体の拡大、縮小や回転といった変化には対応できません。
簡単な対策方法として、上記の変化に対応した物体の画像を学習させることが挙げられます。
しかしこの方法は一長一短です。
「6」の画像を180度回転させると「9」になるといったように、意図しない誤認識を招く可能性があるからです。
学習結果が悪かった際には、データの加工による悪影響がなかったか検討してみると良いでしょう。