何故、機械学習の未来はちっぽけなのか?その2

  • 2018.06.23
  • AI
何故、機械学習の未来はちっぽけなのか?その2

1.何故、機械学習の未来はちっぽけなのか?その2まとめ

・学習済みの人工知能モデルを動かすために必要な計算量はそれほど多くない
・現在世の中で使われている小型装置が使っている電力があれば人口知能を動かせる
・ちっぽけな機械学習とちっぽけなMCUが新しい世界の扉をもうすぐ開く

2.機械学習の出番

何故、機械学習の未来はちっぽけなのか?その1」の続きです。

これらの意味するところは・・・機械学習の出番

あなたが「何故、機械学習の未来はちっぽけなのか?その1」で指摘した事に納得したならば、適切な技術で解決されるのを待っている大規模な未開発市場があることが明らかになったでしょう。

安価なマイクロコントローラで動作し、エネルギーをほとんど消費せず、無線ではなく計算に依存し、無駄になったセンサデータを何かに変える技術が必要です。このニーズは、機械学習、特にディープラーニングが満たします。

ディープラーニングの制限は演算能力で、既存のMCUで十分動かす事ができます

私がディープラーニングを好きな理由の1つは、ほとんどのケースで演算能力が制限になると言う事です。これは重要な事で、ディープラーニング以外の通常のアプリケーションは大量のメモリにどれだけ高速にアクセスできるかが制限になります。そして、この制限は様々なメモリの使われ方に依存するためにほぼ予測不能です。

対照的に、ディープラーニングではサイズと数値が固定された大きな行列を異なる組み合わせで繰り返し計算する事に処理の大半が費やされ、予測が可能です。

これが意味する所は、CPUは2つの数値をキャッシュに保持して算術演算を実行できるので、メモリから新しい値を読みだす必要が少なくて済むことを意味します。これは、メモリ(DRAM)から値を読み込むと、算術演算よりも1000倍以上のエネルギーを簡単に使用する事になるため大変重要です。DRAMが物理的にレジスタ(キャッシュ)より離れているため、データ移動距離/エネルギー関係の法則が適用される例と思われます。

(つまり、パート1で説明した「エネルギー消費量はデータをどれだけ遠くに送るかに比例する法則」に照らし合わせても、ディープラーニングの演算は非常に効率的だと言う事)

MCUの比較的低い搭載メモリ(数十キロバイトまたは数百キロバイト)は、低電力のSRAMまたはフラッシュメモリをデータ保存に使用できることを意味しています。更に、MCUはすでにDSP(デジタルシグナルプロセッサ:デジタル信号処理に特化した演算装置)に似た命令セットを持ち、浮動小数点演算の代わりに8ビット演算を使用する事が多いため、ディープラーニングアプリケーションにとってとても都合が良いのです。

このアイデアは特に新しいことではありません。AppleとGoogleの両方がこの種のチップで音声認識を実現していますが、機械学習分野の人も組み込み機器分野の人もあまり気づいていません。

ディープラーニングは非常にエネルギー効率が良いです

私はCPUのオペレーションごとにどのくらいピコジュール(つまりエネルギー)が費やされるのか考える事に多くの時間を費やしています。

これは、CPU上での1回の算術演算でどれだけのエネルギーが消費されているかを示す指標であり、与えられたニューラルネットワークが1回実行する操作の数を知っていれば、消費する電力の量を概算できるので便利です。例えば、MobileNetV2の画像分類ネットワークは、最小の構成で2200万ops(各乗算加算は2オペレーション)を要します。

特定のシステムが1回の操作を実行するために5ピコジュールを要することが分かっているなら、(5ピコジュール* 22,000,000) = 110マイクロジュールのエネルギーが必要です。 1秒間に1フレームを分析しているのであれば、それはわずか110マイクロワットで、コイン電池があればほぼ1年間連続して使用できます。この数値は現在世の中で使われているDSPが利用しているエネルギーに収まる範囲であり、私は効率が向上し続けることを期待しています。

つまり、既存のニューラルネットワークを稼働させるために必要なエネルギーコストは、すでに世の中で使われているバッテリ駆動デバイスが使用しているエネルギーの範囲に収まっており、ニューラルネットワークモデルのアーキテクチャとハードウェアの両方が向上するにつれてさらに向上する可能性があります。

ディープラーニングはセンサデータを有効活用できます。
(Deep Learning Makes Sense of Sensor Data)

ここ数年で、画像、音声、加速度計などのノイズの多い信号を取り込んで、ニューラルネットワークを使ってその意味を抽出することが突然可能になりました。

我々はこれらのネットワークをマイクロコントローラ上で動作させることができ、センサ自体はほとんど電力を消費しないため、現在無視しているセンサデータの多くを解釈することが可能になります。

たとえば、私は、ほぼすべての器具にシンプルな音声コマンド認識機能が備わっている世界を見たいと思います。簡単な単語を理解し、イメージセンサーを使って視線を検出することによって、ボタンを押したりスマホアプリを使用せずとも、ほとんどすべての身の回りの事を操作できるはずです。

私はボタン電池で1年以上動作可能な50セント未満の音声インターフェース部品を見たいと思っています。私たちが現在持っている技術で十分に可能な事だと思います。

もう1つの例として、小型のバッテリ駆動の画像センサを使用して、特定の作物や雑草などを見つけ出し、目撃されたときに警告を送るようにプログラムすることができます。これらを畑の周りに設置すれば、除草剤や農薬を沢山使わずに済むのでより環境にやさしいです。

私が携わった事のある工業的事例の1つは、ベテラン工具技術者のハンス氏の例です。彼は毎朝、機械を点検して回り、それぞれに手を置き、動作音を聞いて、経験と直感に基づいて、事故防止のために停止させるべき機械を現場監督に指示します。すべての工場にハンス氏と同じ役割のベテラン技術者がいますが、多くは定年退職に踏み切り始めています。バッテリー駆動の加速度計とマイクロフォンに機械の通常動作の状態を学習させ、異常があれば信号を発するような「サイバーハンス」を作る事ができれば、機械がトラブルを起こす前に発見することができます。

私はワクワクするような進化を遂げそうな何百もの製品を思いつく事ができますが、私が最も興奮していることは正直なところ、これらの新しいデバイスがどのように使われるのかわからないということです。それらはいずれ完成し、私が想像することのできない全く新しいアプリケーションとして登場するでしょう。

私にとっては、最初の家庭用コンピュータが登場したときの80年代の子供のような気分です。私は彼らがどんなものになるのか分からず、当時のほとんどの人がゲームやアドレス帳の保存に使っていましたが、まったく新しい世界が出現する可能性が非常に多くある事を私は感じていました。

文書を送る代わりに直接講演をする唯一の理由は、情報の背後にある感情を伝えることです。私がCogXの観衆と共有したいことは、小さなデバイスでの機械学習の未来についての興奮と確信です。ブログ投稿は現実のプレゼンテーションの貧弱な代用品ですが、私はブログで少しでも理解して貰えることを願っています。私は未来がもたらすものの詳細を知りませんが、私はちっぽけな機械学習が、安価なバッテリー駆動チップがやってきていくつかの驚くべき新しいアプリケーションのための扉を開くであろう事を知っています!

3.何故、機械学習の未来はちっぽけなのか?その2感想

タイトルも逆説的で目を引きましたが、内容も非常に洞察に溢れている素晴らしい予言ですね。明確に意識せずとも何となくそこはかとなく皆が感じていたであろう来るべき未来を積み重ねた根拠とともに明確にしてくれています。

そう、人口知能は学習時は膨大な計算を必要としますが、一度モデルが完成してしまえば、その後はそんなに沢山の計算は不要です。

正に人間の脳と同じで学習するまでは時間がかかりますが、一度学ぶ、もしくは体が覚えてしまえば、意識せずにできるようになるのと同じです。

人工知能の場合はその学習結果を比較的容易に流用(転移学習:transfer learning)できるので学習は巨大コンピュータにやらせて実行はマイクロコンピュータでやる事もいずれは可能になるでしょう、と言うかGoogleも最近「オンデバイス」を良く強調してますし、Learn2Compressなどは正に学習済みモデルを小さいマシンで実行させる用途の技術です。

OpenAIはこれから学習用のハードウェアが沢山売れるに違いないと予測していますが、自動運転車の例にあるように皆、本当は本気でやってないフシも感じられるので、大きく広がりを見せるのは学習時に使う超強力なハードウェアではなく学習結果を用いるための、実行用途のちっぽけなハードウェアになるのかもしれません。

4.何故、機械学習の未来はちっぽけなのか?その2関連リンク

1)petewarden.com
Why the Future of Machine Learning is Tiny