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

  • View
    22.334

  • Download
    19

  • Category

    Science

Preview:

Citation preview

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

山下 隆義

目次

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

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

 応用事例

2

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

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

Convolution Pooling Softmax Other GoogLeNet, ILSVRC2014

Image Large Scale Visual Recognition Challenge (ILSVRC)

3

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

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

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

従来法:GMM

4

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

 画像から文章を生成

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

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

5

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

 Deep Q- Network

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

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

Inceptionism

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

ディープラーニングの現在(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

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

 自動運転支援

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

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

9

Deep Driving

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

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

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

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

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

根気強く取り組んだ成果

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

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

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

11

何が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

何が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

何が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

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

DNNとDBN

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

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

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

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

パラメータ更新

パラメータ更新

パラメータ学習

16

入力層 入力層

隠れ層

隠れ層

出力層

入力層 出力層

入力層 出力層

出力層

目次

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

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

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

17

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

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

  手書き文字認識に応用

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

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

畳み込み層(1)

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

Convolution Response

f

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

19 Convolutions

畳み込み層(2)

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

20

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

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

学習により獲得

畳み込み層(3)

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

 カーネルは複数でも良い

21

Activation function Input image Feature map 10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

畳み込み層(4)

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

22

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

Red Green

Blue

活性化関数

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

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

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

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

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

1+ e−x j

23 Convolutions

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

プーリング層

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のサイズを縮小させる

全結合層

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

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

 全結合型の構成

hj = f (WTx + bj )

26 Full connection

w11w12w21

w1 j

w22w31w32

w3 j

wij

wi2wi1

出力層

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

どうやって学習するの?

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

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

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

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

28

学習の流れ(1)

29

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

Input:  画像:x  ラベル:y

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

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

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

Convolution

Full connection

Classification

学習の流れ(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

パラメータの学習

 勾配法

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

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

誤差関数(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

誤差の更新方法(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

誤差の更新方法(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

誤差の更新方法(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

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

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

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

36

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

37

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

学習画像の生成

 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.

前処理の重要性

 Global Contrast Normalization

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

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

40

前処理の重要性

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

正規化なし 正規化あり

下図はpylearn2の結果

41

前処理の重要性

 ZCA whitening

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

X ' =WX

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

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

42

前処理の重要性

 ZCA whitening

43

ZCA whitening only

Global contrast normalization + ZCA whitening

Normalize Layer

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

Convolutional layer Normalize layer

Pooling layer Convolutional layer Normalize layer

Pooling layer

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

44

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

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

学習時間について

 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

リソースサイズについて

Layerの種類 リソースサイズ

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

0.1KB

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

4KB

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

0.35MB

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

48

組込み向けGPU(1)

49

192-core CUDA Enabled Kepler GPU

4 + 1(LP) core ARM Cortex A15 CPU

2014

組込み向けGPU(2)

50

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

2015

組込み向け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

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

52

Deep Learningの応用先

検出 回帰

セグメンテーション

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

シーンラベリング

顔器官検出

人の姿勢推定

手領域抽出

髪領域抽出

顔ラベリング

53

認識

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

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

人物属性推定

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

文字認識

AlexNet

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

54

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

1層目のフィルタ

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

Clarifi

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

55

Convolution Pooling Softmax Other

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

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

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

Network in Network(1)

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

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

Input image

Feature map

Response

kernel

マイクロネットワーク

Network in Network(2)

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

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

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

Network in Network(3)

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

58

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

GoogLeNet(1)

 22層のネットワーク

59

Convolution Pooling Softmax Other

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

•  全結合層はなし

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

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の畳み込み層を組み合わせる

VGG

61

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

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

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

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

(a) (b)

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

AlexNetとほぼ等価の構成

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%

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

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

63

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

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

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

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

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

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

Deep Learningの応用先

回帰

セグメンテーション

シーンラベリング

顔器官検出

人の姿勢推定

手領域抽出

髪領域抽出

顔ラベリング

68

認識

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

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

人物属性推定 文字認識

検出

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

一般物体検出 (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.

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

69

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

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.

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.

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.

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.

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

 Pascal VOCの性能

74

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

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

 認識結果例(鳥クラス)

75

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

歩行者検出(1)

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

教師信号

ユニットの削減率

   Dropout 50% 50%

Random Dropout 60% 75%

一定の割合

ランダムで割合を決定

歩行者検出(2)

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

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

0.23

0.77

0.42

0.58

0.15

0.85

Positive

Negative

・ ・ ・

・ ・ ・

・ ・ ・

・ ・ ・

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

STEP2:応答値を統合

・ ・ ・

Caltech Pedestrian Datasetを用いた評価

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

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

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

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

歩行者検出結果例

歩行者検出例

DPM

提案手法

Deep Learningの応用先

検出 回帰

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

顔器官検出

人の姿勢推定

81

認識

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

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

人物属性推定

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

文字認識

セグメンテーション

シーンラベリング

手領域抽出

髪領域抽出

顔ラベリング

シーン認識

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

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

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

手の形状抽出

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

�����������

�����������

��

������

��������

�����

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

������ ����

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

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

�!�"����� �

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

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

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

手の形状抽出

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

更新回数 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

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

 updating time : 0 - 50000

85

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

86

x1

x2

x3

xi

y1

y2

Yj

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

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

87

x1

x2

x3

xi

y1

y2

Yj

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

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

88

x1

x2

x3

xi

y1

y2

Yj

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

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

89

x1

x2

x3

xi

y1

y2

Yj

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

顔パーツラベリング

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

シーンラベリング

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

Deep Learningの応用先

認識

検出

セグメンテーション

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

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

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

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

シーンラベリング

人物属性推定 手領域抽出

髪領域抽出

顔ラベリング

92

回帰

顔器官検出

人の姿勢推定

顔器官検出

Convolution Layer Pooling Layer

Fully Connection Layer Output units

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

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

93

顔輪郭検出

Convolution Layer Pooling Layer

Fully Connection Layer Output units

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

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

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

95

カリキュラムラーニング(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

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

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

97

カリキュラムラーニング(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

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

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

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

パラメータを更新

Input data : gray scale image ground truth : class label

99

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

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

5

Input data : gray scale image output : class label

100

カリキュラムラーニング(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

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

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

��

��� �

����

��� �

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

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

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

������

������

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

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

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

���� ����

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

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

���� ����

� ���

���

������

������

�����������

� ���

���

������

������

�����������

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

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

Convolution Layer Pooling Layer

Fully Connection Layer Output units

年齢と性別の同時推定

男性or女性

年齢

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

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

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

ヘテロジニアスラーニング(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

Deep Learningのツール

107

Theano(1)

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

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

108

Theanoを利用したDeep Learning(1)

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

109

Caffe(1)

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

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

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

110

Chainer

111 http://chainer.org

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

まとめ

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

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

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

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

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

 質問などは yamashita@cs.chubu.ac.jp  へ

112

Recommended