今回の題材は以下の記事だ。

最近、「ディープラーニング」という言葉を耳にする機会が増えている。多くの人にとってはまだ縁遠く、生活に関連しないものに感じられるだろう。だが、現在その活用は急速に広がっており、製品に必須の要素となるのは間近だ。今回は、その影響と製品への組み込みの可能性について考えてみよう。

NVIDIAが燃える「ディープラーニング」とは

件の記事で話題になっている「GTC」とは、GPU Technology Conferenceの略で、毎年、GPUのトップメーカーであるNVIDIAがこの季節にサンフランシスコで開催しているイベントである。その内容は、毎年少しずつ違う。単純にNVIDIAのGPUをアピールするイベントというわけではなく、その時々に、NVIDIAが考える「GPUの重要な使い方」「GPUとコンピューティングの未来」について考えるイベント、という色合いが強い。

そんな中、今年の軸となっていたのが「ディープラーニング」だ。

GTCのWebページ。早くも2016年の案内に切り替わっている

ディープラーニングとは、巨大なコンピュータシステムを使って、複雑なデータから必要な情報を収集するための手法であり、データの内容からある程度自律的に情報を整理する手法といっていい。

ざっくりと説明しよう。ディープラーニングでは、脳機能を数学モデルで再現する「ニューラルネットワーク」が使われる。これ自体は、PC普及以前の1960年代まで、コンピュータで問題解決を目指す手法として注目されていたのだが、現在一般的な「データベース的人工知能」に競争で負けた。

ニューラルネットワークは、人間が自ら学習して知識や認識を強化していくように、自ら認識を高めていくのが特徴なのだが、その学習よりも、人がパラメータ設定を行って認識に利用するほうが、パラメータ製作の手間を含めても効率がよかった。

そうした状況をひっくり返したのが、ディープラーニングという手法だ。ニューラルネットワークでの学習プロセスを多層化して「深く」するから「ディープ」なのだが、色やディテールなどに分割したり、エリアを分割したりして学習層を多層化し、グルグルとフィードバックすることで、機械学習によるパラメータ構築が、人の手によるパラメータ構築を超える速度と効率を実現した。

そのためには小規模な演算を多層的に、大量に並列に回せるコンピュータが必須になる。そうした仕組みはGPUでの演算に向いており、GPUを使ったスーパーコンピュータの用途拡大を狙うNVIDIAにとっては格好の題材である……というのが、GTCでディープラーニングが脚光を浴びる理由である。

パトカーとRVを見分ける自動運転車

ディープラーニングはどのような価値をもたらすのだろう? 現在も音声入力や顔認識は、ディープラーニングの成果が生かされ、精度アップにつながっている。しかしここでは、もう少し目で見てわかりやすく、インパクトも強い例を挙げたい。

GPUによるスーパーコンピューティングとともに、NVIDIAが現在力を入れているのが「自動車」だ。1月のCESでは、アウディと共同で自動運転車「Jack」を開発、シリコンバレーからラスベガスまで「完全自動走行」するデモを行った。画像はCESに展示されたものだが、注目は道を走る自動車の種別が正確に認識されている点である。Jackにはカメラが搭載され、そこからの映像をディープラーニングによる画像認識で分析し、人や車を避け、パトカーに特に気をつけ(笑)、まるで普通の車のように走行してきた。人間が持っている「白黒模様でこんなデザインの車はパトカーに違いない」という認識をディープラーニングの繰り返しによって会得し、自動運転の精度と技術を向上させたことが注目に値する。

枠で囲まれた車に注目。映像から、その車が「RVなのかパトカーなのか」を判断し、それぞれに適切なタグをつけ、運転時の判断に利用する

自動車側に搭載されるロジックボードである「Drive PX」には、多数の外部ポートが用意されている。これは、車のいたるところに搭載されるカメラやセンサーとのコミュニケーションを行うためのものだ。

NVIDIAが車載用に開発中の「NVIDIA Drive PX」。同社の最新SoC「Tegra X1」を2基搭載、自動運転系のコントロールを行う

NVIDIAジャパン・シニアソリューションアーキテクトの馬路徹氏は、こうした機構の使い方を、筆者に次のように説明してくれた。

「クラウドの向こうのディープラーニング・ネットワークに、常に接続していては間に合いません。ですから、ディープラーニングの結果得られたパラメータだけが手元に蓄積されます。そして、それを使い、ローカルにあるTegraが画像認識を行って、コントロールに使います。しかし、実際に運行している際には、これまでの学習結果からずれた情報も得られます。たとえば、とても変わっているけれどこれは自転車である……といったようなものに出会うこともある。そうした情報は車ごとに存在するわけですが、運転していない時などに、ネットワークを介し、ディープラーニングにかけられます。結果、パラメータ精度はさらに高まる。そして気がついてみると、日々認識精度は上がっていくのです」

それぞれの自動運転車は、ディープラーニング情報を集めて全体で精度を上げるための「端末」でもあるわけだ。