この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式サイトにアクセスして許可を申請してください。 NASA によって始められた電子機器の小型化は、消費者製品業界全体のトレンドとなりました。今では、ベートーヴェンの全作品を襟バッジにつけて、ヘッドホンで聴いています。 —ニール・ドグラース・タイソン、天体物理学者、科学評論家 […] 超低電力組み込みデバイスの登場と、マイクロコントローラ向け TensorFlow Lite などの組み込み機械学習フレームワークの導入により、AI 搭載 IoT デバイスの大幅な普及が期待できます。 —ハーバード大学准教授、ヴィジェイ・ジャナパ・レッディ 組み込みデバイス向け TinyML の概要 これはマイクロ機械学習に関する一連の記事の最初のものです。この記事の目的は、読者にマイクロ機械学習の考え方とその将来の可能性を紹介することです。特定のアプリケーション、実装、チュートリアルに関する詳細な説明は、このシリーズの今後の記事で取り上げます。 導入過去 10 年間で、プロセッサ速度の向上とビッグデータの出現により、機械学習アルゴリズムの規模が飛躍的に拡大しました。当初、このモデルは、中央処理装置 (CPU) 内の 1 つ以上のコアを使用してローカル マシン上で実行できるほど小さいものでした。 その後すぐに、グラフィックス プロセッシング ユニット (GPU) を使用したコンピューティングが、より大きなデータセットを処理するために必要となり、SaaS プラットフォーム (Google Colaboratory など) や IaaS (Amazon EC2 インスタンスなど) などのクラウドベースのサービスの導入により、よりアクセスしやすくなりました。この時点では、アルゴリズムはまだ単一のマシン上で実行できます。 最近では、約 8 個の GPU に相当するパワーを備えた特殊な特定用途向け集積回路 (ASIC) やテンソル処理ユニット (TPU) が開発されています。これらのデバイスは、より多くの、より大きなモデルを構築するために、複数のシステムに学習を分散する機能が強化されています。 これは最近、GPT-3アルゴリズム(2020 年 5 月リリース) のリリースで最高潮に達しました。このアルゴリズムは、1,750 億個のニューロンを含む驚異的なネットワーク アーキテクチャを誇ります。これは、人間の脳に存在するニューロンの数 (約 850 億個) の 2 倍以上です。これは、これまでに作成された次に大きいニューラル ネットワークである Turing-LG (2020 年 2 月にリリースされ、約 175 億のパラメーターを含む) のニューロン数の 10 倍以上です。ある推定によれば、このモデルのトレーニングには約1,000万ドルの費用がかかり、約3GWhの電力(原子力発電所3基が1時間に発電する電力量にほぼ相当)を消費する。 GPT-3とTuring-LGの成果は称賛に値するが、当然ながら業界関係者の中にはAI業界の二酸化炭素排出量の増大を批判する者もいる。しかし、これは人工知能コミュニティにおけるよりエネルギー効率の高いコンピューティングへの関心を刺激することにも役立つでしょう。より効率的なアルゴリズム、データ表現、計算などのアイデアは、一見無関係な分野であるマイクロ機械学習の焦点となってきました。 Tiny Machine Learning (tinyML) は、機械学習と組み込み IoT (モノのインターネット) デバイスの交差点です。この分野は、多くの産業に革命を起こす可能性を秘めた新興の工学分野です。 tinyML の主な業界受益者は、エッジ コンピューティングとエネルギー効率の高いコンピューティングの分野です。 TinyML は、モノのインターネット (IoT) の概念から生まれました。 IoT の従来の概念は、ローカル デバイスからクラウドにデータを送信して処理することです。このコンセプトについては、プライバシー、レイテンシー、ストレージ、エネルギー効率など、いくつかの懸念を表明する人もいます。 エネルギー効率。データの送信(有線または無線のいずれか)は非常にエネルギーを消費します。オンボードの計算(具体的には乗算ユニット)よりも約 1 桁多くのエネルギーを消費します。独自のデータ処理を実行できる IoT システムを開発することが、最もエネルギー効率の高いアプローチです。 AI の先駆者たちは、この「データ中心」コンピューティング (クラウド モデルの「コンピューティング中心」とは対照的) のアイデアについてしばらく前から議論しており、現在、それが実現し始めています。 プライバシー。送信されたデータはプライバシー侵害の対象となる可能性があります。このデータは悪意のある人物によって傍受される可能性があり、データがクラウドなどの単一の場所に保存されると、本質的に安全性が低下します。これにより、データが主にデバイス上に保持され、通信が最小限に抑えられるため、セキュリティとプライバシーが向上します。 ストレージ。多くの IoT デバイスでは、取得するデータは価値がありません。建物の入り口を24時間監視カメラで記録していると想像してください。一日の大部分は何も起こらないので、カメラの映像は役に立ちません。必要なときにのみアクティブになるよりスマートなシステムを導入することで、必要なストレージ容量が少なくなり、クラウドに転送する必要があるデータの量も削減されます。 遅れ。 Amazon Alexa などの標準的な IoT デバイスでは、これらのデバイスはデータをクラウドに送信して処理し、アルゴリズムの出力に基づいて応答を返します。その意味では、このデバイスは、デバイス自身と Amazon のサーバー間の伝書鳩のように、クラウド モデルへの便利なゲートウェイに過ぎません。このデバイスは愚かであり、結果を生成するにはインターネットの速度に完全に依存します。インターネットの速度が遅いと、Amazon の Alexa も遅くなります。自動音声認識を搭載したスマートIoTデバイスでは、外部通信への依存度が減少(またはゼロ)するため、遅延が短縮されます。 これらの問題により、エッジ デバイス (クラウドの「エッジ」にあるデバイス) で処理アクティビティを実行するというアイデアであるエッジ コンピューティングが開発されました。これらのデバイスは、メモリ、計算、電力の点でリソースが非常に制限されているため、より効率的なアルゴリズム、データ構造、計算方法の開発が促進されます。 このような改善は、より大規模なモデルにも適用され、モデルの精度に影響を与えることなく、機械学習モデルの効率を桁違いに向上させる可能性があります。たとえば、Microsoft が開発した Bonsaiアルゴリズムは2 KB と小さいですが、そのパフォーマンスは一般的な 40 MB の kNN アルゴリズムや 4 MB のニューラル ネットワークよりも優れています。この結果は大したことではないように思えるかもしれませんが、わずか 1/10,000 サイズのモデルで同じ精度が得られるというのは、非常に驚くべきことです。このような小さなモデルは、2 KB のメモリを備えた Arduino Uno で実行できます。つまり、このような機械学習モデルを 5 ドルのマイクロコントローラで構築できるようになりました。 私たちは、機械学習がコンピューティング中心のコンピューティングとデータ中心のコンピューティングという 2 つのコンピューティング パラダイムの間で分岐している興味深い岐路に立っています。コンピューティング中心のパラダイムでは、データはデータセンター内のインスタンスによって保存および分析されますが、データ中心のパラダイムでは、処理はデータの発生元でローカルに実行されます。コンピューティング中心のパラダイムの上限に急速に近づいているように見えますが、データ中心のパラダイムに関する作業はまだ始まったばかりです。 現代の世界では、IoT デバイスと組み込み機械学習モデルはますます普及しています (2020 年末までにアクティブデバイスが 200 億台を超えると推定されています)。それらの多くは、気づかないかもしれません。スマートドアベル、スマートサーモスタット、2 つの単語を言うだけで「起動」するスマートフォン、または単に電話を取るだけで起動するスマートフォン。この記事の残りの部分では、tinyML の仕組みと、その現在および将来のアプリケーションについてさらに詳しく説明します。 クラウド内の階層 (出典: eBizSolutions) TinyMLの例以前は、デバイスがさまざまなアクションを実行するには複雑な回路が必要でした。現在、機械学習により、このハードウェアの「インテリジェンス」をソフトウェアに抽象化することが可能になり、組み込みデバイスはますますシンプル、軽量、柔軟になっています。 機械学習を組み込みデバイスに適用する課題は大きいですが、この分野では大きな進歩が遂げられています。マイクロコントローラにニューラル ネットワークを導入する際の主な課題は、メモリ フットプリントの小ささ、電力の制限、計算能力の制限です。 おそらく、TinyML の最も明白な例はスマートフォン内にあります。これらのデバイスは、Android スマートフォンの「Hey Google」や iPhone の「Hey Siri」などの「ウェイクワード」を常にアクティブに待機しています。最新の iPhone では 1.85GHz で動作するスマートフォンのメインの中央処理装置 (CPU) でこれらのアクティビティを実行すると、わずか数時間でバッテリーが消耗します。ほとんどの人が 1 日に最大数回使用するものの場合、このレベルの消費は許容できません。 この問題に対処するために、開発者は、丸い CR2032「コイン」電池などの小型電池で駆動できる特殊な低電力ハードウェアを開発しました。これにより、基本的に画面がオンになっていない限り、CPU が実行されていないときでもこれらの回路はアクティブなままになります。 回路の消費電力はわずか 1 ミリワットで、標準の CR2032 電池を使用して最大 1 年間電力を供給できます。 そうは思えないかもしれないが、それは大きな問題だ。多くの電子機器にとって、エネルギーは制限要因となります。主電源を必要とするデバイスは配線のある場所に限定されており、同じ場所に 12 個のデバイスが存在すると、すぐに手に負えなくなる可能性があります。主電源は非効率で高価です。主電源電圧(米国では約 120 V で動作)を一般的な回路電圧範囲(通常は約 5 V)に変換すると、大量のエネルギーが浪費されます。ノートパソコンの充電器を持っている人なら、プラグを抜くときにこれを知っているでしょう。電圧変換プロセス中、充電器内部の変圧器によって発生する熱は、電圧変換プロセス中の無駄なエネルギーとなります。 バッテリーを搭載したデバイスでもバッテリー寿命には限りがあり、頻繁にドッキングする必要があります。多くの消費者向けデバイスは、バッテリーで 1 営業日しか持たないように設計されています。 TinyML デバイスはコインサイズのバッテリーで 1 年間動作し続けることができるため、遠隔環境に設置して必要なときだけ通信することでエネルギーを節約できます。 ウェイクワードは、スマートフォンにシームレスに組み込まれている唯一の TinyML ではありません。加速度計のデータは、誰かが電話を手に取って CPU を起動し、画面をオンにしたかどうかを判断するために使用されます。 明らかに、これらは TinyML の唯一の応用ではありません。実際、TinyML は、企業や愛好家に、よりスマートな IoT デバイスを作成するための多くの刺激的な機会を提供します。データの重要性がますます高まっている世界では、機械学習リソースを遠隔地のメモリに制約のあるデバイスに配布する機能は、農業、天気予報、地震学などのデータ集約型産業に大きなメリットをもたらす可能性があります。 エッジデバイスにデータ駆動型処理能力を持たせることで、産業プロセスにパラダイムシフトがもたらされることは間違いありません。たとえば、デバイスが作物を監視し、土壌の水分、特定のガス(たとえば、リンゴが熟すとエタンが放出される)、または特定の大気条件(たとえば、強風、低温、高湿度)などの特性を検出したときに「ヘルプ」メッセージを送信できれば、作物の成長が大幅に促進され、収穫量が増加します。 別の例として、スマートドアベルには、顔認識を使用して誰がいるのかを判断できるカメラが搭載されている場合があります。これはセキュリティ目的で使用したり、誰かがいるときにドアベルのカメラ映像を家の中のテレビに送り、住人が誰がドアの前にいるかを知るために使用することもできます。 TinyML は現在、次の 2 つの領域に重点を置いています。 キーワードの発見。ほとんどの人はすでにこのアプリをよく知っています。 「Hey Siri」や「Hey Google」はキーワードの例です(多くの場合、「ホットワード」や「ウェイクワード」と同義語として使用されます)。このようなデバイスは、マイクからの音声入力を継続的に聞き、学習したキーワードに対応する特定の音のシーケンスにのみ反応するようにトレーニングされます。これらのデバイスは自動音声認識 (ASR) アプリケーションよりもシンプルで、使用するリソースもそれに応じて少なくなります。 Google スマートフォンなどの一部のデバイスでは、セキュリティのためにスピーカー認証を提供するカスケード アーキテクチャが使用されています。 視覚的な目覚ましの言葉。ウェイクワードに似た画像ベースのアプローチとして、ビジュアルウェイクワードと呼ばれるものがあります。これらの単語は、何かが存在するか存在しないかを示す画像の二元分類であると考えてください。たとえば、スマート照明システムは、人の存在を検出すると点灯し、人が立ち去ると消灯するように設計される場合があります。同様に、野生動物写真家は、特定の動物がいるときに写真を撮ったり、人を見つけたときに防犯カメラを使用して写真を撮ったりすることができます。 以下は、TinyML の現在の機械学習の使用例のより広範な概要です。 TinyML の機械学習ユースケース (ソース画像: NXP)。 TinyMLはどのように機能しますか?TinyMLアルゴリズムは、従来の機械学習モデルとほぼ同じように動作します。通常、モデルはユーザーのコンピューターまたはクラウドで定期的にトレーニングされます。トレーニング後から tinyML の実際の作業が始まります。このプロセスは、ディープ コンプレッションとも呼ばれます。 深圧縮プロセスの概略図。出典: ArXiv. モデルの蒸留トレーニング後、モデルはよりコンパクトな表現を持つモデルを作成するように変更されます。剪定と知識蒸留は、この目的のために使用される 2 つの手法です。 知識蒸留の基本的な考え方は、大規模なネットワーク内に一定のスパース性または冗長性があるというものです。大規模なネットワークは表現力が高くなりますが、ネットワーク容量が飽和していない場合は、表現力がより低い(つまり、ニューロンが少ない)小規模なネットワークで表現できます。 Hinton ら (2015) は、教師モデルに埋め込まれた情報を、生徒モデルに転送される「ダーク ナレッジ」と呼びました。 次の図は、知識蒸留のプロセスを示しています。 深圧縮プロセスの概略図。この図では、「教師」はトレーニング済みの畳み込みニューラル ネットワーク モデルです。教師の役割は、その「知識」を、より少ないパラメータを持つ畳み込みネットワーク モデルである「生徒」に転送することです。このプロセスは知識蒸留と呼ばれ、同じ知識をより小さなネットワークにカプセル化するために使用され、メモリが制限されたデバイスでも使用できるようにネットワークを圧縮する方法を提供します。出典: ArXiv. この図では、「教師」はトレーニングされたニューラル ネットワーク モデルです。教師の役割は、その「知識」を、より少ないパラメータを持つ小さなネットワーク モデル、つまり「生徒」に転送することです。このプロセスは、同じ知識をより小さなネットワークにカプセル化するために使用され、知識表現を圧縮してニューラル ネットワークのサイズを縮小する方法を提供し、メモリ制約の厳しいデバイスでも使用できるようにします。 同様に、プルーニングはモデルの表現をよりコンパクトにするのにも役立ちます。大まかに言えば、剪定は出力予測にほとんど役に立たないニューロンを削除しようとします。これは通常、小さなニューラル ウェイトに関連付けられますが、推論中に大きなウェイトが重要度が高いため保持されます。次に、ネットワークはプルーニングされたアーキテクチャ上で再トレーニングされ、出力を微調整します。 モデルの知識表現を洗練するためのプルーニングの概略図。 定量化蒸留後、モデルはトレーニング後に量子化され、組み込みデバイスのアーキテクチャと互換性のある形式になります。 なぜ定量化する必要があるのでしょうか? 8 ビット演算を使用する ATmega328P マイクロコントローラを使用する Arduino Uno を想像してください。 Uno でモデルを実行するには、モデルの重みを理想的には 8 ビットの整数値として保存する必要があります (多くのデスクトップやラップトップでは 32 ビットまたは 64 ビットの浮動小数点表現が使用されます)。モデルを量子化することで、重みのストレージは 4 分の 1 に削減されます (32 ビット値から 8 ビット値への量子化)。精度への影響は通常はごくわずかです (通常は 1 ~ 3% 程度)。 8 ビット エンコード プロセス中の量子化エラーの図 (これはその後 32 ビット浮動小数点数を再構築するために使用されます)。 (出典: TinyML ブック) 量子化プロセス中に、量子化エラーにより一部の情報が失われる場合があります (たとえば、浮動小数点表現の 3.42 の値は、整数プラットフォームでは 3 に切り捨てられる場合があります)。この問題に対処するために、代替手段として量子化考慮 (QA) トレーニングも提案されています。 QA トレーニングは、トレーニング中に量子化されたデバイスで使用可能な値のみを使用するようにネットワークを制限することです (Tensorflow の例を参照)。 ハフマン符号化エンコーディングはオプションのステップであり、通常は有名なハフマン コーディングを使用して、データを可能な限り最も効率的な方法で保存することにより、モデルのサイズをさらに縮小するために使用されることがあります。 コンパイルモデルが量子化され、エンコードされると、何らかの軽量ニューラル ネットワーク インタープリターで解釈できる形式に変換されます。その中で最も人気があるのは、おそらく TF Lite (サイズは約 500 KB) と TF Lite Micro (サイズは約 20 KB) です。次に、モデルは C またはC++コード (メモリを効率的に使用するためにほとんどのマイクロコントローラが動作する言語) にコンパイルされ、インタープリターによってデバイス上で実行されます。 TInyML アプリケーションのワークフロー (出典: Pete Warden と Daniel Situnayake による TinyML) tinyML のトリックのほとんどは、マイクロコントローラの複雑な世界を扱うことにあります。 TF Lite と TF Lite Micro が非常に小さい理由は、不要な機能が削除されているからです。残念ながら、これにはデバッグや視覚化などの便利な機能が含まれています。つまり、展開中に何か問題が発生した場合、何が起こったのかを判断するのが難しくなる可能性があります。 さらに、モデルはデバイスに保存される必要がある一方で、推論も可能でなければなりません。つまり、マイクロコントローラには、(1) オペレーティングシステムとライブラリ、(2) ニューラルネットワークインタープリター (TF Lite など)、(3) 保存されたニューラルウェイトとニューラルアーキテクチャ、(4) 推論中の中間結果を実行できるだけの十分なメモリが必要です。そのため、tinyML の研究論文では、メモリ使用量、乗算ユニット (MAC) の数、精度などとともに、量子化アルゴリズムのピーク時のメモリ使用量がよく引用されています。 デバイス上でトレーニングしてみませんか?デバイス上でのトレーニングでは、さらに複雑になります。数値精度が失われるため、ネットワークを適切にトレーニングするために必要な精度レベルを維持することが非常に困難になります。標準的なデスクトップ コンピューターでの自動微分法は、機械の精度とほぼ同等の精度です。導関数を 10^-16 の精度で計算するのは驚くべきことですが、8 ビット値で自動微分を使用すると、結果は劣ってしまいます。バックプロパゲーションプロセス中に、これらの導関数が合成され、最終的にニューラル ネットワーク パラメータを更新するために使用されます。数値精度が低いため、このようなモデルの精度は低くなる可能性があります。 つまり、ニューラル ネットワークは 16 ビットおよび 8 ビットの浮動小数点数を使用してトレーニングされています。 ディープラーニングにおける数値精度の低下を研究した最初の論文は、2015 年に Suyog Gupta 氏とその同僚が発表した論文「数値精度が制限されたディープラーニング」です。この論文の結果は興味深いもので、32 ビットの浮動小数点表現を、精度をほとんど損なうことなく 16 ビットの固定小数点表現に縮小できることを示しています。ただし、これはランダムな丸めを使用する場合にのみ当てはまります。平均すると、偏りのない結果が生成されるためです。 2018年、Naigang Wang氏とその同僚は論文「8ビット浮動小数点数を使用したディープニューラルネットワークのトレーニング」で、8ビット浮動小数点数を使用したニューラルネットワークのトレーニングを行いました。推論の代わりに 8 ビットの数値を使用してニューラル ネットワークをトレーニングするという課題は、バックプロパゲーション中に勾配計算の忠実度を維持する必要があるため、達成がはるかに困難です (これは自動微分化を使用して機械精度で達成できます)。 計算はどれくらい効率的ですか?モデルをカスタマイズして、計算効率を高めることもできます。 MobileNetV1 や MobileNetV2 など、モバイル デバイスに広く導入されているモデル アーキテクチャがその良い例です。これらは本質的に畳み込みニューラル ネットワークであり、畳み込み演算を再形成して計算効率を高めます。このより効率的な形式の畳み込みは、深さ方向に分離可能な畳み込みと呼ばれます。ハードウェア ベースのパフォーマンス分析とニューラル ネットワーク アーキテクチャ検索を使用してアーキテクチャのレイテンシを最適化することもできますが、これはこの記事の範囲外です。 次なるAI革命リソースが限られたデバイス上で機械学習モデルを実行できることにより、多くの新しい可能性が開かれます。よりエネルギー効率の高い標準的な機械学習を開発することは、データサイエンスの環境への影響に関する懸念を和らげるのに役立ちます。さらに、tinyML により、組み込みデバイスはデータ駆動型アルゴリズムに基づく新しいタイプのインテリジェンスを持つことができ、予防保守から森林での鳥の鳴き声の検出まで、あらゆる用途に使用できます。 機械学習の専門家の中には、モデルのサイズを拡大し続ける人もいることは間違いありませんが、メモリ、コンピューティング、エネルギー効率の高い機械学習アルゴリズムに向かう新たなトレンドが生まれています。 TinyML はまだ初期段階にあり、この分野の専門家はほとんどいません。興味のある読者は、tinyML 分野の重要な論文の一部である参考文献にある論文をいくつか読んでみることをお勧めします。この分野は急速に発展しており、今後数年間で産業分野における人工知能の新たな重要な応用分野となるでしょう。このスペースを監視してください。 |
<<: トレーニング時間とパラメータの数は100分の1に削減され、ラベルは予測に直接使用され、GNNを超えるパフォーマンスを実現
>>: 今週の土曜日は成都へ行こう! Baidu Wenxin (ERNIE) がエンタープライズレベルの NLP モデルを迅速にカスタマイズする方法の分析
量子コンピューティングと人工知能の融合により、大きな期待と可能性を秘めた研究の最前線である量子人工知...
「機械が人に代わる」という無人化とインテリジェント化の潮流は、伝統的な飲食業界のあらゆる分野に広が...
この時代において、AIは科学技術の将来の発展の重要な支点となり、AIチップは産業の発展を牽引する新た...
専門家の混合 (MoE) は、LLM の効率性と精度を向上させるためによく使用される手法です。このア...
最近、Google Brain の従業員であり TensorFlow プロダクト マネージャーでもあ...
導入企業にとって、機械学習チームを 0 から 1 まで構築する方法は、多くの企業にとって非常に頭の痛...
[[239303]] [51CTO.com クイック翻訳] 10年以上の開発を経て、推奨システムはイ...
[[241804]]ビッグデータダイジェスト制作編纂者:大迪、彭耀慧、茶曦、唐元、夏亜偉金融の世界...
今日、機械学習モデルはビジネス上の意思決定の主な原動力となっています。他のビジネス戦略と同様に、これ...
現時点では失明を治す方法はないが、初めての人工視覚システムの移植が初めて成功し、失明した人々の視力を...
ディープラーニングやニューラルネットワークの分野では、研究者は通常、GPU なしでは作業できません。...
最新の KDnuggets 調査では、データ サイエンティストの実際の業務で最もよく使用されるアルゴ...