グラフィックスICであるGPUがディーププラーニングに向いたデバイスとして、NVIDIAは、AI(人工知能)活用に積極的だ。クルマ分野では自動運転が注目されるようになり、その人物や前方のクルマ、自転車などの対象物の認識にAI技術を活用できる。NVIDIAが毎年開催しているプライベートイベント「GTC(GPU Technology Conference)Japan 2016」では、自動運転に向けたAI技術について、同社CEOのJen-Hsun Huang氏(図1)が「ディープラーニングAI革命」と題して基調講演を行った。
これまでNVIDIAは、GPUをクルマのダッシュボードの機械式のメーターの情報を液晶などのフラットパネルディスプレイで表現するためのグラフィックスとして使うことを5年ほど前から提案してきた。ダッシュボードへの利用によるドライバーの支援が目的だった。残念ながらこの用途は、一部のクルマメーカーにしか採り入れられなかった。時期尚早であった。
ところが、ADAS(先進ドライバー支援システム)や自動運転車が注目を集めるようになってくると、ドライバー支援のテクノロジーは一変した。ドライバーの前方にある対象物がクルマなのか、人なのか、自転車なのか、クルマでもトラックなのか、乗用車か、人間の眼と同じレベル以上の性能が求められるようになった。それらの対象物を識別するためには、高速のパターン認識技術が極めて重要になってくる。従来のコンピュータを使ってパターン認識をさせようとすると、画像の左上から右下まですべての画素データからその特徴を抽出、パターンマッチング、そのためのアルゴリズムなどをCPUで実現しようとしてきた。しかし、この手法だと時間がかかりすぎ、クルマには使えなかった。
最近注目を集めているAIは、パターンマッチングの参照パターンとは100%一致する必要がなく、8割、9割似ていればよいというふわっとした判定である。参照パターンを学習させるのに必要な学習には時間はかかるが、出来上がったパターンとの比較・判定にはそれほどの時間はかからない。
NVIDIAがAIにGPUを使う理由は、特にディープラーニングでのニューラルネットワークの手法と一致するからだ。ここでは神経細胞をまねた構造の情報伝達システムを利用する。ニューロン(神経細胞)1個は、視神経や音声などの多数の入力信号が脳細胞に入ると、最初の脳細胞では、入ってきたすべての入力信号(x1~xn)に重み(a1~an)を掛け、それらを足し合わせる。最後に計算した結果をyとして出力する。これは、GPUが得意な積和演算そのものである。この重みを学習によって変えていくと出力yも変わる。神経細胞は小脳だけで1000億個あるといわれているため、電子回路では、このような細胞をできるだけ多数用意して、ネットワークを構成していく。次から次へとニューロンからニューロンに入り、データ結果に基づいて流れていくデータフロー型アーキテクチャといえる。
自動運転では、まず今どこにいるかを検出・認識し、なぜそこにいるのか理由付けする。そしてアクションをとる。つまり、認識→理由付け→アクション、というループでそれぞれを演算する。認識では、クルマが高速道路か一般道か、クルマの周囲にあるもの、などを認識する。理由付けでは、なぜそこに対称物があるのか、突然出てきたものか、ずっと追尾しているものか、だったらどのようにすべきか、などを判断する。判断ができたら、ブレーキをかけるのか左へ寄るのか、などのアクションをとる。アクションは制御系のマイコンを含むECU、アクチュエータで行う。アクション以外はAIで情報処理することができる。
これまでの自動運転は、クルマの検出・認識、さらには白線検出などを行い、サラウンド検出も加えていた。やはり目印となる白線などの対象物が必要だった。対象物があれば、AIを使わなくてもコンピュータ計算だけでも情報処理はできた。しかし、目印のない、例えば山の中の「けものみち」を走るようなハンドル操作となると、「方程式はない。ハンドル操作は計算ではなく行動(Behavior)である。だから、経験を積んだ学習、すなわちAIが必要なのだ」とHuang氏は講演で述べている。講演ではAI搭載車BB8(図2)のビデオを流している。
同社は、AIがクルマの自動走行に応用するのは、認識や自車の位置推定だけではなく、ドライビングにも使うとHuang氏が言ったのは、運転能力も学習で身に着けることを意図したものだ。オートクルーズから自律運転まで、Huang氏は強力なAIエンジン「NVIDIA Drive PX2」のアーキテクチャで実現できるとしている。これは手のひらサイズの10Wのスーパーコンピュータだ、と紹介した(図3)。さらに、このエンジンを使ってソフトウェアを開発するためのSDKプラットフォーム「Driveworks Alpha 1」(図4)も紹介した。
クルマ用のこのSDKでは、対象物を検出するためのDriveNet、どのような道路でも検出するOpenRoadNet、さらに自社の位置を推定するLocalization、自車の位置を決定するOccupancy Grid、ドライブするためのPilotNetというソフトウェア部品を持つ。特に、PilotNetは、けもの道を走行する時にディープラーニングによって人間のドライブ手法を学び、自らも自律的に運転するための仕組みである。NVIDIA がAIを実装した自動運転車BB8は白線検出レベルから10月までの約6カ月間、学習したという。Alpha 1は2カ月ごとにソフトウェアを更新する。
NVIDIAは単にGPUの応用範囲を広げてきただけではない。むしろAIに使うデバイスとして活用する方が威力を発揮することがわかってきたからだ。例えば、音声認識に活用すると、従来の言葉や文脈の特長抽出を用いたコンピュータアルゴリズムで計算していた方法と比べて、誤認識率が下がったというデータが出てきた。2016年9月16日にマイクロソフトがAIを使った音声認識の誤認識率が従来の10%強から2%程度へと大きく下がっている。NVIDIAはAIを使った自動運転車の実現には自信を持っている。