MITの研究者は、「モノのインターネット」(IoT)を構成するウェアラブル医療機器、家庭用電化製品、2500億の他のオブジェクトに搭載されている小さなコンピュータチップのような、新しい場所にディープラーニング(深層学習)のニューラルネットワークをもたらすことができるシステムを開発した。

MCUNetと呼ばれるこのシステムは、メモリや処理能力が限られているにもかかわらず、IoTデバイス上でディープラーニングを行うために、これまでにないスピードと精度を実現するコンパクトなニューラルネットワークを設計している。この技術は、省エネとデータセキュリティの向上を実現しながら、IoTの世界の拡大を促進する可能性がある。

この研究は、来月開催される「Neural Information Processing Systems Conference」で発表される予定だ。主著者は、MITの電気工学・コンピュータサイエンス学科の宋漢(Song Han)の研究室の博士課程の学生であるJi Lin。共著者には、MITのHanとYujun Lin、MITと国立台湾大学のWei-Ming Chen、MIT-IBMワトソンAIラボのJohn CohnとChuang Ganが名を連ねている。

IoT機器が増えるに従って、発現するデータ量は指数関数的に増大しており、それをエッジからクラウドまで移送するのはあまりにコストがかかる。またレイテンシーの課題もあり、エッジで深層学習を実行するアイデアは近年、あらゆるプレイヤーが追求するものだ。「ニューラルネットをこれらの小さなデバイスに直接展開するにはどうすればいいのか?」は非常にホットになってきている新しい研究分野であり、Googleやarmのような企業は皆、この方向に取り組んでいる。

HanのグループはMCUNetと共同で、マイクロコントローラ上でニューラルネットワークを動作させる「小さなディープラーニング」に必要な2つのコンポーネントをコード化した。1つは、オペレーティングシステムのようなリソース管理を指示する推論エンジンであるTinyEngineである。TinyEngineは、MCUNetのもう一つのコンポーネントによって選択された特定のニューラルネットワーク構造を実行するように最適化されている。これはMCUNetのもう一つのコンポーネントであるニューラルアーキテクチャ検索アルゴリズムであるTinyNASによって選択される。

システムアルゴリズムのコードネーム

マイクロコントローラ用のディープネットワークを設計するのは簡単ではない。既存のニューラルアーキテクチャ探索技術は、事前に定義されたテンプレートに基づいて、ネットワーク構造の可能性のある大きなプールから始めて、徐々に高精度で低コストのものを見つけていく。この方法は有効ですが、最も効率的ではない。GPUやスマートフォンでは、かなりうまく機能したが、これらの技術を小型のマイクロコントローラに直接適用することは、あまりにも小さいために困難だった。

そこでLinは、カスタムサイズのネットワークを作成するニューラルアーキテクチャの探索手法であるTinyNASを開発した。「私たちは、電力容量やメモリサイズが異なるマイクロコントローラをたくさん持っている。そこで私たちは、異なるマイクロコントローラ用に検索空間を最適化するアルゴリズム『TinyNAS』を開発した」とLinは声明の中で説明した。TinyNASのカスタマイズされた性質は、与えられたマイクロコントローラに対して最高のパフォーマンスを発揮するコンパクトなニューラルネットワークを、不要なパラメータなしで生成できることを意味する。そして、最終的な効率的なモデルをマイクロコントローラに提供する。

この小さなニューラルネットワークを実行するために、マイクロコントローラにはリーン推論エンジンも必要だ。一般的な推論エンジンは、めったに実行されないタスクのための命令などのデッドウェイトを抱えている。余分なコードはラップトップやスマートフォンでは問題にならないが、マイクロコントローラを簡単に圧倒してしまう可能性がある。オフチップメモリもディスクもない。「すべてを合わせてもわずか1メガバイトのフラッシュなので、このような小さなリソースを慎重に管理しなければならない」とHanは言った。TinyEngineの出番だった。

研究者たちは、TinyNASと連携して推論エンジンを開発した。TinyEngineは、TinyNASのカスタマイズされたニューラルネットワークを実行するために必要な重要なコードを生成する。重荷となるコードはすべて破棄され、コンパイル時間が短縮される。グループがTinyEngineをテストしたところ、コンパイルされたバイナリコードのサイズは、Googleやarmの同等のマイクロコントローラ推論エンジンよりも1.9倍から5倍小さくなっていたと説明している。また、TinyEngineには、ピーク時のメモリ使用量をほぼ半分に削減するインプレース深さ方向の畳み込みなど、ランタイムを短縮する技術革新も含まれている。TinyNASとTinyEngineをコードサインした後、HanのチームはMCUNetのテストを行った。

MCUNetの最初の課題は画像の分類でした。研究者たちはImageNetデータベースを使って、ラベル付けされた画像を使ってシステムを訓練し、次に新しい画像を分類する能力をテストした。市販のマイクロコントローラでテストしたところ、MCUNetは新規画像の70.7%を分類することに成功した。これまでの最先端のニューラルネットワークと推論エンジンの組み合わせでは54%の精度しか得られなかった。

チームは、他の3つのマイクロコントローラのImageNetテストでも同様の結果を得た。また、MCUNetは、速度と精度の両方の面で、音声と視覚による「ウェイクワード」タスクでは、ユーザーが声の合図や部屋に入るだけでコンピュータとの対話を開始するという、競争相手を打ち負かした。この実験は、MCUNetの多くのアプリケーションへの適応性を浮き彫りにしている。

巨大な可能性

この有望なテスト結果は、Hanにマイクロコントローラの新しい業界標準となることへの希望を与えている。MCUNetはまた、IoTデバイスをより安全にすることができる。主な利点はプライバシーの保護で、データをクラウドに転送する必要がなくなることだ。

データをローカルで分析することで、個人の健康データを含む個人情報が盗まれるリスクを減らすことができる。Hanは、MCUNetを搭載したスマートウォッチが、ユーザーの心拍、血圧、酸素濃度を感知するだけでなく、その情報を分析して理解を助けることを想定している。また、MCUNetは、インターネットへのアクセスが限られている自動車や農村部のIoTデバイスにディープラーニングをもたらす可能性もある。

さらに、MCUNetのスリムなコンピューティング・フットプリントは、スリムな炭素排出量にもつながる。大規模なニューラルネットワークをトレーニングすることで、自動車5台分の生涯排出量に相当する炭素を燃やしてしまう。マイクロコントローラ上のMCUNetは、そのエネルギーのごく一部を必要とする。私たちの最終目標は、より少ない計算資源、より少ない人的資源、より少ないデータで、効率的で小さなAIを可能にすることだ とHanは言う。

参考文献

  1. Ji Lin, Wei-Ming Chen, Yujun Lin, John Cohn, Chuang Gan, Song Han. MCUNet: Tiny Deep Learning on IoT Devices. submitted to arXiv, 2020 [abstract]