micro:bit CreateAI を使って簡単にカスタマイズできるプロジェクトです。 さまざまな活動にどれくらいの時間を費やしたかを検出できるスマート タイマーを作成します。
ステップ 1: 理解する
動作の仕組み
このプロジェクトでは、BBC micro:bit を着けて特定の動きを認識する機械学習(Machine Learning:略称 ML)モデルをトレーニングします。
できたモデルをMakeCodeプログラムと組み合わせてアクティビティタイマーを作り、モデルとプログラムの両方をmicro:bitに入れます。 micro:bit を装着するだけで、さまざまな活動にどれくらいの時間を費やしたかを計測できます。
ボタン A または B を押すと、各活動を何秒実行したかを確認できます。
機械学習とは何ですか?
機械学習 (ML) は、コンピュータがデータに基づいて学習し、意思決定できる人工知能 (AI)の一種です。
ML モデルは、たとえば micro:bit をさまざまな方法で動かしたときに、さまざまな「アクション」を認識するなど、決定を下すのに役立つよう人がトレーニングします。
必要なこと
AIシステムは、人間が設計し、組み立て、テストしてから使う必要があります。 データを集めてMLモデルをトレーニングし、テストして改善しましょう。そして、プログラムと組み合わせてAIを利用したスマートデバイスを作りましょう。 これを行うには、micro:bit と micro:bit CreateAI のWebサイトを使います。
ステップ2: プログラムする
必要なもの
- micro:bitと単4電池2本が入る電池ボックス
- Chrome または Edge Webブラウザでmicro:bit CreateAI Webサイトにアクセスできるコンピューター (デスクトップ、ラップトップ、Chromebook など)
- コンピュータにBluetoothが搭載されていない場合は、micro:bit V2が別途必要になります。
- ストラップとホルダー、またはmicro:bit を手首に取り付ける別の方法 (例: 柔軟な手作りのハンドルやゴムバンド)
- micro:bit CreateAIを指導するヒントも役立つかもしれません
データサンプルの収集
micro:bit CreateAI でプロジェクトを開くと、「歩行」(walking)、「ジャンプ」(jumping)、「静止」(being still)のデータ サンプルがいくつか提供されています。
walking
jumping
being still
micro:bitの動きセンサー (加速度センサー)を使って独自の動きのサンプルを追加します。
micro:bit CreateAI で、「接続」(Connect)ボタンをクリックして、データ収集用micro:bitを接続して指示にしたがいます。
データ収集用 micro:bit を、ボタン B を上にして右足首の内側に取り付けます。プロジェクト内のすべてのサンプルで、micro:bit を身体の同じ向きで取り付けることが重要です。 装着方法を変更する場合は、すべてのデータサンプルを交換するだけです。
歩行、ジャンプ、静止するなど自分の動きのデータサンプルを追加します。 各アクションを順番にクリックし、「記録」(Record)をクリックして、それぞれに短いサンプルを記録します。 間違えた場合は、不要なサンプルを削除できます。 micro:bit のボタン B を押して記録を開始することもできます。
データサンプルを調べます。すべての「歩行」サンプルは似ていますか? 「ジャンプ」のサンプルは「ウォーキング」や「静止」と違って見えるか?
モデルのトレーニングとテスト
「モデルのトレーニング」(Train model)ボタンをクリックしてモデルをトレーニングし、テストします。 歩いてみて、推定動作として「歩行」が表示されるかどうかを確認します。 ジャンプしたり、静止したりする動きも試してください。micro:bit を他の人に渡して着用してもらい、その人でもうまく動作するかどうかを確認します。
モデルの改善
これは、繰り返し作業するステップです。 ほとんどのモデルは、より多くのデータを学習させることで精度を上げることができます。 アクションを認識するためにモデルの改善が必要な場合には、「← データ サンプルを編集」(← Edit data samples)をクリックします。
(同じアクションの他のサンプルとはまったく違っているために)不適当と思われるデータサンプルを削除することで、データセットをクリーンアップできます。 また、自分自身や他の人からのサンプルを追加してモデルを改善することもできます。
モデルがさまざまな動作を区別できるようにするには、「静止」データ サンプルの一部として非常にちいさな動きを含める必要があるかもしれません。 micro:bit をさまざまな方向で静止サンプルとして収集することも、モデルに役立ちます。
モデルを再度トレーニングし、再度テストします。
モデルとプログラムをmicro:bitに入れる
micro:bit CreateAI で、「MakeCode で編集」(Edit in MakeCode)をクリックすると、MakeCode エディターでプロジェクトのプログラムが表示されます。
他の micro:bit MakeCode プロジェクトと同じようにプログラムを変更したり、そのまま試したりできます。 USB データ ケーブルで micro:bit を接続し、MakeCode 画面の 「ダウンロード」ボタンをクリックして、指示に従って AI モデルとプログラムを micro:bit に転送します。 micro:bit を取り外し、電池ボックスを取り付けて装着し、テストします。
- ボタン A を押すと、何秒歩いたかを確認できます。
- ボタン B を押すと、何秒ジャンプしたかを確認できます。
- A と B を同時に押すと、静止していた秒数を確認できます。
- micro:bit の背面にあるリセット ボタンを押すか、バッテリー パックを外して再接続して、タイマーをリセットします。
プログラムの仕組み
このプログラムでは、特定の動きの実行時間をトラックするために3つの変数を使います。 プログラムが最初に実行されると、これらのタイマー変数は 0 に設定されます。
「MLの...が開始したとき」ブロックは、ML モデルが認識した動きを開始したと判断したときに実行されます。 推定されたアクションに応じて、micro:bit の LED ディスプレイに異なるアイコンが表示されます。
「MLの...が停止したとき」ブロックは、ML モデルが歩行、ジャンプ、静止などの動きが終了したと判断したときに実行されます。 各ブロック内のプログラムは画面をクリアし、終了したアクションの継続時間を、歩行、ジャンプ、静止の合計時間を格納する変数に追加します。
「ボタン...が押されたとき」ブロックには、各動きの合計時間を示す変数を表示するプログラムが含まれています。 タイマーはミリ秒 (1000 分の 1 秒) 単位でカウントされるため、表示される数値は 1000 で割られ、秒単位の合計継続時間が表示されます。
評価
特定のうごきを続けている時間を、どの程度正確に測定できていますか? 誰が使っても同じように機能しますか?
次の 3 つの簡単な手順で、タイマープログラムがモデルで正常に動作しているかどうかをテストします。
- リセットボタンを押します。
- 30秒間ジャンプします。
- ボタン B を押します。ディスプレイに 30 に近い数字がスクロール表示されます。
- モデルを改善する場合は、MakeCode エディターの左上にある < 矢印をクリックして、データ サンプルを追加し、モデルを再トレーニングします。
AI アクティビティ タイマーを、 ML (機械学習) を使わない歩数計や高感度歩数計プロジェクトと比較します。
- ML を使うと、どのようにしてより有用なプロジェクトを作れますか?
- 有用なプロジェクトを作るには、常に AI / ML が必要ですか?
ステップ 3: 拡張する
- 違う動きのデータを追加し、タッチロゴで新しい動きのタイマー変数を表示するようにしてください。
- さまざまなアクティビティが検出されたときに音声フィードバックを提供するサウンド ブロックを追加してください。
- 機械学習に関する新しい知識を使って「モデルを壊す」ことができますか? 特定の方法でモデルを騙して、自分動きについて誤った判断をさせることができますか? また、「紛らわしい」データ サンプルを追加して実験し、それが ML モデルに与える影響を評価することもできます。 一部のデータ サンプルがうまく機能し、他のデータ サンプルがうまく機能しない理由について知っていることを比較することは、このテクノロジーに対する理解を深める良い方法です。
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.