こんにちは。
『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を使いこなす人になってください!