2021年4月12日月曜日

ML4K(Machine Learning for Kids)で学習済みモデルを利用

  【what is this】ML4K(Machine Learning for Kids)は、機械学習を利用したアプリケーションの作成を容易にするものです。このブログでもいくつかご紹介してきました。今回は、その後のさらなる発展状況の短いサーベイです。

Kidsは大学生も含む?ので、遠慮なく使おう!
 ML4KのKidsというのは、小学校低学年くらいと思っていました。しかし、ちょっとレベルが高いのでは?という内容も含まれています。では、Kidsって、何歳までなのか?調べて見ると、実は一般に、子供、若者、初心者の意味で使われており、親しみを込めて(あるいは少し見下げて)若者を指すらしい。もちろん、大学生も含むようです。実際に、"英辞郎on the web Pro"には、以下のような例文もありました。

    He is still acting like a college kid. ->あの子は行動がまだ大学生のようですね。
    too expensive for college kids ->学生には高過ぎる
    As kids reach high school, college, and so on ->高校、大学、社会人と成長するにつれ

 ですから、大学生も、自分に必要なAIアプリを簡単に作りたい場合は、遠慮なく利用してはどうでしょうか。それで研究が促進できれば素晴らしいです。

ML4Kで使えるScratch3用のAI拡張機能(学習済みモデル)
 ML4Kは、もともと、IBM WatsonのAI機能をラップして使えるようにしていました。最近はさらに進化して、図1に示すように、色々なAI関連の学習済みモデルをScratch3で使えるようにしています。すなわち、顔や手や身体の状態と動作を認識するFace, Hand, Pose detectionなどが含まれます。
 また、自然言語処理分野では、Toxicity(好ましくない、不適切な表現)の認識などもあります。さらに、Pythonをある程度できる人は、TensorFlowを使った自分用のモデルを作成してここで使えるようにもできます。Pythonを使わなくても、GoogleのTeachable Machineで非常に簡単に独自モデルを作成することも含まれています。


Hand detectionを使って指の折り方で数値を認識する
 上記のように、利用できる学習済みモデルは多いのですが、ここでは、「Hand detectionを使って指の折り方で数値を認識」をやってみます。実は、この課題は、Media Pipe Handsを利用してPythonでやったものです。それと同じことを、ML4Kの使い勝手を確認するために行いました。ただし、Pythonの場合は、0〜31まででしたが、今回は簡単にして、0, 1, 2だけにしてあります。もちろん、31までやることも可能ですが。
 図2は、これを実現したScratch3プログラムの主要部です。学習と予測(認識)の両方が含まれています。

 学習に必要なラベル付きデータは図3のようなものです。内容は、親指の先端と付け根、人差し指の先端と付け根などのポイントの座標値の組を収集したものになっています。例えば、親指だけを折った場合は、ボタン"1"を押すことで、図2のプログラム中のラベル1に対するブロックが反応して、図3のラベル"1"の枠に、その時点の指の座標値が自動的に格納されます。このように各ラベルのデータが揃ったところで、あるボタンを押すと(自動的に IBM Watsonが働き)学習が行われます。

 学習が済んだ後に、改めてカメラに向かって指を折り、図1の「予測(認識)」ブロックを起動させます。すると、図4に示すような認識結果がえられました。図では、"1"と"2"がそれぞれ正しく認識されています。



感想 
 AIの教育を支える環境は種々あると思いますが、このML4Kは、大学生レベルの人にも、すばやく自分のアイディアを実現するプロトタイピングに大いに役立つのではないでしょうか。その後、本格的な課題に取り組む場合は、ここでの経験が生きるはずです。また、低学年のAI教育において、少しでも各自のアイディアを取り入れた演習をしやすくなるように思われます。

0 件のコメント:

コメントを投稿