Neural Nets & Raspberry Piアプリのアイコン

Neural Nets & Raspberry Pi

教育 · 無料 · iOS & Android · CoddyKit

Neural Nets & Raspberry Pi — ニューラルネットワークを学習する様子を見ながら学び、シミュレートした Pi で実行できます

Neural Nets & Raspberry Pi(アプリ内では AI Lab と呼ばれます)は、3-Dで学習する様子を見ながら ニューラルネットワーク を学びたい学生、ホビイスト、好奇心旺盛な初心者向けの無料のiPhoneおよびAndroidアプリです。すべてのニューロン、重み、勾配ステップは、TensorFlowのラッパーではなく、アプリ独自の小さな学習エンジンによって計算されます。モデルが動作したら、int8に縮小して、実際のPythonでシミュレートされたRaspberry Pi Picoに組み込めます。

App Store — 無料でダウンロードGoogle Play — 無料でダウンロード
価格
無料、Pro アップグレード
プラットフォーム
iOS と Android
言語
10
年齢レーティング
4+
バージョン
1.2.0
必要環境
iOS 15.1 以降
AI Lab の Learn タブ。Signals & Neurons、Learning by Falling、Deeper Minds のレッスン一覧の上に、XP、レベル、連続学習記録が表示されていますAI LabのLabsタブでは、Loss Valley、Decision Surface、Shrinker、Chipの各ラボに加え、Two BlobsやXORなどの練習用データセットを一覧表示します。
43-D 学習ラボ
5Pi 電子工作プロジェクト
int8実際の量子化推論
巨大な AI モデルも、こうした同じ小さなユニットを何百万個もつないだものです。

AI Lab の最初のレッスンは、1つのニューロンです。いくつかの入力、入力ごとの重み、バイアス、活性化関数、そして1つの出力で構成されます。この1ユニットを理解すれば、アプリの残りの部分である 3-D 学習ラボ、量子化モデル、シミュレートされたチップも、同じ考え方を拡大し、その後もう一度小さくしたものだと分かります。

概要

AI Lab アプリである Neural Nets & Raspberry Pi は、ニューラルネットワークと組み込み機械学習(TinyML)を実践的に学べる、学生やホビイスト向けの無料 iOS / Android アプリです。レッスンは1つのニューロンから多層ネットワークへと段階的に進みます。4つの 3-D ラボでは、実際の小さな学習エンジン上で勾配降下法、量子化、int8 推論が実行される様子を見られます。また、Raspberry Pi Workbench では、仮想コンポーネントを配線し、シミュレートした Pi Pico 上で gpiozero を使った実際の Python を記述できます。

アプリの内容

画面イメージ

AI Lab の Learn タブ。Signals & Neurons、Learning by Falling、Deeper Minds のレッスン一覧の上に、XP、レベル、連続学習記録が表示されています
学ぶニューロンとは何か、重みとバイアス、勾配降下法を学ぶ短いレッスンをワールドごとにまとめ、XP、レベル、連続学習記録を上部に表示します。
AI LabのLabsタブでは、Loss Valley、Decision Surface、Shrinker、Chipの各ラボに加え、Two BlobsやXORなどの練習用データセットを一覧表示します。
ラボLoss Valley、Decision Surface、The Shrinker、The Chipでは、それぞれアプリ独自の学習エンジンをリアルタイムで動かせます。さらに、6つの練習用データセットで同じ境界問題をもう一度解き直せます。
AI LabのRaspberry Piタブには、「Open the Workbench」ボタンと、Blink an LEDからKnight Riderまでの5つの電子工作入門プロジェクトがあります。
Raspberry Pi Workbench仮想コンポーネントを配線し、gpiozeroを使った本物のPythonコードを書きながら、最初のLED点滅から5つのLEDによるKnight Riderのスイープまで、5つのプロジェクトに取り組めます。
AI LabのAwardsタブには、4枚のカードで構成されたModel Zooと、First NeuronやShrink Rayなど9つの実績が表示されます。
実績各ラボを完了するとアンロックされる4枚のカードのModel Zooと、連続学習記録、レベル、ゴールドスコア、コース完了など、実際の進捗に結びついた9つの実績があります。
AI Lab Proのアップグレード画面では、すべてのラボとプロジェクトへのフルアクセス、広告なし、月額または年額の料金を案内します。
ProへのアップグレードProでは、すべてのワールド、すべての3-Dラボ、すべてのPi Workbenchプロジェクトを広告なしで利用できます。料金は月額または年額で請求されます。

背景

ニューラルネットワークは、学習中に実際には何をしているのでしょうか?

ニューラルネットワークは、ニューロンと呼ばれる単純なユニットを連ねたものです。各ユニットは入力に重みを掛け、バイアスを加え、その結果を活性化関数に通します。学習とは、ネットワークの出力がどれだけ間違っているかを繰り返し測定し、その間違い(損失)を少しずつ小さくするために、すべての重みをわずかに調整することです。これを何千回も行うと、ネットワークの決定境界、つまりカテゴリ間に引く線や曲線が、徐々に適切な位置へ移動します。学習済みネットワークを小さなハードウェアで動かすには、量子化と組み込み推論という、別の課題にも取り組む必要があります。

重み、バイアス、活性化1つのニューロンを調整する3つのダイヤル

重みは、ある入力がどれだけ重要かを決めます。バイアスは、入力に関係なくニューロンの出力をずらします。活性化関数は結果を一定の範囲に収め、無制限の数値ではなく判断として読み取れるようにします。活性化関数なしでこれらをいくら重ねても、得られるのは1本の直線だけです。ネットワークを曲げられるようにするのが、活性化関数なのです。

損失と勾配降下法学習の仕組み

損失とは、ネットワークの予測が悪いときに大きく、良いときに小さくなる1つの数値です。勾配降下法は、その数値を最も速く下げられる方向を計算し、すべての重みをその方向へ少しずつ調整します。損失が下がらなくなるまで、この処理を繰り返します。学習率は、その調整幅を決めます。小さすぎると学習が進まず、大きすぎると行き過ぎて発散することがあります。

量子化学習済みモデルを小さくする

学習直後のネットワークは、重みを 32-bit 浮動小数点数として保存しますが、これはマイクロコントローラーには大きすぎ、処理も遅すぎます。量子化では、重みを通常 8-bit 整数(int8)というはるかに小さな数値に丸めます。精度を一部犠牲にする代わりに、モデルのサイズをおよそ4分の1にできます。これが、サーバーではなく小型で低消費電力のハードウェア上で機械学習を動かす TinyML の核心となるトレードオフです。

GPIO と gpiozeroハードウェア側の仕組み

GPIO(汎用入出力)ピンは、Raspberry Pi と物理コンポーネント(LED、ボタン、ブザーなど)をつなぐためのものです。gpiozero は、配線図を数行のコードに変えてくれる Python ライブラリです。低レベルのレジスター書き込みではなく `LED(17).on()` と書けるため、実際のボードを使う前の Pi 電子工作では、通常ここから始めます。

使い方

アプリの使い方

3つのタブは互いに連動しています。まず仕組みを読み、次に実際に動く様子を見て、その後で物理的な部分を組み立てます。

  1. 短いレッスンを通して世界を探検

    Signals & Neurons、Learning by Falling、Deeper Minds では、それぞれ3〜5個の短いレッスンを進めます。ニューロンから始まり、重みとバイアス、損失と勾配降下法、そして1本の直線では最終的に対応できなくなる理由へと進みます。各レッスンの最後にはクイズがあり、XP、レベル、連続学習記録で進み具合を確認できます。

  2. Labs で実際のモデルを観察・調整

    Loss Valley では、勾配降下法を 3-D の地形として表示し、学習率を使って傾きを変えられます。Decision Surface では、初級から上級まで6つの練習用データセットを使い、らせん状のデータを境界で囲みます。The Shrinker では、学習済みネットワークを量子化してサイズを4分の1まで縮小します。The Chip では実際の int8 推論を実行するため、精度・サイズ・速度のトレードオフを読むのではなく、目の前で確認できます。

  3. Raspberry Pi Workbench を配線してコードを書く

    Workbench を開き、シミュレートされた 3-D Pi Pico に仮想コンポーネントを追加し、内蔵エディターで gpiozero を使った実際の Python を記述します。初心者向けから上級者向けまで、5つのスタータープロジェクトがあります。LED を点滅させ、3灯式信号機を順番に点灯し、PWM で1つをフェードさせ、ボタンを読み取り、5つの LED による Knight Rider バーを走査します。

内容

アプリで実際に学べること

4

3-D 学習ラボ

Loss Valley、Decision Surface、The Shrinker、The Chip では、それぞれアプリ独自の小さな学習エンジンをリアルタイムで動かします。そのため、勾配降下法、学習された境界、量子化、int8 推論を静止した図ではなく、見たり傾けたりしながら体験できます。

5

Pi 電子工作プロジェクト

LED を点滅させ、信号機を順番に点灯し、PWM でフェードさせ、ボタンを読み取り、5つの LED による Knight Rider バーを走査します。それぞれ、シミュレートされた 3-D Raspberry Pi Pico 上で、gpiozero を使った Python で配線とコーディングを行います。

int8

実際の量子化推論

The Shrinker は学習済みネットワークを量子化し、サイズをおよそ4分の1に縮小します。続いて The Chip がその結果に対して本物の int8 推論を実行するため、組み込みエンジニアが必ず直面するサイズと精度のトレードオフを、自分で測定できます。

3

無料で学べるレッスンの世界

Signals & Neurons、Learning by Falling、Deeper Minds では、ニューロンから勾配降下法、多層ネットワークまでを学べます。すべて無料で、全ラボと Pi Workbench も利用できます。

6

練習用データセット

Two Blobs、XOR、Circles、Two Moons に加えて2つのデータセットがあり、さまざまな形状で Decision Surface ラボの境界学習問題を再実行できます。直線だけで十分なケースから、隠れ層が必要なケースまで試せます。

9

実績と Model Zoo

最初のレッスンを完了するところから、すべてのラボでゴールドを獲得するところまで、9つの実績があります。さらに、Loss Valley、Decision Surface、Shrinker、Chip の各ラボを完了すると、コレクションできる4枚のモデルカードからなる Model Zoo がアンロックされます。

適しています

向いている方・向いていない方

次のような方におすすめです

  • ニューロン、損失の数値、勾配降下法が実際に何をするのかを、用語を読むだけでなく見て確かめたい方
  • TinyML――縮小・量子化したモデルを小型ハードウェア上で動かす仕組み――に興味があり、サイズと精度のトレードオフを自分で体感したい方
  • 実際の基板を壊す心配をする前に、Raspberry Piの配線とgpiozeroを使ったPythonを練習したい方
  • スライド資料よりも、傾けられる3-Dの地形や、動く境界を見ながら学ぶほうが理解しやすい方
  • 誰かのAIライブラリを呼び出すことを中心にしたコースではなく、ゼロからの説明を求めている方

次のような方には適していません

  • TensorFlowやPyTorchのような実運用向けの機械学習フレームワークが必要な方――ここにある学習エンジンは、実際のワークロードではなく、学習用に小さく、説明しやすく作られています
  • アプリから直接、物理ハードウェアにコードを書き込みたい方――ここにあるPiは3-Dシミュレーションであり、後から実際のPiを使う場合にも、書いたPythonを引き継いで使えます
  • すべて無料で利用したい方――最初の3つのワールド、すべてのラボ、Workbenchは無料で、Proではカリキュラムの残りがアンロックされます
  • ニューラルネットワークについてすでに十分な基礎があり、基礎から学ぶレッスンではなく、上級者向けまたは研究レベルのリファレンスを探している方

ご質問

よくある質問

ニューラルネットワークがどのように学習するのかを、本当に理解するにはどうすればよいですか?

重みや勾配降下法について読むだけでは限界があります。モデルの損失が実際に下がる様子を見ることで、その隔たりを埋められます。AI Labでは、まずニューロン、重み、バイアス、活性化を学び、その後、Loss Valleyラボで学習率を使って傾ける3-Dの地形として勾配降下法を表示します。Decision Surfaceでは、学習した境界がリアルタイムでらせん状のデータを包み込む様子を見られます。iOSとAndroidで無料です。

勾配降下法とは何ですか? 学習率が重要なのはなぜですか?

勾配降下法とは、ネットワークが自らの誤差を減らす方法です。各ステップで損失を最も速く下げる方向を計算し、すべての重みをその方向へ少しずつ動かします。ボールが坂を下って谷へ転がるようなものです。学習率は、1回のステップの大きさを決めます。小さすぎると学習が進まず、大きすぎるとボールが谷を通り越して跳ね返ったり発散したりして、収束しないことがあります。AI LabのLoss Valleyラボでは、そのダイヤルを動かし、実際の学習で違いが生じる様子を見られます。

ニューラルネットワークをint8に量子化すると、実際には何が起きますか?

学習直後のネットワークは、32ビット浮動小数点数として重みを保存します。これは精度が高い一方、小型ハードウェアには多すぎるメモリを必要とします。量子化では、重みを一般的に8ビット整数のような、はるかに小さな数値に丸めます。精度をある程度引き換えに、モデルのサイズをおよそ4分の1まで縮小できます。AI LabのShrinkerラボでは、実際に学習済みモデルへこれを行うため、サイズと精度のトレードオフを文章で読むのではなく、結果として確認できます。

TinyMLとは何ですか?

TinyMLとは、サーバーやスマートフォンではなく、マイクロコントローラーやシングルボードコンピューターなどの小型・低消費電力ハードウェア上で機械学習を実行することです。そのため、モデルは最初に縮小する必要があります。AI LabのShrinkerとChipラボでは、その一連の流れを扱います。学習済みネットワークを量子化し、その結果に対して本物のint8推論を実行してから、アプリのRaspberry Pi Workbenchで組み込みプロジェクトの物理配線へ進みます。

Raspberry Piを持っていなくても、Raspberry Piのプログラミングを学べますか?

はい。AI LabのRaspberry Pi Workbenchは、Pi Picoを詳細に再現した3-Dシミュレーションです。仮想コンポーネントを追加して配線し、内蔵エディターでgpiozeroライブラリを使った本物のPythonコードを書けるため、基板を購入したり壊したりする心配がありません。5つの入門プロジェクトでは、最初のLED点滅から、ボタンで操作するLED、5つのLEDによるKnight Riderのスイープまで体験できます。後で実際のRaspberry Piを使って制作する場合も、書いたPythonをそのまま引き継げます。

gpiozeroとは何ですか? アプリで使われているのはなぜですか?

gpiozeroは、Raspberry PiのGPIOピンをシンプルなオブジェクトとメソッドで扱えるようにするPythonライブラリです。LEDを点灯する処理も、低レベルのレジスタ書き込みではなく1行で済むため、Pi電子工作の一般的な出発点となっています。AI LabのWorkbenchはシミュレーションでも同じライブラリを使うため、アプリでLED、ボタン、ブザーを配線するコードは、実際のハードウェアで使うものと同じように読めます。

AI Labは無料ですか?

はい。AI LabはApp StoreとGoogle Playから無料でダウンロードできます。1つのニューロンから勾配降下法、マルチレイヤーネットワークまでを扱う最初の3つのレッスンワールドに加え、すべての3-Dラボと完全なRaspberry Pi Workbenchを無料で利用できます。AI Lab Proでは、レッスンカリキュラムの残りがアンロックされ、広告が削除されます。アプリの年齢レーティングは4+で、現在のバージョンは1.2.0です。

数学やプログラミングの経験は必要ですか?

いいえ。AI Labでは、コードを使う前に、ニューロンとは何か――いくつかの数値に重みを掛け、バイアスを加えて合計し、活性化に通す仕組み――から始めます。その後、各短いレッスンの最後にクイズを用意しながら、1つずつ考え方を積み上げていきます。Raspberry Pi Workbenchでは、過去のプログラミング経験を前提とせず、プロジェクトごとにgpiozeroを通じてPythonを段階的に学べます。

AI Labのニューラルネットワークエンジンは、TensorFlowやPyTorchと同じものですか?

いいえ。アプリ内でもその点を明確に説明しています。AI Labの学習エンジンは、学習と可視化のために、瞬時に学習でき、完全に説明可能なようにゼロから作られた小規模で決定論的な実装です。実運用向けの機械学習フレームワークではありません。ここで学ぶニューロン、重み、損失、勾配降下法、量子化といった考え方は、TensorFlowやPyTorchでも、はるかに大規模な形で使われています。

iPhoneとAndroidで使えますか? ストアではそれぞれ何という名前ですか?

Neural Nets & Raspberry Piは、App Storeを通じてiOSで、Google Playを通じてAndroidで利用できます。インターフェースは10言語に対応し、年齢レーティングは4+です。アプリの画面とアイコンではAI Labという名前を使用しています。App StoreではAI Lab: Neural Networks & IoT、Google PlayではNeural Nets & Raspberry Piという名前で掲載されています。どちらも同じアプリです。

始める

ニューラルネットワークの学習を見てから、チップに載せよう

iOSとAndroidで無料――ニューロンから勾配降下法を経て、配線したRaspberry Pi Picoまで。

App Store — 無料でダウンロードGoogle Play — 無料でダウンロード
最終確認日 · CoddyKitが公開 · プライバシーポリシー
iOS および Androidで利用できます。