2018年2月15日木曜日

本命チョコと義理チョコを仕分けするAI

人工知能でバレンタインチョコが本命か義理かを判別する - Qiita:

 日が変わってバレンタインが昨日になってしまいましたが、数日前からネット上で人工知能(AI)を使って本命チョコと義理チョコを分類するという試みが話題になっていたので、紹介してみたいと思います。元記事は開発者のひよこ(@hiyoko9t)さん。

 言われてみればこの命題は、AIの中でも、いわゆるニューラルネットワークとかその応用編で画像分類によく使われるCNN(畳込みニューラルネットワーク)に非常に適した命題です。あるデータを分類・仕分けするというのは、最も基本的なAIのアプリケーションで、よく使われるのは、手書きで書かれた数字の映像を0から9に分類するという例題です。最新のAIは、手書き数字分類の基本例題で、なんと99%を軽く超える正解率を叩き出しているそうです。

 事前の予想でも、本命チョコは手作りとか少し高級めのチョコで、義理チョコは安めでシンプルな包装など、両者を区別する特徴点がありそうです。その特徴点をうまくニューラルネットワークに学習させることができれば、人間関係などの知識なしで画像だけから判断させられる可能性は高いと思います。


 普通のニューラルネットワークは、入力データを一次元のデータとして扱うので、画像の分類問題にはあまり適していません。ひよこ(@hiyoko9t)さんが使用されたCNNは、途中に畳み込み層とかプーリング層を入れることによって画像を二次元データとして扱うことができ、より精度の高い分類が可能と言われています(↓)。ただ、教師ありデータと呼ばれる、画像とそれが本命チョコか義理チョコかという正解の組合せのデータを大量に準備しなければならないので、個人レベルでそのデータを準備するのが大変そうです。


そこで、ネット上から本命チョコと義理チョコの画像(各500枚)を左右反転・上下反転させて「水増し」した各2000枚を教師データとしたそうです。ミニバッチという1回分の学習はこの中から100枚ごとに行ない、エポックという繰り返し学習回数を1000回行なって精度を高めたそうです。エポックを重ねるごとに精度が上がり、だいたい600エポックくらいからは精度が収束している様子がよくわかります。準備したデータとアルゴリズム的には、1000エポック以上の学習を行なっても精度は頭打ちでしょう。そしてその最終的な精度は「0.983836」という、なかなかの精度を叩き出したそうです。

 この学習済みネットワークで新たな画像を分類した時、本命チョコである確率が90%を超えるチョコはこんなチョコなんだそうです(↓)。ピンク色を中心にカラフルでハート型の形などに特徴があるように見えます。

 一方で義理チョコである確率が90%を超えるのは、こんなチョコ(↓)。本命に比べると、色も形もシンプルなことがわかります。

 画像の分類問題というのは、ニューラルネットワークとCNNのとてもいい例題です。あなたがもらったチョコをAIに分類させてみれば、変な誤解によるトラブルが生まれることがないかもしれません。モテない男性代表としては、きっちり義理チョコに分類されてしまうのも、少し寂しい気がしますが。

0 件のコメント:

コメントを投稿