機械学習はプログラミングを体験するか(CoderDojo神山 #17 開催のご報告)
こんにちは、コーダー道場神山の本橋です。もはや雨季、といえる長雨の神山で7月のコーダー道場を開催しました。
オライリーからML2Scratchの本がでる、ということでコーダー道場でも機械学習について気軽に触れられるよい環境ができつつあります。そこで、道場のニンジャに向けて機械学習が体験できる時間を設けてみました。
ML2Scratchの体験としてわかりやすいところでジャンケンの手を学習する、という体験です。(撮影する暇がなくて、写真はScratchのビデオ機能を使っていたシーンです)
グーチョキパーをそれぞれ20枚ずつ学習をして、その後に手を出して判定させるところまでを体験してもらいました。手の面を向けて学習させたところそれなりに判定してくれましたが、近づけたり遠ざけたり、裏返したりとパターンを増やしていくと次第に答えがあやふやに…
人間ならかんたんに判定できるジャンケンも、コンピューターはこうやって大量の画像を学習してようやく見分けがつくようになります、というお話をしました。噛み砕いてそんな言い方をしましたが、実際には人間のほうが何万倍も高速に膨大なサンプル数を学習しているとは思います。
その後はposenet2scratchの拡張機能を使って、スプライトが自分の顔や手足を追いかけてくるサンプルを遊んだり、ビデオ機能を使ったインタラクションを実装してみる実験を行いました。Scratchの拡張機能を使うといろんなことができますね。
2015年くらいにしくみデザインさんの「KAGURA」が話題になりました。いまなら似たような動きをScratchでも作ることができてしまいます。
城西高校の講演会
翌週に城西高校で講演がありましたので、そこでもScratchの機械学習を紹介しました。DJIドローンのジェスチャーコントロールを体験していただいたあとにScratchの機械学習をデモして、どんなソフトウェアも要素技術の組み合わせでできているというお話をしています。
8月末には神領小学校でもドローンとプログラミングの特別授業が控えています。受けが良いのでドローンと機械学習の関係についてこの流れで体験してもらおうと思います。それこそKAGURAの動画とか見せたら理解してもらえるかな?
機械学習はプログラミングを体験するか
8月の授業は4年生向けにviscuitをやろうかと考えていましたが、ML2Scratchを使えば文字を読むことなくコンピューターとのインタラクションを体験できそうです。
コンピューターに学習させて、期待した結果を得る、という体験がプログラミングと言えるか、と考えるとだいぶ広義になってしまいそうです。ですがトレーニング→テストという基本的な流れを経験しておくことは、今後増えていくであろう機械学習ソリューションを使いこなすためには必須です。
例えば「誰かがトレーニングしたモデルを使う」だけであっても、「誰かがトレーニングした」ことを知ってて扱うのと、「なんかよくわからないけどうまくいくから」使っているのとでは応用力に差が出ます。機械学習に限らずハサミでも自転車でも同じことですよね。
なるべく早いタイミングで機械学習に触れる経験ができれば、将来コンピューターに興味を持つ子も増えてくれるかもしれません。なるべく楽しんで体験できるように8月末の授業を組み立てたいと思います。