そこでMITの研究チームは、IoTデバイス上で最適なパフォーマンスを発揮するコンパクトなAIシステムを開発した。「MCUNet」と呼ばれる同システムは、メモリと処理能力が限られているIoTデバイスでのディープラーニングの速度と精度を向上させる。
さまざまなリソース条件に合わせてニューラルネットワークを最適化
研究チームは、さまざまな電力容量/メモリサイズを備えたマイクロコントローラ上でMCUNetを実行するのに必要な、2つのコンポーネントを開発している。ニューラルネットワークの構造を自動で最適化するNAS(ニューラルアーキテクチャ探索)を、既存のままマイクロコントローラに適用するのはむつかしかったため、カスタムサイズのネットワークを作成する「TinyNAS」を開発。TinyNASでは、特定のマイクロコントローラーに対して、最適なパフォーマンスでコンパクトなニューラルネットワークを生成できる。
また、限られたリソースでMCUNetを機能させるためのムダのない推論エンジン「TinyEngine」を開発した。TinyEngineは、TinyNASによるカスタマイズされたニューラルネットワークを実行のに必要なコードのみを生成。不要となったコードは破棄され、コンパイル時間が短縮される。
生成コードはGoogleやARMによる推論エンジンの5分の1
テストの結果、TinyEnginによりコンパイルされたバイナリコードのサイズは、GoogleやARMのマイクロコントローラー推論エンジンによるものの1.9~5分の1だった。また、ピークメモリ使用量をほぼ半分に削減できたとのこと。画像分類タスクによるMCUNetのテストでは70.7%の精度を達成。最先端のシステムによるマイクロコントローラー上の分類精度が54%だったのを考えると大きな進展といえる。
同技術を適用することで、十分なネットワーク環境がない場所でもAI搭載のIoTデバイスが設置でき、健康データなどのデリケートな個人情報を扱うことも容易になりそうだ。
参照元:System brings deep learning to “internet of things” devices/ MIT News