TinyML

TinyML とは

TinyML (Tiny Machine Learning) は、マイクロコントローラーやその他の低電力エッジデバイスへのモデルの展開に特化した機械学習のサブセットです。ネットワーク化されたシステムのエッジに AI を実装することで、クラウド接続に頼ることなく、デバイス上で直接、低レイテンシかつエネルギー効率の高いリアルタイムの推論を実行できます。強力なエッジサーバーや IoT デバイスを含む広義のエッジ AI とは異なり、TinyML はエネルギー消費が最も少ないデバイスをターゲットにしており、多くはミリワットの電力割り当てで稼働します。この領域のエンジニアにとっての主な関心事項は、消費電力やフットプリントを最小化しながら、アルゴリズムとモデルを最適化して性能を維持し、インテリジェントな機能を最も小型のデバイスおよびセンサーで実現することです。

TinyML ワークフローに不可欠な各段階の説明は以下のとおりです。

  • モデルの開発および学習: 前処理したデータを使用し、転移学習またはデータ拡張などの手法により選択したモデルの学習を行い、ターゲットデバイスの制約を考慮しながら目的の精度を実現します。
  • モデルの最適化および評価: 量子化、枝刈り、射影、およびデータ型変換などの手法を使用して、精度を大きく犠牲にすることなくメモリ使用量と計算量を低減させることで、学習済みモデルを最適化し、リソース効率を向上させます。
  • 展開: 最適化されたモデルをターゲットデバイスに展開して、低レイテンシでリアルタイムの推論を実行できるようにします。
  • テストおよび妥当性確認: 実世界のシナリオで性能を検証し、潜在的な問題または制限を特定するために、代表的なデータを使用して、ターゲットデバイス上で展開されたモデルのテストおよび妥当性確認を行います。
TinyML ワークフローにより実現が見込まれる、エッジデバイス上での AI によるリアルタイムの意思決定を採用したモバイル ロボット マニピュレーターのプラットフォーム。

MATLAB と Simulink は TinyML ワークフロー全体をサポートしているため、エッジにおける AI ベースシステムを設計、テスト、および展開できます。

TinyML アプリケーションの展開プロセスを表す、仮想上のワイヤーでマイクロコントローラーに接続されたディープラーニングの Simulink ブロックと生成されたコード。

MATLAB と Simulink の自動コード生成を使用すると、組み込みデバイス上で TinyML アプリケーションのラピッド プロトタイピングと展開を行い、理論と実践間のギャップを埋めることができます。

MATLAB と Simulink による TinyML

MATLAB® には、機械学習アルゴリズムをプロトタイピングし実験するための高水準のプログラミング環境が用意されています。Simulink® は、システムのモデルを設計およびシミュレーションするためのブロック線図環境を提供し、ハードウェアに移行する前の反復作業と妥当性確認を促進します。TinyML ワークフローを可能にする MATLAB と Simulink のいくつかの機能について、以下に詳しく説明します。

  1. モデルの開発および学習

    TinyML ネットワークの開発と学習を行うには、MATLAB と Simulink によるアプリや高水準言語を使用した機械学習とディープラーニング、ブロック線図モデリング環境を活用できます。Deep Learning Toolbox™ を使用して、TensorFlow™、PyTorch®、ONNX からネットワークをインポートすると、ネットワークの開発および学習をスピードアップできます。

  2. モデルの最適化

    リソースに制約のあるエッジデバイス向けに機械学習モデルを最適化するには、Deep Learning Toolbox を使用できます。MATLAB と Simulink には、モデルのメモリフットプリントと計算量を低減しながら許容可能な精度を維持できる、モデルの量子化、射影、枝刈り、およびデータ型変換のためのツールが含まれています。これにより、モデルの性能を犠牲にすることなく、低電力デバイス上で効率的に実行できます。

  3. コードの生成と展開

    Embedded Coder® を使用して、学習済みモデルから最適化された C/C++ コードを生成できます。生成されるコードには、マイクロコントローラーまたは組み込みシステムに直接展開可能なプロセッサ固有の最適化およびデバイスドライバーを含めることができ、TinyML を効率的に展開できます。MathWorks は、提携する半導体企業と協力し、広く利用されているさまざまなマイクロコントローラー プラットフォームをサポートしているため、多くのハードウェアをターゲットにできます。

  4. リアルタイムのテストと検証

    ハードウェアインザループ (HIL) シミュレーションでは、リアルタイムで TinyML モデルをシミュレーションおよびテストできます。これにより、ハードウェアに展開する前に、物理システムを表すリアルタイムのバーチャル環境でモデルの性能を検証することができます。MATLAB と Simulink ではシミュレーションと展開を統合できるため、ターゲットのハードウェア サポート パッケージ (HSP) を使用した信頼性の高い、正確な結果の確実な取得に役立ちます。

参考: AutoML, 組み込みシステム, 検証、妥当性確認、テスト, 機械学習モデル, ディープラーニング モデル, MATLAB によるコード生成