TinyML アプリケーション、制限、およびIoT&エッジデバイスでの使用
TinyMLのアプリケーションと制限、IoT&エッジデバイスでの使用
過去数年間、人工知能(AI)と機械学習(ML)は産業だけでなく学術界でも人気と応用が急速に広がってきました。しかし、現在のMLとAIモデルには1つの主要な制限があります。それは、望ましい結果と精度を得るために膨大な計算と処理能力が必要であるということです。これにより、高性能の計算能力を持つデバイスに使用が制限されることがしばしばあります。
しかし、埋め込みシステム技術の進歩とモノのインターネット産業の大幅な発展を考えると、リソース制約のある埋め込みシステムにMLの技術と概念を取り入れることは望ましいことです。MLの概念を埋め込みおよびIoTシステムに取り入れる欲求は、TinyMLの開発の主な動機となっており、TinyMLはリソース制約、電力制約、および低コストのデバイスでMLモデルとアプリケーションを実現するための埋め込みML技術です。
ただし、リソース制約のあるデバイスでのMLの実装は簡単ではありません。低い計算能力を持つデバイスでMLモデルを実装することは、最適化、処理能力、モデルの信頼性、保守などの面で独自の課題を提起します。
この記事では、TinyMLモデルについて詳しく掘り下げ、その背景、TinyMLをサポートするツール、および先進的な技術を使用したTinyMLのアプリケーションについて学びます。さあ、始めましょう。
TinyMLの紹介:なぜ世界はTinyMLを必要とするのか
モノのインターネット(IoT)デバイスは、エッジコンピューティングを活用することを目指しています。エッジコンピューティングは、ユーザーの近くにあるさまざまなデバイスとネットワークを指し、数百万のセンサーやデバイスからのデータのシームレスかつリアルタイムな処理を可能にします。IoTデバイスの主な利点の1つは、ネットワークのエッジで展開されるため、低い計算および処理能力が必要であり、メモリのフットプリントが小さいことです。
さらに、IoTデバイスは、エッジプラットフォームに頼ってデータを収集し、その後データを近くの場所またはクラウドプラットフォームに送信するため、エッジコンピューティング技術はデータの保管と処理に加え、分散コンピューティングをサポートする必要なインフラストラクチャを提供します。
エッジデバイスはセンサーとクラウドの間で協調的な技術を展開できるため、データ処理をクラウドプラットフォームではなくネットワークのエッジで行うことができます。これにより、効果的なデータ管理、データ永続性、効果的な配信、およびコンテンツキャッシングが可能となります。また、H2M(ヒューマン・ツー・マシン)の相互作用や現代の医療に関連するアプリケーションにIoTを実装するために、エッジコンピューティングはネットワークサービスの向上に大きく貢献します。
IoTエッジコンピューティングの分野での最近の研究は、いくつかのIoTユースケースで機械学習技術を実装する可能性を示しています。しかし、主な問題は、従来の機械学習モデルがしばしば強力な計算および処理能力、高いメモリ容量を必要とすることであり、それがIoTデバイスおよびアプリケーションでのMLモデルの実装を制限しています。
さらに、現在のエッジコンピューティング技術は高い伝送容量と効果的な省電力に欠けており、これがモデルの更新、トレーニング、デプロイメントのために調和的かつ包括的なインフラストラクチャが必要となる主な理由です。埋め込みデバイス向けに設計されたアーキテクチャは、デバイスごとに異なるハードウェアとソフトウェアの要件に依存しています。これが、IoTネットワークに対して標準のMLアーキテクチャを構築することが困難な主な理由です。
また、現在の状況では、異なるデバイスが生成するデータは、ネットワークの実装の計算上の負荷の高さのためにクラウドプラットフォームに送信されます。さらに、MLモデルはデータの処理にDeep Learning、Deep Neural Networks、Application Specific Integrated Circuits(ASIC)、Graphic Processing Units(GPU)などを頼りとしており、これらは高い電力とメモリの要件を持っています。完全なMLモデルをIoTデバイスに展開することは、明らかな計算および処理能力の不足、および限られたストレージソリューションのために実現可能な解決策ではありません。
低消費電力埋め込みデバイスの小型化の要求と、より省電力でメモリ効率の良いMLモデルの最適化により、TinyMLが実現され、エッジIoTデバイスとフレームワークでMLモデルと実践を実装することを目指しています。TinyMLは、IoTデバイスで信号処理を可能にし、エッジに組み込まれたインテリジェンスを提供することで、データをクラウドプラットフォームに転送する必要がなくなります。IoTデバイスでのTinyMLの成功した実装は、プライバシーと効率の向上につながり、運用コストを削減することができます。さらに、TinyMLの魅力的な点は、十分な接続がない場合にオンプレミスの分析を提供できることです。
TinyML:イントロダクションと概要
TinyMLは、オーディオ、ビジョン、音声などのさまざまなセンシングモダリティのために、デバイス上での分析を実行する機械学習ツールです。TinyMLツールで構築されたMLモデルは、埋め込みネットワークやバッテリー駆動のデバイスに適しており、低消費電力、メモリ、および計算要件を持っています。さらに、TinyMLの低要件は、IoTフレームワークにMLモデルを展開するのに理想的です。
現在の状況では、クラウドベースのMLシステムはセキュリティやプライバシーの問題、高い電力消費、信頼性、遅延の問題に直面しています。これがハードウェア・ソフトウェアプラットフォーム上のモデルが事前にインストールされる理由です。センサーは物理世界をシミュレートするデータを収集し、それをCPUまたはMPU(マイクロプロセッシングユニット)を使用して処理します。MPUは、エッジ意識のあるMLネットワークとアーキテクチャによるML解析サポートのニーズに対応します。エッジMLアーキテクチャはデータの転送のためにMLクラウドと通信し、TinyMLの実装によって技術の進歩がもたらされる可能性があります。
言うまでもなく、TinyMLはソフトウェア、ハードウェア、アルゴリズムの融合体であり、それらが相互に連携して望ましいパフォーマンスを提供します。ハードウェアアクセラレータをサポートしないハードウェアやIoTデバイスのために、アナログまたはメモリコンピューティングが必要になる場合もあります。ソフトウェアに関しては、TinyMLを使用して構築されたアプリケーションは、Linuxまたは組み込みLinux、およびクラウド対応のソフトウェアなどのプラットフォーム上で展開および実装することができます。最後に、TinyMLアルゴリズム上に構築されたアプリケーションとシステムは、高メモリ消費を避けるために低メモリサイズのモデルを必要とする新しいアルゴリズムのサポートを必要とします。
要点をまとめると、TinyMLツールを使用して構築されたアプリケーションは、高品質のデータの存在下で、MLの原則と手法を最適化し、ソフトウェアをコンパクトに設計する必要があります。そのデータは、より大きな容量と計算能力を持つマシンでトレーニングされたモデルを使用して生成されるバイナリファイルを介してフラッシュする必要があります。
さらに、TinyMLツール上で実行されるシステムやアプリケーションは、TinyMLのインプリケーションをサポートするために小規模な消費電力を必要とするため、より厳しい制約下で高い精度を提供する必要があります。さらに、TinyMLアプリケーションやモジュールは、エッジ埋め込みシステムでの動作をサポートするためにバッテリー駆動を必要とする場合があります。
以上を踏まえると、TinyMLアプリケーションには2つの基本的な要件があります。
- 数十億の安価な埋め込みシステムのスケーリング能力。
- デバイスのRAMに数KB未満の容量でコードを保存する。
先進技術を使用したTinyMLの応用
TinyMLがAI&ML業界で注目されている主な理由の1つは、ビジョンや音声をベースとしたアプリケーション、健康診断、データパターンの圧縮と分類、脳制御インターフェース、エッジコンピューティング、フェノミクス、自動運転車などの潜在的な応用があるためです。
音声ベースのアプリケーション
音声通信
通常、音声ベースのアプリケーションは、すべてのデータが重要であり、それが送信される従来の通信方法に依存しています。しかし、最近では、データの意味やコンテキストのみが送信されるセマンティックコミュニケーションが従来の通信の代替手段として登場しています。セマンティックコミュニケーションは、TinyMLの手法を使用して音声ベースのアプリケーション全体に実装することができます。
今日の音声通信業界で最も人気のあるアプリケーションのいくつかは、音声検出、音声認識、オンライン学習、オンライン教育、目的志向型コミュニケーションです。これらのアプリケーションは通常、より高い消費電力を持ち、ホストデバイス上での高いデータ要件もあります。これらの要件を克服するために、新しいTinySpeechライブラリが導入され、開発者が低計算アーキテクチャを構築し、低ストレージ施設を使用することができるようになりました。
音声の強化には、まず音声強化モデルのサイズを考慮する必要がありました。なぜなら、ハードウェアの制約があったからです。この問題に対処するために、構造化プルーニングと整数量子化を使用して、RNN(再帰型ニューラルネットワーク)音声強化モデルを展開しました。その結果、モデルのサイズは約12倍、演算は約3倍に削減されました。さらに、音声認識アプリケーションを実行するリソース制約のあるアプリケーションに展開される場合、リソースを効果的に利用することが重要です。
その結果、プロセスを分割するために、TinyMLベースの音声および音声認識アプリケーションに対して共同設計手法が提案されました。開発者は、ソフトウェアとハードウェアをウィンドウ操作を使用して事前処理する方法で分割しました。この方法は動作し、結果としてハードウェア上のエネルギー消費量が減少しました。最後に、将来的にはソフトウェアとハードウェアの共同設計の最適なパーティショニングを実装する可能性もあります。
さらに、最近の研究では、音声認識システムに携帯電話ベースのトランスデューサーの使用が提案されており、この提案ではLSTM予測子をConv1Dレイヤーに置き換えて、エッジデバイス上での計算ニーズを削減することを目指しています。実装された結果、モデルの圧縮に成功するためにSVDまたは特異値分解が使用され、WFSTまたは重み付き有限状態トランスデューサーベースのデコーディングの使用はモデルの改善の柔軟性をもたらしました。
仮想アシスタントや音声アシスタント、ライブキャプション、音声コマンドなど、音声認識の顕著な応用では、機械学習の技術が使用されます。現在の人気のある音声アシスタントであるSiriやGoogleアシスタントは、データを受信するたびにクラウドプラットフォームに接続し、プライバシーやデータセキュリティに関連する重要な懸念を引き起こします。TinyMLは、データをクラウドプラットフォームに移行する必要をなくし、デバイス上で音声認識を実行することを目指したこの問題の解決策となり得ます。デバイス上での音声認識を実現するための方法の1つは、Tiny Transducerを使用することです。これは、LSTMレイヤーの代わりにDFSMMまたはDeep Feed-Forward Sequential Memory Blockレイヤーと1つのConv1Dレイヤーを使用する音声認識モデルであり、計算要件とネットワークパラメータを削減します。
補聴器
聴力の低下は、世界中で深刻な健康問題であり、人間の耳の能力は一般的に年齢とともに弱まります。これは、中国、日本、韓国など高齢化社会が直面する主要な問題です。現在の補聴器は、周囲のすべての音を増幅するという単純な原理に基づいて動作しており、騒々しい環境では希望する音を識別または区別することが困難です。
TinyMLは、この問題に対する可能な解決策となるかもしれません。補聴器デバイスに音声認識アルゴリズムを使用するTinyLSTMモデルを使用することで、ユーザーは異なる音を区別するのに役立ちます。
ビジョンベースのアプリケーション
TinyMLは、コンピュータビジョンベースのデータセットの処理において重要な役割を果たす可能性があります。高速な出力のために、これらのデータセットはエッジプラットフォーム上で処理する必要があります。これを実現するために、TinyMLモデルはOpenMV H7マイクロコントローラーボードを使用してモデルのトレーニング中に直面する実用的な課題に取り組んでいます。開発者はまた、ARM Cortex M7マイクロコントローラーを使用してAmerican Sign Languageを検出するアーキテクチャを提案しました。このマイクロコントローラーは496KBのフレームバッファRAMのみで動作します。
エッジプラットフォーム上でのコンピュータビジョンベースのアプリケーションのTinyMLへの実装には、高い一般化エラーや高いトレーニング・テストの精度を持つCNNまたは畳み込みニューラルネットワークという主要な課題を克服する必要がありました。しかし、開発者が補完増強手法を使用した場合、モデルはテストデータで98%以上の精度スコアを返し、一般化では約75%の精度を達成しました。
さらに、開発者が補完増強手法を使用した場合、量子化の際にモデルの精度が低下する一方で、推論速度と分類の一般化は向上しました。開発者はまた、さまざまなソースから得られたデータで一般化モデルトレーニングの精度をさらに向上させる方法を提案し、その性能をテストして、携帯用スマートウォッチなどのエッジプラットフォームに展開する可能性を探求しました。
さらに、CNNに関する追加の研究では、リソースが限られたデバイスでCNNアーキテクチャを展開し、望ましい結果を得ることが可能であることが示されました。最近、開発者はTensorFlow Liteを使用して、最小限のメモリフットプリントでARM Cortex M7マイクロコントローラー上で医療用フェイスマスクの検出のためのフレームワークを開発しました。量子化後のモデルサイズは約138KBであり、ターゲットボード上での推論速度は約30FPSでした。
TinyMLをコンピュータビジョンベースのアプリケーションに応用するもう1つの方法は、視覚障害者が日常生活で簡単に移動できるようにするために杖に取り付けられるジェスチャー認識デバイスを実装することです。開発者はジェスチャーデータセットを使用し、分類アルゴリズムでProtoNNモデルをトレーニングするためにデータセットを使用しました。セットアップから得られた結果は正確で、デザインは低コストで、満足のいく結果を提供しました。
TinyMLのもう1つの重要な応用は、リソースとオンボードの計算能力の不足から自動運転および自律車産業においてです。この問題に対処するために、開発者はTinyCNNモデルを基にしたクローズドループ学習方法を導入しました。この方法では、ランタイムで画像をキャプチャするオンライン予測モデルが提案されました。自動運転にTinyMLを実装する際に開発者が直面した主な問題は、オフラインデータで動作するようにトレーニングされた意思決定モデルがオンラインデータと同じようにうまく機能しない可能性があることです。自動車や自動運転車のアプリケーションを最大限に活用するためには、モデルがリアルタイムデータに適応できるようにすることが理想的です。
データパターンの分類と圧縮
現在のTinyMLフレームワークの最大の課題の一つは、オンラインのトレーニングデータに適応することです。この問題に対処するために、開発者はTinyOLまたはTinyMLオンライン学習として知られる方法を提案しました。これにより、マイクロコントローラーユニット上でのインクリメンタルなオンライン学習を許可し、モデルをIoTエッジデバイスで更新することができます。この実装はC++プログラミング言語を使用して行われ、TinyOLアーキテクチャに追加のレイヤーが追加されました。
さらに、開発者はArduino Nano 33 BLEセンサーボードの自己符号化を行い、トレーニングされたモデルは新しいデータパターンを分類することができました。さらに、開発作業には、デバイストレーニングパターンをオンラインでサポートするために、効率的かつより最適化されたアルゴリズムの設計も含まれています。
TinyOLとTinyMLの研究によると、アクティベーションレイヤーの数は、リソースが制約されたIoTエッジデバイスにとって重要な問題でした。この問題に対処するために、開発者は新しいTinyTLまたはTiny Transfer Learningモデルを導入し、IoTエッジデバイス上でのメモリの利用をより効果的にし、アクティベーションのための中間レイヤーの使用を回避しました。さらに、開発者は「lite-residualモジュール」という新しいバイアスモジュールも導入し、適応能力を最大化し、特徴抽出器が残差特徴マップを発見できるようにしました。
全ネットワークの微調整と比較すると、結果はTinyTLアーキテクチャに有利であり、結果はTinyTLがメモリのオーバーヘッドを約6.5倍削減し、適度な精度の損失を示したことを示しています。最後のレイヤーが微調整されると、TinyMLは精度を34%向上させ、適度な精度の損失を示しました。
さらに、データ圧縮の研究では、データ圧縮アルゴリズムは携帯デバイス上で収集されたデータを管理する必要があります。このため、開発者はTiny Anomaly CompressorまたはTACを提案しました。TACはSwing Door Trending(SDT)およびDiscrete Cosine Transform(DCT)アルゴリズムを上回る性能を発揮しました。さらに、TACアルゴリズムは、最大98%の圧縮率を達成し、3つのアルゴリズムの中で最も優れたピーク信号対雑音比を持ちました。
健康診断
新型コロナウイルスの世界的なパンデミックは、咳や風邪に関連する呼吸器症状を継続的に検出するためのTinyMLの実装の新しい可能性を開いています。中断しないモニタリングを保証するために、開発者はマルチモデル設定で動作するCNNモデルTiny RespNetを提案しました。このモデルはXilinx Artix-7 100t FPGA上に展開され、デバイスが情報を並列に処理できるようになり、高い効率性と低い消費電力を実現します。また、TinyRespモデルは、患者の音声、音声録音、および人口統計情報を入力として受け取り、咳に関連する症状を3つの異なるデータセットで分類します。
さらに、開発者はエッジデバイスでの深層学習計算を実行できるモデルであるTinyDLというTinyMLモデルも提案しました。TinyDLモデルはスマートウォッチやウェアラブルデバイスに展開でき、健康診断のための性能分析も実行することができます。TinyDLを携帯デバイスに展開するために、LSTMモデルが設計され、特定のウェアラブルデバイス用に特別にトレーニングされ、収集されたデータを入力として使用しました。このモデルは約75〜80%の精度スコアを持ち、オフデバイスデータでも動作することができました。これらのモデルはエッジデバイス上で実行されることで、IoTデバイスが直面している現在の課題を解決する可能性を示しました。
最後に、開発者は高齢者の健康状態を推定し分析するための別のアプリケーションも提案しました。このモデルはデバイス上で証明可能性と迅速な促進を可能にするアグノスティックフレームワークを使用しており、リアルタイムで空間的な体のポーズを検出するためにボディポーズ検出アルゴリズムと顔のランドマークを組み合わせています。
エッジコンピューティング
TinyMLの主な応用分野の一つはエッジコンピューティングです。世界中のデバイスを接続するためのIoTデバイスの使用の増加に伴い、クラウドアーキテクチャの負荷を減らすためにエッジデバイスを設定することが重要です。これらのエッジデバイスには個別のデータセンターが搭載され、クラウドアーキテクチャに頼らずにデバイス自体で高度なコンピューティングを行うことができます。その結果、クラウドへの依存を減らし、レイテンシを低減し、ユーザーのセキュリティとプライバシーを向上させ、帯域幅を減らすことになります。
エッジデバイスは、TinyMLアルゴリズムを使用することで、電力、計算、およびメモリ要件に関連する現在の制約の解決に役立ちます。以下の画像で詳しく説明されています。
さらに、TinyMLは、これらの機械が直面している現在の制限を解決することにより、無人航空機(UAV)の使用と応用も向上させることができます。 TinyMLの使用により、エネルギー効率の高いデバイスを開発者が実装できるため、これらのUAVのコントローラとして機能することができます。
脳-コンピュータインターフェース(BCI)
TinyMLは、医療産業において重要な応用があり、がんおよび腫瘍の検出、ECGおよびEEG信号を使用した健康予測、感情知性などのさまざまな領域で高い利益をもたらすことができます。 TinyMLの使用により、適応型深部脳刺激(aDBS)が臨床適応に成功することができます。 TinyMLの使用により、aDBSは脳信号の侵襲的な記録を使用して、病気に関連する生物マーカーとその症状を特定することができます。
さらに、医療産業ではしばしば患者の大量のデータを収集し、このデータを処理して病気の早期段階での患者の治療のための具体的な解決策にたどり着く必要があります。その結果、非常に効果的かつ安全性の高いシステムを構築することが重要です。 TinyMLモデルをIoTアプリケーションと組み合わせると、ヘルスケアインターネットオブシングス(H-IoT)と呼ばれる新しい領域が生まれます。 H-IoTの主な応用は、診断、モニタリング、物流、拡散制御、および支援システムです。患者の健康をリモートで検出および分析する能力を持つデバイスを開発したい場合、グローバルなアクセシビリティと低遅延を備えたシステムを開発することが不可欠です。
自律走行車
最後に、TinyMLは自律走行車産業で広範な応用があります。これらの車両は、人物追跡、軍事目的、および産業応用など、さまざまな方法で利用することができます。オブジェクトの検索時に効率的にオブジェクトを識別できる能力が、これらの車両の主な要件です。
現在、自律走行車および自律走行は、特にミニまたは小型車の開発時には比較的複雑なタスクです。最近の開発は、CNNアーキテクチャを使用して、GAP8 MCI上にモデルを展開することで、ミニ車の自律走行の応用を改善する潜在能力を示しています。
課題
TinyMLはAIおよびML業界で比較的新しいコンセプトであり、進歩にもかかわらず、エッジおよびIoTデバイスの大規模な展開に必要なほど効果的ではありません。
TinyMLデバイスが現在直面している最大の課題は、これらのデバイスの電力消費です。理想的には、埋め込み型エッジおよびIoTデバイスは、10年以上にわたるバッテリ寿命を持つことが期待されています。たとえば、2Ahバッテリで稼働するIoTデバイスは、デバイスの消費電力が約12 uaである場合、10年以上のバッテリ寿命を持つはずです。しかし、温度センサ、MCUユニット、およびWiFiモジュールを備えたIoTアーキテクチャでは、現在の消費電力は約176.4 mAであり、この消費電力では、バッテリ寿命は必要な10年間ではなく、わずか11時間しか持続しません。
リソース制約
アルゴリズムの一貫性を維持するためには、電力の供給を維持することが重要であり、現在の状況では、TinyMLデバイスへの制限された電力供給が重要な課題となっています。さらに、メモリ制限も重要な課題であり、モデルの展開には高いメモリ量が必要であり、効果的かつ正確に動作するための要件となっています。
ハードウェア制約
ハードウェア制約により、TinyMLアルゴリズムの広範な展開が困難になります。ハードウェアデバイスの異質性が原因で、数千ものデバイスがあり、それぞれが独自のハードウェア仕様と要件を持っています。その結果、TinyMLアルゴリズムは現在、個々のデバイスごとに調整する必要があり、大規模な展開が難しいという大きな問題があります。
データセットの制約
TinyMLモデルの主な問題の1つは、既存のデータセットをサポートしていないことです。エッジデバイスは外部センサーを使用してデータを収集するため、電力やエネルギーの制約があります。そのため、既存のデータセットを効果的にTinyMLモデルを訓練することは難しいです。
最終的な考え
ML技術の発展により、IoTエコシステムでは革命と視点の変化が起こりました。MLモデルをIoTデバイスに統合することで、これらのエッジデバイスは外部の人間の入力なしで自己で知的な判断を行うことができます。しかし、従来のMLモデルは高い電力、メモリ、計算要件を持っており、リソースに制約のあるエッジデバイスに展開するのは困難です。
その結果、AIの新しい分野がMLをIoTデバイスに使用するために割り当てられ、TinyMLと呼ばれました。TinyMLは、リソースに制約のあるデバイスでもAIとMLのパワーを利用して高い精度、知能、効率を確保することができるMLフレームワークです。
この記事では、リソースに制約のあるIoTデバイスにTinyMLモデルを実装する方法について説明しました。この実装にはモデルの訓練、ハードウェア上でのモデルの展開、および量子化技術の実行が必要です。ただし、現在の範囲では、IoTおよびエッジデバイスに展開するためのMLモデルには、ハードウェアやフレームワークの互換性などの複雑さや制約があります。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles