AIアプリをつくろう!

こんにちは。

『Dr.+エジソン』では、
市販教科書を教材としたAIプライベートレッスンを行っていますが、
教材を組み合わせて、「手書き数字当てWebアプリ」を作ってみました。


上の画像のような、
「0-9」の数字一つが描かれている画像ファイルを送ると、
その数字が何であるか、AIが答えてくれます。
(ファイル操作が入るので、スマホでは手間がかかると思います)

Webアプリの部分は
「実践で学ぶ機械学習活用ガイド」5章の
魚画像を判別するWebアプリの部分を利用し、
画像判別の部分は
「ゼロから作る Deep Learning」7章の
ディープラーニング(画像向けCNN)を組み込みました。
(後者はTensorflowなどのライブラリを使わずに
 ディープラーニングを実装するので、
 中の仕組みを知るのに最適な教材です!)

この類(特に前者)の書籍は「生もの」なので、
出版されてから半年~1年ぐらいでやらないと
各種ツールのバージョンが上がったりで、
画面表示が書籍の解説と違ったりして
作業者への要求レベルが跳ね上がりますが、
それさえなければ
最近の市販の教科書は丁寧に作りこまれているものが多く
指示通りやっても、まともに動かない、
というものは少ないように感じます。

でも教科書通りにこなしただけでは
表面的な知識しか身に付きにくいです。
とは言っても、いきなり1から作る
というのも敷居が高すぎるので、
こんなふうに、教材を組み合わせて
徐々にスキルアップしていく
のはいかがでしょうか。

ただ組み合わせるだけでも、
結構な技術を要します。
いかに自分が理解せずに作らされていたかが
実感できるかもしれません。
_____________

具体的な作業&操作手順ですが、

1.
「0-9」の数字一つが描かれている画像ファイルを用意します。
「ペイント」など、作成ツールは何でもOKです。
白地に濃い目の色で、数字を描いてください。
(色は濃ければ何でもOKのはずです)
あまり細い線だと、判別が難しいかもしれません。

「ペイント」の例:

※ この例の画像サイズは縦横200ピクセルですが、
  だいたい正方形であれば、
  特にサイズの指定はありません。

※ 画像であれば、
  手書きでもフォント文字でも構いません。

※ 保存形式は、PNG か JPEG でお願いします。

※ 画像内に「数字は一つだけ」、にして下さい。

※ 本当はWebアプリ上で手書きできるといいのですが、
  「教材二つを組み合わせる」という趣旨から外れて
  敷居がかなり高くなるので、今回はこの形にしました。

2.
以下のサイトにアクセスして下さい:
https://digitclassify.herokuapp.com/
こんな画面が出てくるはずです:

3.
画面左側の「ファイルを選択」ボタンをクリックします。

4.
新しいウインドウが開くので
さきほど作成した画像を指定して
ウインドウ内の「開く」ボタンを押して決定します。
さらに画面右側の「表示」ボタンを押すと、
以下のように、
送信した数字画像が画面表示されます:

5.
画面右側に新しく出てきた「推論」ボタンを押すと、
以下のように、AIが予想した数字が表示されます:

見本の例では正解でしたが、
あなたの描いた数字画像に対しては、
AIの予想は正しかったですか?

もう一度動かしたいときは、画面右側の「トップページへ戻る」ボタンを押せば、
最初の画面に戻ります。

いろんな手書き文字を入れていくと、
なんでこんな図形でこの数字になるのかな?
と感じることもあるかと思います。

実は今回、
AIに学習させた手書き数字データは
MNISTというデータセットを使っています。
その画像を表示させてみると分かるのですが、
欧米人の数字の書き方って、
日本人のそれと、ちょっと違っています。
なので、日本人が描いた数字は
欧米人のそれよりも
間違って判別されやすいのだと思います。

実はこれ、「バイアス」と言って
AIでしばしば起こる問題なんです。
数年前、画像中のものを推定するAIアプリが、
黒人をゴリラと判別してしまった
というニュースは結構有名になりましたが、
他にも色々な状況で起きています。

※ 興味のある方は、
  「AI バイアス」で
  Google検索してみて下さい

プログラムは設計&記述ミス(バグ)があると
想定通りに動作してくれませんが、
AIの場合は、プログラム自体にバグがなくても
与えるデータの質次第で、
AIは賢くもバカにもなります。

こういった、AIの特性を理解することが、
AIを使いこなす第一歩となるのではないでしょうか。

これからの時代、誰もが
AIと付き合わずに済ますことはできません。

ぜひ、AIと格闘して、
AIを使いこなす人になってください!