ねほり.com

何もないから何かみつかる

小学生低学年向けはじめてのML2Scratchを使った機械学習じゃんけんゲーム

      2020/08/15

「Scratch(スクラッチ)」は、子ども向けプログラミング環境として広く日本でも知られるようになりました。

このScratchを独自拡張し、機械学習を扱えるモジュール(画像認識、音声認識、姿勢検出)が公開され、最近ホットです。

Scratchではじめる機械学習 ―作りながら楽しく学べるAIプログラミング (オライリー・ジャパン)

Scratchではじめる機械学習 ―作りながら楽しく学べるAIプログラミング (オライリー・ジャパン)

石原 淳也, 倉本 大資
2,420円(09/26 08:10時点)
発売日: 2020/07/28
Amazonの情報を掲載しています

「子供の自由研究にどうでしょうか?」

と書いてあるセミナー等を見かけるが、「自由工作」なら分かるけど「自由研究」にはどうやったらなるんだろう?

この記事の「ねほり度」 ★★☆☆☆(独自記事はなく、深堀り内容は他のブログ以下)

ML2Scratchとは何か?

石原淳也氏(つくる社LLC)と石原正宗氏が、2018年10月20日に六本木アカデミーヒルズで開かれた「Scratch 2018 Tokyo」で公開したライブラリです。

Scratch 3.0上でTensorFlow.jsとScratchXを使って機械学習の機能を実現しています。

ML2Scratchは、Webカメラでいくつかの画像を撮り、ラベルを付けて学習すれば、似たような新たな画像を、学習結果をもとに分類することができます。

キャプチャした画像はサーバーに送られることはなく、学習および分類はすべてブラウザ上で行われるのが特徴です。

利用するには、石原淳也氏が用意している独自環境の Scratch 3.0 を使います。

まずは、下記にアクセスしてください。

次の画面が開きます。

ここで、「左下の+マーク」から拡張機能を追加します。

左上の「ML2Scratch」を選択してください。

ブロックの組み立て方

まず、ラベル 、ラベル1の枚数、ラベル2の枚数、ラベル3の枚数ブロックの横のチェックボックスにチェックを入れて実行画面に表示します。

学習させる

例えば、「チョキ」を学習させてみるには次にような手順を行います。

 

まず、カメラ前方に「チョキ」の手を写します。

その状態で「ラベル1」を学習するために「ラベル1を学習する」をクリックします。

この操作で「チョキ」の手を「ラベル1」として学習します(少し待たされます)。

この処理を繰り返し、安定的に学習させるために目安としては20回程度行いましょう。

学習回数は、実行画面のラベル1の枚数として表示されています。

この際に、手の位置、向き、大きさ、角度などが異なる形を学習させるのが良いでしょう。

これを、「パー」「グー」などの手の形でも繰り返します。

今回は、次のような順序で学習させています。

  • ラベル1:チョキ
  • ラベル2:グー
  • ラベル3:パー
  • ラベル4:背景

動かしてみる

まだ「公開」サービスは対応していないので、コードだけ。

早く実験してみたいので、プログラム部分は非常に適当です。

ネコが「じゃんけん!」と言い、「パー」を出せば「チョキ」を出すという、後出しジャンケンで勝つプログラムです。

認識精度が80%程度なので、時々負けることもあるため、なんとなくイカサマしてないように感じるところが逆に子供にはウケるかもしれません。

データの保存

これを知らずに「保存」したために、一生懸命学習させたデータが全て消えてました。

ML2Scratch では、学習したモデルを「学習データをダウンロード」ブロックを使うことで、PC上にダウンロードして保存しておくことができます。

まとめ

非常に簡単だけど、自動的に保存できたりマニュアルやサンプルを見てみたいので、MITに公式にサポートして欲しいと思います。

ただし、公式がサポートしていないのに、書籍が出たりセミナーで講師が紹介して使っているなど「機械学習」に対する過熱度は凄まじいです。

ここまでくると、プログラミングを学習経験者で、

  

「機械学習使ったことねーぜ」

「機械学習って、ちょっと胡散くせー」

  

という人がいたら、デジタル時代に「アナログと比べて意味不明」・・・・と言っているシニアに等しいかもしれない。

もう機械学習の数学的な知識などが必要となってくる実装部分はブラックボックスのまま、それをアプリケーションにどう応用するか、あるいはどう楽しむかを考えることができるフェーズに移っています。

 - 2020年(社会人16年), 機械学習, テクノロジー, 子供と遊ぶ

  関連記事

サラリーマンは安泰?誰に仕事を奪われのか?

年収が同期の中でも底辺です・・・ 同期がどれだけ出世しているのか概算しました。 …

Kerasを使った株の利益を計算(ディープラーニング)

PytorchはLSTMが難しいらしいし、TensorFlowも難しいので未挑戦 …

二郎完食できず、負い目で押し目戦略を検証する(システムトレード)

ラーメン二郎に数年ぶりに行った。 二郎に行くのは十年ぶり。 だから忘れてた。 & …

検索エンジン「Google」のパロディサイトが増える(1/2)

自主プロが終わりません・・・ 集中講義がまだあります。まだ大学に行く必要がありま …

Developers Summit 2012 に行ってきました

「Developers Summit 2012~10年後も世界で通じるエンジニア …

KaggleのHouse Pricesで回帰分析(Feature Engineering編)

今回も、kaggleの入門者向けチュートリアルコンペ「住宅価格予測」を解いてみま …

さくらでnode.jsを利用してJavaScriptの勉強

2011年12月21日(水) さくらでnode.jsを利用してJavaScrip …

AWS Summit Tokyo 2013 は飯が食べれず

仕事をサボってAWS(Amazon web service) Summit To …

opencvでwebカメラ動画の背景差分(MOG, MOG2, GMG, KNN, CNT, LSBP, GSOC)

社内文化祭の為に、あるものを作りました。 その中の一つの技術要素として、Open …

不老不死に向けた研究はどこまで進んでいるか?

「不老不死」 それは、歴史上、中国・秦の始皇帝が追い求め、多くの独裁者にとっての …