ホームページ > 記事 > テクノロジー周辺機器 > 極小機械学習はディープラーニングをマイクロプロセッサに組み込むことを約束する
翻訳者|Zhu Xianzhong
査読者|Liang Ce Sun Shujuan
深層学習モデルの初期の成功は、大量のデータを備えた大規模サーバーのおかげでした。メモリと GPU クラスター。ディープラーニングの可能性により、ディープ ニューラル ネットワーク用のクラウド コンピューティング サービスを提供する業界が生まれました。その結果、事実上無制限のクラウド リソース上で実行される大規模なニューラル ネットワークは、特に予算が豊富なテクノロジー企業で非常に人気が高まっています。
しかし同時に、近年では逆の傾向も現れています。それは、エッジデバイス向けの機械学習モデルの作成です。 Tiny Machine Learning (TinyML) として知られるこれらのモデルは、メモリと処理能力が限られており、インターネット接続が存在しないか制限されているデバイス上で動作します。
IBM とマサチューセッツ工科大学 (MIT) が共同で実施した最新の研究活動により、畳み込みニューラル ネットワーク (CNN) のピーク メモリ ボトルネックの問題が解決されました。これは、コンピューター ビジョン アプリケーションにとって特に重要な深層学習アーキテクチャです。低メモリおよび低電力のマイクロコントローラーで畳み込みニューラル ネットワーク (CNN) を実行できる McUnETV2 と呼ばれるモデルについては、NeurIPS 2021 カンファレンスで発表された論文で詳しく説明されています。
クラウドディープラーニングは非常に成功していますが、すべての状況に適しているわけではありません。実際、多くのアプリケーションでは、推論タスクをハードウェア デバイス上で直接完了する必要があることがよくあります。たとえば、ドローン救助などの一部のミッション環境では、インターネット接続が保証されていません。医療などの他の分野でも、プライバシー要件や規制上の制約により、データをクラウドに送信して処理することが困難になります。リアルタイムの機械語推論を必要とするアプリケーションの場合、ラウンドトリップ クラウド コンピューティングによって生じる遅延はさらに法外なものになります。
機械学習デバイスを科学的にも商業的にも魅力的なものにするには、上記の条件をすべて満たす必要があります。たとえば、iPhone スマートフォンには顔認識や音声認識を実行する多くのアプリケーションが搭載されており、Android スマートフォンでも翻訳ソフトウェアを直接実行できます。さらに、Apple Watch はすでに機械学習アルゴリズムを使用して動きと ECG パターンを検出できます(注: ECG は心電図の略語で、EKG とも呼ばれます。これは、トリガーとなる電気信号シーケンスの時間ノードを記録するために使用されるテスト実験です) ECG 画像を分析することで、医師は心拍数が正常かどうか、また心臓の機能に問題があるかどうかをより適切に診断できます。
これらのデバイス上の ML モデルは、ニューラル ネットワークをコンパクトにし、計算効率とストレージ効率を向上させる技術の進歩によって部分的に実現されています。同時に、ハードウェア技術の進歩により、モバイル設定でのこのような ML モデルの実装も可能になりました。現在、私たちのスマートフォンやウェアラブルは 30 年前の高性能サーバーよりも高いコンピューティング能力を備えており、機械語推論用に特化したコプロセッサーを備えているものもあります。
TinyML はエッジ AI をさらに一歩進め、マイクロコントローラー (MCU) 上で深層学習モデルを実行できるようにしますが、マイクロコントローラーはポケットや手首に入れて持ち歩く小型コンピューターよりも要求が厳しいものです。リソース。
一方、マイクロコントローラーは安価で、平均販売価格は 0.50 ドル未満で、ほぼどこにでもあり、民生産業から産業機器に至るまであらゆるものに組み込むことができます。同時に、汎用コンピューティング デバイスにあるようなリソースはなく、ほとんどのデバイスにはオペレーティング システムがありません。マイクロコントローラーの CPU は小さく、数百キロバイトの低電力メモリ (SRAM) と数メガバイトのストレージしか搭載されておらず、ネットワーク機器も備えていません。それらのほとんどには主電源がなく、長年にわたってボタン電池を使用する必要がありました。したがって、深層学習モデルを MCU にインストールすると、多くのアプリケーションに新しい道が開かれる可能性があります。
畳み込みニューラル ネットワーク (CNN) のアーキテクチャ
ディープ ニューラル ネットワークを組み合わせるためにネットワーク ネットワークを小型メモリのコンピューティング デバイスに適したサイズに縮小するための多くの取り組みが行われてきました。ただし、これらの取り組みのほとんどは、深層学習モデルのパラメーターの数を減らすことに重点を置いています。たとえば、「枝刈り」は、モデルの出力から重要でないパラメーターを削除することによってニューラル ネットワークを縮小する、一般的な最適化アルゴリズムです。
プルーニング手法の問題は、ニューラル ネットワークのメモリ ボトルネックを解決できないことです。深層学習ライブラリの標準実装では、ネットワーク層全体とアクティベーション層マッピングをメモリにロードする必要があります。残念ながら、古典的な最適化手法は、ニューラル ネットワーク、特に畳み込みニューラル ネットワークの初期の計算層に大きな変更を加えません。
これにより、ネットワークのさまざまなレイヤーのサイズに不均衡が生じ、「メモリ スパイク」問題が発生します。プルーニング後にネットワークがより軽量になったとしても、ネットワークを実行するデバイスには最大のレイヤーと同じメモリが必要です。たとえば、人気のある TinyML モデル MobileNetV2 では、初期の層の計算は約 1.4 メガバイトのメモリ ピークに達しますが、後の層のメモリ フットプリントは非常に小さくなります。モデルを実行するには、デバイスはモデルのピークと同じ量のメモリを必要とします。ほとんどの MCU には数百 KB のメモリしか搭載されていないため、MobileNetV2 の既製バージョンを実行できません。
MobileNetV2 はエッジ デバイス向けに最適化されたニューラル ネットワークですが、そのメモリは約 1.4 メガバイトでピークに達するため、多くのマイクロコントローラーはアクセスできません。
ニューラル ネットワークを最適化するもう 1 つの方法は、モデルの入力サイズを減らすことです。入力画像が小さい場合、予測タスクを実行するために必要な CNN は小さくなります。ただし、入力サイズの削減には独自の課題があり、すべてのコンピューター ビジョン タスクに効果的であるわけではありません。たとえば、物体検出ディープラーニング モデルは画像サイズに非常に敏感であり、入力解像度が低下するとパフォーマンスが急速に低下します。
上の図から、画像分類 ML モデル (オレンジ色の線) がターゲット検出モデル (青線) よりも解像度を下げやすいことが簡単にわかります。
畳み込みニューラル ネットワークのメモリ ボトルネック問題を解決するために、研究者たちは、メモリ帯域幅をマイクロコントローラーの限界まで調整できる MCUNetV2 と呼ばれるディープ ラーニング アーキテクチャを作成しました。 MCUNetV2 は、同じ科学研究グループの以前の結果に基づいて開発され、NeurIPS 2020 カンファレンスに承認され、無事提出されました。
MCUNetV2 の背後にある主なアイデアは「パッチベースの推論」です。これは、精度を低下させることなく CNN のメモリ フットプリントを削減する技術です。 MCUNetV2 は、ニューラル ネットワーク層全体をメモリにロードするのではなく、層のより小さな領域または「パッチ」をいつでもロードして計算します。次に、レイヤーをブロックごとに反復処理し、レイヤー全体のアクティブ化部分を計算するまでこれらの値を組み合わせます。
図の左側は、層全体を計算する古典的な深層学習システムを示し、右側は一度に 1 つのパッチを計算する MCUNetV2 を示し、それによりメモリが削減されます。 DL推論が必要です。
MCUNetV2 は一度に 1 つのニューロンのみを保存する必要があるため、モデルの解像度やパラメーターを低下させることなく、メモリのピークを大幅に削減します。研究者の実験によると、MCUNetV2 はピーク メモリを 8 分の 1 に削減できることがわかりました。
MCUNetV2 はディープ ラーニング モデルのメモリ ピークを 8 分の 1 に削減できます
パッチベースの推論はメモリを節約しながら、コンピューティング能力とコストのトレードオフをもたらします問題。マサチューセッツ工科大学 (MIT) と IBM の研究者は、アーキテクチャが異なるとネットワーク全体の計算量が 10 ~ 17% 増加する可能性があることを発見しましたが、これは明らかに低電力マイクロコントローラーには当てはまりません。
この制限を克服するために、研究者らはニューラル ネットワークのさまざまなブロックの「受容野」を再分配しました (注: CNN では、n 番目の層の特徴マップのピクセルは、最初の層。ピクセル数は層の受容野 (「RF」) です。 CNN では、受容野とは、いつでも処理できる画像領域のことです。受容野が大きくなると、パッチが大きくなり、パッチ間の重なりが必要になります。もちろん、これにより計算オーバーヘッドが増加します。ネットワークの初期ブロックの受容野を縮小し、後の段階で受容野を広げることにより、研究者らは計算オーバーヘッドを 3 分の 2 以上削減することができました。
受容野の再配分は、MCUNetV2 の計算オーバーヘッドを 3 分の 2 以上削減するのに役立ちます
最後に、研究者らは、MCUNetV2 A の調整により、多くは、ML モデルのアーキテクチャ、アプリケーション、ターゲット デバイスのメモリとストレージの容量によって異なります。デバイスやアプリケーションごとに深層学習モデルを手動で調整することを避けるために、研究者らは、機械学習を使用してニューラル ネットワーク構造と推論スケジュールを自動的に最適化するプロセスである「ニューラル アルゴリズム検索」を使用しました。
研究者らは、メモリ容量が小さいいくつかのマイクロコントローラー モデルのさまざまなアプリケーションでディープ ラーニング アーキテクチャをテストしました。結果は、MCUNetV2 が他の TinyML テクノロジーよりも優れたパフォーマンスを発揮し、より少ないメモリ要件とより低いレイテンシーで画像分類とオブジェクト検出においてより高い精度を達成できることを示しています。
下の図に示すように、研究者はリアルタイムの人物検出、視覚的なウェイクワード、顔/マスク検出を備えた MCUNetV2 を使用しています。
翻訳者注: ここに示されているのは、youtube.com Web サイトに表示されている MCUNetV2 を使用したビデオのスクリーンショットのみです。
「機械学習の将来はなぜ小さいのか」というタイトルの 2018 年の記事で、ソフトウェア エンジニアの Pete Warden は、MCU での機械学習が非常に重要であると考えています。 Worden 氏は次のように書いています。「機械学習は小型の低電力チップ上で実行できると信じています。この組み合わせにより、現在解決できない多くの問題が解決されるでしょう。」
センサーと CPU の進歩のおかげで、世界中のデータへのアクセスが大幅に強化されました。しかし、機械学習モデルを通じてこのデータを処理して使用する能力は、ネットワーク接続とクラウド サーバー アクセスによって制限されます。 Worden 氏が述べたように、プロセッサーとセンサーは Bluetooth や WiFi などの無線送信機よりもエネルギー効率が高くなります。
Worden 氏は次のように書いています: 「データを移動する物理的なプロセスには、多くのエネルギーが必要なようです。操作に必要なエネルギーは、ビットを送信する距離に正比例するという法則があるようです。CPUセンサーはわずか数ミリメートルしか送信しません。ビットデータの送信は安価で高価ですが、無線通信では、数ビットのデータを送信するには数メートル以上の距離が必要で、高価です。適切なテクノロジーで開かれる必要があります。安価なマイクロコントローラーで動作し、エネルギーをほとんど使用せず、無線ではなく計算に依存し、無駄なセンサー データをすべて有用なデータに変えることができるデバイスが必要です。これは機械学習、特に深層学習です学習がそのギャップを埋めることになるでしょう。」
MCUNetV2 と TinyML が他の分野でも進歩しているおかげで、Worden の予測は間もなく現実になるかもしれません。今後数年間で、TinyML が家庭、オフィス、病院、工場、農場、道路、橋などにある数十億のマイクロコントローラーに導入され、以前は不可能だったアプリケーションが可能になる可能性があると予想されます。
元のリンク: https://thenextweb.com/news/tinyml-deep-learning-microcontrollers-syndication
Zhu Xianzhong、51CTO コミュニティ編集者、51CTO専門ブロガー、講師、濰坊市の大学のコンピューター教師、そしてフリーランス プログラミング業界のベテラン。初期の頃は、さまざまな Microsoft テクノロジに焦点を当てていました (ASP.NET AJX および Cocos 2d-X に関連する 3 冊の技術書籍を編集しました)。過去 10 年間は、オープンソースの世界に専念してきました (人気のある完全なソースに精通しています)。スタックWeb開発技術)を学び、OneNet/AliOS Arduino/ESP32/Raspberry PiなどのIoT開発技術やScala Hadoop Spark Flinkなどのビッグデータ開発技術について学びました。
以上が極小機械学習はディープラーニングをマイクロプロセッサに組み込むことを約束するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。