本講演では、ニューラルネットワークおよび深層学習の基礎知識からはじめ、ニューラルネットワーク計算を高速化するための技術について概観します。
高速化技術については、既に実用化されているものから研究段階のものまで幅広く紹介します。具体的には、GPUを用いた高速化技術、FPGAを用いた高速化技術、そしてニューラルネットワーク計算専用ハードウェアについて紹介します。
- はじめに
- ニューラルネットワークの流行
- 流行のきっかけ
- 深層学習とは
- 深層学習の効果
- 深層学習の爆発的普及
- 応用事例
- ニューラルネットワークの計算環境
- ニューラルネットワークの規模と計算時間
- 高速な計算環境の必要性
- ニューラルネットワーク
- 人工知能とニューラルネットワーク
- ニューラルネットワークの歴史
- 脳と神経細胞
- 人工ニューラルネットワーク
- ニューラルネットワークの種類
- 畳み込みニューラルネットワーク (CNN)
- 畳み込み層の処理
- プーリング層の処理
- さまざまなニューラルネットワーク
- ニューラルネットワークにおける学習
- 教師あり学習
- 誤差逆伝播法 (Back Propagation)
- 通時的誤差逆伝播法
- 誤差逆伝播法の勾配消失問題
- シグモイド関数の特徴
- 勾配消失問題の回避法
- ニューラルネットワーク計算の特徴
- 畳み込みニューラルネットワークの特徴
- ニューラルネットワーク計算高速化のための一般的なテクニック
- ニューラルネットワーク計算のボトルネック
- 全結合層の計算の行列積表現
- 畳み込み層の計算の行列積表現
- 行列積の並列化
- キャッシュの基本
- 行列積とキャッシュ
- タイリング (ブロッキング)
- データ圧縮
- 計算に必要な精度
- 数の表現
- 枝刈り (Pruning) とニューロン刈り (Dropout)
- GPUを用いた高速化
- GPUのアーキテクチャ
- SMのアーキテクチャ
- GPUのプログラミングモデル
- SIMDとSIMT
- Warp実行方式
- Branch Divergence
- GPUにおけるメモリアクセス
- ニューラルネットワーク計算とGPU
- cuBLASを用いた行列積
- Pascalアーキテクチャ
- cuDNN
- FPGAを用いた高速化
- FPGA
- PGAのアーキテクチャ
- FPGAのプログラミング
- FPGA v.s. GPU
- FPGAとニューラルネットワーク計算
- FPGAによる高速化事例
- 専用ハードウェアを用いた高速化
- ニューラルネットワークアクセラレータ (NNA)
- NNAを利用するメリット
- Tensor Processing Unit (TPU)
- DianNao
- DaDianNao
- Cambricon
- Cambricon-X
- Eyeriss
- TrueNorth
- 講演者の研究から
- おわりに