人工知能 (AI) はクラウドからエッジへと急速に移行しており、ますます小型の IoT デバイスに導入されています。しかし、これらの IoT デバイスはサイズが非常に小さいことが多く、消費電力、遅延、精度など多くの課題に直面しています。従来の機械学習モデルでは要件を満たすことができません。では、マイクロ機械学習はどうでしょうか? NASAのおかげで、小型電子機器は完全な消費者向け製品産業になりました。今では、ベートーヴェンの楽曲全体をピンバッジに付けて、ヘッドホンで聴くことができます。 —ニール・ドグラース・タイソン、天体物理学者、科学評論家 超低電力組み込みデバイスの普及と、マイクロコントローラ向けの TensorFlow Lite などの組み込み機械学習フレームワークの導入により、AI 駆動型 IoT デバイスの大量導入が可能になりました。 ——ハーバード大学准教授、ヴィジェイ・ジャナパ・レッディ 組み込みデバイス向け TinyML の図。 この記事は、Tiny Machine Learning に関する一連の記事の最初のもので、読者に Tiny Machine Learning の概念と将来の可能性を紹介することを目的としています。以降の記事では、特定のアプリケーション、実装、および関連するチュートリアルについて詳しく説明します。 TinyMLの紹介 過去 10 年間で、プロセッサ速度の向上とビッグデータの出現により、機械学習アルゴリズムのサイズが飛躍的に増大しました。当初、モデルは CPU の 1 つ以上のコアを使用してローカル コンピューター上で実行できるほど小さいです。 その後すぐに、GPU を使用したコンピューティングは、より大きなデータセットを処理するために必要となり、SaaS プラットフォーム (Google Colaboratory) や IaaS (Amazon EC2 インスタンス) などのクラウド サービスの導入により、よりアクセスしやすくなりました。この時点では、アルゴリズムはまだ単一のマシン上で実行できます。 最近では、約 8 個の GPU に相当するパワーを備えた特定用途向け集積回路 (ASIC) と Tensor Processing Unit (TPU) が開発されています。これらのデバイスは、複数のシステムに学習を分散する能力を強化し、より大きなモデルの開発を試みます。 この問題は、GPT-3アルゴリズム(2020年5月)のリリースによって頂点に達しました。GPT-3のネットワーク構造には、驚異的な1,750億個のニューロンが含まれています。これは、現在人間の脳に存在するニューロン数(約850億個)の2倍以上です。これは、これまでに作成された2番目に大きいニューラルネットワークであるTuring-NLG(2020年2月にリリースされ、約175億のパラメータを持つ)のニューロン数の10倍です。ある推定によれば、このモデルのトレーニングには約1,000万ドルの費用がかかり、約3GWhの電力(原子力発電所3基が1時間に発電する電力量にほぼ相当)が使用されたという。 GPT-3とTuring-NLGの成果は称賛に値するが、業界関係者の中にはAI業界の二酸化炭素排出量の増大を批判する者もいる。しかし、これはまた、よりエネルギー効率の高いコンピューティングに対する AI コミュニティの関心を喚起するのにも役立ちました。より効率的なアルゴリズム、データ表現、計算など、マイクロ機械学習の焦点となっています。 Tiny Machine Learning (TinyML) は、機械学習と組み込み IoT (モノのインターネット) デバイスの交差点です。この分野は、多くの産業に革命を起こす可能性を秘めた新興の工学分野です。 TinyML の業界受益者は、モノのインターネット (IoT) の概念から生まれたエッジ コンピューティングとエネルギー効率の高いコンピューティングです。 IoT の従来の考え方は、ローカル デバイスからクラウドにデータを送信して処理することです。プライバシー、レイテンシー、ストレージ、エネルギー効率の分野でこのコンセプトについて懸念を表明する人もいます。 エネルギー効率:データの送信 (有線または無線) には、オンボード計算 (特に乗算ユニット) よりも桁違いに多くのエネルギーが消費されます。独自のデータ処理が可能な IoT システムを開発することが、最もエネルギー効率の高いアプローチです。 プライバシー:データを送信するとプライバシーが侵害される可能性があります。データは悪意のある人物によって傍受される可能性があり、クラウドなどの単一の場所に保存されている場合は安全性が低下します。データをデバイス上に保持し、通信を最小限に抑えることで、データのセキュリティとプライバシーを向上させます。 ストレージ:多くの IoT デバイスでは、キャプチャされたデータは無価値です。建物の入り口を 24 時間記録する防犯カメラを想像してください。その日のほとんどの時間、何も起こらなかったため、カメラの映像は役に立たなかった。必要に応じて起動し、ストレージ容量を削減するよりスマートなシステムにより、クラウドに転送する必要があるデータの量が削減されます。 潜在的な要因: Amazon Alexa などの標準的な IoT デバイスの場合、これらのデバイスはデータをクラウドに送信して処理し、アルゴリズムの出力に基づいて応答を返します。この意味では、このデバイスは、ユーザーと Amazon のサーバー間の「伝書鳩」のように、クラウド モデルへの便利なポータルにすぎません。このデバイスは非常に愚かであり、結果を生成するにはインターネットの速度に完全に依存します。インターネットの速度が遅いと、Amazon Alexa も遅くなります。自動音声認識機能を搭載したスマート IoT デバイスでは、外部通信への依存度が低減されるため、遅延が短縮されます。 これらの問題により、エッジ デバイス (クラウドのエッジにあるデバイス) で処理アクティビティを実行するプロセスであるエッジ コンピューティングが開発されました。これらのデバイスは、メモリ、計算、電力消費の点でリソースが非常に制限されているため、より効率的なアルゴリズム、データ構造、計算方法の開発が可能になりました。 これらの改善は、より大きなモデルにも同様に適用され、精度を損なうことなく機械学習モデルの効率を桁違いに高める可能性があります。たとえば、Microsoft が開発した Bonsai アルゴリズムは 2 KB と小さいですが、一般的な 40 MB の kNN アルゴリズムや 4 MB のニューラル ネットワークよりもパフォーマンスが優れています。この結果は大したことではないように思えるかもしれませんが、モデルのサイズは同じ精度で元のモデルの 1 万分の 1 に縮小されており、非常に印象的です。このような小さなモデルは、2 KB の RAM を使用する Arduino Uno で実行できます。つまり、このような機械学習モデルを 5 ドルのマイクロコントローラーで構築できるようになりました。 機械学習は、コンピューティング中心のコンピューティングとデータ中心のコンピューティングという 2 つのコンピューティング パラダイムに分岐しています。コンピューティング中心のパラダイムでは、データはデータセンターインスタンスによって保存および分析されますが、データ中心のパラダイムでは、ソースデータの処理はローカルで実行されます。コンピューティング中心のパラダイムは急速に限界に達しているように見えますが、データ中心のパラダイムはまだ始まったばかりです。 IoT デバイスと組み込み機械学習モデルはますます一般的になりつつあり、2020 年末までにアクティブ デバイスが 200 億台を超えると推定されていますが、その多くはユーザーが気付いていないかもしれません。スマートドアベル、スマートサーモスタット、そして、いくつかの言葉を言ったり、手に取ったりするだけで起動できるスマートフォン。この記事の残りの部分では、tinyML の仕組みと、その現在および将来のアプリケーションについてさらに詳しく説明します。 クラウドの階層構造 (出典: https://www.thinkebiz.net/what-edge-computing/) TinyML の使用例 これまでは、デバイスがさまざまな動作を実行するためには複雑な回路が必要でした。現在、機械学習によってこのハードウェア インテリジェンスをソフトウェアに抽象化することが可能になりつつあり、組み込みデバイスはますますシンプル、軽量、柔軟になっています。 TinyML の最も顕著な例はスマートフォンです。これらのデバイスには通常、Android スマートフォンの場合は「Hey Google」、iPhone の場合は「Hey Siri」などのウェイクアップワードがあります。スマートフォンはこれらのアクティビティを CPU で処理しますが、最新の iPhone のメイン CPU は 1.85 GHz であり、数時間でバッテリーが消耗する可能性があります。ほとんどの人が 1 日に数回しか使用しないデバイスの場合、このレベルの電力消費は許容できません。 この問題に対処するために、開発者は丸い CR2032 コイン型電池などの小型電池で駆動できる特殊な低電力ハードウェアを作成しました。これにより、CPU が動作していないとき (基本的には画面がオフのとき) でも回路がアクティブなままになります。 回路の消費電力はわずか 1mW で、標準の CR2032 電池を使用して最大 1 年間電力を供給できます。多くの電子機器にとって、エネルギーは制限要因となります。主電源を必要とするデバイスは有線回路に限定されており、一度に 12 個のデバイスが同じ場所にあると、回線がすぐに過負荷になる可能性があります。電力システムは非効率で高価です。主電源電圧 (米国では約 120 V) を一般的な回路電圧 (通常は約 5 V) に変換すると、大量のエネルギーが浪費されます。ノートパソコンの充電器を使用したことがある人なら、充電器を抜くときにこれを知っているでしょう。充電器内部の変圧器によって発生する熱は、電圧変換プロセスでエネルギーを浪費します。 バッテリーを搭載したデバイスであっても、バッテリー寿命には限りがあり、頻繁に充電する必要があります。多くの電子機器のバッテリーは、1 営業日のみ持続するように設計されています。 TinyML デバイスはコインサイズのバッテリーで 1 年間動作するため、遠隔地の環境では必要なときだけ通信を実行して電力を節約できます。 Wake-on-Word は、スマートフォンにシームレスに組み込まれた唯一の TinyML ではありません。加速度計のデータは、誰かが携帯電話を手に取ったかどうかを判断するために使用され、これにより CPU が起動し、画面がオンになります。 明らかに、これは TinyML の唯一の用途ではありません。実際、 TinyML は企業や愛好家に、よりスマートな IoT デバイスを作成する機会を提供します。データの重要性はますます高まっており、遠隔地にあるメモリが限られたデバイスに機械学習リソースを配布することで、農業、天気予報、地震学などのデータ集約型産業にメリットがもたらされます。 エッジデバイスにデータ駆動型処理能力を持たせることで、産業プロセスにパラダイムシフトがもたらされることは間違いありません。たとえば、土壌の水分、特定のガス(リンゴが熟すときに放出されるエタンなど)、特定の大気条件(強風、低温、高湿度など)などの特性を検出すると、検出装置は作物に役立つ情報を送信し、作物の成長を大幅に促進して収穫量を増加させます。 別の例として、スマートドアベルに、顔認識を使用して誰がいるのかを判断するカメラを搭載することもできます。これはセキュリティ目的で使用できますが、誰かがいる場合でも、ドアベルのカメラ映像が家の中のテレビに送信され、住人は誰がドアの前にいるかを知ることができます。 現在、TinyML の主な焦点領域は次の 2 つです。 キーワードの発見。ほとんどの人は、このタイプのアプリケーションにすでに精通しています。 「Hey Siri」や「Hey Google」はキーワードの例です(「ホットワード」や「ウェイクワード」と同義で使われることが多い)。このようなデバイスは、マイクからの音声入力を継続的に聞き、学習したキーワードに対応する特定の音のシーケンスにのみ反応するようにトレーニングされます。これらのデバイスは自動音声認識 (ASR) アプリケーションよりもシンプルで、それに応じて使用するリソースも少なくなります。 Google スマートフォンなどの一部のデバイスでは、セキュリティのためにスピーカー認証を提供するカスケード アーキテクチャが使用されています。 視覚的な目覚ましの言葉。ウェイクワードには、ビジュアルウェイクワードと呼ばれる画像ベースの類似物があります。これは、何かが存在するかどうかを示す画像のバイナリ分類と考えることができます。たとえば、スマート照明システムは、人の存在を検出すると点灯し、人が離れると消灯するように設計できます。同様に、野生動物写真家は特定の動物がいるときに写真を撮るためにこれを使用でき、防犯カメラは人を見つけたときに写真を撮るために使用できます。 TinyML の現在の機械学習の使用例の概要を以下に示します。 TinyML の機械学習ユースケース (ソース画像: NXP)。 TinyMLの仕組み TinyML アルゴリズムは、従来の機械学習モデルとほぼ同じように動作します。通常、これらのモデルはユーザーのコンピューターまたはクラウドでトレーニングされます。トレーニング後、TinyML の作業が実際に開始されるのは、ディープ コンプレッションと呼ばれるプロセスです。 ディープラーニングモデル圧縮フローチャート(出典:https://arxiv.org/pdf/1510.00149.pdf) モデルの蒸留 トレーニングが完了すると、モデルが変更され、よりコンパクトな表現を持つモデルが作成されます。プルーニングと知識の蒸留は、2 つの一般的な方法です。 知識蒸留の基本的な考え方は、大規模なネットワークには一定のスパース性または冗長性があるというものです。大規模なネットワークは表現力が高くなりますが、ネットワーク容量が飽和していない場合は、表現力の低い小規模なネットワーク (つまり、ニューロンの数が少ない) でも表現を行うことができます。 次の図は、知識蒸留のプロセスを示しています。 深圧縮プロセス図(出典:https://arxiv.org/pdf/1510.00149.pdf) 同様に、プルーニングによりモデル表現をよりコンパクトにすることができます。大まかに言えば、プルーニングは出力予測にほとんど影響を与えないニューロンを削除しようとします。通常、より小さなニューラル ウェイトに関連付けられますが、より大きなウェイトは推論中の重要性のため変更されません。次に、ネットワークはプルーニングされたアーキテクチャ上で再トレーニングされ、出力を微調整します。 モデルの知識表現を蒸留するための剪定。 定量化 蒸留後、モデルはトレーニング後に量子化され、組み込みデバイスのアーキテクチャと互換性のある形式に変換されます。 なぜ定量化が必要なのでしょうか? 8 ビット演算を使用する ATmega328P マイクロコントローラを使用する Arduino Uno を想像してください。 Uno でモデルを実行するには、モデルの重みを理想的には 8 ビットの整数として保存する必要があります (多くのデスクトップ コンピューターやラップトップでは 32 ビットまたは 64 ビットの浮動小数点表現が使用されます)。モデルを量子化することで、重みのストレージ サイズが 4 分の 1 に削減されます (例: 32 ビット値から 8 ビット値への量子化)。精度への影響はごくわずかです (通常は 1 ~ 3% 程度)。 8 ビットエンコード時の量子化誤差の概略図 (出典: https://tinymlbook.com/) さらに、量子化プロセス中に、量子化エラーにより一部の情報が失われる可能性があります。この問題に対処するために、代替案として量子化認識 (QA) トレーニングが提案されました。 ハフマン符号化 ハフマン符号化は可変長符号化 (VLC) の一種で、文字の出現確率のみに基づいて、さまざまな文字の先頭の平均長が最短のコードワードを構築します。 コンパイル モデルが量子化され、エンコードされると、何らかの形の小さなニューラル ネットワーク インタープリターで解釈できる形式に変換されます。その中で最も人気があるのは、おそらく TF Lite (サイズは約 500 KB) と TF Lite Micro (サイズは約 20 KB) です。次に、モデルは C または C++ (ほとんどのマイクロコントローラはメモリ効率に優れています) にコンパイルされ、デバイス上のインタープリターによって実行されます。 TinyML アプリケーション ワークフロー (画像ソース: https://tinymlbook.com/) TinyML のトリックのほとんどは、マイクロコントローラの複雑な世界を扱うことから生まれています。 TF LiteとTF Lite Microが小さい理由は、不要な機能がすべて削除されているからです。残念ながら、デバッグや視覚化などの便利な機能もいくつか削除されました。つまり、展開中に何か問題が発生した場合、何が起こったのかを判断するのが困難になる可能性があります。 さらに、モデルがデバイスに保存されている間に推論を実行することもできます。つまり、マイクロコントローラには、(1) オペレーティングシステムとライブラリ、(2) TF Lite などのニューラルネットワークインタープリター、(3) 保存されたニューラルウェイトとニューラルアーキテクチャ、(4) 推論中の中間結果を実行するのに十分なメモリが必要です。そのため、量子化アルゴリズムのピーク時のメモリ使用量は、メモリ使用量、積和演算ユニット (MAC) の数、精度などとともに、TinyML の研究論文で頻繁に引用されています。 デバイスでトレーニングしてみませんか 機器を使ったトレーニングはさらに複雑になります。数値精度が低下するため、ネットワークを適切にトレーニングするために必要な精度レベルを維持することが困難になります。標準的なデスクトップ コンピューターでの自動微分法は、機械の精度とほぼ同等の精度です。 10^-16 の精度で導関数を計算するのは素晴らしいことですが、8 ビット値に自動微分を使用すると結果は悪くなります。バックプロパゲーション中に、これらの導関数が結合され、最終的にニューラル パラメータを更新するために使用されます。数値精度がこのように低いと、モデルの精度も低くなる可能性があります。 そうは言っても、ニューラル ネットワークは 16 ビットと 8 ビットの浮動小数点数の両方を使用してトレーニングされてきました。 ディープラーニングにおける数値精度の削減に関する最初の論文は、2015 年に Suyog Gupta 氏とその同僚によって「Deep Learning with Limited Numerical Precision」として発表されました。論文の結果は、32 ビットの浮動小数点表現を、精度をほとんど損なうことなく 16 ビットの固定小数点表現に縮小できることを示しています。しかし、これは確率的丸めアルゴリズムが使用される唯一のケースです。なぜなら、一般的に、このアルゴリズムは偏りのない結果を生成するからです。 2018 年、Naigang Wang 氏とその同僚は、論文「8 ビット浮動小数点数を使用したディープ ニューラル ネットワークのトレーニング」で、8 ビット浮動小数点数を使用してニューラル ネットワークをトレーニングしました。 8 ビットの数値を使用してニューラル ネットワークをトレーニングすることは、バックプロパゲーション中に勾配計算の忠実度を維持する必要があるため (自動微分化を使用する場合に機械の精度を有効にする)、推論を使用するよりも困難です。 計算はどれくらい効率的ですか? 計算効率を向上させるためにモデルを削減することもできます。 MobileNetV1 や MobileNetV2 など、モバイル デバイスに広く導入されているモデル アーキテクチャがその良い例です。これらは本質的に畳み込みニューラル ネットワークであり、畳み込み演算を再定義して計算効率を高めます。このより効率的な形式の畳み込みは、深さ方向に分離可能な畳み込みと呼ばれます。ハードウェアベースの構成とニューラルアーキテクチャ検索を使用してアーキテクチャのレイテンシを最適化することも可能だが、これらについてはこのホワイトペーパーでは取り上げていない。 次なるAI革命 リソースが制限されたデバイス上で機械学習モデルを実行できることにより、多くの新しい可能性が開かれます。 AI の進歩により、標準的な機械学習のエネルギー効率が向上し、データサイエンスの環境への影響に関する懸念が軽減される可能性があります。さらに、TinyML を使用すると、予防保守から森林での鳥の鳴き声の検出まで、あらゆる用途に使用できるデータ駆動型アルゴリズムに基づく新しいインテリジェンスを組み込みデバイスに付与できます。 一部の ML 実践者は間違いなくモデルのサイズを拡大し続けるでしょうが、メモリ、コンピューティング、エネルギー効率の高い機械学習アルゴリズムを開発するという新たな傾向が現れています。現在、TinyML はまだ初期段階にあり、将来の開発の余地がまだたくさんあります。 |
近年、デジタル変革の波に牽引され、自動車業界は着実な変革、アップグレード、ビジネスの再編を遂げていま...
[[386837]]ジョセフ問題1、2、...n と番号が付けられた n 人が輪になって座り、番号...
会話型人工知能 (AI) の研究では、ChatGPT に代表されるモデルのように、より多くのパラメー...
「スマートシティ」という概念は何十年も前から存在していたが、その最新版では、住民の生活を向上させるた...
World of Warcraft などの MMOARPG ゲームをプレイしたことがあるなら、キャラ...
今年3月、上海市経済情報化委員会は、同市の人工知能の革新と発展を支援する2018年特別プロジェクトの...
LangChain、OpenAI、PineconeDB を使用して、任意のデータ ソースから質問応答...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...