エヌビディア合同会社 プラットフォームビジネス本部 部長
林 憲一
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
2009 2010 2011 2012 2013 2014 2015 2016
ディープラーニングによって加速する AI 競争
IBM Watson が自然言語処理のブレークスルーを実現 Facebook が Big Sur を発表
Baidu の Deep Speech 2 人間を超える
Google が TensorFlow を発表 トヨタ自動車が人工知能研究所に1200億円投資 マイクロソフトと中国の科学技術大学がIQ テストで人間を超える
IMAGENET
正答率
ディープラーニングを加速する3要素
エクサバイトのコンテンツが毎日生み出される
ユーザーの作るコンテンツがウェブサービスのサーバーを圧迫
1000万ユーザー
毎日40 年分のビデオ配信
170万のゲーマーが配信
毎日1時間半視聴
毎日60億の検索クエリー
10% は音声入力
毎日2億7000万アイテム売買
43% はモバイルデバイス
毎日80億ビデオビュー
半年で400% 成長
50% はモバイルデバイスを使用
毎分300時間分のビデオ
ハイパースケールデータセンター
Tesla プラットフォーム
トレーニングのためのサーバー
データ量でスケール
推論、ウェブサービスのためのサーバー
ユーザー数でスケール
TESLA M40
世界最速のディープラーニング
アクセラレーター
0
1
2
3
4
5
6
7
8
9
Tesla M40
CPU
8倍高速
Caffe パフォーマンス
# of Days
Caffe Benchmark: AlexNet training throughput based on 20 iterations, CPU: E5-2697v2 @ 2.70GHz. 64GB System Memory, CentOS 6.2
CUDA コア
3072
理論ピーク性能
7 TFLOPS
GDDR5 メモリ
12 GB
メモリバンド幅
288 GB/s
消費電力
250W
トレーニングにかかる時間を8日から1日へ短縮
TESLA M4
ハイパースケールワークロードを
加速して最高スループットを実現
CUDA コア
1024
理論ピーク性能
2.2 TFLOPS
GDDR5 メモリ
4 GB
メモリバンド幅
88 GB/s
フォームファクター
PCIe Low Profile
消費電力
50 – 75 W
ビデオ処理
4倍
イメージ処理
5倍
ビデオ
トランスコード
2倍
機械学習
推論
2倍
H.264 & H.265, SD & HD
手振れ補正、画質向上
リサイズ、フィルター、検索、
自動画質向上
エヌビディア合同会社 プラットフォームビジネス本部
ディープラーニング SDK
ディープラーニング開発を強力にサポート
ディープラーニング SDK
cuSPARSE
cuBLAS
cuDNN4 ディープラーニング用ライブラリ
最新は
バージョン4
(2015/12~)
ディープニューラルネットワークの為のGPUプリミティブ群
Caffe, Torch, Theano, Chainer, TensorFlow 等の主要ディープラーニングフ
レームワークが採用
以下のOSをサポート (※2016.1.15現在)
Windows
Linux(x64/ARMv7/ARM64/Power8)
Mac OSX
Android(ARMv7/ARM64)
ディープラーニング SDK
cuDNN4 ディープラーニング用ライブラリ
学習の高速化
畳み込み演算のアルゴリズムに2D FFTタイリングを追加
Batch Normalization処理の追加
normalizationFoward関数、normalizationBackward関数の追加
畳み込み演算のFP16サポート(Tegra X1 only)
cudnnConvolutionForward関数のFP16対応
推論処理の高速化
convolutionFowardのbatchsize=1の場合の最適化
学習をより速く 推論を高速に
Tiled FFT up to 2x faster on VGG Layers
0.0x
1.0x
2.0x
3.0x
0.0x
1.0x
2.0x
3.0x
cuDNN4 ディープラーニング用ライブラリ
学習をより速く 推論を高速に
Pe
rfo
rma
nc
e
AlexNet training throughput based on 20 iterations,
CPU: 1x E5-2680v3 12 Core 2.5GHz. 128GB System Memory, Ubuntu 14.04
Caffe Performance
K40
K40+cuDNN1
M40+cuDNN3
M40+cuDNN4
0
1
2
3
4
5
6
11/2013
9/2014
7/2015
12/2015
CUDA7.5: cuBLAS & cuSPARSE
ディープラーニング SDK
cuBLAS
密行列計算用ライブラリ
cuSPARSE
疎行列計算用ライブラリ
cuSPARSE
CUDA7.5: cuBLAS & cuSPARSE
cuSPARSE
密行列×疎ベクタールーチン
自然言語処理を高速化
Bag of Words(BoW)をより高速に処理
cusparse{S,D,C,Z}gemvi()
y = α ∗ op(A)∗x + β∗y
cuBLAS
FP16(半精度浮動小数点)ストレージ
cublasSgemmEx()
FP16データ入出力対応の行列積 (演算はFP32)
ディープラーニング SDK
NVIDIA Collective Collection Library(NCCL)
マルチGPU集合通信ライブラリ
•
https://github.com/NVIDIA/nccl
all-gather, reduce, broadcast など標準的な集合通信の処理をバンド幅が出るように最適化
シングルプロセスおよびマルチプロセスで使用する事が可能
DIGITS3
WebベースのディープラーニングGPUトレーニングシステム
ディープラーニング SDK
ユーザー
インターフェース
データセット
の作成
学習モデルの
作成
学習過程の
可視化
レイヤーの
可視化
DIGITS(UI/Server)
ディープラーニングの学習・テストを
簡単に行う為のUI
別マシンからDIGITSを操作する為の
サーバ機能
Chainer
GPU
GPU HW
マルチGPU
GPUクラスタ
クラウド
Theano
Torch
Caffe
cuDNN, cuBLAS
CUDA
学習
NVCaffe
cuDNN, cuBLAS
CUDA
NVCaffe
BVLC/caffe(本家)からフォーク
最新のCUDAライブラリを使用
エヌビディアGPUに最適化
DIGITS3
Torch7に対応(Preview)
cuDNN4を使った学習/推論
HDF5形式のデータセットのサポート
学習データセットのブラウジング機能
LMDB形式の学習データの中身を確認出来る機能が追加
ジョブマネージメント機能の強化
現在実行中のジョブ一覧を分かりやすく表示する機能が追加
学習結果比較用ブラウザ
学習済みモデルをAccuracyやLoss率など幾つかの項目でソートしたり、分析できる画面が追加
強化されたワークフローで効率よく学習
ディープラーニング SDK
ディープラーニング開発を強力にサポート
ディープラーニング SDK
cuSPARSE
cuBLAS
Jetson TX1
モジュール型スーパーコンピューター
10W以下で比類ないパフォーマンス
クレジットカードサイズ
Jetson ソフトウェア開発キット
ライブラリ群
開発ツール
設計ファイル
開発者フォーラム
学習・チュートリアル
エコシステム
http://developer.nvidia.com/embedded-computing
包括的な開発者用プラットフォーム
Jetson Linux SDK
Debugger | Profiler | System Trace
NVTX
NVIDIA Tools eXtension
グラフィックス
ディープラーニングと
cuDNN
CUDAで加速された
ディープラーニング用ライブラリ
各種ニューラルネットワークを
使い始めてすぐに高速化
標準的なフレームワークに全て対応
学習にも推論にも対応
Jetson TX1
CUDA
cuDNN
各種フレームワーク
アプリケーション
各ハードウェア
Tesla
TITAN X
VisionWorks
™
CUDAで加速された
コンピュータービジョン用ツールキット
OpenVX1.1 の完全実装
NVIDIAのカスタム拡張
既存のCVパイプラインに容易に統合可能
CUDA
VisionWorks
Pipelines
アプリケーション
Feature
Tracking
from Motion
Structure
Tracking
Object
Optical Flow
Dense
…
Jetson TX1
各ハードウェア
Tesla
TITAN X
Linux
Windows
大学
スタートアップ
CNTK
TENSORFLOW
DL4J
あらゆるフレームワークを GPU で最適化
NVIDIA GPU プラットフォーム
VITRUVIAN SCHULTS LABORATORIESTORCH
THEANO
CAFFE
MATCONVNET
PURINE
MOCHA.JL
MINERVA
MXNET*
CHAINER
BIG SUR
WATSON
OPENDEEP
KERAS
株式会社 Preferred Networks
取締役副社長 岡野原 大輔様
Google’s Open Source Machine Learning System: TensorFlow
Dr. Mike Schuster, Google
docomo Developer support における画像認識 API 提供
株式会社 NTT ドコモ
© 2016 NTT DOCOMO, INC. All Rights Reserved.
© 2016 NTT DOCOMO, INC. All Rights Reserved.
© 2016 NTT DOCOMO, INC. All Rights Reserved.
•17カテゴリ
(25種類)のAPI
•無償
(制限の範囲内で)
docomo Developer support
APIカテゴリ
APIカテゴリ
シナリオ対話
文字認識
発話理解
トレンド記事抽出
雑談対話
動作推定
知識Q&A
ジオフェンシング
言語解析
地図
音声認識
フォトコレクション
音声合成
ドコモ電話帳
画像認識
データ保管BOX
IoT機器制御
© 2016 NTT DOCOMO, INC. All Rights Reserved.
docomo Developer support
© 2016 NTT DOCOMO, INC. All Rights Reserved.
docomo Developer support
© 2016 NTT DOCOMO, INC. All Rights Reserved.
docomo Developer support
© 2016 NTT DOCOMO, INC. All Rights Reserved.
2つの画像認識API
1.オブジェクト認識、商品認識
• 個別具体的な名称
で認識
• 局所特徴量ベース
2. カテゴリ認識
• 抽象的なコンセプト
を認識
• Deep Learning
を利用
© 2016 NTT DOCOMO, INC. All Rights Reserved.
2つの画像認識API
1.オブジェクト認識、商品認識
• 個別具体的な名称
で認識
• 局所特徴量ベース
画像認識
エンジン
自然言語
処理入門
© 2016 NTT DOCOMO, INC. All Rights Reserved.
2つの画像認識API
1.オブジェクト認識、商品認識
• 個別具体的な名称
で認識
• 局所特徴量ベース
画像認識
エンジン
・商品名:自然言語処理入門
・著者:ドコモ花子
・発売年:1989/9/01
自然言語
処理入門
・商品名:画像認識API入門
・著者:ドコモ太郎
・発売年:2014/9/17
© 2016 NTT DOCOMO, INC. All Rights Reserved.
2つの画像認識API
1.オブジェクト認識、商品認識
• 個別具体的な名称
で認識
• 局所特徴量ベース
画像認識
エンジン
自然言語
処理入門
© 2016 NTT DOCOMO, INC. All Rights Reserved.
2つの画像認識API
1.オブジェクト認識、商品認識
• 個別具体的な名称
で認識
• 局所特徴量ベース
画像認識
エンジン
・商品名:自然言語処理入門
・著者:ドコモ花子
・発売年:1989/9/01
・商品名:画像認識API入門
・著者:ドコモ太郎
・発売年:2014/9/17
自然言語
処理入門
© 2016 NTT DOCOMO, INC. All Rights Reserved.
2つの画像認識API
1.オブジェクト認識、商品認識
• 個別具体的な名称
で認識
• 局所特徴量ベース
画像認識
エンジン
・商品名:画像認識API入門
・著者:酒井 俊樹
・発売年:2014/9/17
© 2016 NTT DOCOMO, INC. All Rights Reserved.
2つの画像認識API
1.オブジェクト認識、商品認識
• 個別具体的な名称
で認識
• 局所特徴量ベース
画像認識
エンジン
×
・商品名:画像認識API入門
・著者:酒井 俊樹
・発売年:2014/9/17
自然言語
処理入門
© 2016 NTT DOCOMO, INC. All Rights Reserved.
1.オブジェクト認識、商品認識の特徴
大規模・高速
(700万件・1秒)
遮蔽・回転
OK
画像
1枚から
バリエーションのある
物体は苦手
特徴量は手作り
・商品名:画像認識API入門 ・著者:ドコモ太郎 ・発売年:2014/9/17 ・商品名:自然言語処理入門 ・著者:ドコモ花子 ・発売年:1999/12/21…
特徴量
比較
自然言語 処理入門・・
・
画像認識
エンジン
© 2016 NTT DOCOMO, INC. All Rights Reserved.
2つの画像認識API
1.オブジェクト認識、商品認識
• 個別具体的な名称で認識
• 局所特徴量ベース
2. カテゴリ認識
• 抽象的なコンセプト
を認識
• Deep Learning
を利用
© 2016 NTT DOCOMO, INC. All Rights Reserved.
2. カテゴリ認識(Deep Learning)
シーン認識
エンジン
スキー/スノボ
海
運動会
© 2016 NTT DOCOMO, INC. All Rights Reserved.
2. カテゴリ認識(Deep Learning)
料理認識
エンジン
豚骨ラーメン
醤油ラーメン
焼きそば
© 2016 NTT DOCOMO, INC. All Rights Reserved.
2. カテゴリ認識(Deep Learning)
ドクツルタケ
キノコ
認識
チューリップ
花認識
ファッション
認
識
カットソー
グレー系
ボーダー
© 2016 NTT DOCOMO, INC. All Rights Reserved.
2. カテゴリ認識(Deep Learning)
バリエーション
OK
とりあえず学習・認識
大量のデータが必要
並列分散処理
入力
出力
…
…
…
…
…
低次の層で特徴を抽出
取り出すべき特徴も
学習
で決める
取り出した特徴を
元に認識
© 2016 NTT DOCOMO, INC. All Rights Reserved.
Deep Learningの学習時間(イメージ)
GPU
CPU
約
20倍
約
7日(20000iter)
半日弱
大規模データの”学習”ではGPUが必須
※あくまでイメージです。画像枚数やネットワークによって変わりま
す。
・CPU:Intel Xeon(R) CPU E5-2643
・GPU:NVIDIA Tesla K80
© 2016 NTT DOCOMO, INC. All Rights Reserved.
Deep Learningの認識時間(イメージ)
GPU
CPU
約
10倍
数百
ms/枚
数十
ms/枚
以下に依存して選択
・使うネットワーク構造
・求める処理速度
※あくまでイメージです。画像枚数やネットワークによって変わりま
す。
・CPU:Intel Xeon(R) CPU E5-2643
・GPU:NVIDIA Tesla K80
© 2016 NTT DOCOMO, INC. All Rights Reserved.
Deep Learningを用いたAPIのシステム構成
画像認識API
(CPU)
アプリ開発者
登録
アクセス用
キー
開発
画像+
モデル名
認識結果
タグ+スコア
ドコモ側で学習済みの
Deep Learningの認識器(モデル)
シーン認識
料理認識
学習用サーバ
(GPU)
※返却は1秒以内
© 2016 NTT DOCOMO, INC. All Rights Reserved.
Deep LearningのAPIのサービス利用
• シーン認識
運動会
アルバムアプリ
×
クラウド管理支援
×
© 2016 NTT DOCOMO, INC. All Rights Reserved.
Deep LearningのAPIのサービス利用
• 料理認識
ヘルスケアアプリ
トレンド解析
握りずし
×
×
© 2016 NTT DOCOMO, INC. All Rights Reserved.
Deep LearningのAPIのサービス利用
• ファッション認識
ECサイトでの購入支援
カットソー
グレー系
ボーダー
×
© 2016 NTT DOCOMO, INC. All Rights Reserved.
Deep LearningのAPIのサービス利用
• 花認識/キノコ認識
チューリップ
図鑑アプリ
© 2016 NTT DOCOMO, INC. All Rights Reserved.
画像認識
APIを使ってみるには
https://dev.smt.docomo.ne.jp/
制限緩和
/カスタムモデルのご相談も
MATLABによる深層学習
Mathworks Japan
MATLABとは?
科学技術計算のための統合開発環境
エディター
ワークスペース
MATLAB メモリ領域
コマンド履歴
現在のフォルダ
コマンドウィンドウ
Figure
優れた開発効率
–
シンプルなプログラムの文法
–
インタープリタによる対話的操作
–
デバッガ・プロファイラー等の充実
柔軟な拡張性
–
C/C++, Java, Python 等との連携
–
各種計算ライブラリの取り込み
豊富な拡張ライブラリー
–
アプリ:画像・信号・制御・金融等
–
入出力:カメラ・マイク・データベース
GPGPU によるアルゴリズムの高速化
GPU実行が可能なMATLAB関数群
–
300以上のMATLAB関数
–
90 in Statistics and Machine Learning Toolbox
–
48 in Image Processing Toolbox
–
スパース配列のGPU演算サポート
0
10
20
30
40
50
60
70
80
0
512
1024
1536
2048
実
行
時
間(
秒)
波動方程式のグリッドサイズ
18 x
faster
23x
faster
20x
faster
NVIDIA Tesla K20c
波動方程式をスペクトラル法で解いたときの速度の比較
GPGPUによるアルゴリズムの高速化
Parallel Computing Toolbox™
>> I = gpuArray(I);
>> I = imrotate(I, 75, ‘bicubic’);
>> I = gather(I);
GPU のメモリへ転送
画像の回転を GPU上で実行
結果をメインメモリへ転送
gpuArray
gather
メインメモリ
GPGPU
MATLABによる深層学習
積層自己符号化器
Stacked Autoencoder
畳み込みニューラルネット
Convolutional Neural Network
画像認識等に優れた性能
既存方式を大きく引き離す
Neural Network Toolbox
MATLAB のオプションとして提供
インストールしてすぐ使える
サポートも利用可能
MatConvNet
Oxfordの研究者によるライブラリ
Caffe に近い実行性能(cuDNN v4)
使い易いインターフェース
リカレントニューラルネット
autoenc = trainAutoencoder(X, hiddenSize,...
'L2WeightRegularization’, 0.001, ...
'SparsityRegularization', 4, ...
'SparsityProportion', 0.05, ...
'DecoderTransferFunction', 'purelin‘
'useGPU', true);
Stacked Autoencoder (積層自己符号化器)
Neural Network Toolbox
自己符号化器(Autoencoder)とは?
2層のニューラルネットワーク
恒等写像となるようなウェイトを学習
主に DNN の事前学習に利用
【コード例】 自己符号化器の学習
積層自己符号化器(Stacked Autoencoder)
自己符号化器(Autoencoder)
GPUによる高速化
Convolutional Neural Network (畳み込みニューラルネット)
MatConvNet
CNNと転移学習
転移学習:学習済みのネットワークを他のタスクに転用する手法
学習済みのCNNを特徴抽出器として転用
分類器の部分をタスクに合せて再学習
Convolutional Neural Network (畳み込みニューラルネット)
MatConvNet
機械学習・並列化・高速化
Statistics and Machine Learning Toolbox™
機械学習
多変量統計
確率分布
回帰と分散分析
実験計画
統計的工程管理
Parallel Computing Toolbox
MATLAB & Simulink と連携した並列処理
対話的な並列計算実行
GPGPU による高速演算
ジョブおよびタスクの制御
MATLAB Distributed Computing Server
クラスタによる計算環境を提供
MATLAB Distributed Computing Server
Scheduler Parallel Computing Toolbox MATLAB デスクトップ ローカル コンピュータ
Neural Network Toolbox
ニューラルネットワークの構築、学習
データフィッティング
クラスタリング
パターン認識
深層学習
GPUによる計算の高速化
0 5 10 15 20 25 30 10-3 10-2 10-1100Best Validation Performance is 0.01227 at epoch 26
M e a n S q u a re d E rr o r ( m s e ) 32 Epochs Train Validation Test Best
画像処理・コンピュータービジョン・ロボットビジョン
Image Processing Toolbox™
コーナー、円検出
幾何学的変換
各種画像フィルタ処理
レジストレーション(位置合せ)
セグメンテーション(領域分割)
画像の領域の定量評価
Computer Vision System Toolbox™
カメラキャリブレーション
特徴点・特徴量抽出
機械学習による物体認識
動画ストリーミング処理
トラッキング
ステレオビジョン・3D表示
Image Acquisition Toolbox™
デバイスから画像、動画直接取り込み
フレームグラバボード
DCAM, Camera Link®
GigE Vision®, Webカメラ
Microsoft® Kinect® for Windows®
Robotics System Toolbox™
ロボティクスアルゴリズム開発の支援
MATLAB・SimulinkとROS間の
インターフェイス
ROSノード生成
信号処理・信号解析
Signal Processing Toolbox™
信号生成、時間領域解析
フィルタ設計解析
スペクトル解析
線形予測
Wavelet Toolbox™
信号・画像の解析・ノイズ除去・圧縮等
連続 / 離散ウェーブレット
パケット解析 / 主成分分析
対話的なGUIによる操作
DSP System Toolbox™
高度なフィルタ設計
スペクトル解析
スペアナ、ロジアナ表示
行列演算、統計処理
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -50 -40 -30 -20 -10 0 10 20 30Normalized Frequency (x rad/sample)
P ow er dens it y (dB /r ad/s am pl e) Input signal PSD Equiripple output PSD IFIR output PSD Multirate/multistage output PSD
セルフドライビングは
コンピューターサイエンスの大きな挑戦
ソフトウェア
スーパーコンピューター
エヌビディア合同会社
ローカライズ
HDマップ
自動運転の基本ループ
制御
センシング
プランニング
認識
自動運転の困難さ
NVIDIA DRIVE PX 2
12 CPUコア | Pascal GPU | 8 TFLOPS | 24 DL TOPS | 16nm FF | 250W | リキッドクーリング方式
世界初
NVIDIA DRIVE PX 2
TITAN X
DRIVE PX 2
Process
28nm
16nm FinFET
CPU
—
12 CPU コア
8x A57 +
4x Denver
GPU
Maxwell
Pascal
TFLOPS
7
8
DL TOPS
7
24
リキッドクーリング方式
ぶつからない車の未来へ向け
エヌビディアの
ディープラーニング・カーコンピュータ
が選定されました。
自動運転向け
ディープラーニングプラットフォーム
NVIDIA DRIVE PX 2
NVIDIA DIGITS
NVIDIA DRIVENET
ローカライズ プランニング 可視化 認識DRIVEWORKS
PC GAMING
ONE ARCHITECTURE — END-TO-END AI
DRIVE PX
(車載)
TITAN X
(PC)
Tesla
(クラウド)
(組み込み)
Jetson
105