【Chainerで画像識別1】画像識別?新しいAIブームの幕開けとはどういう仕組みか。

【Chainerで画像識別1】画像識別?新しいAIブームの幕開けとはどういう仕組みか。

解説画像1枚作るのに、30分かかるのは

ブログ始める際には想定してなかったな・・・。

分かりやすい解説がモットーです。

アイーンです。

 

今回から、これまでの学習結果の集大成ということで

”画像認識”やってみたいと思います。

ちなみに、どの書籍でもだいたい”脱初心者の最終回”として紹介されるのが画像認識のテストです。

 

2012年に、Googleが

「コンピュータが、自発的に猫を認識することに成功した」

という発表をしました。

 

この発表が、ディープラーニングに次いで世界をAIブームに駆り立てたといっても、過言ではないでしょう。
もはや海賊王ゴールド・ロジャー級の発言。

 

つまり!ここを超えれば”脱初心者”ということです!

集大成第1回目ということで、今回はコンピュータが画像を認識出来るために必要な技術について、分かりやすく解説したいと思います。

 

それではいってみよ~

 

画像認識に必要な技術とは

まずは、”CNN”についてご説明します。

CNNとは、”Convolutional Neural Network”

コンボリューショナル・ニューラルネットワークと読みます。

日本語で、”畳み込みニューラルネットワーク”と呼ばれるこの技術。

人の視神経や視覚をモデルに作られた、画像認識に強いネットワークです。

この技術は、入力から出力までに次の層を通過します。

入力

”畳み込み層”

”プーリング層”

通常のニューラルネットワーク

出力

 

ハイ!思ったね!

”畳み込み”ってなにって!!

”プーリング”ってなによって!!

 

むしろ思って!!

思ってない人は既に何かしら偉業を成し遂げててくれ。

 

さぁ、畳み込みプーリングを解説させてもらいます。

 

畳み込みとは?

畳み込みは、画像が持つ特徴を抽出する行為です。

 

さぁ、理解してもらうために、たとえ話でいきましょう。

左の画像は、8行×8列のピクセルで書かれた、数字の”2”です。

この画像は”モノクロ(白か黒)”で出来ています。

 

これを、ピクセル毎に見てみると、右画像のように白は0で黒は1というデータになります。

ガックガクなのは気にしないでください。

0は見やすさを考慮して空白にしてます。

 

今回のキーワードは”特徴量”

この画像の特徴を見つけ出します。

そのために、特徴を見つけるためのフィルターを掛けましょう。

これは、縦の特徴を見つけるフィルターです。

元画像から縦の特徴を見つけ出します。

 

これを元画像に合わせると…

1でやってるので分かりづらいですが、これにより、フィルターの各マスと元画像の各マスに一致する箇所をフィルターの数値へ掛け算しています。

そして、結果を全て足し合わせると、縦フィルターで”2”の特徴量が得られました。一番左上3×3ピクセルには”2”の特徴量があります。

これを1ピクセルずつズラし、画像全体で特徴量を算出していきます。

 

次ならこう。特徴量は1。

これを繰り返して・・・

畳み込んだ結果がこうなります。

これは”特徴マップ”とも呼ばれます。

3×3のフィルターを通して特徴量を算出したため

8×8が6×6へ変化したのがお分かりですか?

これが縦フィルタの特徴が抽出された結果。

この動作を”畳み込み”と言います。

 

これ・・・縦の特徴だけ抽出した畳み込み結果です。

他にも、斜め、横、バラバラなど、複数のフィルタを使って

フィルタの数だけ特徴量を算出した結果を作ります。

 

128×128ピクセルなら?

カラーだとどうなる?

基礎が分かればご想像いただけるんじゃないでしょうか。

128×128個の入力値になりますし、カラーがRGB形式の画像ではその3倍の入力になります。

おっそろしく時間かかりそう・・・。

 

プーリングとは?

プーリングは、簡単に言うと”特徴マップの最大値を取る”行為です。

 

というわけでプーリングには、畳み込み結果を使います。

 

縦の特徴マップを、2×2に分割し

各領域の最大値を取り出すと、右のようなプーリング結果になります。

同じ数値の箇所ならどちらでもいいんですが、分かりやすく赤丸つけてみました。

 

結果としては、小さくなりましたね。

 

プーリングには、3つの効果があります。

1.元画像のちいさな変化も、特徴量の最大値をとるので検出しやすい。

2.過学習を抑制することができる。

3.サイズが小さくなる(計算コストが下がる)

 

これが”プーリング”です。

すこ~し恐怖が和らぎました。

 

まとめ

今回の知識は、この後行う画像識別の基礎知識です。

高度にNNを学習させたい場合、この程度の知識では足りないこともあるでしょうが、まずここが理解出来れば後々の学習がスムーズにいくと思います。

 

 

これで貴方の肩書は「なんでも畳み込んじゃう人」です。

しまっちゃうオバケ並みに怖いです。

 

それでは。