僕は発展途上技術者

「機械学習×スクラッチで、どこにもないアプリを作ろう」ワークショップを見学してきました

六本木ヒルズでこの夏休み開催されているMIRAI SUMMER CAMPのプログラムのひとつ、「機械学習×スクラッチで、どこにもないアプリを作ろう (ダイジェストプログラム)」を見学してきた。

» 【追加開催!】機械学習×スクラッチで、どこにもないアプリを作ろう (ダイジェストプログラム)

青山学院大学 阿部和広先生によっておこなわれたこのワークショップの第一弾は、実は7月末におこなわれ、好評につき再度開かれるようになったとのことだ。開発したML2Scratchが使用されるということで、そのときに様子を見に行ったのだが、使い勝手がいまいちかつ自分がいつも使っているマシンよりスペックが劣るPCではかなり動作が不安定であることがわかったので、大幅に改良してリベンジで臨むことになった。

結論だけ最初に書くと、ワークショップのタイトル通り、どこにもないアプリをたくさん見ることができたし、機械学習を使ったアプリケーションをこどもたちが(アイデアを出し合うアイデアソンという形ではなく)実際に「手を動かして作る」というワークショップ自体、これまでほとんどおこなわれていない、どこにもないものだったと思う。

アイスブレイクはじゃんけんゲームを作るという内容。グーチョキパーの写真を撮り、それらを高速に切り替え、キーを離した時に表示された手で勝負する。表示する写真に自分の手を使ってはいけないというルールなので、グループ内の他の子にお願いする必要があり、またカメラに慣れるという意味もある。

続いてグーチョキパーを人はどうやって見分けているかという問いかけから、画像を認識するプログラムをScratchでどうやって組むかを考える。Scratchには色を見分けるブロックがあるので、ネコが触れている背景が茶色か白かによって、ステージが野球場なのかバスケのコートなのかを識別することができる。

しかしこの方法だと、別のバスケットボールのコートの背景が追加されると、if文を都度追加しないといけない。いろんな見た目の野球場あるいはコートの画像に対応するには、if文がものすごーく長いプログラムになってしまう。あらゆる画像に対応するにはこの方法だとちょっと無理そうだな、と薄々気づくようになる。

次に「学習ってどういうこと?」についてグループ内で考え、意見をpost itに書き出したあと、発表する。「新しいことを見つける」「情報を覚える」「楽しかったりいやだったりする」など様々な意見が出ていた。

このあと休憩。休憩中は、会場で展示されていたScratchの拡張機能からもプログラミングできるロボットtoioや、 USB接続なしでもScratch3.0からスイッチ制御ができるTFabWorksのカシワニキットをこどもたちは体験していた。

休憩後は、いよいよ機械学習をScratchから利用できるようにしたML2Scratchを使ってオリジナルの機械学習アプリを作る自由制作タイム。

ML2Scratchはウェブカメラで撮った写真数枚をラベル付けすることで、機械がそれを学習および認識するようになり、認識結果を簡単にScratchで利用できるようにしたもの。たとえば、ジャンケンのグーの写真を数枚撮り1とラベル付けし、パーを2、チョキを3とラベル付けすれば、その後に改めてチョキをカメラに見せると3と判定してくれる。

参考にするための機械学習を使ったアプリケーションの実例として、パンの種類を判別して瞬時に会計をおこなえるレジと、キュウリの形や色から等級を自動判別するアプリケーションが紹介された。

紙コップや毛糸、紙皿など様々な素材を利用して、各グループ思い思いの機械学習アプリを作っていく。

右や左という文字、あるいは矢印が描かれた札をカメラに見せることによってキャラクターを操作するゲームや、

お弁当箱に盛られたお米の量を判定するアプリや、お皿に乗せられた素材からおすすめのメニューを表示してくれるもの、

症状に関する質問票をみせることで、風邪かどうかなど診断結果を表示する自動診断アプリ、キャラクターが描かれた紙コップで操作するゲームなどなど、オリジナリティあふれる作品の数々が、最後の発表の時間で披露された。

背景など含めカメラに映ったすべてから機械は学習するので、十数枚の写真をラベル付けするだけで学習ができるとはいっても、一筋縄ではいかないということを実際に手を動かすことで実感できる。

しかし、中には、背景など余計な情報が映り込まないように画用紙で小さなスタジオを用意したり、実際の顔の表情を判別することは少ない学習データでは難しいので、代わりに顔の表情のイラストを使うことで、判別の精度を挙げている例もあった。

最初からついたてなどを用意し、背景を消せばもっと認識率が高くなるよとあらかじめ大人の知恵をさずけることもできるのだろうが、そうしたことに自分たちで気づくということも含め機械学習を理解するということなのであろう。とはいえ、認識率がままならなければ、せっかく作った作品がまともに動かず達成感が薄くなるので、そのあたりの「教えすぎない」さじ加減は難しい。

大げさでなくワークショップのタイトル通り、今までにないユニークな作品ばかりだった。Scratchをある程度触ったことがあるという参加者も何人かいたが、機械学習と組み合わせることでScratchあるいはコンピューターでできることの幅が大きく拡がることを少しでも実感できたのではないだろうか。

というよりかは、こんなアプリケーションがあったら便利だろうなというアイデアを、いままではプログラムできる範囲に一部削ぎ落としていたのが、機械学習を使うことでそれがある程度実装可能になったという言い方の方が正しいかもしれない。

機械学習 x Scratch の可能性を感じたとても楽しいワークショップでした。

プロフィール

株式会社まちクエスト代表、つくる社LLC代表。

Scratchで楽しく学ぶ アート&サイエンスRaspberry Piではじめる どきどきプログラミングを書きました。

Amazonから図書館検索 Libron、iPhoneアプリ ひらがなゲーム かなぶん を作っています。

Email: webmaster at champierre dot com

Twitter @jishiha

最近のエントリー

アーカイブ