112
ディープラーニングによる 画像認識と応用事例 山下 隆義

NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Embed Size (px)

Citation preview

Page 1: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

ディープラーニングによる画像認識と応用事例

山下 隆義

Page 2: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

目次

 ディープラーニングについて

 畳み込みニューラルネットワーク

 応用事例

2

Page 3: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

ディープラーニングの現在(1)

 画像認識のベンチマークでトップ

Convolution Pooling Softmax Other GoogLeNet, ILSVRC2014

Image Large Scale Visual Recognition Challenge (ILSVRC)

3

Page 4: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

ディープラーニングの現在(2)

 音声認識のベンチマークでトップ

IBIS2013 “音声認識分野における深層学習技術の研究動向”より

従来法:GMM

4

Page 5: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

ディープラーニングの現在(3)

 画像から文章を生成

http://googleresearch.blogspot.jp/2014/11/a-picture-is-worth-thousand-coherent.html

デモページあり http://deeplearning.cs.toronto.edu/i2t

5

Page 6: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

ディープラーニングの現在(4)

 Deep Q- Network

6 http://www.iclr.cc/lib/exe/fetch.php?media=iclr2015:silver-iclr2015.pdf

Page 7: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

ディープラーニングの現在(5)

Inceptionism

http://googleresearch.blogspot.co.uk/2015/06/inceptionism-going-deeper-into-neural.html

Page 8: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

ディープラーニングの現在(6)

 歩行者検出

I.Sato, H. Niihara, “Beyond Pedestrian Detection: Deep Neural Networks Level-Up Automotive Safety”,2014 https://www.youtube.com/watch?feature=player_embedded&v=9Y7yzi_w8qo

車載向けGPU Tegra K1上で実時間動作  人の検出とともに,身長,向き,カメラまでの距離を推定

8

Page 9: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

ディープラーニングの現在(7)

 自動運転支援

http://ventureclef.com/blog2/?p=2535

車載専用のGPUを用いることでリアルタイムでの物体認識を実現 アウディと共同で自動運転支援を開発中

9

Page 10: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Deep Driving

10 http://deepdriving.cs.princeton.edu

Page 11: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

なぜディープラーニング?

色々なベンチマークで1位を取ったから・・・

過去の偉大な成果 様々なテクニック ハードウェアの進化&活用方法

ニューラルネットワークの 暗黒時代を超えて..

根気強く取り組んだ成果

画像認識のパラダイムシフトの可能性

特徴抽出,識別手法が別々 手作業での特徴設計

特徴抽出+識別を同時に行う 自動的な特徴設計

11

Page 12: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

何がDeep Learning??

 Deep Learningに関連するキーワード

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Back-propagation

Contrastive Divergence

Dropout

Maxout

Maxpooling

Dropconnect 12

Page 13: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

何がDeep Learning??

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Back-propagation

Contrastive Divergence

Dropout

Maxout

Maxpooling

Dropconnect

ネットワークの構成 ネットワークの学習方法 汎化性向上の方法

13

Page 14: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

何がDeep Learning??

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Multi-Layer Perceptron

人工知能モデル

確率モデル

多層化

畳込み層を導入

多層化 多層化

Deep Learning Dropout

Maxout

Max pooling

Dropconnect

14

Page 15: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

MLPとRBM

Multi-Layer Perceptron(MLP) Restricted Boltzmann Machine(RBM)

xi

x1

p(xi =1|Y ) =σ ( wijyj + aij=1

m

∑ )

p(yj =1| X) =σ ( wijxi + bji=1

n

∑ )yi =σ ( wijx j + bj

j=1

m

∑ )

15

Page 16: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

DNNとDBN

Deep Neural Networks(DNNs) Deep Belief Networks(DBN)

教師あり学習(Back propagation) すべてのパラメータを同時に学習

教師なし学習(Contrastive Divergence) 階層ごとにパラメータを学習 +

教師あり学習(Back propagation) すべてのパラメータを同時に学習

パラメータ更新

パラメータ更新

パラメータ学習

16

入力層 入力層

隠れ層

隠れ層

出力層

入力層 出力層

入力層 出力層

出力層

Page 17: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

目次

 ディープラーニングについて

 畳み込みニューラルネットワーク

 ディープラーニングのツール

17

Page 18: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

畳み込みニューラルネットワーク

  初期の研究(今も同じ)   畳み込み、サブサンプリング、全結合の層から構成

  手書き文字認識に応用

  平行移動に対する不変性がある

Y. LeCun, et.al. “Gradient-based Learning Applied to Document Recognition”, Proc. of The IEEE, 1998. 18

Page 19: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

畳み込み層(1)

 カーネルをスライドさせて画像に畳み込む  近接の画素とのみ結合する(局所受容野)

Convolution Response

f

Input image Feature map 10x10 kernel 3x3 8x8 Activation function

19 Convolutions

Page 20: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

畳み込み層(2)

 画像全体にフィルタを畳み込む

20

-1 0 1 -1 0 1 -1 0 1

例えば   ソーベルフィルタ Convolution Layerのフィルタは,

学習により獲得

Page 21: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

畳み込み層(3)

 カーネルをスライドさせて画像に畳み込む  近接の画素とのみ結合する(局所受容野)

 カーネルは複数でも良い

21

Activation function Input image Feature map 10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Page 22: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

畳み込み層(4)

 入力が複数チャンネル(カラー画像など)の場合

22

各チャンネルにフィルタを畳み込む

Red Green

Blue

Page 23: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

活性化関数

シグモイド関数 Rectified Linear Unit(ReLU) Maxout

古くから使われている サチると勾配が消滅

画像認識でよく使われる 学習が速く、勾配がサチることがない

複数のカーネルの畳み込み値の最大を出力 区分線形凸関数 ReLUより表現力が高い 勾配が消えない

f (xi ) =max(x j, 0)f (xi ) =1

1+ e−x j

23 Convolutions

Page 24: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Maxout

Input image

Feature map

10x10

kernel 3x3

8x8x3

Convolution

Feature map 8x8

複数のカーネルの応答値から最大値を出力

I.J.Goodfellow, D.Warde-Farley, M.Mirza, A.Courville, and Y.Bengio, “Maxout networks.“, arXiv preprint arXiv:1302.4389, 2013.

24

Page 25: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

プーリング層

Max  pooling

2x2の領域  での最大値

Average  pooling

2x2の領域  での平均値

Lp  pooling

f (xi ) = ( I(i, j)p *G(i, j))1p

i=1

m

∑j=1

n

25 Sampling

ピークをより強調

Feature mapのサイズを縮小させる

Page 26: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

全結合層

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば、、   は を算出し、 activation functionに与えて値を得る

 全結合型の構成

hj = f (WTx + bj )

26 Full connection

w11w12w21

w1 j

w22w31w32

w3 j

wij

wi2wi1

Page 27: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

出力層

Softmaxを利用するのが一般的 P(y1)

P(y2)

P(yM) 各クラスの確率を算出して、  最大値を認識クラスとする

 出力ノード数=認識するクラス数

x1

x2

x3

xi

h1

h2

hM

27

前層

出力層

classification

各クラスの確率

P(yi ) = exp(hi )

exp(hj )j=1

M

Page 28: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

どうやって学習するの?

Layer数が多ければ多いほど沢山のパラメータ

教師データをもとに識別エラーから各パラメータを更新 エラーが小さくなるように更新を繰り返し行い、収束を図る

 学習できめること: 各種パラメータ  畳み込み層の各カーネルの要素の値,バイアス

 全結合層の各ユニットの結合重み,バイアス

28

Page 29: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

学習の流れ(1)

29

  ニューラルネットワークと同様に,順伝播と逆伝播による更新を繰り返し行い,良いパラメータ群を得る

Input:  画像:x  ラベル:y

学習セット: (I1,y1),…, (xn,yn)

順伝搬  現パラメータ群により各学習データの認識を行う

逆伝搬  認識結果(誤差)をもとに,パラメータ群を更新する

Convolution

Full connection

Classification

Page 30: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

学習の流れ(2)

Input:  画像:xi  ラベル:yi

学習セット: (x1,y1),…, (xn,yn)

全パラメータをWとする

ロス関数:y’iとラベルyiの違いを算出

これを最小化する

30

Convolution

Full connection Classification

y' = F(W, x)

E = Loss(F(W, xi ), yi )i

n

  誤差を最小化するように各層のパラメータを更新する

誤差逆伝播法で誤差の偏微分を計算

更新率γを掛けて、パラメータ群Wを更新

W←W −γ∂E∂W

Page 31: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

パラメータの学習

 勾配法

誤差を元に,勾配=更新量を求める

E =NX

n=1

qX

k=1

(rnk � ynk)2

誤差関数を微分する

wi(t) wi(t+1)

E(t) @E(t)

@wiwi(t+ 1) = wi(t)� ⌘

@E(t)

@wi

31

Page 32: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

誤差関数(1)

 二乗和誤差

E =qX

k=1

(rk � yk)2

 クロスエントロピー誤差

E = �NX

n=1

{rn ln yn + (1� rn) ln(1� yn)}

E = �NX

n=1

CX

c=1

rcn ln ycn

2クラス問題の場合

多クラス問題の場合

32

Page 33: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

誤差の更新方法(1)

 最急降下法

すべての学習サンプルを一度に用いて誤差を求める

E =NX

n=1

qX

k=1

(rnk � ynk)2

誤差から重みを更新する

wi(t) wi(t+1)

E(t) @E(t)

@wi

学習サンプルが増えるにつれて 計算量が増加する

wi(t+ 1) = wi(t)� ⌘@E(t)

@wi

33

Page 34: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

誤差の更新方法(2)

 確率的勾配降下法(オンライン)

1つの学習サンプルを一度に用いて誤差を求める

誤差から重みを更新する

wi(t) wi(t+1)

E(t) @E(t)

@wi

E =qX

k=1

(rk � yk)2

・学習サンプル数が大量に増えたとしても 計算量は変化しない ・しかし,1つのサンプルの誤差により 大きく更新される

wi(t+ 1) = wi(t)� ⌘@E(t)

@wi

34

Page 35: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

誤差の更新方法(3)

 確率的勾配降下法(ミニバッチ)

少量の学習サンプルを一度に用いて誤差を求める

誤差から重みを更新する

wi(t) wi(t+1)

E(t) @E(t)

@wi

最急降下法と確率的勾配降下法(オンライン)のデメリットを補う  −計算量は変化しない  −誤差を総和するため大きく変化しにくい

E =NX

n=1

qX

k=1

(rnk � ynk)2

wi(t+ 1) = wi(t)� ⌘@E(t)

@wi

35

Page 36: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

初期のパラメータはどうする?

すべて乱数できめます・・・

良いパラメータを得る方法として,教師なし学習がある CNNの場合はほとんど用いられることはない

36

Page 37: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

汎化性を向上させるための方法

37

Page 38: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Dropout

 全結合層の過学習を抑制する

(学習方法のおさらい)   入力データのラベルとネットワークの   出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layerの一部のノードからの結合を取り除く(0にする)  だいたい50% 各mini-batchで異なる結合をランダムに取り除く 近似的なアンサンブル学習

G. Hinton, N.Srivastava, A.Krizhevsky, I.Sutskever, and R.Salakhutdinov, “Improving neural networks by preventing co-adaptation of feature detectors.”, arXiv preprint arXiv:1207.0580, 2012. 38

Page 39: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

学習画像の生成

 Elastic Distortion  位置や大きさだけでなく,形状の変化も適用

 Data Augmentation  位置や大きさを変えて学習データ数を増やす

39 P.Y. Simard, D. Steinkraus, and J.C. Platt, “Best practices for convolutional neural networks applied to visual document analysis.”, ICDAR2003.

Page 40: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

前処理の重要性

 Global Contrast Normalization

各画像を平均0,分散1になるように正規化

入力データの明るさを正規化することで性能が向上

40

Page 41: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

前処理の重要性

 Global Contrast Normalization 各画像を平均0,分散1になるように正規化

正規化なし 正規化あり

下図はpylearn2の結果

41

Page 42: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

前処理の重要性

 ZCA whitening

隣接ピクセルの冗長性をなくすような Wを主成分分析により学習

X ' =WX

http://www.cs.toronto.edu/~kriz/learning-features-2009-TR.pdf

隣接ピクセルの冗長性をなくす

42

Page 43: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

前処理の重要性

 ZCA whitening

43

ZCA whitening only

Global contrast normalization + ZCA whitening

Page 44: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layer Normalize layer

Pooling layer

pooling layer後にNormalize layerを配置することもある

44

Page 45: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Normalize Layer

 Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

vj,k = x j,k − wp,qx j+p,k+q∑wp,q =1∑

yj,k =vj,k

max(C,σ jk )

σ jk = wpqvj+p,k+q2∑

K. Jarrett, K. Kavukcuoglu, M. Ranzato and Y.LeCun ,“What is the Best Multi-Stage Architecture for Object Recognition?”, ICCV2009 45

Page 46: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Normalize Layer

 Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

yij,k = (1+α (ylj,k )2 )β

l=i−N /2

i+N /2

46 G. E. Hinton, N. Srivastava, A. Krizhevsky, I. Sutskever and R. R. Salakhutdinov ,“Improving neural networks by preventing co-adaptation of feature detectors ”, arxiv2012

Page 47: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

学習時間について

 CPU V.S. GPU(1回の更新にかかる時間)

Layer CPU (Core2 2.6GHz)

GPU (GeForce GT690)

比率

畳み込み層  カーネル:1

27.3ms 11.6ms 2.35倍

畳み込み層  カーネル:20

451.5ms 29.2ms 15.46倍

全結合層  ノード数:100

486ms 14.8ms 32.84倍

学習率  Pre training :0.5  Fine tuning :0.01 Mini-batch :10

47

Page 48: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

リソースサイズについて

Layerの種類 リソースサイズ

畳み込み層  カーネルサイズ:5x5、 カーネル数:1

0.1KB

畳み込み層 カーネルサイズ:5x5、カーネル数:32

4KB

全結合層  ノード数:100 (パラメータ数:約87000)

0.35MB

入力画像サイズ:40x40ピクセルの場合

48

Page 49: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

組込み向けGPU(1)

49

192-core CUDA Enabled Kepler GPU

4 + 1(LP) core ARM Cortex A15 CPU

2014

Page 50: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

組込み向けGPU(2)

50

TEGRA X1 MOBILE SUPERCHIP 256-core Maxwell GPU | 8-core 64-bit CPU | 4Kp60 10-bit H.265/VP9

2015

Page 51: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

組込み向けGPU vs. CPU

51

Tegra 2 Tegra 3 Tegra 4

Tegra K1

0

200

400

600

800

1000

1200

GFL

OPS

Tegra X1 (FP16)

TIME FP16/INT16

Core i7

Tegra X1

CPU

GPU GPU

CPU

Page 52: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

画像認識におけるDeep Learningの活用

52

Page 53: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Deep Learningの応用先

検出 回帰

セグメンテーション

人検出* (Caltech Pedestrian dataset トップ) *HOG+CSS-SVMでのSliding window処理あり

シーンラベリング

顔器官検出

人の姿勢推定

手領域抽出

髪領域抽出

顔ラベリング

53

認識

一般物体認識(LSVRCトップ)

顔認識(照合) (LFWトップ)

人物属性推定

一般物体検出 (Pascal VOCトップ)

文字認識

Page 54: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

AlexNet

  ILSVRC2012で優勝したネットワーク

54

•  2つのGPUで別々に学習(最終層で結合) •  5つの畳み込み層 •  3つの全結合層

1層目のフィルタ

A. Krizhevsky, I. Sutskever G. E. Hinton , ImageNet Classification with Deep Convolutional Neural Networks (NIPS2012)

Page 55: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Clarifi

  ILSVRC2013で優勝したネットワーク

55

Convolution Pooling Softmax Other

•  5つの畳み込み層(うち3層にMaxpooling) •  3つの全結合層

Adaptive Deconvolutional Networks for Mid and High Level Feature Learning(CVPR2011)

各層の中間表現を可視化して,良いネットワークを選択  => Deconvolutional Networksを活用

Page 56: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Network in Network(1)

 畳み込み層の活性化関数に小さなネットワークを導入

56 Lin, Min, Qiang Chen, and Shuicheng Yan. "Network In Network." (ICLR-2014)

Input image

Feature map

Response

kernel

マイクロネットワーク

Page 57: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Network in Network(2)

 簡単な実装:1x1の畳み込み処理として表現ができる

57 Lin, Min, Qiang Chen, and Shuicheng Yan. "Network In Network." (ICLR-2014)

CCCP層で畳み込むフィルタは全ての位置で同じなので,パラメータ数は増えない

Page 58: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Network in Network(3)

 全結合層なしでネットワークを構成

58

ILSVRC2014での性能  TOP5のエラー率   10.91% for 1 model    9.79% for 3 models

Page 59: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

GoogLeNet(1)

 22層のネットワーク

59

Convolution Pooling Softmax Other

•  Network in Networkを参考にしたInceptionモジュールを9つ積層

•  全結合層はなし

http://www.image-net.org/challenges/LSVRC/2014/slides/GoogLeNet.pptx

Page 60: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

GoogLeNet(2)

  Inceptionモジュール

60

1x1 convolutions

3x3 convolutions

5x5 convolutions

Filter concatenation

Previous layer

3x3 max pooling

1x1 convolutions

1x1 convolutions

1x1 convolutions

http://www.image-net.org/challenges/LSVRC/2014/slides/GoogLeNet.pptx

1x1の畳み込み層とNxNの畳み込み層を組み合わせる

Page 61: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

VGG

61

Conv-64 3x3のフィルタを64個

Conv-128 3x3のフィルタを128個

Conv-256 3x3のフィルタを256個

Conv-512 3x3のフィルタを512個

(a) (b)

3x3のフィルタを2層積層すると5x5のフィルタと等価になる

AlexNetとほぼ等価の構成

Page 62: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

62

Team Year Place Error (top-5) External data

SuperVision – Toronto (7 layers)

2012 - 16.4% no

SuperVision 2012 1st 15.3% ImageNet 22k

Clarifai – NYU (7 layers) 2013 - 11.7% no

Clarifai 2013 1st 11.2% ImageNet 22k

VGG – Oxford (16 layers) 2014 2nd 7.32% no

GoogLeNet (19 layers) 2014 1st 6.67% no

Human expert* 5.1%

Team Method Error (top-5)

DeepImage - Baidu Data augmentation + multi GPU 5.33% PReLU-nets - MSRA

Parametric ReLU + smart initialization 4.94%

BN-Inception ensemble - Google

Reducing internal covariate shift 4.82%

Page 63: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

LFWデータセットでの顔認証精度

 Deep Learningによる手法がトップレベルに

63

http://www.ee.cuhk.edu.hk/~xgwang/talks/deeo_learning_icip2.pdf

LFWデータセット:約6000組のテストセット 被験者実験(10人)での照合精度: 56%

Page 64: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Deep Learningによる顔照合(DeepFace)

64

 CNNによる顔照合

4030人分の画像440万枚を学習に利用 人間と同等レベルの精度

顔のアライメント+CNNによる特徴抽出

Y.Taigman、M.Yang、M.Ranzato、L.Wolf, “DeepFace: Closing the Gap to Human-Level Performance in Face Verification”, CVPR2014

Page 65: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Deep Learningによる顔照合(DeepFace)

65

 顔のアライメント

2次元アライメント(LBP+SVR)  顔の器官点6点を検出,位置合わせ 3次元アライメント(3次元モデル)  詳細点67点を標準的な3次元モデルに  フィッティング

2次元+3次元アライメントにより,顔向きを補正

Y.Taigman、M.Yang、M.Ranzato、L.Wolf, “DeepFace: Closing the Gap to Human-Level Performance in Face Verification”, CVPR2014

Page 66: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Deep Learningによる顔照合(DeepFace)

66

 CNN

1層目のみPoolingを利用  (位置不変性が不要) 4層目以降は,位置ごとに畳み込むフィルタを個別に学習  (位置ごとに詳細な特徴を抽出)

Y.Taigman、M.Yang、M.Ranzato、L.Wolf, “DeepFace: Closing the Gap to Human-Level Performance in Face Verification”, CVPR2014

Page 67: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Deep Learningによる顔照合(DeepFace)

67

 照合結果

最後の隠れ層の値を特徴ベクトルとして利用(4096次元) 照合対象の特徴ベクトルとの距離計算で同一人物かどうかを判定

Y.Taigman、M.Yang、M.Ranzato、L.Wolf, “DeepFace: Closing the Gap to Human-Level Performance in Face Verification”, CVPR2014

Page 68: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Deep Learningの応用先

回帰

セグメンテーション

シーンラベリング

顔器官検出

人の姿勢推定

手領域抽出

髪領域抽出

顔ラベリング

68

認識

一般物体認識(LSVRCトップ)

顔認識(照合) (LFWトップ)

人物属性推定 文字認識

検出

人検出* (Caltech Pedestrian dataset トップ) *HOG+CSS-SVMでのSliding window処理あり

一般物体検出 (Pascal VOCトップ)

Page 69: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

物体検出

R. Girshick, J. Donahue, T. Darrell, J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation” , Conference on Computer Vision and Pattern Recognition, pp. 580–587, 2014.

Caffeをもとに,物体のLocalizationに応用 CNNで抽出した特徴量をSVMでクラス識別 Pascal VOCでトップの物体検出

69

 CNNを特徴量の生成として使用

Page 70: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Deep Learningによる物体検出(R-CNN)

 Selective Searchによる候補領域の抽出

70

候補数は2000

R. Girshick, J. Donahue, T. Darrell, J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation” , Conference on Computer Vision and Pattern Recognition, pp. 580–587, 2014.

Page 71: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Deep Learningによる物体検出(R-CNN)

 領域の変形

71

全ての候補領域を一定の大きさに正規化(アスペクト比は無視)  ⇒CNNの入力データサイズに合わせる

R. Girshick, J. Donahue, T. Darrell, J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation” , Conference on Computer Vision and Pattern Recognition, pp. 580–587, 2014.

Page 72: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Deep Learningによる物体検出(R-CNN)

 CNNによる特徴抽出

72

AlexNet (LSVRC2012で優勝したSuperVisionのネットワーク構成) プレトレーニング: Image netで学習 ファインチューニング:Pascal VOCのデータセットで更新

R. Girshick, J. Donahue, T. Darrell, J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation” , Conference on Computer Vision and Pattern Recognition, pp. 580–587, 2014.

Page 73: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Deep Learningによる物体検出(R-CNN)

 SVMによる識別

73

各クラスの識別器を学習(線形SVM) Pascal VOCのデータを利用して学習データセットを作成

R. Girshick, J. Donahue, T. Darrell, J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation” , Conference on Computer Vision and Pattern Recognition, pp. 580–587, 2014.

Page 74: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Deep Learningによる物体検出(R-CNN)

 Pascal VOCの性能

74

http://www.image-net.org/challenges/LSVRC/2013/slides/r-cnn-ilsvrc2013-workshop.pdf

Page 75: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Deep Learningによる物体検出(R-CNN)

 認識結果例(鳥クラス)

75

http://www.image-net.org/challenges/LSVRC/2013/slides/r-cnn-ilsvrc2013-workshop.pdf

Page 76: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

歩行者検出(1)

  Dropoutにランダム性を導入し,汎化性能を向上 ⇒Random Dropout    Dropout =ユニットの出力を一定の割合で0にする手法

教師信号

ユニットの削減率

   Dropout 50% 50%

Random Dropout 60% 75%

一定の割合

ランダムで割合を決定

Page 77: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

歩行者検出(2)

  認識時にネットワーク構成の一部をランダムに変更   複数のネットワークの出力の中央値を最終出力とする

 アウトライアな応答値を出すネットワークを除外

0.23

0.77

0.42

0.58

0.15

0.85

Positive

Negative

・ ・ ・

・ ・ ・

・ ・ ・

・ ・ ・

STEP1:全結合層の構成が異なる     ネットワークを複数作成

STEP2:応答値を統合

・ ・ ・

Page 78: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Caltech Pedestrian Datasetを用いた評価

 評価で使用するサンプル数(4,021枚)

State-of-the-artな歩行者検出法であるJoint Deepと同等の精度で検出可能

従来のCNNに比べて約7%Miss Rateが減少

DPMと比べて約23%Miss Rateが減少

Page 79: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

歩行者検出結果例

Page 80: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

歩行者検出例

DPM

提案手法

Page 81: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Deep Learningの応用先

検出 回帰

人検出* (Caltech Pedestrian dataset トップ) *HOG+CSS-SVMでのSliding window処理あり

顔器官検出

人の姿勢推定

81

認識

一般物体認識(LSVRCトップ)

顔認識(照合) (LFWトップ)

人物属性推定

一般物体検出 (Pascal VOCトップ)

文字認識

セグメンテーション

シーンラベリング

手領域抽出

髪領域抽出

顔ラベリング

Page 82: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

シーン認識

畳み込みニューラルネットワークを利用して,各ピクセルのシーンラベルを付与 画素情報をそのまま入力して,特徴を自動的に学習 Superpixelによるセグメンテーションも併用

C.Farabet, C.Couprie, L.Najman, Y.LeCun, “Learning Hierarchical Features for Scene Labeling.”, PAMI2013. 82

 畳み込みニューラルネットワークでのシーン認識

Page 83: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

手の形状抽出

 畳み込みニューラルネットワークを用いて領域を抽出

�����������

�����������

��

������

��������

�����

��������� ���

������ ����

����������� �������� ��� �������� �����������

� ��������� � ����������!�"�� � � � ���������

�!�"����� �

��������������� � ��� ������

� ����� ������

layer type size, # of kernels

Input grayscale 40x40

1st convolution 5x5, 32

2nd max pooling 2x2

3rd maxout 4

4th convolution 5x5, 32

5th max pooling 2x2

6th maxout 4

7th fully connected 200

output L2 norm 1600

83

Page 84: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

手の形状抽出

 畳み込みニューラルネットワークを用いて領域を抽出

更新回数 precision recall F value

0 0.2303 1.0000 0.3742

50000 0.8930 0.9135 0.9032

100000 0.8968 0.9199 0.9082

150000 0.9054 0.9186 0.9120

200000 0.9033 0.9234 0.9133

カーネル precision recall F value

3x3 0.9097 0.9133 0.9115

5x5 0.9033 0.9234 0.9133

7x7 0.9056 0.9039 0.9047

84

Page 85: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

ネットワークの学習過程の可視化(1)

 updating time : 0 - 50000

85

Page 86: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

 最上位の隠れ層ー識別層間の重み

86

x1

x2

x3

xi

y1

y2

Yj

ネットワークの学習過程の可視化(2)

Page 87: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

 最上位の隠れ層ー識別層間の重み

87

x1

x2

x3

xi

y1

y2

Yj

ネットワークの学習過程の可視化(3)

Page 88: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

 最上位の隠れ層ー識別層間の重み

88

x1

x2

x3

xi

y1

y2

Yj

ネットワークの学習過程の可視化(3)

Page 89: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

 最上位の隠れ層ー識別層間の重み

89

x1

x2

x3

xi

y1

y2

Yj

ネットワークの学習過程の可視化(4)

Page 90: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

顔パーツラベリング

 マルチクラスセグメンテーションへの応用

Page 91: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

シーンラベリング

 マルチクラスセグメンテーションへの応用

Page 92: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Deep Learningの応用先

認識

検出

セグメンテーション

一般物体認識(LSVRCトップ)

一般物体検出 (Pascal VOCトップ)

人検出* (Caltech Pedestrian dataset トップ) *HOG+CSS-SVMでのSliding window処理あり

顔認識(照合) (LFWトップ)

シーンラベリング

人物属性推定 手領域抽出

髪領域抽出

顔ラベリング

92

回帰

顔器官検出

人の姿勢推定

Page 93: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

顔器官検出

Convolution Layer Pooling Layer

Fully Connection Layer Output units

 器官点の座標数=出力ユニット

各器官点の座標を出力する 誤差は最小二乗法により求める

93

Page 94: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

顔輪郭検出

Convolution Layer Pooling Layer

Fully Connection Layer Output units

 輪郭点の座標数=出力ユニット

各輪郭点の座標を出力する 誤差は最小二乗法により求める

Page 95: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

画像認識における学習時の工夫

95

Page 96: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

カリキュラムラーニング(1)

  学習過程で難しいサンプルを追加する   (= similar with Bootstrap, but different…)

Y. Bengio, J. Louradour, R. Collobert, J. Weston, “Curriculum Learning”, ICML2009.

x1

x2

x3

xi

y1

y2

yj

y1

y2

y3

h1

h2

hj

初期の学習(単純なパターン)

学習の後期(複雑なパターン)

96

Page 97: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

カリキュラムラーニング(2)

 認識問題を直接解決するのではなく,中間的な問題を通して解く

97

Page 98: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

カリキュラムラーニング(3)

領域抽出に対応したネットワークを学習

Convolutional Layer Pooling Layer Convolutional Layer Pooling Layer fully connection Layer

Binarization layer

Input data : gray scale image ground truth : hand segmented image

98

Page 99: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

カリキュラムラーニング(4)

パラメータを初期値として利用

ネットワークのパラメータを転移する

パラメータを更新

Input data : gray scale image ground truth : class label

99

Page 100: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

カリキュラムラーニング(5)

認識は識別問題に対応したネットワークのみ利用

5

Input data : gray scale image output : class label

100

Page 101: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

カリキュラムラーニング(6)

� � � � � �

� ����� ���� ���� ���� ���� ����

� ���� ���� ���� ���� ���� ����

� ���� ��� ���� ���� ���� ����

� ���� ���� ���� ����� ��� ����

� ���� ���� ���� ��� ����� ����

� ���� ���� ���� ���� ���� �����

� � � � � �

� ����� ����� ���� ��� ���� ����

� ���� ���� ����� ���� ���� ����

� ��� ����� ��� ���� ���� ����

� ���� ���� ���� ���� ����� ����

� ���� ��� ���� ���� ����� ����

� ���� ���� ���� ���� ���� ���

without curriculum learning with curriculum learning

Ground Truth class

clas

sific

atio

n cl

ass

Ground Truth class

clas

sific

atio

n cl

ass

101

Page 102: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

カリキュラムラーニング(7)

 カリキュラムラーニングを導入した顔器官検出

��

��� �

����

��� �

�� ����� ���������� ����� �� ������������������� ��������

�������������������������������������������������������������������

����������������

������

������

����� ���� ��� � ��������������������� �������������� ���� ���� ����

������������������ � ���

����� ������� � ������������������������� �����������������

���� ����

���������������� � ���

�������� ������ �����������������������������

���� ����

� ���

���

������

������

�����������

� ���

���

������

������

�����������

Page 103: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

ヘテロジニアスラーニング(1)

 複数の異なる情報を同時に学習

Convolution Layer Pooling Layer

Fully Connection Layer Output units

年齢と性別の同時推定

男性or女性

年齢

Page 104: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

ヘテロジニアスラーニング(2)

 ヘテロジニアスラーニングによる性別・年齢の同時推定

Page 105: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

顔器官検出と性別年齢推定

Page 106: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

ヘテロジニアスラーニング(3)

 ヘテロジニアスラーニングによる歩行者検出と部位推定

1

0.0001 0.001 0.01 0.1 1 10M

iss R

ate

False Positive per Image

回帰型DCNN 31.77%単体のDCNN 38.38%  

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

Daimler  Mono-­‐Pedestrian  Benchmark  Dataset  の評価結果

距離[m] 距離推定結果[m] 誤差[%] 5 4.89 2.2

10 9.26 5.3

15 14.12 5.8

Page 107: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Deep Learningのツール

107

Page 108: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Theano(1)

 数値演算ライブラリ Theano (python)   偏微分等の数値演算実装が容易

http://deeplearning.net/software/theano/

108

Page 109: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Theanoを利用したDeep Learning(1)

http://deeplearning.net/tutorial/intro.html

109

Page 110: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Caffe(1)

Caffe : 今最もよく使われている   畳み込みニューラルネットワークの公開実装コード

https://github.com/UCB-ICSI-Vision-Group/decaf-release/

UC バークレーの研究グループ(T. Darrell) 学習済みのネットワークも公開  これをベースにベンチマークサイト(Kaggle)でトップになっているチームもあり 開発速度が早く,最新の手法が実装されている コミュニティが大きく,情報共有が盛ん (最高性能の設定ファイル,学習結果ファイルなどが共有される)

110

Page 111: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

Chainer

111 http://chainer.org

  Chainer : pythonベースで非常に使いやすい  Preferred Networksが開発

Page 112: NVIDIA Seminar ディープラーニングによる画像認識と応用事例

まとめ

 デープラーニングの基礎について紹介  ディープラーニングの概要

 畳み込みニューラルネットワーク

 応用事例  物体検出,物体認識,セグメンテーション,回帰

 カリキュラムラーニング,ヘテロジニアスラーニング

 プロジェクトページ : mprg.jp

 質問などは [email protected]  へ

112