ディープラーニングは制御にも使える

馬路徹氏(以下、馬路):NVIDIAの馬路です。よろしくお願いします。

今日は車載用ディープラーニング、いわゆるAI、それと自動運転用のTegraのSoCプロセッサ、DRIVE PX2プラットフォーム、さらにこの上に乗せるDriveWorksのソフトウェア・デベロップメントキットをご紹介したいと思います。

本日のご紹介内容はこのとおりになっています。最初、自動運転産業における弊社の位置づけです。続きまして、AIですね。人工知能のなかでもディープラーニングという深層学習、これが非常に今、台頭しております。ここの先進の画像認識技術をご紹介します。

さらに、ディープラーニングは画像認識ばかりではなくて、実は制御にも使えます。新しい試みなんですが、このEnd-to-Endディープラーニング自動運転ですね。

なにかというと、こちらのEndはカメラです。そして、こちらのEndはステアリングを操作するという、そういうEndです。人間は視覚で見たものでそのまま運転していますので、そのとおりのことをディープラーニングでやっています。ただ、この使用方法は注意する必要がありますので後でご紹介します「DriveWorks」の中で説明させていただきます。

4番目は、こういうものを実現するには非常に膨大なプロセッシングパワーが必要です。GPUですね。これはGraphics Processor Unitなんですが、近頃のGPUは、実は汎用プロセッサになっております。

そこで、例えば3,000、4,000コアで超並列の処理を行ったり、もしくはその上にディープラーニングのライブラリを乗せて、非常に高速に学習それから判断をやる。そういうことに非常に適したプロセッサであるということを、4点目としてご紹介いたします。

5点目は、実は我々はスーパーコンピュータから車載SoCまで、すべて1つのGPUアーキテクチャで開発しております。お互いレバレッジしているんですね。例えば、スーパーコンピュータのいろんな計算、アルゴリズム、それから開発環境がこのまま車載に乗ります。とくに自動運転ではそれが要になっているので、そのあたりを紹介いたします。

次に、このSoCを乗せた「DRIVE PX2」といったプラットフォーム。続いて、このDRIVE PX2の性能をシングルのSoCで実現できる「Xavier」をご紹介します。2017年末にチップが出てくる予定です。

最後に、このDrive PX2に実装するソフトウエア・スタック「DriveWorks」をご紹介したいと思います。

対向車や反対車線の車、歩行者などはもう認識できる

まず最初に、自動運転産業におけるNVIDIAの位置づけということでご紹介します。

NVIDIAは自動車向けに最初の高機能プロセッサを出荷してから10年経ちました。これらのプロセッサは80モデル、1,000万台以上の車両に搭載されております。

最近注目されている製品はアウディ社のコックピットです。運転手の正面にあるTFTディスプレイに、速度・タコメーターという従来のメーター以外に、ナビそのものも変幻自在に高精度で描画できるという、そういうコックピットです。今、アウディ社のメインラインのA4やSUV、アウディTTなど、今どんどん展開されています。

我々DRIVE PX2というプラットフォームで、いろんなお客さまとエンゲージさせていただいていて、今約80社あります。もちろん乗用車のOEM。それから、最近はトラックやバスの商用車のOEMがけっこう増えてきています。あと、これらをサポートしているシステムサプライヤー……1st Tierですね。

それから、直近で注目すべきはTAAS(Transportation As A Service)です。例えばUberのように、車を売るのではなく、A地点からB地点への移動を商売にする。そういったTAASというジャンルの産業ですね。ここはちょっと伸びています。

それから、これらをすべてサポートするエコシステムです。研究開発拠点や大学、OSベンダー、センサーベンダーですね。こういうところを合わせて、今80社とやらせていただいています。この80社のなかで、本当に公開されているのは10社足らずなんですが、そのなかでも例えばボルボは2017年、実際に市街地を、DRIVE PX2を使って100台走行させることを今、進められています。

それから、ご存じの方も多いと思うんですが、フォーミュラですね。「フォーミュラ1」というのが有名なんですが。今「フォーミュラE」というEVカーがあり、そこに今度、自動操縦のフォーミュラカーが2017年から入っていきます。

10チームが各チーム2台、合計20台でAIのアルゴリズムを競い合う。そういうところにもDRIVE PX2が採用されます。このあたりは共通のハードウェアなので、driving algorithmsと、それから人工知能の競争になるわけですね。

最近のニュースは、テスラモーターズです。弊社のプロセッサをお使いになって、それを全車に展開するということです。実際にもうハードウェアが、テスラーモーターズのWebに行かれますと、お客さんが自分の車をデザインできるようになっています。色を選んだりオプションを選んだり。そのなかでもうハードは買えるんですよ。

ベーシックな自動運転オプションは高速道路用です。これに追加オプションで市街地走行も可能な完全自動運転が提供されています。いずれにも弊社の高性能プロセッサが採用されています。

それを、ご覧になった方もいると思うんですけど、まずはビデオで紹介したいと思います。

(動画再生)

これは人がいなくても運転できますが、法的な規制で人が乗っています。これがもう市街地を走っているんですよね。

今、前方と後方2台のカメラでいろんなことを認識しています。対向車や反対側車線の車、歩行者、標識、レーンなどですね。そういうものを全部使って、人工知能が入っているんですけれど、もうできているんですよ。

ただ、やはり各地の法規制が厳しいので、実際これ今フィールドテスト中です。十分に検証した上で、もう作り付けのハードウェアにOTAですね。Over-The-Airで、まさにIoTですね。これでできあがったソフトウェアをダウンロードしていただく。この検証済みのダウンロード・ソフトをアクティベートしますと、このデモビデオのような完全自動運転が可能になります。世の中はみな様が思っている以上に早く進んでいます。少なくとも完全自動運転のハードウェアはもうすでに量産されています。

以上が、我々の自動運転の産業での立ち位置です。つまり、弊社の高性能プロセッサは完全自動運転向け量産品としてすでに出荷されています。

学習には膨大なデータが必要

次に、そこに使われている人工知能ですね。ディープラーニング。まずは画像認識から入ったんですけれども、そこに関してご紹介したいと思います。

これはみなさんがご存じの方も多いと思うんですが、今の人工知能のブームをまた再燃したきかっけになった、「ImageRecogrutionChallenge」という画像の認識のコンクールですね。ここは非常に難しくて、1,000種類のオブジェクトを認識すると。例えば、ヘルメットをかぶったドライバーがスクーターに乗って、横に車がオーバーラップしている。この4つを全部認識するとかですね。

これは2009年から2016年までのプロットなんですが、毎年コンクールがありました。このブルーのドットは、縦が認識率なんですが、ブルーが「traditional computer vision」と。人間が書いたアルゴリズムですね。例えば、人の認識だとHOGですね。

なかなかこう認識率75パーセントの壁を破れなかったんですが、2012年にトロント大学のヒントン教授(Geoffrey Hinton)の下で、アレックスという研究者が「AlexNet」を、8層の深層学習の認識のソフトを出して。これGPUで走ってるんですけれど。これがいきなり10パーセント性能を向上させまして。以降、これを見た他の研究機関がもうすべてグリーンに染まり(グリーンのドットはディープラーニング使用の画像認識)、ディープラーニングに移っていきました。

なお、これらのディープラーニングの画像認識はGPUが採用されています。2015年にはMicrosoftが152層もの非常に深いネットでこのコンテストに勝利しましたが、その認識率は、すでに人間の能力の95パーセントを凌駕しています。

そういう時代になっておりますので、やはりここからコンベンショナルなコンピュータビジョンからディープラーニングへ移行しないと、自動運転の画像認識では危なくてしかたがない状況になっています。

ここで1つ、難しい問題があります。認識は、単純にネットワークにイメージを入れて流せばいいので、これは弊社の組み込みプロセッサくらいの能力であれば簡単にできます。しかし、学習の方は、例えば自動車やバス、トラック、SUVの4種類の車種を区別するときは、それぞれ膨大なデータを用意しておかないといけないんです。

どれくらいのデータが必要かというと、先ほどのコンテストは1,000種類で100万枚の画像イメージくらいでした。フィールドの環境は、露光量が違ったり、物体のサイズが違ったり、アスペクトレイシオが違ったり、向きが違ったり、だいたい2桁くらいイメージの数を増やさないと、本当に強固でロバストな認識ができないんです。これが(データの準備が)、馬鹿にならないんですね。

従来のサーバクラスのGPU/CPUだと、1週間くらい一通りの学習にかかり、結果が思わしくなければチューニングし直す。それが何週間、何ヶ月、何年も学習にかかっちゃうんです。

GPUはそれを1桁性能上げられるんですよね。これがその例です。

これはイメージの数です。イメージの数に対して、CPUだと、例えば256イメージが257秒。これを線形換算すると、1億のイメージでだいたい11.6日なんですよね。これでGPUを使うと1桁、28.5秒で済む。だいたい1.3日ですね。こんなに大きな差があったので、みなさんGPUへいっちゃったわけです。

このデータは3年前で非常に古いんですが、このときのCPUはIvy Bridgeの10コアのものを2個。GPUはたった1個の「K40」です。しかも、ライブラリーが「cuBLAS」といって、我々のSuperコンピュータのライブラリしか使っていない。そのとき、我々はまだディープラーニング用のライブラリを持っていなかったんですよね。

では、いったい我々はどういうふうにAIをサポートしているのか。まずGPUのハードウェアがありまして、その上でCUDAという……あとで説明しますが、スーパーコンピュータで使っている超並列のプログラミング環境があります。

この上に、非常に最適化した「cuDNN」という、ディープラーニングのライブラリを乗せ、さらにその上にいわゆるフレームワークを載せています。ディープラーニングの開発環境です。これが「Caffe」とか「Chainer」ですね。

同じネットワークを使って認識を行うAIの強み

最後に、我々はここでもう1つ加えています。「DIGITS」という非常にビジュアルな学習環境を入れて、音声認識とかイメージレコグニションとかですね、こういうアプリを開発しています。

もうちょっとビジュアルに示すとこうなっていまして。上がアプリですね。真んなかがフレームワーク、下が我々がご提供しているライブラリ群ですね。

これがディープラーニング用のライブラリです。真ん中は、10年以上も我々が開発している、超並列用のCUDAの数学ライブラリです。それから、マルチコアで学習を獲得するためのユーティリティ。それから最後はインファレンスですね。認識するときにコードを最適化する、そういうエンジンを持っています。

例えば、我々は2013年からこういうものをご提供しているんですが、今、それがどれぐらい学習速度が上がったのか。

先ほどの「CPUに比べて10倍早い」というのは、実はK40で、cuDNNというライブラリがない状態なんですが、今年はPascalのP100、8コア並列、それからcuDNNの第5世代を入れて、だいたい60倍速くなったんですよね。だから、1日かかっていた学習が、半時間で終わる。今、そういったかたちで急加速をしています。

ということで、学習はほぼ弊社のGPUをみなさんお使いという状況になっています。そのなかで、「じゃあ車とどうつながるか?」というところですね。今、車での認識方法がなぜAIになりつつあるのか。従来の認識方法は、例えば歩行者はHOG、スピードリミットはハフ変換、各対象物によってアルゴリズムが変わる。しかも、認識率が75パーセント以下。

人工知能だと認識率が高いのに加えて、同じネットワークを学習さえすれば、歩行者であれ車であれ標識であれ、先ほどのテスラさんではないですが、認識されちゃうんですよね。そこが非常に大きな強みです。

我々も自身のネットワークを作って……。あ、もう1つメリットは、人間が書くアルゴリズムじゃないんですよね。非常に学習の向上速度が早いんですよね。2015年7月から39パーセントの認識率が、いきなり2016年2月に89パーセントも上がって、今、世界第3位ですね。

これはいくつかの結果ですが、どこかの場で紹介したので今日は省略いたします。

人間と同じように、目で見て操縦する

また別のデモでお見せします。

(動画再生)

もう1つ、これは自動操縦用にEnd-To-End、つまり人間と同じように目で見て操縦することができるんじゃないか、と。

我々はドライビングのとき、カメラを1本、convolutional neural net、深層学習のネットに入れて、いきなりステアを操る試みもやっております。

(動画を見て)サンルーフから手を出しているので、ステアを触っていないという証拠なんですが。こういうレーンがはっきりしていないような道なき道も、ブラインドカーブも、人工学習でいける。

これは学習前なので、コーンをどんどんなぎ倒していってるんですけれど、少しの学習でスムーズで走れるようになるんです。人間と同じですね。

(動画を見て)これは教師あり学習です。学習時は、教師がハンドルを握って、そのステア角とそれからカメラの情報を合わせてラーニングしています。こういう道なき道の障害物を避けたり、急カーブしたり、あとは工事現場でスムーズにコーンに沿って走ることができたりとかですね。人工知能も、人間と同じことができる。

しかしOEMにご紹介すると、ディープニューラルがブラックボックスなので、なにかあれば故障の原因究明ができないなどいろいろ問題があります。そこは、我々も工夫しています。ただ、習熟したドライバーのノウハウをここで吸収できるので、非常に使い勝手はあるんですよね。

こういった非常に望ましき人工知能を本当にできるプロセッサがあるか。そして、実はGPUがあります。