BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース IoTのためのディープラーニングモデルサイズを減らす技術を研究員たちが開発

IoTのためのディープラーニングモデルサイズを減らす技術を研究員たちが開発

原文(投稿日:2019/07/30)へのリンク

Arm LimitedPrinceton Universityの研究員たちが、わずか2KBのRAMで、IoT(internet-of-things)ハードウェアシステムのためのディープラーニングコンピュータビジョンモデルを生成する技術を開発した。ベイズ最適化とネットワークプルーニングを使って、このチームは最新の精度を保ちながら、画像認識モデルのサイズを減らすことができる。

5月にarXivで発表された論文において、チームはスパースアーキテクチャ検索(SpArSe)について記述した。これは、畳み込みニューラルネットワーク(CNN)コンピュータビジョンモデルを見つける技術で、リソースに厳しい制約のあるマイクロコントローラユニット(MCU)ハードウェアで実行できる。SpArSeは、多目的ベイズ最適化(MOBO)とニューラルネットワークプルーニングを使って、モデルサイズと精度の最良のトレードオフを見つける。著者たちによると、SpArSeは、2KBのRAMという小ささで、ハードウェア上で実行できるCNNモデルを生成した唯一のシステムだ。MCUホストコンピュータビジョンのための以前の作業は、最近傍法やデシジョンツリー等の他の機械学習モデルを使う。チームは、これらの解決策とCNNの結果を比較し、SpArSeは「より正確で4.35xまで小さい」モデルを生成する。

MCUデバイスは、低コスト、低消費であるため、IoTや他の組み込みアプリケーションで人気がある。ただし、これらの品質は、限られたストレージとメモリというトレードオフがある。Arduino Unoは、例えば、たった32KBのフラッシュストレージと2KBのRAMを持つ。これらのデバイスは、最新のCNNモデルを使って推論を実施するリソースを持っていない。これらのストレージはモデルパラメタの数を制限し、これらのRAMはアクティベーションの数を制限する。LeNetのような比較的小さいCNNモデルは、約60,000パラメタを持ち、整数量子化のような圧縮技術を使っても、Unoのストレージのほぼ倍を必要とする。唯一の解決策は、ウェイトとアクティベーションの全体数を減らすことだ。

SpArSeでモデルサイズを減らすために重要なのは、プルーニングだ。ドロップアウトと同様に、プルーニングはネットワークからニューロンを取り除く。しかし、トレーニング中のフォワードパスの間にニューロンをランダムにオフにする代わりに、プルーニングは、永遠にネットワークからニューロンを取り除く。この技術によって、「精度をほんのわずか減らすだけで、LeNetアーキテクチャ上で280倍までパラメタの数を減らせる。」

ネットワークプルーニングに加えて、SpArSeは、ネットワークレイヤの数や畳み込みフィルタサイズ等のハイパーパラメタのセットを検索する。そして、最小のパラメタやアクティベーションを持つもっとも正確なモデルを見つけようとする。ハイパーパラメタ最適化とアーキテクチャ検索は、自動機械学習(AutoML)とも呼ばれ、ディープラーニングの活発な研究領域である。Facebookも、SpArSeで使われたものと同様のベイズ最適化技術のためのツールを最近リリースした。SpArSeとは対照的に、これらの技術は、通常、最高の精度で、単にモデルを見つけることに集中する。

この研究チームは、2KB以下のRAMで動作するモデル生成も行う、ディシジョンツリーベースのコンピュータビジョンシステムであるBonsaiとSpArSeの結果を比較した。SpArSeがMNISTデータセットで動くBonsaiよりも性能がよかった一方で、BonsaiはCIFAR-10 データセット上では勝利した。さらに、SpArSeはMNIST上ではGPUのトレーニングに1日が必要で、CIFAR-10データ上ではGPUのトレーニングに18日が必要である。それに対して、Bonsaiは、シングルコアラップトップ上で、たった15分しか必要としない。

この記事に星をつける

おすすめ度
スタイル

BT