tinyML とは
tinyML (Tiny Machine Learning) は、マイクロコントローラーやその他の低電力エッジデバイスへのモデルの展開に特化した機械学習のサブセットです。ネットワーク化されたシステムのエッジに AI を実装することで、クラウド接続に頼ることなく、デバイス上で直接、低レイテンシかつエネルギー効率の高いリアルタイムの推論を実行できます。強力なエッジサーバーや IoT デバイスを含む広義の組み込み AI とは異なり、TinyML はエネルギー消費が最も少ないデバイスをターゲットにしており、多くはミリワットの電力割り当てで稼働します。この領域のエンジニアにとっての主な関心事項は、消費電力やフットプリントを最小化しながら、アルゴリズムとモデルを最適化して性能を維持し、インテリジェントな機能を最も小型のデバイスおよびセンサーで実現することです。
tinyML ワークフローに不可欠な各段階の説明は以下のとおりです。
- モデルの開発および学習: 前処理したデータを使用し、転移学習またはデータ拡張などの手法により選択したモデルの学習を行い、ターゲットデバイスの制約を考慮しながら目的の精度を実現します。
- モデルの最適化および評価: 量子化、枝刈り、射影、およびデータ型変換などの手法を使用して、精度を大きく犠牲にすることなくメモリ使用量と計算量を低減させることで、学習済みモデルを最適化し、リソース効率を向上させます。
- 展開: 最適化されたモデルをターゲットデバイスに展開して、低レイテンシでリアルタイムの推論を実行できるようにします。
- テストおよび妥当性確認: 実世界のシナリオで性能を検証し、潜在的な問題または制限を特定するために、代表的なデータを使用して、ターゲットデバイス上で展開されたモデルのテストおよび妥当性確認を行います。
MATLAB と Simulink による tinyML
MATLAB® には、機械学習アルゴリズムをプロトタイピングし実験するための高水準のプログラミング環境が用意されています。Simulink® は、システムのモデルを設計およびシミュレーションするためのブロック線図環境を提供し、ハードウェアに移行する前の反復作業と妥当性確認を促進します。tinyML ワークフローを可能にする MATLAB と Simulink のいくつかの機能について、以下に詳しく説明します。
- モデルの開発および学習
tinyML ネットワークの開発と学習を行うには、MATLAB と Simulink によるアプリや高水準言語を使用した機械学習とディープラーニング、ブロック線図モデリング環境を活用できます。Deep Learning Toolbox™ を使用して、TensorFlow™、PyTorch®、ONNX からネットワークをインポートすると、ネットワークの開発および学習をスピードアップできます。
- モデルの最適化
リソースに制約のあるエッジデバイス向けに機械学習モデルを最適化するには、Deep Learning Toolbox を使用できます。MATLAB と Simulink には、モデルのメモリフットプリントと計算量を低減しながら許容可能な精度を維持できる、モデルの量子化、射影、枝刈り、およびデータ型変換のためのツールが含まれています。これにより、モデルの性能を犠牲にすることなく、低電力デバイス上で効率的に実行できます。
- コードの生成と展開
Embedded Coder
®を使用して、学習済みモデルから最適化された C/C++ コードを生成できます。生成されるコードには、マイクロコントローラーまたは組み込みシステムに直接展開可能なプロセッサ固有の最適化およびデバイスドライバーを含めることができ、tinyML を効率的に展開できます。MathWorks は、提携する半導体企業と協力し、広く利用されているさまざまなマイクロコントローラー プラットフォームをサポートしているため、多くのハードウェアをターゲットにできます。 - リアルタイムのテストと検証
ハードウェアインザループ (HIL) シミュレーションでは、リアルタイムで tinyML モデルをシミュレーションおよびテストできます。これにより、ハードウェアに展開する前に、物理システムを表すリアルタイムのバーチャル環境でモデルの性能を検証することができます。MATLAB と Simulink ではシミュレーションと展開を統合できるため、ターゲットのハードウェア サポート パッケージ (HSP) を使用した信頼性の高い、正確な結果の確実な取得に役立ちます。
製品使用例および使い方
ソフトウェア リファレンス
tinyMLに関するよくある質問
tinyMLは、モデルをマイクロコントローラーやその他の低消費電力エッジデバイスに展開することに特化した機械学習のサブセットで、クラウド接続に依存せずデバイス上でリアルタイムかつ省エネルギーで推論を行えるようにします。対象はスペクトラムの最小クラスのデバイスで、しばしばミリワット級の消費電力で動作します。
tinyMLはネットワークシステムのエッジにAIをもたらし、低消費電力デバイス上でリアルタイムかつ低遅延の推論を実現します。一方、従来の機械学習は通常クラウド接続や高性能サーバーに依存します。より広い意味での組み込み AIとは異なり、tinyMLは特にミリワット級の電力で動作する最小クラスのデバイスを対象としています。
主な段階は、モデルの開発とトレーニング、量子化やプルーニングなどの手法を用いたモデルの最適化と評価、ターゲットデバイスへの展開、そして代表的なデータによるテストと検証による実環境での性能確認です。
一般的な最適化手法には、量子化、プルーニング、プロジェクション、データ型の変換などがあり、メモリや計算の要件を削減しつつ精度を大きく損なわないようにします。これらにより低消費電力デバイス上で効率的に実行しつつ、許容できるモデル性能を維持できます。
はい。MATLABとSimulinkは、モデルの開発とトレーニングから最適化、コード生成、組み込みデバイスへの展開まで、tinyMLのワークフロー全体をサポートします。マイクロコントローラーや組み込みシステム向けにプロセッサ固有の最適化を取り入れた自動コード生成を可能にします。
tinyMLモデルは、スペクトラムの最小クラスであるマイクロコントローラーーやその他の低消費電力エッジデバイス上で動作し、通常ミリワット級の電力で稼働します。MATLABとSimulinkは、半導体企業とのパートナーシップを通じて幅広い主要マイクロコントローラープラットフォームをサポートします。
Embedded Coderは、訓練済みモデルから最適化されたC/C++コードを生成し、プロセッサ固有の最適化やマイクロコントローラーーや組み込みシステムに直接展開可能なデバイスドライバーを含めます。これにより、効率的なtinyML展開における理論と実践のギャップが埋められます。
はい。ハードウェアインザループ (HIL) シミュレーションにより、物理システムを表現する仮想環境でtinyMLモデルのリアルタイムテストや検証が可能になり、展開前に確認できます。MATLABとSimulinkは、ターゲット向けハードウェア サポート パッケージを通じてシミュレーションと展開の統合を可能にします。
参考: 組み込みシステム, AutoML, 組み込みシステム, 検証、妥当性確認、テスト, 機械学習モデル, ディープラーニング モデル, MATLAB によるコード生成