研究者たちは、小さなマイクロコントローラー内で実行できるほど小さな機械学習モデルを自動的に生成できるソフトウェアを考案した。
マイクロコントローラユニット(MCU)は非常に普及しており、電子レンジや洗濯機から自動車やサーバーのマザーボードまで、あらゆる機器に搭載され、比較的シンプルなソフトウェアでハードウェアを制御・監視しています。MCUは電力効率が高く、通常はそれほど高価ではありません。1つか2つの処理をこなすために存在し、それらをうまくこなします。そのため、従来のコンピュータシステムや組み込み電子機器と比較すると、リソースが非常に限られています。例えば、Arduino Uno開発キットに搭載されているMicrochip ATmega328Pは、わずか2KBのRAMと32KBのフラッシュストレージを搭載しており、価格は約1ドルです。しかも、これは最小でも最大でもありません。
これらのコンポーネントは、ヒューリスティックベースのアルゴリズム、ステートマシン、その他入力データから判断を下すための単純なコードを実行するには十分です。しかし、これらのシステムにもう少しインテリジェンスを注入したい場合、MCUのリソースが限られているため、AI推論を実行するのは困難です。学習済みのニューラルネットワークモデルを保存するための十分なストレージ容量と、モデルに対する推論処理を実行し、最終的に入力データを出力の判断に変換するための十分なRAMが必要です。
しかし、あきらめないでください。米国のArm ML Researchとプリンストン大学の研究者チームが執筆したarXivにホストされた論文によると、ディープラーニングはMCUに導入できるそうです。
肘からSpArSeを知る必要がある
学習済みモデルを手作業で最適化・圧縮し、小型MCUに収めるのに長い時間を費やすのではなく、小型MCUで効率的に動作するコンピュータービジョンモデルを自動生成できるソフトウェアを開発・活用することが鍵となります。そこで登場するのが、リソース制約のあるマイクロコントローラ上で動作するCNNのためのスパースアーキテクチャ探索「SpArSe」です。SpArSeは、ニューラルアーキテクチャ探索(NAS)とネットワークプルーニングを組み合わせて、組み込みコントローラ向けのAIシステムを構築します。
NAS部分は要件に合わせてモデルのアーキテクチャを調整し、ネットワークプルーニング部分はモデルのパラメータ数を削減することで、パフォーマンスと精度をあまり犠牲にすることなくメモリ使用量を削減します。全体として、SpArseによって出力されるモデルは、必要なメモリ容量が少なく、計算量も少なくて済みます。
研究者たちは、SpArseが構築したニューラルネットワークアーキテクチャのテストに使用したMCUの具体的な名称は明らかにしていませんが、ArmベースのSTM32チップであり、モデルの実行に必要なRAMは2KB以下だと述べています。SpArseは4つの畳み込みニューラルネットワーク(CNN)モデルを開発し、MNIST、CIFAR10、CUReT、Chars4kという4つの異なる画像データセットを用いてSTM32 MCUでテストしたとのことです。これらのデータセットは、物体認識のためのコンピュータービジョンモデルのトレーニングとテストに一般的に使用されています。
まず、Googleが150ドルのAI開発キットを宣伝しました。今度は、NVIDIAがGPU機械学習開発者向けに99ドルのNanoを売り出しています。50ドルの噂は本当でしょうか?50ドル?
続きを読む
MNIST は手書きの数字を区別するコンピューターの能力を調べ、CIFAR10 には猫、犬、車などのさまざまなオブジェクトの画像が含まれ、CUReT はさまざまなテクスチャのクローズアップに焦点を当て、Chars4k はデータセットの小さなサブセットであり、Chars74k にはさまざまな文字と数字の画像が含まれています。
まず、研究者たちはSpArSeと4基のNvidia GeForce RTX 2080 GPUを用いて4つの異なるモデルを学習させ、それらをMCUに個別に展開しました。各モデルの実行に必要なRAMは2KB未満でした。選択されたチップには、モデルを1つずつでも保存できるだけのフラッシュストレージ容量があると想定されていましたが、奇妙なことに、論文ではこの点について触れられていません。焦点は必要なRAMにあります。おそらく、RAMは貴重であり、大きな制限要因となるためです。一方、フラッシュストレージやROMストレージは128KB、256KB、512KBなどまで拡張可能です。
いずれにせよ、RAM 条件が厳しいにもかかわらず、モデルの精度は MNIST で 97 パーセント、CIFAR で 73 パーセント、CUReT で 96 パーセント、Chars4k で 67 パーセントだったと主張されています。
「MCUは最も広く導入されているコンピューティングプラットフォームであるにもかかわらず、機械学習研究者からはほとんど無視されてきました。本論文は、機械学習の導入においてMCUをターゲットにすることで、将来のIoT製品やユースケースを実現するという主張を裏付けています。これまでの主張に反して、わずか2KBのRAMを搭載したMCU向けのCNNを設計することが実際には可能であることを実証しています」と、5月末に発表された論文で研究者らは結論づけています。
当社のスパースアーキテクチャ探索手法は、ニューラルアーキテクチャ探索とプルーニングを単一の統合アプローチに統合し、4つの一般的なIoTデータセットで優れたモデルを学習します。私たちが発見したCNNは、MCUワーキングメモリの厳格な制約を満たしながら、従来の手法よりも精度が高く、サイズも最大4.35倍小さくなります。
このままのペースで進めば、モノのインターネットやインターネットに接続されていないデバイスに AI を詰め込むことで、いわゆる「スマート」家電が実際にスマートになるかもしれません。®