AIは”浜田ゴリラ”を何と認識するのか? 〜Deep Learning編〜

AIは”浜田ゴリラ”を何と認識するのか? 〜Deep Learning編〜

どうもこんにちは塚本です!

AIは”浜田ゴリラ”を何と認識するのか? 〜序章〜
AIは”浜田ゴリラ”を何と認識するのか? 〜パーセプトロン編〜

今日は,以前に書いて放置していたブログの続きをやりたいと思います.

Deep Learning編になります.

Deep Learning

Deep Learningとは,機械による自動的な特徴抽出を可能にする,
ディープニューラルネットワークを用いた学習のことになります.

Deep Learningは,図6で示すような構造になっています.
前回,説明した多層パーセプトロンの中間層を大量に増やしたものと考えれば簡単かな?と思います.

Deep Learningには大まかに2つのアルゴリズムがありますが,
長くなるので,とりあえず畳み込みニューラルネットワークを紹介します.

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

まず,代表的なものとして,「畳み込みニューラルネットワーク」が挙げられます.
主な用途はImageNetに代表されるような画像認識になります.

畳み込みニューラルネットワークは,前回説明した,多層パーセプトロンの延長的なものです.

ただ,人間の脳の視覚野の構造を参考にして,
ニューロン間の結合や各層の結合を限定的にしているのが特徴になります.

詳しくいうと,畳み込みニューラルネットワークは図7のように
入力層,畳み込み層,プーリング層,全結合層,出力層から構成されています.

畳み込み層とプーリング層は複数回繰り返され,深い層を形成しています.
また,その後の全結合層も同様に何層か続いていきます.

畳み込み層では,画像の局所的な特徴抽出を担っています.
つまり,図7でいう「5」の一部分の色の変化やピクセルの変位を見ています.

そして,プーリング層では,特徴抽出をまとめあげています.

これらを繰り返しながら,画像認識を行っています.

画像認識

初回の記事でも説明をしましたが,
人間がカブトムシを見て,カブトムシと判断できるのは何故でしょう?

当たり前って当たり前じゃないんですが,
普通に生活をしていると,当たり前の有り難さに気付きにくいものです.

人がまずカブトムシを見た時,
色や形などの特徴量がカブトムシと紐付いているので,「カブトムシ」は「カブトムシ」なんですね.

さらに,この角の形は〜とかこの色は〜とかで,
「ヘラクレスオオカブトかな?」となっていくわけです.

「カブトムシ」を見たことがない人でも,「魚だ!」ってなる人は少ないと思います.
過去に蓄積されたデータを人間の脳は照会して,「この特徴量は虫に近いぞ…」となるからです.

先程,照会した畳み込みニューラルネットワークは
このような人間の脳の構造を,模して特徴量の抽出を行っている訳です.

学習

もちろん,人間生まれたばっかりのときは何も分からない状態です.
赤ちゃんはまず最初に喋る言葉って,おそらく,「ママ」や「パパ」とかですかね?

そう考えると,「アンパンマン」ってすごいですよね!
母音の基本の「あ」,パパの「パ」,ママの「マ」…
「ん」は自動的に出るので,そりゃ人気も出るわけだし,赤ちゃんにぴったしの単語だと思います.

そして,生まれてくる赤ちゃんが日本語を喋るのは,
日本に生まれたから自動的に日本語を話すわけではなく両親等の周りの方が日本語をはなすからです.

最初は,「ママ」や「アンパンマン」とかってなかなかうまく発音できないでしょうが
だんだんと綺麗に発音していけるはずです.

言語や発音の特徴量を抽出,理解し,学習しながら精度を高めていくわけです.
↑ これ,機械学習でも全く同じことがいえます.

これこそ,学習です.

実践

さて,タイトルにもあるようにこの浜田ゴリラです.
僕は学生のときにひらめいてしまいました…

この画像をPCに認識させたらどんな結果が返ってくるのか!?!?!?!?

サクッとそのあたりを次回は説明しようと思います☆