TinyML: 超低消費電力機械学習技術
(ikkaro.net)TinyMLとは何か
- TinyML は マイクロコントローラで機械学習を使うこと を意味する。
- 従来のMLで使われるシステムとは異なり、CPUとRAMが非常に少なく、消費電力がミリワットまたはマイクロワット級のシステムで使われる。
- 大きなモデルを縮小し、リソースが極めて限られた機器やマイクロコントローラで使えるようにする作業を行う。
- TinyML財団の公式Webサイトは https://www.tinyml.org/
- ハーバード大学が無料で提供する3つの講座シリーズがある:
- TinyMLの基礎(何を作るのか、なぜ作るのか、どのような問題があるのか)
- TinyMLの応用(データ駆動、バイアスなど)
- TinyMLのデプロイ(モデルをどこに配置するか、セキュリティとプライバシー)
TinyMLの基本原理
- マイクロコントローラを使う組み込みシステムは、最大256kBのメモリしか持たないため、大きなモデルは動かせない。
- マイクロコントローラと一緒に使えるオペレーティングシステムの例:
- FreeRTOS
- Mbed OS
- 機械学習は、データからパターンを見つけるアルゴリズムで構成される。
- TinyMLでは、こうしたアルゴリズムを圧縮して、データから効率よくパターンを見つけられるようにする。
- IoTで1日に生成されるデータは500京バイトで、このうち分析されるのは1%未満にすぎない。
アルゴリズム圧縮手法
-
枝刈り(Pruning)
- シナプス枝刈り: モデルからネットワーク接続を削除する。場合によっては精度が低下することがある。
- ニューロン枝刈り: モデルからニューロン全体を削除し、ネットワークの計算要求を減らす。
-
量子化(Quantization)
- 値を小さな範囲内で離散化する。たとえば、浮動小数点を -128 から 127 の範囲内に離散化すれば、256個の値だけを探索すればよい。
- 4バイトで保存される浮動小数点値を1バイトで保存される整数値に変えると、サイズは4分の1になる。
- リソースが限られているため、TinyMLでは量子化が非常に重要である。
-
知識蒸留(Knowledge distillation)
- 知識やノウハウを適用してモデルを小さくする。
ツール
- TensorFlow Lite を使用。
- TensorFlowはML研究者に焦点を当てている一方、TensorFlow Liteはアプリケーション開発者向けである。
TinyMLの利用
- DIY、メイカー、ハッカーの世界に特化したTinyMLのユースケースを、このWebサイトで見つけることができる。
産業におけるTinyMLの利用
- 産業分野では保守に使われ、振動が発生したときに故障の可能性を警告することで効率を高め、コストを削減する。
- 精度の問題により誤警報が発生する可能性があり、誤警報の責任はオペレーターまたはシステムにある。
環境におけるTinyML
- データを収集してから処理する代わりに、TinyMLを使えば環境変化に対するリアルタイムの応答を得られる。たとえば、野生動物の生活の変化をリアルタイムで把握できる。
人のためのTinyML
- 障害のある人が手を使わなくてもより多くの作業を行えるよう支援する。
- アプリケーションのUIとUXを改善し、使いやすくする。
- 技術は人間の体験を向上させるために作られる。技術は人を助けるべきである。
リスクと欠点
- あらゆる人口集団でうまく機能するのか?
- データのプライバシーは保証されるのか?
- このデータを保護できるのか?
- 人間中心のAIに基づいて技術を作るべきであり、設計、開発、デプロイの過程でこれを考慮しなければならない。
GN⁺の意見
- TinyMLは、リソースが制約された環境でも機械学習を可能にする革新的な技術であり、IoT機器の効率性と知能を大きく向上させることができる。
- 枝刈り、量子化、知識蒸留のようなアルゴリズム圧縮手法は、機械学習モデルを小型化し、低消費電力デバイスでも実行可能にする中核的要素である。
- TinyMLの応用は、産業保守、環境モニタリング、障害者支援など多様な分野で人々の生活改善に貢献でき、技術が社会に与える前向きな影響の好例である。
1件のコメント
Hacker Newsの意見
Rust TinyMLコンパイラの開発
predict()関数を生成した。TinyML分野の魅力
LLMを利用したインフラ標的ウイルス
Edge ImpulseによるTinyML / Edge MLの説明
Hacker BoxのESP32、Tensor Flow Lite、Edge Impulseの使用例
TinyMLの現在と未来
TinyMLに関するさまざまな意見