トピック

NVIDIA、自動運転・自動認識の最前線を紹介する「ディープラーニングセミナー」

ヘテロジニアスラーニングによる歩行者検出精度向上などを発表

2015年8月19日 開催

NVIDIAのディープラーニングセミナーで披露された、自動運転システム開発用の車載システム「DRIVE PX」。12chのカメラ入力や、CAN接続用のインターフェイスを搭載する

 NVIDIA(エヌビディア)は8月19日、愛知県名古屋市において「ディープラーニングセミナー 2015」を開催した。本セミナーでは、同社が提供するGPU(Graphics Processing Unit)が、人工知能を実現する有望な技術の1つとして近年話題の「ディープラーニング」にどのように関わり、何を可能にするのか、そもそもディープラーニングとはどういうものかなどの詳細な解説が行われた。

 今回のディープラーニングセミナーの開催場所が自動車メーカーや自動車の主要部品メーカーが集う地域ということもあり、主に自動運転技術に対してディープラーニングがどのような点で有益なのかが中心的なテーマとなった。またGPUだけでなく、NVIDIAが提供するディープラーニング活用のためのソフトウェアソリューションについても合わせて紹介していた。

ディープラーニングの高精度の画像認識により、自動運転実現へ

中部大学 工学部 情報工学科 講師 山下隆義氏

「ディープラーニング」は、2012年に行われた世界的な画像認識コンテスト「ILSVRC」において、ディープラーニングを基礎としたアルゴリズムを用いるチームが驚異的な低エラー率を叩き出したことで一躍注目を浴びたテクノロジーだ。

 人工知能を実現するための従来手法では、人間の脳の仕組みを模倣したニューラルネットワークを用いることはあったものの、その前段階となる“物”を認識させるのに必要な“特徴”の抽出と、それをコンピュータに学ばせるための処理など、多くの部分に人間の作業が介在していたことから、取り扱うデータ量や学習の範囲は限定的にならざるを得ず、必然的に人工知能の進化も伸び悩んでいた。

 一方、ディープラーニングを用いた手法では、ニューラルネットワークを多層構造とした上で、特徴の抽出と学習をほぼすべてコンピュータ自身が自動で行うため、いわゆる「ビッグデータ」をはじめとする膨大なデータをもとに高速に機械学習を実行できるようになる。

 ディープラーニングの応用範囲は画像認識に止まらない。セミナーの基調講演で登壇した中部大学 工学部 情報工学科 講師 山下隆義氏は、音声認識に関するベンチマークでディープラーニングを用いた手法がトップの成績を獲得したことに加え、単純なパズルゲームの攻略法をコンピュータが独自に学んだり、Googleが2015年6月に発表した人工知能の描く絵「Inceptionism」を発表したことなどを紹介した。そして画像認識においては、2014年以降、人間のエラー率とされる5%に限りなく近づいているか、場合によっては下回ることもある段階だという。

ディープラーニングの現在
ディープラーニングの応用例として自動運転を紹介
ディープラーニングでの認識例
なぜディープラーニング?
何がディープラーニング?
ディープラーニングについての整理
ディープラーニングに用いられている技術
結合方式の紹介
DNNとDBN
畳み込みニューラルネットワーク(CNN)について
畳み込み層 その1
畳み込み層 その2
畳み込み層 その3
畳み込み層 その4
活性化関数
Maxout
プーリング層
全結合層
出力層
学習方法
学習の流れ
パラメータの学習
誤差の更新方法
初期パラメータの決め方
Dropout
学習画像の生成
前処理の重要性
正規化
冗長性の削除
ZCA whitening
Normalize Layer
正規化
正規化
学習時間

 こうしたディープラーニングによる画像認識は、カメラ映像を通じた物体検出、歩行者検出などにも応用でき、ひいてはクルマの自動運転の実現にもつながっていく。これまでは処理の負荷などを考慮して人間の検出には人物であるかどうかの認識のみを行ってきたが、脚の座標の検出も同時に行うようにしたことで、歩行者の検出精度をより高めることができるという研究結果も報告された。

AlexNet
Clarifi
Network in Network その1
Network in Network その2
Network in Network その3
GoogLeNet その1
GoogLeNet その2
認識率
顔認証精度
ディープラーニングによる顔照合
物体検出
特徴抽出
線形SVM
認識結果
歩行者検出
歩行者検出。赤丸が新しい手法で認識が上がった個所
セグメンテーション
顔パーツラベリング
シーンラベリング
手の形状検出
学習過程の可視化
顔器官検出
顔輪郭検出
実演サンプル
ヘテロジニアスラーニング
ヘテロジニアスラーニングによる歩行者部位特定。検出率が上がった
顔器官検出と性別年齢推定
実演
ノートPCでのライブデモ
ディープラーニングツール「Theano」
Caffe
Chainer

ディープラーニングとNVIDIA

NVIDIA プラットフォームビジネス本部 部長 林憲一氏

 このようなディープラーニングにNVIDIAはどのように関わっているのだろうか。言うまでもなく、NVIDIAはPC向けのグラフィックスプロセッサであるGPUのメーカーである。一般にはコンシューマユーザー向けGPUのGeForceシリーズがよく知られているが、CADやCGデザインなどの用途に適したエンタープライズ向けGPUであるQuadroシリーズのほか、最近ではクラウドサーバー、スーパーコンピュータ向けのハイエンドシステム向けGPUであるTeslaも提供している。

 同社プラットフォームビジネス本部 部長 林氏によれば、GeForceシリーズはコンシューマ市場ではかなりのシェアを占めているが、その一方で企業ユーザーからはTeslaを搭載したサーバーの引き合いも増えており、Google、Facebook、IBM、MicrosoftなどIT関連の大企業はもちろんのこと、数多くのスタートアップ企業もGPUを活用したディープラーニングに取り組んでいるという。

NVIDIAについて
ディープラーニングに取り組む企業
ディープラーニングの応用例
Googleの開発者向けイベント「Google I/O」でもディープラーニングが大きな話題に
なぜ今ディープラーニングなのか

 最新のK80を使用したTeslaでは、大量のデータを処理するディープラーニングで特に重要とされるメモリバンド幅が約500GB/s、倍精度演算性能は約3TFLOPSで、現在の最高性能のCPUと比較してもそれぞれ6〜10倍上回っているとしている。例えば画像認識のためのイメージ処理について、16コアのCPUのみでは1日に250万枚程度しかこなせないのに対し、最新GPUのTITAN Xチップセットでは1日に最大4300万枚を処理できる。

 一般的なCPUと比べ、ディープラーニングにおける画像処理などにおいて圧倒的な性能を実現するNVIDIAのGPUだが、すでに説明したとおり大まかにはGeForce、Quadro、Teslaという3つのシリーズに分かれており、利用シーンごとの使い分けも重要だと林氏は説明する。コストパフォーマンスに優れたGeForceはディープラーニングのローカル開発環境に、高い堅牢性と信頼性を誇るTeslaはクラウドサーバーやデータセンターなど、本番運用環境での利用にそれぞれ適していると述べた。

NVIDIAのGPUの性能の伸び
Tesla K80について
1日に処理できる画像の数

 Teslaは高価ではあるが、半導体製造とメモリ設計、ストレステストなどを一貫して同社が行っているのに加え、エラー保護・補正を行うECCメモリを採用するほか、GPUメモリ間で直接データ転送を行うGPUDirect、GPUの動作状況を監視するモニタリング機能なども提供し、クラスター運用での性能も重視して開発されている点でGeForceとは大きく異なっている。

 現行のGPUはMaxwellと呼ばれるアーキテクチャを採用しているが、2016年にはPascalへと世代交代する。16bit演算処理のネイティブサポート、次世代の「HBM(High Bandwidth Memory)」技術を採用した積層型3Dメモリの搭載、チップ間の高速データ転送を実現する「NVLink」の実装などにより、さらなるパフォーマンスアップを目指す計画だ。また、2年後の2018年にはVolta世代へと移り、「CPUとの性能差は開く一方」(林氏)だとした。

NVIDIAの提供する開発環境
DIGITSについて
GeForceとTeslaの違い。安定運用を行う際はTeslaが向いているという
安定運用のためのTeslaのファンクション
メモリもECC機能が付く
NVIDIAのGPUのロードマップ。2016年にはディープラーニング性能を大きく伸ばすPascalアーキテクチャのGPUをリリースする
NVIDIAのディープラーニングプラットフォーム図

モバイル、デスクトップ、サーバーすべてで共通のアーキテクチャ

NVIDIA シニアソリューションアーキテクト 馬路徹氏

 ディープラーニングに適したGPUの高い性能を活かし、NVIDIAはすでにクルマの自動運転に対する取り組みも具体的にスタートさせている。同社シニアソリューションアーキテクトの馬路氏によると、現在路上で走行しているNVIDIAチップセットの搭載車両は800万台あり、近い将来2500万台に拡大すると推計している。

 また、家電などの総合展示会である2015 International CES(Consumer Electronics Show)では、アウディのプロトタイプ車両で自動運転の実演も行った。これとは別に欧州の自動車メーカーで同社GPUの採用が決定したこともあり、低速度の自動運転や、公共駐車場での完全自動駐車についても実現は目前に迫っている。

米国シリコンバレーにある各自動車メーカーの開発拠点。多数の自動車メーカーがIT関連の開発をシリコンバレーで行っている
IT関連メーカーも本社を新築している
NVIDIAの製品はすでに800万台の自動車に搭載され、今後2500万台の自動車に搭載されることが確定している

 クルマに搭載するGPUは、モバイル向けチップセットのTegraシリーズがメインだ。モバイル向けとはいえ、最新のTegra X1は256個のコアをもち、1TFLOPS超という「初期のスーパーコンピュータ並み」(同氏)の処理性能を誇っている。このチップを採用する車載システムとして、同社は「DRIVE PX」も開発。2個のTegra X1により2.3TFLOPSという高い性能を達成しているほか、最大12個のカメラを制御することにより、車両の周囲360度をCG化して監視できるサラウンドビューの高品質化にも対応する。

スーパーコンピュータに搭載されるNVIDIAのGPU
車載用のTegraは、スーパーコンピュータに搭載されているTeslaと同様のアーキテクチャ
2015年に登場したMaxwellアーキテクチャのTegra X1
FP16の演算で1TFLOPSを実現
近年の自動車に求められるADASでは多数のカメラやレーダーを搭載
例えばカメラだけでも12個所に設置する必要があるかもしれない
NVIDIA Tegra X1を2基搭載したDRIVE PXであれば、12chのカメラ入力を処理できる
「DRIVE PX」。2個のTegra X1、最大12個のカメラ入力をもち、車両データのやりとりに用いる標準規格CANに対応する
カメラ入力部
カメラ
各Tegra X1にはファンを用意

 馬路氏は、Tegraも含め、同社のGPUシリーズすべてが共通のアーキテクチャをもっていることのメリットも訴える。クライアントPC上のGeForceを用いて開発した後、Tesla搭載のサーバー上で負荷の高いディープラーニングの機械学習処理を行い、その結果をTegra搭載車両のシステムに反映するという流れをシームレスに行えるというわけだ。また、クルマの運転を通じて得たデータをフィードバックすることで、再学習を行って物体の認識率などを高め、クルマのシステムをアップデートする、といったサイクルを生むこともできるという。

DRIVE PXを用いた自動駐車のシミュレーション
Tegra X1の自動認識性能
ディープラーニングによる車種認識
ディープラーニングの開発ソリューション。スーパーコンピュータで開発して、車載のDRIVE PXでテストを実施。同じMaxwellアーキテクチャのため、開発が容易
アウディでの自動運転の例
アウディではドライバーモニターも行っている

ディープラーニング関連のソリューション、ライブラリを無償公開中

Preferred Networksの奥田遼介氏。開発用ライブラリのChainerを提供する

 ディープラーニングをクルマの自動運転やその他さまざまな分野に応用するには、ソフトウェア開発環境の充実も欠かせない。現在、ディープラーニングの主要な開発用ライブラリ・フレームワークには、「Chainer」「Caffe」「Torch」「Theano」などが存在する。それぞれで使用できるプログラミング言語や機能、得意な学習分野は異なるが、いずれもNVIDIAのGPUを活用した高速な学習処理に対応する。

Preferred Networksの奥田遼介氏が解説した、主要なディープラーニング用フレームワークの比較表
IoT時代の課題
機械学習の活用
強化学習
ロボットカーを使って強化学習を実施
問題設定
強化学習とディープラーニング(深層学習)
自動でブロックの崩し方を覚え、最後は効率的な方法でブロックを崩す
複数のロボットカーを使って協調走行を行う
重みを共有
デモの内容
こちらはアルゴリズムの検証。しばらくするとコースを周回するようになる
ロボットカーの構成
ある程度学習が進んだところで、交差点を設置
コースを変更しても走り続けることができた
ディープラーニング開発環境比較
Chainerのよい点
学習アーキテクチャの複雑化に対応
ネットワーク構造変化
Chainerのリリーススケジュール
Chainerの環境
MNISTの実行
Imagenet
Chainerのアクセス

GPUとディープラーニング

NVIDIA シニアデベロッパーテクノロジー エンジニア 成瀬彰氏

 これらのフレームワークがGPUを使った高速処理を行うためには、NVIDIAのGPUが搭載している「CUDA」を用いる必要がある。そのため、このCUDAをディープラーニング向けに活用しやすくなるよう、同社は「cuDNN」や「cuBLAS」というライブラリを提供している。さらに、ディープラーニングの学習、設計、テストを一貫したインターフェイス上で行えるWebサービス「DIGITS」も無償提供している。

 NVIDIA シニアデベロッパーテクノロジー エンジニアの成瀬氏は、ディープラーニングを研究するデータサイエンティストが、「アイデア→コーディング→トレーニング(学習処理)→テスト」といったワークフローで開発を進めていると想定した上で、「DIGITS」がこの流れ全体をスムーズにするツールであり、「cuDNN」と「cuBLAS」は学習処理の部分を強力に支援する役目を果たすものだとした。

ディープラーニング注目のきっかけ
ディープラーニングの適用分野
ディープラーニングを用いた音声認識

 cuDNNは、「畳み込み層」と呼ばれる部分の学習処理、平たくいえば、画像の中の特徴(輪郭など)を抽出するためのフィルタリング処理を主に担う。また、cuBLASはベクトル・行列演算ライブラリであり、ディープラーニングでは一度に大量に行うことになる行列計算を高速に実行する。こうした処理が膨大な回数発生するディープラーニングの学習処理においては、演算性能とメモリバンド幅の大きさが直接的に影響する。したがって、いずれも一般のCPUと比べ大きなアドバンテージがあるNVIDIAのGPUが、効率的なディープラーニングには欠かせないものとなる。

写真を解析し、自動で文章を生成している
ディープラーニングによる認識はスケーラブルであること。認識率を向上しやすい
データ解析のワークフロー。解析トレーニングに時間がかかるがGPUはここを短縮できる
通常のディープラーニングトレーニングモデル
NVIDIAのGPUであれば、ライブラリによってトレーニング時間を短縮
cuBLASライブラリが効果的なポイント(緑の丸)と、cuDNNライブラリが効果的なポイント(水色の丸)
全結合層を行列とベクトルの乗算として計算できる。そのため、メモリバンド幅の広いGPUが有利
さらにそれをミニバッチ処理することで行列と行列の乗算に。演算能力も有利
畳み込み層の処理
演算処理のイメージ。cuDNNで行列演算として扱える
GoogLeNetでの演算
cuDNNのAPI
GPU実行のメリット
学習性能。GPUでは4300万枚の画像を1日に学習可能
9月にリリースされるcuDNN v3ではさらに倍に
NVIDIAはディープラーニングを構築できるDIGITSを無料提供
DIGITSの実行画面
モデルを設定
学習状況を監視
どのように学習されたか可視化できる
学習された結果に、トラックの画像を判断させる
90%以上の確率で「semi-truck」と判断された
登録が必要だが無料ダウンロード可能なDIGITS
データ・サイエンティストのワークフローで、NVIDIAの提供するソフトウェアが貢献する部分

 なお、今回のセミナーには当初の想定をはるかに超える200名近くが参加し、ディープラーニングやそれを効率的に活用できるGPUに対する熱意が非常に高かったのが印象的。9月18日に虎ノ門ヒルズフォーラムで開催するNVIDIA主催の「GPU TECHNOLOGY CONFERENCE 2015」(http://www.gputechconf.jp/page/home.html)も、ディープラーニングに関わるセッションが数多く用意されていることもあってか、同社によればすでに2000ある席の大半が埋まりつつあるという。人工知能は自動車分野をはじめ今後多くの領域に広がっていくとみられており、ディープラーニングとGPUの関係、動向は注視していく必要がありそうだ。

協力:NVIDIA

(Photo:高橋 学/日沼諭史)