AIモデルとプラットフォーム
TinyML:アプリケーション、限界、IoTおよびエッジデバイスでの使用

近年、人工知能(AI)と機械学習(ML)は、業界や学術分野で急速に普及し、アプリケーションが増えてきました。しかし、現在のMLとAIモデルには、大きな制限があります。大量の計算と処理能力が必要で、高性能デバイスでのみ使用できます。
しかし、組み込みシステム技術の進歩とIoT業界の発展により、ML技術と概念をリソース制約のある組み込みシステムに導入することが望まれています。ML概念を組み込みシステムとIoTシステムに導入するという欲求が、リソース制約のあるデバイス、電力制約のあるデバイス、低コストのデバイスでMLモデルとアプリケーションを実行できるTinyMLの開発の背後にある主な動機です。
しかし、リソース制約のあるデバイスでのMLの実装は簡単ではありません。低性能デバイスでのMLモデルの実装には、最適化、処理能力、信頼性、モデルメンテナンスなど、独自の課題があります。
この記事では、TinyMLモデルについて深く掘り下げ、背景、TinyMLをサポートするツール、TinyMLのアプリケーションについて学びます。では、始めましょう。
TinyMLの紹介:TinyMLが必要な理由
IoTデバイスは、エッジコンピューティングを活用し、センサーとデバイスのネットワークの近くでデータをリアルタイムに処理することを目的としています。IoTデバイスの主な利点は、ネットワークエッジで展開できるため、低い計算能力と低いメモリフットプリントが必要であることです。
さらに、IoTデバイスは、データを収集して転送するためにエッジプラットフォームに大きく依存しています。エッジデバイスはセンシングデータを収集し、近くの場所またはクラウドプラットフォームに転送します。エッジコンピューティング技術は、データを保存して計算し、分散コンピューティングをサポートするためのインフラストラクチャを提供します。
IoTデバイスでのエッジコンピューティングの実装は
- エンドユーザーに効果的なセキュリティ、プライバシー、信頼性を提供します。
- 遅延を低減します。
- アプリケーションとサービスに対する可用性、スループット、応答性を高めます。
さらに、エッジデバイスはセンサーとクラウドの共同技術を展開できるため、データ処理はクラウドプラットフォームではなくネットワークエッジで実行できます。これにより、効果的なデータ管理、データ永続化、配信、コンテンツキャッシングが可能になります。さらに、H2M(Human to Machine)インタラクションやモダンヘルスケアなどのアプリケーションでエッジコンピューティングはネットワークサービスを大幅に改善できます。
最近のIoTエッジコンピューティングの研究は、IoTのさまざまなユースケースでマシンラーニング技術を実装する可能性を示しています。ただし、主な問題は、伝統的なマシンラーニングモデルが強力な計算能力と高メモリ容量を必要とするため、IoTデバイスとアプリケーションでの実装が制限されることです。
さらに、現在のエッジコンピューティング技術は、高い転送容量と効果的な電力節約が不足しており、ハーモニーアーキテクチャの必要性が生じています。特に、MLモデルの更新、トレーニング、展開のために必要です。エッジデバイスのアーキテクチャは、ハードウェアとソフトウェアの要件によって異なり、デバイスごとに異なるため、IoTネットワーク用の標準的なMLアーキテクチャを構築することは困難です。
また、現在のシナリオでは、さまざまなデバイスによって生成されたデータは、処理のためにクラウドプラットフォームに送信されます。さらに、MLモデルは、Deep Learning、Deep Neural Networks、Application Specific Integrated Circuits(ASICs)およびGraphic Processing Units(GPUs)に依存しており、高い電力とメモリ要件を必要とします。フルなMLモデルをIoTデバイスに展開することは、計算能力と処理能力の明らかな不足、および限られたストレージソリューションのため、実行可能な解決策ではありません。
低電力の組み込みデバイスを小型化し、MLモデルを電力とメモリの効率性を高めるために最適化する必要性は、TinyMLの道を開きました。TinyMLは、エッジIoTデバイスとフレームワークでMLモデルと実践を実装することを目的としています。TinyMLは、IoTデバイスでの信号処理を可能にし、組み込みの知能を提供し、クラウドプラットフォームへのデータ転送の必要性を排除します。TinyMLの成功した実装は、最終的にプライバシーと効率性の向上と運用コストの削減につながります。さらに、TinyMLは、不十分な接続の場合に、オンプレミス分析を提供できます。
TinyML:紹介と概要
TinyMLは、オーディオ、ビジョン、スピーチなどのさまざまなセンシングモダリティに対するデバイス上の分析を実行できるマシンラーニングツールです。TinyMLツール上に構築されたMLモデルは、低電力、低メモリ、低計算要件を備えているため、バッテリ電力で動作するエッジネットワークとデバイスに適しています。さらに、TinyMLの低要件により、IoTフレームワークにMLモデルを展開するのに適したツールとなります。
現在、クラウドベースのMLシステムは、セキュリティとプライバシーの懸念、電力消費の高さ、信頼性と遅延の問題などの課題に直面しています。モデルはハードウェアとソフトウェアのプラットフォームに事前にインストールされています。センサーはデータを収集し、CPUまたはMPU(マイクロプロセッサユニット)で処理されます。MPUは、エッジ認識可能なMLネットワークとアーキテクチャによってサポートされるML分析サポートのニーズを満たします。エッジMLアーキテクチャは、データ転送とMLの実装のためにMLクラウドと通信します。TinyMLの実装は、技術の進歩につながります。
TinyMLは、ソフトウェア、ハードウェア、アルゴリズムが相互に調和して動作することで、望ましいパフォーマンスを提供するものと言えるでしょう。アナログまたはメモリ計算が、ハードウェアアクセラレータをサポートしないハードウェアとIoTデバイスのためのより良い学習体験を提供するために必要になる場合があります。ソフトウェアについては、TinyMLを使用して構築されたアプリケーションは、Linuxまたは組み込みLinux、クラウド対応ソフトウェア上で展開および実装できます。最後に、TinyMLアルゴリズム上に構築されたアプリケーションとシステムは、低メモリサイズのモデルを必要とする新しいアルゴリズムのサポートが必要です。
まとめると、TinyMLを使用して構築されたアプリケーションは、コンパクトなソフトウェアを設計することで、MLの原則と方法を最適化する必要があります。さらに、高品質のデータが必要であり、このデータは、大容量の計算能力と処理能力を備えたマシンでトレーニングされたモデルから生成されたバイナリファイルを介して転送されます。
さらに、TinyMLツール上で動作するシステムとアプリケーションは、より厳しい制約下で高い精度を提供する必要があります。コンパクトなソフトウェアは、TinyMLの影響をサポートするために、小さな電力消費が必要です。さらに、TinyMLアプリケーションまたはモジュールは、エッジの組み込みシステムで動作するために、バッテリ電力に依存する可能性があります。
上記のように、TinyMLアプリケーションには2つの基本的な要件があります
- 数十億の安価な組み込みシステムを拡大する能力。
- デバイスのRAMにコードを保存する能力、容量は数KB以下です。
先進技術を使用したTinyMLのアプリケーション
TinyMLがAIとML業界で注目されている主な理由は、その潜在的なアプリケーションがあるためです。ビジョンとスピーチベースのアプリケーション、ヘルス診断、データパターン圧縮と分類、ブレインコンピュータインターフェース、エッジコンピューティング、フェノミクス、セルフドライビングカーなどです。
スピーチベースのアプリケーション
スピーチコミュニケーション
通常、スピーチベースのアプリケーションは、すべてのデータが重要であり、転送される従来の通信方法に依存しています。ただし、最近、セマンティックコミュニケーションが、データの意味やコンテキストのみを転送する代替手段として現れました。セマンティックコミュニケーションは、TinyMLの方法論を使用して、スピーチベースのアプリケーションに実装できます。
現在、スピーチコミュニケーション業界で最も人気のあるアプリケーションは、スピーチ検出、スピーチ認識、オンライン学習、オンライン教師向けコミュニケーション、目標指向コミュニケーションです。これらのアプリケーションは通常、高い電力消費とホストデバイスでの高いデータ要件を必要とします。これらの要件を克服するために、低計算アーキテクチャを構築するためにディープコンボリューションネットワークを使用するTinySpeechライブラリが導入されました。
TinyMLを使用してスピーチ強化を行うために、開発者は最初にスピーチ強化モデルのサイズをハードウェアの制限と制約のために対処しました。問題に対処するために、RNN(再帰型ニューラルネットワーク)スピーチ強化モデルの構造化プルーニングと整数量子化が導入されました。結果は、モデルのサイズが約12倍、演算が約3倍に削減されたことを示しました。さらに、特にボイスレコグニションアプリケーションを実行するリソース制約アプリケーションで、リソースを効果的に使用することが重要です。
その結果、プロセスをパーティションするために、TinyMLベースのボイスとスピーチ認識アプリケーションのための共同設計方法が提案されました。開発者は、生のボイスデータを前処理するためにウィンドウ操作を使用してソフトウェアとハードウェアをパーティション化しました。方法は機能し、結果はハードウェアでのエネルギー消費の低下を示しました。最後に、将来的にソフトウェアとハードウェアの共同設計の最適化されたパーティションを実装する可能性もあります。
さらに、最近の研究は、スピーチ認識システムのための電話ベースのトランスデューサーの使用を提案しました。提案は、LSTM予測器をConv1D層に置き換えることを目的としています。実装されると、提案は肯定的な結果をもたらし、SVD(特異値分解)がモデルを正常に圧縮し、WFST(重み付き有限状態トランスデューサー)ベースのデコーディングがモデル改善バイアスの柔軟性をもたらしたことを示しました。
多くの著名なスピーチ認識アプリケーション、たとえば仮想またはボイスアシスタント、ライブキャプション、ボイスコマンドは、動作するためにML技術を使用します。現在の人気のあるボイスアシスタント、SiriやGoogleアシスタントは、クラウドプラットフォームにデータを転送するたびに、プライバシーとデータセキュリティに関する重大な懸念を生じます。TinyMLは、この問題に対する実行可能な解決策です。TinyMLは、デバイス上でスピーチ認識を実行し、クラウドプラットフォームへのデータ転送の必要性を排除することを目的としています。デバイス上のスピーチ認識を実現する1つの方法は、Tiny Transducerを使用することです。Tiny Transducerは、LSTM層ではなく、DFSMB(深層フィードフォワードシーケンシャルメモリブロック)層と1つのConv1D層を使用するスピーチ認識モデルです。
補聴器
聴力障害は世界中での大きな健康問題であり、人間の聴力は一般的に年齢とともに低下し、中国、日本、韓国などの高齢化国では大きな問題です。現在の補聴器デバイスは、周囲のすべての入力音を増幅するという単純な原理で動作しますが、特に騒々しい環境では、望ましい音と区別することが困難になります。
TinyMLは、この問題に対する実行可能な解決策である可能性があります。補聴器デバイスにスピーチ認識アルゴリズムを使用するTinyLSTMモデルを使用すると、ユーザーはさまざまな音を区別することができます。
ビジョンベースのアプリケーション
TinyMLは、エッジプラットフォームでコンピュータビジョンベースのデータセットを処理する上で重要な役割を果たす可能性があります。出力の高速化のために、これらのデータセットはエッジプラットフォーム自体で処理する必要があります。TinyMLモデルは、OpenMV H7マイクロコントローラボードを使用してモデルをトレーニングする際の実践的な課題に直面しています。開発者は、ARM Cortex M7マイクロコントローラを使用してアメリカ手話を検出するためのアーキテクチャを提案しました。このマイクロコントローラは、496KBのフレームバッファRAMのみで動作します。
エッジプラットフォームでのTinyMLの実装には、CNN(Convolutional Neural Networks)が高い一般化エラーと高いトレーニングおよびテスト精度をもたらすという課題を克服する必要がありました。ただし、モデルは新しいユースケースやノイズのある背景での画像に対して効果的に一般化しませんでした。開発者が補間増強方法を使用すると、モデルはテストデータで98%以上の精度スコアを返し、一般化では約75%を示しました。

さらに、開発者が補間増強方法を使用すると、量子化の際にモデルの精度が低下する一方で、モデルの推論速度と分類の一般化が向上したことが観察されました。開発者は、新しいソースからのデータを使用してモデルのトレーニングを実行し、パフォーマンスをテストして、エッジプラットフォーム(例:携帯型スマートウォッチ)に展開する可能性を探る方法も提案しました。
さらに、CNNに関する追加の研究は、リソースが限られているデバイスでCNNアーキテクチャを展開して望ましい結果を得ることができることを示しています。最近、開発者はTensorFlow Liteを使用して、リソースが限られているARM Cortex M7マイクロコントローラ上で医療用マスク検出のためのフレームワークを開発しました。量子化後のモデルサイズは約138KBでした。ターゲットボード上的の推論速度は約30FPSでした。
TinyMLを使用したコンピュータビジョンベースのアプリケーションのもう1つの例は、視覚障害者の日常生活を容易にするために杖に取り付けられるジェスチャ認識デバイスを実装することです。設計するために、開発者はジェスチャデータセットを使用し、データセットを使用してProtoNNモデルをトレーニングしました。結果は正確で、設計は低コストで、満足のいく結果をもたらしました。
TinyMLのもう1つの重要なアプリケーションは、自律走行車と自動運転車の業界です。リソースとオンボード計算能力の不足により、開発者はTinyCNNモデルを使用してオンライン予測モデルを提案しました。このモデルは実行時に画像をキャプチャします。TinyMLを自動運転に実装する際に開発者が直面した主な課題は、オフラインデータでトレーニングされた決定モデルがオンラインデータで同等のパフォーマンスを発揮しないことです。自律走行車と自動運転車のアプリケーションを最大限に活用するには、モデルはリアルタイムデータに適応できる必要があります。
データパターン分類と圧縮
現在のTinyMLフレームワークの最大の課題の1つは、オンライントレーニングデータに適応することです。問題に対処するために、開発者はTinyOL(TinyMLオンライン学習)と呼ばれる方法を提案しました。これは、インクリメンタルオンライン学習をマイクロコントローラユニットで実行することを可能にし、IoTエッジデバイスでモデルを更新することを可能にします。実装はC++プログラミング言語を使用して実行され、TinyOLアーキテクチャに追加のレイヤーが追加されました。
さらに、開発者はArduino Nano 33 BLEセンサボードのオートエンコーディングを実行し、モデルは新しいデータパターンを分類することができました。さらに、開発作業には、IoTエッジデバイスでオンライントレーニングパターンをサポートするためのニューラルネットワークの効率的で最適化されたアルゴリズムを設計することが含まれました。
TinyOLとTinyMLの研究は、IoTエッジデバイスのリソース制約のために、アクティベーションレイヤーの数が大きな問題であることを示しています。問題に対処するために、開発者はTinyTL(Tiny Transfer Learning)モデルを導入しました。これは、IoTエッジデバイスでのメモリ使用をより効果的にし、アクティベーションのために中間レイヤーを使用することを避けます。さらに、開発者は「lite-residual module」と呼ばれる新しいバイアスモジュールを導入しました。これは、適応能力を最大化し、特徴抽出器が残差特徴マップを発見できるようにします。
フルネットワークのファインチューニングと比較して、結果はTinyTLアーキテクチャに有利でした。結果は、TinyTLが約6.5倍のメモリオーバーヘッド削減と適度な精度低下を示しました。最後のレイヤーがファインチューニングされると、TinyMLは精度を34%向上させましたが、適度な精度低下がありました。
さらに、データ圧縮に関する研究は、データ圧縮アルゴリズムが、携帯型デバイスで収集されたデータを管理する必要があることを示しています。達成するために、開発者はTAC(Tiny Anomaly Compressor)と呼ばれるものを提案しました。TACは、SDT(Swing Door Trending)とDCT(Discrete Cosine Transform)アルゴリズムを上回り、最大98%の圧縮率と、3つのアルゴリズムの中で最高のピーク信号対雑音比を達成しました。
ヘルス診断
コロナウイルス感染症の世界的流行は、TinyMLの実装の新たな機会をもたらしました。咳や風邪に関連する呼吸器症状を継続的に検出することは、現在不可欠な実践です。継続的なモニタリングを確実にするために、開発者は、多モーダル設定で動作するTiny RespNetと呼ばれるCNNモデルを提案しました。モデルは、Xilinx Artix-7 100t FPGAで展開され、デバイスが情報を並列に処理できるため、高い効率と低電力消費を実現します。さらに、TinyRespモデルは、患者からのスピーチ、オーディオレコーディング、および人口統計情報を入力として使用し、3つの異なるデータセットを使用して咳関連症状を分類します。
さらに、開発者は、エッジデバイスでディープラーニング計算を実行できるTinyDLと呼ばれるTinyMLモデルを提案しました。TinyDLモデルは、ヘルス診断とパフォーマンス分析を実行するために、スマートウォッチやウェアラブルデバイスに展開できます。また、バンド幅、遅延、エネルギー消費を削減することができます。TinyDLを携帯型デバイスに展開するために、開発者は、収集されたデータを入力として特にトレーニングされたLSTMモデルを設計しました。モデルは約75〜80%の精度スコアを持ち、オフデバイスデータでも動作しました。これらのエッジデバイスで実行されるモデルは、現在のIoTデバイスに直面している課題を解決する可能性を示しています。
最後に、開発者は、高齢者の健康状態を推定して分析するために、体の姿勢を検出するアプリケーションを提案しました。モデルは、デバイスで有効化と迅速な適応を可能にするためのアグノスティックフレームワークを使用します。モデルは、リアルタイムの空間時間的体の姿勢を検出するために、体の姿勢検出アルゴリズムと顔のランドマークを結合しました。
エッジコンピューティング
TinyMLの主なアプリケーションの1つは、エッジコンピューティングの分野です。IoTデバイスの使用が増えるにつれて、クラウドアーキテクチャの負担を軽減するためにエッジデバイスを設定することが不可欠です。これらのエッジデバイスには、デバイス自体で高レベルの計算を実行できる個別のデータセンターを特徴とします。結果として、クラウドへの依存が減り、遅延が軽減され、ユーザーのセキュリティとプライバシーが向上し、帯域幅も削減されます。
エッジデバイスはTinyMLアルゴリズムを使用して、現在の電力、計算、メモリ要件に関する制約を解決するのに役立ちます。以下の画像に示されています。

さらに、TinyMLは、エネルギー効率が高く、低遅延で、高い計算能力を持つコントローラを実装することで、UAV(無人航空機)や自律走行車の使用とアプリケーションを強化することができます。
ブレインコンピュータインターフェース(BCI)
TinyMLは、がんや腫瘍の検出、ECGおよびEEGシグナルを使用したヘルス予測、感情的知性など、ヘルスケア業界で重要なアプリケーションを持っています。TinyMLを使用すると、適応型ディープブレイン刺激(aDBS)が臨床的適応に成功する可能性があります。TinyMLを使用すると、aDBSは、侵襲的な脳シグナルの記録を使用して、疾患関連のバイオマーカーとその症状を識別できます。
さらに、ヘルスケア業界には、患者からの大量のデータを収集し、治療の初期段階で患者を特定するための解決策を見つけるために、データを処理する必要があります。したがって、非常に効果的で、非常にセキュアなシステムを構築することが不可欠です。IoTアプリケーションをTinyMLモデルと組み合わせると、新しい分野であるH-IoT(ヘルスケアIoT)が生まれます。H-IoTの主なアプリケーションは、診断、モニタリング、ロジスティクス、感染拡大の制御、支援システムです。患者を遠隔で検出して分析するデバイスを開発するには、グローバルなアクセシビリティと低遅延のシステムを開発することが不可欠です。

自律走行車
最後に、TinyMLは、自律走行車の業界で広範囲にわたるアプリケーションを持っています。これらの車両は、人間の追跡、軍事目的、産業アプリケーションなど、さまざまな方法で使用できます。これらの車両の主な要件は、対象物を効率的に検出する能力です。
現在、自律走行車と自律走行は、特に小型車両の開発の場合、かなり複雑なタスクです。最近の開発は、小型車両の自律走行のアプリケーションを改善する可能性を示しています。GAP8 MCI上で展開されたCNNアーキテクチャを使用しています。
課題
TinyMLは、AIとML業界における比較的新しい概念であり、進歩があっても、エッジデバイスとIoTデバイスでの大量展開にはまだ効果的ではありません。
現在、TinyMLデバイスが直面している最大の課題は、電力消費です。理想的には、組み込みエッジデバイスとIoTデバイスは、10年以上のバッテリー寿命を持つ必要があります。たとえば、2Ahのバッテリーを使用するIoTデバイスの場合、電力消費が約12μAの場合、バッテリー寿命は10年以上になるはずです。ただし、現在の状態では、温度センサー、MCUユニット、Wi-Fiモジュールを備えたIoTアーキテクチャの場合、電流消費は約176.4mAで、バッテリー寿命は10年ではなく、約11時間しかありません。
リソース制約
アルゴリズムの整合性を維持するには、電力の可用性を維持することが不可欠です。現在のシナリオでは、TinyMLデバイスの電力可用性が限られていることは、重要な課題です。さらに、メモリ制約も大きな課題です。モデルを効果的に、正確に展開するには、高いメモリ量が必要です。
ハードウェア制約
ハードウェア制約は、ハードウェアデバイスの多様性により、TinyMLアルゴリズムを幅広く展開することを困難にします。数千のデバイスがあり、それぞれ独自のハードウェア仕様と要件があり、現在、TinyMLアルゴリズムは各デバイスに調整する必要があります。
データセット制約
TinyMLモデルには、既存のデータセットをサポートしないという大きな問題があります。エッジデバイスは外部センサーを使用してデータを収集し、電力とエネルギーに制約があるため、TinyMLモデルを効果的にトレーニングすることは困難です。
最終的な考え
ML技術の開発は、IoTエコシステムに革命と視点の変化をもたらしました。IoTデバイスにMLモデルを統合することで、これらのエッジデバイスは外部の人間の入力なしで独自の決定を下すことができます。ただし、従来のMLモデルは、高い電力、メモリ、計算要件を必要とするため、リソースが制約されたエッジデバイスに展開することは実行可能ではありません。
その結果、IoTデバイス用のMLを目的としたAIの新しい分野が生まれました。これは、TinyMLと呼ばれます。TinyMLは、リソースが制約されたデバイスでも、AIとMLの力を活用して、より高い精度、知能、効率を実現できるMLフレームワークです。
この記事では、リソース制約のあるIoTデバイスにTinyMLモデルを実装することについて説明しました。この実装には、モデルをトレーニングし、ハードウェアに展開し、量子化技術を実行することが必要です。ただし、現在の範囲では、IoTデバイスとエッジデバイスに展開できるMLモデルには、ハードウェアとフレームワークの互換性の問題を含む複雑さと制約があります。












