機械学習:お菓子はえびせんと昆布で出来ている?

投稿日:

先月に続き、弊社で実施中の「社内勉強会」について書きます。

今回の題材は「機械学習」。ただし、参加者の半数が未経験のため、まずは「機械学習を体験する」趣旨で実施です。

内容としては、「お菓子」の画像を使った分類判定を行いました。

ベースとなる教師データには、「山のもの(きのこ)」と「里のもの(たけのこ)」を使います。
その上で、参加者が持ち寄ったお菓子で、教師データを増やします。
データは、「えびせん」、「チョコ」、「わかめ」、「昆布」、「たけのこ(限定味)」、「ピスタチオ」等々。
加えて、それぞれのお菓子を組み合わせて「きのこ(もどき)」を用意し、誤判定を誘うような画像も作ります。

もちろん、撮影したお菓子は参加者がおいしく頂きました。
教師データに食べ物を利用する場合、出来れば空腹時の実施をお勧めします。また、甘いもの/辛いものは半々が良いです。

1時間で約300枚程の画像データを用意。カテゴリごとだと 20 ~ 50 枚程度です。しかし、それでもデータとしては足りないとのこと。ツールを利用して画像データの枚数を水増しします。
データの用意って地味に大変。話によると、この手の教師データの作成にはバイトを雇って対応したりするそうです。

データの準備ができたので、次は学習です。
教師データとして相応しいデータをピックアップし、学習させていきます。これも人力。
なお、前処理方法は「画像データはグレイスケールで扱い、且つ、一次元配列にして判定」を選択します。時間の都合です。
カラーで扱ったり二次元配列の判定にすれば精度が上がりますが、反比例して処理時間がかかるそうです。

分類結果。これが中々に興味深い結果となりました。
箇条書きにするとこんな感じ。
1)きのこはほぼ「きのこ」、たけのこはほぼ「たけのこ」として判定
2)「きのこ(もどき)」は、ほぼ「えびせん」と判定。むしろ、きのこ/たけのこ以外は大体「えびせん」で判定。
3)殆どの画像データでは、数パーセントの確率で「昆布」が含まれる。

なんという事でしょう。とんでもない発見をしてしまいました。
我々が撮影したお菓子は「えびせん」で出来ており、そして「昆布」の可能性も秘めていたのです。

…なんて、そんなわけありませんね。

後でわかった事ですが、分類結果は用意した元データのカテゴリの比率にも依存するのだそうです。
今回は教師データして「えびせん」「昆布」の画像枚数が多かったため、その影響を受けた結果だったと言う事です。
なので、カテゴリごとにデータ枚数を揃えるのが知見の一つになります。

機械学習は教師データが大事とよく聞きますが、実際にデータを用意してみるとその言葉が実感できました。

社内勉強会では、また機械学習を実施する予定です。今度はもう少し知見をもった上で参加するぞ。