miru2014 tutorial deeplearning

109
Deep Learning 使使使使使使使使使使使使使使使使使使 ~~ 山山 山山

Upload: takayoshi-yamashita

Post on 09-Dec-2014

13.481 views

Category:

Engineering


0 download

DESCRIPTION

Tutorial material of Deep Learning in MIRU2014.

TRANSCRIPT

Page 1: MIRU2014 tutorial deeplearning

Deep Learning~使いこなすために知っておきたいこ

と~

山下 隆義

Deep Learning について

様々なベンチマークでトップレベルの性能音声認識 (2011)

F Seide G Li and D Yu ldquoConversational Speech Transcription Using Context-Dependent Deep Neural Networksrdquo INTERSPEECH2011

多層 (7 つ)結合事前学習あり

一般物体認識 (2012)

A Krizhevsky I Sutskever and G E Hinton ImageNet Classification with Deep Convolutional Neural Networks NIPS Vol 1 No 2 2012

多層の CNN で従来性能を大きく上回る

2

なぜ Deep Learning が注目されてる

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

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

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

根気強く取り組んだ成果

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

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

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

3

Deep Learning 界隈の状況

IT 関連会社が軒並み注目して開発投資しているFacebook が研究所 (AI Lab) を設立

LeCun を所長に Ranzato らが所属

Google が関連会社を買収DNNResearch(Hinton らの会社) Deep Mind

Yahoo が関連会社を買収IQEngine( 画像認識の会社 ) LookFlow

Baidu が研究所を設立

ほとんどが2013年以降

4

Deep Learning 関連の投稿

20142013201220112010

4 件17 件

6 件

4 件1 件1件

1 件

ここ1 2年で発表が大幅に増加minus

CVPR

ICCV

20 件

5 件ICPR

音声認識で注目 LSVRC2012 でトップ (ICCV workshop)

5

12 件

ECCV

Deep Learning で何ができる

一般物体認識 (2012 2013)

Large Scale Visual Recognition Challenge 2012 で他手法を圧倒同 2013 では Deep Learning ベースの手法が多数畳み込みニューラルネットワーク + 高精度化のテクニック (ReLu dropoutなど)1000 種類の物体のカテゴリを認識

データセットLSVRC2012 の WEB ページより引用 httpimage-netorgchallengesLSVRC2012ilsvrc2012pdf httpimage-netorgchallengesLSVRC2012supervisionpdf

6

Deep Learning で何ができる

シーン認識 (2012)

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

CFarabet CCouprie LNajman YLeCun ldquoLearning Hierarchical Features for Scene Labelingrdquo PAMI2012 7

Deep Learning で何ができる

デノイジング (2012)

階層的に学習するニューラルネットワークスパースコーディングをネットワークの学習に利用 rArrデノイジング オートエンコーダ従来手法に比べて見た目で勝る(数値上は同等)

JXie LXu EChen ldquoImage Denoising and Inpainting with Deep Neural Networksrdquo NIPS2012

ノイズなし画像

Deep learning での復元

8

従来手法での復元

Deep Learning で何ができる

人検出 (2013)

畳み込みニューラルネットワークの学習にスパースコーディングを利用各階層の出力をすべて統合する方法でローカルグローバルな特徴を抽出

PSermanet KKavukcuoglu SChintala YLeCun ldquoPedestrian Detection with Unsupervised Multi-Stage Feature Learningrdquo CVPR2013

畳み込み層のフィルタ例( INRIA データセットフィルタサイズ 9x9 )

9

最近の状況

10

Deep Learning で何ができる

人検出のリアルタイム処理 (2014)NVIDIA の Tegra K1 上で 16-17fps で動作( 140x60 ピクセル)9層の畳み込みニューラルネットワーク人までの距離身長向きも同時に検出

I Sato H Niihara ldquoBeyond Pedestrian Detection Deep Neural Networks Level-Up Automotive Safetyrdquo2014

11

Deep Learning で何ができる

Deep Belief Object Recognition (iOS の物体認識アプリ )(2014)

物体認識を iOS 上に実装し3 00ms で動作Krizhevsky らの畳み込みミューラルネットワークをベースとしているSDK を公開している

httpswwwjetpaccom

12

Project Adam

httpswwwyoutubecomwatchfeature=player_embeddedampv=zOPIvC0MlA413

犬の種別まで認識

Deep Learning の著名な研究者(1)

Hinton   ( トロント大学 ) 教祖的存在httpswwwcstorontoedu~hintonニューラルネットワークの暗黒時代でも根気強く研究Auto encoder drop out などのアプローチを提案Deep Learning の使い方をレシピとしてまとめている

LeCun( ニューヨーク大学) CNN の第一人者httpyannlecuncom

Deep Learning を画像応用畳み込みネットワーク (CNN) で手書き文字認識を実現数多くの学生を輩出 Ranzato(Facebook) Kavukcuoglu(DeepMind)

    Facebook の AI   Lab の所長を兼任

14

Deep Learning の著名な研究者(2)

Schmidhuber (IDSIA) 多くの Competition で1位httpwwwidsiach~juergen

長年 Deep Learning の研究をしている文字標識などの認識テストでトップGPU の活用方法検出認識処理の高速化手法も提案

XWang ( 香港中文大 ) 人検出などへの応用httpmmlabiecuhkeduhkproject_deep_learninghtml

人検出のベンチマークでトップ顔器官検出などへも幅広く応用している

15

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

Dropconnect16

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

ネットワークの構成 ネットワークの学習方法

汎化性向上の方法

17

何が Deep Learning

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Multi-Layer Perceptron

人工知能モデル

確率モデル

多層化畳込み層を導入

多層化多層化

Deep LearningDropout

Maxout

Max pooling

Dropconnect

18

MLP と RBM

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

19

DNN と DBN

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

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

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

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

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

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

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

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

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

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

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

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

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

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

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

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

P(y2)

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

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

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

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

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

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

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

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

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

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

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

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

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

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

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

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

48

Dropout

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

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

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

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

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

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

前処理の重要性

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

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

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

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

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

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

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

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

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

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

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

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

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

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

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

01KB

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

4KB

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

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

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

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

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

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

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

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

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

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

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

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

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 2: MIRU2014 tutorial deeplearning

Deep Learning について

様々なベンチマークでトップレベルの性能音声認識 (2011)

F Seide G Li and D Yu ldquoConversational Speech Transcription Using Context-Dependent Deep Neural Networksrdquo INTERSPEECH2011

多層 (7 つ)結合事前学習あり

一般物体認識 (2012)

A Krizhevsky I Sutskever and G E Hinton ImageNet Classification with Deep Convolutional Neural Networks NIPS Vol 1 No 2 2012

多層の CNN で従来性能を大きく上回る

2

なぜ Deep Learning が注目されてる

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

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

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

根気強く取り組んだ成果

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

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

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

3

Deep Learning 界隈の状況

IT 関連会社が軒並み注目して開発投資しているFacebook が研究所 (AI Lab) を設立

LeCun を所長に Ranzato らが所属

Google が関連会社を買収DNNResearch(Hinton らの会社) Deep Mind

Yahoo が関連会社を買収IQEngine( 画像認識の会社 ) LookFlow

Baidu が研究所を設立

ほとんどが2013年以降

4

Deep Learning 関連の投稿

20142013201220112010

4 件17 件

6 件

4 件1 件1件

1 件

ここ1 2年で発表が大幅に増加minus

CVPR

ICCV

20 件

5 件ICPR

音声認識で注目 LSVRC2012 でトップ (ICCV workshop)

5

12 件

ECCV

Deep Learning で何ができる

一般物体認識 (2012 2013)

Large Scale Visual Recognition Challenge 2012 で他手法を圧倒同 2013 では Deep Learning ベースの手法が多数畳み込みニューラルネットワーク + 高精度化のテクニック (ReLu dropoutなど)1000 種類の物体のカテゴリを認識

データセットLSVRC2012 の WEB ページより引用 httpimage-netorgchallengesLSVRC2012ilsvrc2012pdf httpimage-netorgchallengesLSVRC2012supervisionpdf

6

Deep Learning で何ができる

シーン認識 (2012)

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

CFarabet CCouprie LNajman YLeCun ldquoLearning Hierarchical Features for Scene Labelingrdquo PAMI2012 7

Deep Learning で何ができる

デノイジング (2012)

階層的に学習するニューラルネットワークスパースコーディングをネットワークの学習に利用 rArrデノイジング オートエンコーダ従来手法に比べて見た目で勝る(数値上は同等)

JXie LXu EChen ldquoImage Denoising and Inpainting with Deep Neural Networksrdquo NIPS2012

ノイズなし画像

Deep learning での復元

8

従来手法での復元

Deep Learning で何ができる

人検出 (2013)

畳み込みニューラルネットワークの学習にスパースコーディングを利用各階層の出力をすべて統合する方法でローカルグローバルな特徴を抽出

PSermanet KKavukcuoglu SChintala YLeCun ldquoPedestrian Detection with Unsupervised Multi-Stage Feature Learningrdquo CVPR2013

畳み込み層のフィルタ例( INRIA データセットフィルタサイズ 9x9 )

9

最近の状況

10

Deep Learning で何ができる

人検出のリアルタイム処理 (2014)NVIDIA の Tegra K1 上で 16-17fps で動作( 140x60 ピクセル)9層の畳み込みニューラルネットワーク人までの距離身長向きも同時に検出

I Sato H Niihara ldquoBeyond Pedestrian Detection Deep Neural Networks Level-Up Automotive Safetyrdquo2014

11

Deep Learning で何ができる

Deep Belief Object Recognition (iOS の物体認識アプリ )(2014)

物体認識を iOS 上に実装し3 00ms で動作Krizhevsky らの畳み込みミューラルネットワークをベースとしているSDK を公開している

httpswwwjetpaccom

12

Project Adam

httpswwwyoutubecomwatchfeature=player_embeddedampv=zOPIvC0MlA413

犬の種別まで認識

Deep Learning の著名な研究者(1)

Hinton   ( トロント大学 ) 教祖的存在httpswwwcstorontoedu~hintonニューラルネットワークの暗黒時代でも根気強く研究Auto encoder drop out などのアプローチを提案Deep Learning の使い方をレシピとしてまとめている

LeCun( ニューヨーク大学) CNN の第一人者httpyannlecuncom

Deep Learning を画像応用畳み込みネットワーク (CNN) で手書き文字認識を実現数多くの学生を輩出 Ranzato(Facebook) Kavukcuoglu(DeepMind)

    Facebook の AI   Lab の所長を兼任

14

Deep Learning の著名な研究者(2)

Schmidhuber (IDSIA) 多くの Competition で1位httpwwwidsiach~juergen

長年 Deep Learning の研究をしている文字標識などの認識テストでトップGPU の活用方法検出認識処理の高速化手法も提案

XWang ( 香港中文大 ) 人検出などへの応用httpmmlabiecuhkeduhkproject_deep_learninghtml

人検出のベンチマークでトップ顔器官検出などへも幅広く応用している

15

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

Dropconnect16

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

ネットワークの構成 ネットワークの学習方法

汎化性向上の方法

17

何が Deep Learning

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Multi-Layer Perceptron

人工知能モデル

確率モデル

多層化畳込み層を導入

多層化多層化

Deep LearningDropout

Maxout

Max pooling

Dropconnect

18

MLP と RBM

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

19

DNN と DBN

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

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

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

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

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

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

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

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

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

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

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

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

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

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

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

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

P(y2)

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

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

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

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

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

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

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

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

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

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

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

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

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

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

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

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

48

Dropout

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

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

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

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

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

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

前処理の重要性

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

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

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

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

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

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

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

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

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

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

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

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

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

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

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

01KB

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

4KB

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

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

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

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

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

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

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

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

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

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

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

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

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 3: MIRU2014 tutorial deeplearning

なぜ Deep Learning が注目されてる

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

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

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

根気強く取り組んだ成果

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

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

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

3

Deep Learning 界隈の状況

IT 関連会社が軒並み注目して開発投資しているFacebook が研究所 (AI Lab) を設立

LeCun を所長に Ranzato らが所属

Google が関連会社を買収DNNResearch(Hinton らの会社) Deep Mind

Yahoo が関連会社を買収IQEngine( 画像認識の会社 ) LookFlow

Baidu が研究所を設立

ほとんどが2013年以降

4

Deep Learning 関連の投稿

20142013201220112010

4 件17 件

6 件

4 件1 件1件

1 件

ここ1 2年で発表が大幅に増加minus

CVPR

ICCV

20 件

5 件ICPR

音声認識で注目 LSVRC2012 でトップ (ICCV workshop)

5

12 件

ECCV

Deep Learning で何ができる

一般物体認識 (2012 2013)

Large Scale Visual Recognition Challenge 2012 で他手法を圧倒同 2013 では Deep Learning ベースの手法が多数畳み込みニューラルネットワーク + 高精度化のテクニック (ReLu dropoutなど)1000 種類の物体のカテゴリを認識

データセットLSVRC2012 の WEB ページより引用 httpimage-netorgchallengesLSVRC2012ilsvrc2012pdf httpimage-netorgchallengesLSVRC2012supervisionpdf

6

Deep Learning で何ができる

シーン認識 (2012)

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

CFarabet CCouprie LNajman YLeCun ldquoLearning Hierarchical Features for Scene Labelingrdquo PAMI2012 7

Deep Learning で何ができる

デノイジング (2012)

階層的に学習するニューラルネットワークスパースコーディングをネットワークの学習に利用 rArrデノイジング オートエンコーダ従来手法に比べて見た目で勝る(数値上は同等)

JXie LXu EChen ldquoImage Denoising and Inpainting with Deep Neural Networksrdquo NIPS2012

ノイズなし画像

Deep learning での復元

8

従来手法での復元

Deep Learning で何ができる

人検出 (2013)

畳み込みニューラルネットワークの学習にスパースコーディングを利用各階層の出力をすべて統合する方法でローカルグローバルな特徴を抽出

PSermanet KKavukcuoglu SChintala YLeCun ldquoPedestrian Detection with Unsupervised Multi-Stage Feature Learningrdquo CVPR2013

畳み込み層のフィルタ例( INRIA データセットフィルタサイズ 9x9 )

9

最近の状況

10

Deep Learning で何ができる

人検出のリアルタイム処理 (2014)NVIDIA の Tegra K1 上で 16-17fps で動作( 140x60 ピクセル)9層の畳み込みニューラルネットワーク人までの距離身長向きも同時に検出

I Sato H Niihara ldquoBeyond Pedestrian Detection Deep Neural Networks Level-Up Automotive Safetyrdquo2014

11

Deep Learning で何ができる

Deep Belief Object Recognition (iOS の物体認識アプリ )(2014)

物体認識を iOS 上に実装し3 00ms で動作Krizhevsky らの畳み込みミューラルネットワークをベースとしているSDK を公開している

httpswwwjetpaccom

12

Project Adam

httpswwwyoutubecomwatchfeature=player_embeddedampv=zOPIvC0MlA413

犬の種別まで認識

Deep Learning の著名な研究者(1)

Hinton   ( トロント大学 ) 教祖的存在httpswwwcstorontoedu~hintonニューラルネットワークの暗黒時代でも根気強く研究Auto encoder drop out などのアプローチを提案Deep Learning の使い方をレシピとしてまとめている

LeCun( ニューヨーク大学) CNN の第一人者httpyannlecuncom

Deep Learning を画像応用畳み込みネットワーク (CNN) で手書き文字認識を実現数多くの学生を輩出 Ranzato(Facebook) Kavukcuoglu(DeepMind)

    Facebook の AI   Lab の所長を兼任

14

Deep Learning の著名な研究者(2)

Schmidhuber (IDSIA) 多くの Competition で1位httpwwwidsiach~juergen

長年 Deep Learning の研究をしている文字標識などの認識テストでトップGPU の活用方法検出認識処理の高速化手法も提案

XWang ( 香港中文大 ) 人検出などへの応用httpmmlabiecuhkeduhkproject_deep_learninghtml

人検出のベンチマークでトップ顔器官検出などへも幅広く応用している

15

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

Dropconnect16

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

ネットワークの構成 ネットワークの学習方法

汎化性向上の方法

17

何が Deep Learning

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Multi-Layer Perceptron

人工知能モデル

確率モデル

多層化畳込み層を導入

多層化多層化

Deep LearningDropout

Maxout

Max pooling

Dropconnect

18

MLP と RBM

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

19

DNN と DBN

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

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

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

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

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

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

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

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

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

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

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

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

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

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

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

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

P(y2)

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

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

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

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

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

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

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

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

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

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

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

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

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

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

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

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

48

Dropout

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

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

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

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

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

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

前処理の重要性

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

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

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

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

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

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

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

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

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

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

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

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

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

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

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

01KB

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

4KB

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

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

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

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

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

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

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

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

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

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

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

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

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 4: MIRU2014 tutorial deeplearning

Deep Learning 界隈の状況

IT 関連会社が軒並み注目して開発投資しているFacebook が研究所 (AI Lab) を設立

LeCun を所長に Ranzato らが所属

Google が関連会社を買収DNNResearch(Hinton らの会社) Deep Mind

Yahoo が関連会社を買収IQEngine( 画像認識の会社 ) LookFlow

Baidu が研究所を設立

ほとんどが2013年以降

4

Deep Learning 関連の投稿

20142013201220112010

4 件17 件

6 件

4 件1 件1件

1 件

ここ1 2年で発表が大幅に増加minus

CVPR

ICCV

20 件

5 件ICPR

音声認識で注目 LSVRC2012 でトップ (ICCV workshop)

5

12 件

ECCV

Deep Learning で何ができる

一般物体認識 (2012 2013)

Large Scale Visual Recognition Challenge 2012 で他手法を圧倒同 2013 では Deep Learning ベースの手法が多数畳み込みニューラルネットワーク + 高精度化のテクニック (ReLu dropoutなど)1000 種類の物体のカテゴリを認識

データセットLSVRC2012 の WEB ページより引用 httpimage-netorgchallengesLSVRC2012ilsvrc2012pdf httpimage-netorgchallengesLSVRC2012supervisionpdf

6

Deep Learning で何ができる

シーン認識 (2012)

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

CFarabet CCouprie LNajman YLeCun ldquoLearning Hierarchical Features for Scene Labelingrdquo PAMI2012 7

Deep Learning で何ができる

デノイジング (2012)

階層的に学習するニューラルネットワークスパースコーディングをネットワークの学習に利用 rArrデノイジング オートエンコーダ従来手法に比べて見た目で勝る(数値上は同等)

JXie LXu EChen ldquoImage Denoising and Inpainting with Deep Neural Networksrdquo NIPS2012

ノイズなし画像

Deep learning での復元

8

従来手法での復元

Deep Learning で何ができる

人検出 (2013)

畳み込みニューラルネットワークの学習にスパースコーディングを利用各階層の出力をすべて統合する方法でローカルグローバルな特徴を抽出

PSermanet KKavukcuoglu SChintala YLeCun ldquoPedestrian Detection with Unsupervised Multi-Stage Feature Learningrdquo CVPR2013

畳み込み層のフィルタ例( INRIA データセットフィルタサイズ 9x9 )

9

最近の状況

10

Deep Learning で何ができる

人検出のリアルタイム処理 (2014)NVIDIA の Tegra K1 上で 16-17fps で動作( 140x60 ピクセル)9層の畳み込みニューラルネットワーク人までの距離身長向きも同時に検出

I Sato H Niihara ldquoBeyond Pedestrian Detection Deep Neural Networks Level-Up Automotive Safetyrdquo2014

11

Deep Learning で何ができる

Deep Belief Object Recognition (iOS の物体認識アプリ )(2014)

物体認識を iOS 上に実装し3 00ms で動作Krizhevsky らの畳み込みミューラルネットワークをベースとしているSDK を公開している

httpswwwjetpaccom

12

Project Adam

httpswwwyoutubecomwatchfeature=player_embeddedampv=zOPIvC0MlA413

犬の種別まで認識

Deep Learning の著名な研究者(1)

Hinton   ( トロント大学 ) 教祖的存在httpswwwcstorontoedu~hintonニューラルネットワークの暗黒時代でも根気強く研究Auto encoder drop out などのアプローチを提案Deep Learning の使い方をレシピとしてまとめている

LeCun( ニューヨーク大学) CNN の第一人者httpyannlecuncom

Deep Learning を画像応用畳み込みネットワーク (CNN) で手書き文字認識を実現数多くの学生を輩出 Ranzato(Facebook) Kavukcuoglu(DeepMind)

    Facebook の AI   Lab の所長を兼任

14

Deep Learning の著名な研究者(2)

Schmidhuber (IDSIA) 多くの Competition で1位httpwwwidsiach~juergen

長年 Deep Learning の研究をしている文字標識などの認識テストでトップGPU の活用方法検出認識処理の高速化手法も提案

XWang ( 香港中文大 ) 人検出などへの応用httpmmlabiecuhkeduhkproject_deep_learninghtml

人検出のベンチマークでトップ顔器官検出などへも幅広く応用している

15

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

Dropconnect16

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

ネットワークの構成 ネットワークの学習方法

汎化性向上の方法

17

何が Deep Learning

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Multi-Layer Perceptron

人工知能モデル

確率モデル

多層化畳込み層を導入

多層化多層化

Deep LearningDropout

Maxout

Max pooling

Dropconnect

18

MLP と RBM

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

19

DNN と DBN

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

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

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

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

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

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

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

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

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

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

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

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

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

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

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

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

P(y2)

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

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

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

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

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

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

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

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

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

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

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

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

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

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

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

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

48

Dropout

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

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

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

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

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

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

前処理の重要性

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

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

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

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

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

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

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

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

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

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

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

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

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

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

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

01KB

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

4KB

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

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

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

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

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

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

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

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

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

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

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

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

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 5: MIRU2014 tutorial deeplearning

Deep Learning 関連の投稿

20142013201220112010

4 件17 件

6 件

4 件1 件1件

1 件

ここ1 2年で発表が大幅に増加minus

CVPR

ICCV

20 件

5 件ICPR

音声認識で注目 LSVRC2012 でトップ (ICCV workshop)

5

12 件

ECCV

Deep Learning で何ができる

一般物体認識 (2012 2013)

Large Scale Visual Recognition Challenge 2012 で他手法を圧倒同 2013 では Deep Learning ベースの手法が多数畳み込みニューラルネットワーク + 高精度化のテクニック (ReLu dropoutなど)1000 種類の物体のカテゴリを認識

データセットLSVRC2012 の WEB ページより引用 httpimage-netorgchallengesLSVRC2012ilsvrc2012pdf httpimage-netorgchallengesLSVRC2012supervisionpdf

6

Deep Learning で何ができる

シーン認識 (2012)

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

CFarabet CCouprie LNajman YLeCun ldquoLearning Hierarchical Features for Scene Labelingrdquo PAMI2012 7

Deep Learning で何ができる

デノイジング (2012)

階層的に学習するニューラルネットワークスパースコーディングをネットワークの学習に利用 rArrデノイジング オートエンコーダ従来手法に比べて見た目で勝る(数値上は同等)

JXie LXu EChen ldquoImage Denoising and Inpainting with Deep Neural Networksrdquo NIPS2012

ノイズなし画像

Deep learning での復元

8

従来手法での復元

Deep Learning で何ができる

人検出 (2013)

畳み込みニューラルネットワークの学習にスパースコーディングを利用各階層の出力をすべて統合する方法でローカルグローバルな特徴を抽出

PSermanet KKavukcuoglu SChintala YLeCun ldquoPedestrian Detection with Unsupervised Multi-Stage Feature Learningrdquo CVPR2013

畳み込み層のフィルタ例( INRIA データセットフィルタサイズ 9x9 )

9

最近の状況

10

Deep Learning で何ができる

人検出のリアルタイム処理 (2014)NVIDIA の Tegra K1 上で 16-17fps で動作( 140x60 ピクセル)9層の畳み込みニューラルネットワーク人までの距離身長向きも同時に検出

I Sato H Niihara ldquoBeyond Pedestrian Detection Deep Neural Networks Level-Up Automotive Safetyrdquo2014

11

Deep Learning で何ができる

Deep Belief Object Recognition (iOS の物体認識アプリ )(2014)

物体認識を iOS 上に実装し3 00ms で動作Krizhevsky らの畳み込みミューラルネットワークをベースとしているSDK を公開している

httpswwwjetpaccom

12

Project Adam

httpswwwyoutubecomwatchfeature=player_embeddedampv=zOPIvC0MlA413

犬の種別まで認識

Deep Learning の著名な研究者(1)

Hinton   ( トロント大学 ) 教祖的存在httpswwwcstorontoedu~hintonニューラルネットワークの暗黒時代でも根気強く研究Auto encoder drop out などのアプローチを提案Deep Learning の使い方をレシピとしてまとめている

LeCun( ニューヨーク大学) CNN の第一人者httpyannlecuncom

Deep Learning を画像応用畳み込みネットワーク (CNN) で手書き文字認識を実現数多くの学生を輩出 Ranzato(Facebook) Kavukcuoglu(DeepMind)

    Facebook の AI   Lab の所長を兼任

14

Deep Learning の著名な研究者(2)

Schmidhuber (IDSIA) 多くの Competition で1位httpwwwidsiach~juergen

長年 Deep Learning の研究をしている文字標識などの認識テストでトップGPU の活用方法検出認識処理の高速化手法も提案

XWang ( 香港中文大 ) 人検出などへの応用httpmmlabiecuhkeduhkproject_deep_learninghtml

人検出のベンチマークでトップ顔器官検出などへも幅広く応用している

15

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

Dropconnect16

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

ネットワークの構成 ネットワークの学習方法

汎化性向上の方法

17

何が Deep Learning

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Multi-Layer Perceptron

人工知能モデル

確率モデル

多層化畳込み層を導入

多層化多層化

Deep LearningDropout

Maxout

Max pooling

Dropconnect

18

MLP と RBM

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

19

DNN と DBN

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

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

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

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

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

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

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

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

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

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

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

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

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

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

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

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

P(y2)

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

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

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

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

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

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

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

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

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

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

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

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

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

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

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

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

48

Dropout

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

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

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

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

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

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

前処理の重要性

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

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

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

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

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

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

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

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

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

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

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

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

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

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

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

01KB

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

4KB

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

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

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

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

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

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

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

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

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

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

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

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

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 6: MIRU2014 tutorial deeplearning

Deep Learning で何ができる

一般物体認識 (2012 2013)

Large Scale Visual Recognition Challenge 2012 で他手法を圧倒同 2013 では Deep Learning ベースの手法が多数畳み込みニューラルネットワーク + 高精度化のテクニック (ReLu dropoutなど)1000 種類の物体のカテゴリを認識

データセットLSVRC2012 の WEB ページより引用 httpimage-netorgchallengesLSVRC2012ilsvrc2012pdf httpimage-netorgchallengesLSVRC2012supervisionpdf

6

Deep Learning で何ができる

シーン認識 (2012)

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

CFarabet CCouprie LNajman YLeCun ldquoLearning Hierarchical Features for Scene Labelingrdquo PAMI2012 7

Deep Learning で何ができる

デノイジング (2012)

階層的に学習するニューラルネットワークスパースコーディングをネットワークの学習に利用 rArrデノイジング オートエンコーダ従来手法に比べて見た目で勝る(数値上は同等)

JXie LXu EChen ldquoImage Denoising and Inpainting with Deep Neural Networksrdquo NIPS2012

ノイズなし画像

Deep learning での復元

8

従来手法での復元

Deep Learning で何ができる

人検出 (2013)

畳み込みニューラルネットワークの学習にスパースコーディングを利用各階層の出力をすべて統合する方法でローカルグローバルな特徴を抽出

PSermanet KKavukcuoglu SChintala YLeCun ldquoPedestrian Detection with Unsupervised Multi-Stage Feature Learningrdquo CVPR2013

畳み込み層のフィルタ例( INRIA データセットフィルタサイズ 9x9 )

9

最近の状況

10

Deep Learning で何ができる

人検出のリアルタイム処理 (2014)NVIDIA の Tegra K1 上で 16-17fps で動作( 140x60 ピクセル)9層の畳み込みニューラルネットワーク人までの距離身長向きも同時に検出

I Sato H Niihara ldquoBeyond Pedestrian Detection Deep Neural Networks Level-Up Automotive Safetyrdquo2014

11

Deep Learning で何ができる

Deep Belief Object Recognition (iOS の物体認識アプリ )(2014)

物体認識を iOS 上に実装し3 00ms で動作Krizhevsky らの畳み込みミューラルネットワークをベースとしているSDK を公開している

httpswwwjetpaccom

12

Project Adam

httpswwwyoutubecomwatchfeature=player_embeddedampv=zOPIvC0MlA413

犬の種別まで認識

Deep Learning の著名な研究者(1)

Hinton   ( トロント大学 ) 教祖的存在httpswwwcstorontoedu~hintonニューラルネットワークの暗黒時代でも根気強く研究Auto encoder drop out などのアプローチを提案Deep Learning の使い方をレシピとしてまとめている

LeCun( ニューヨーク大学) CNN の第一人者httpyannlecuncom

Deep Learning を画像応用畳み込みネットワーク (CNN) で手書き文字認識を実現数多くの学生を輩出 Ranzato(Facebook) Kavukcuoglu(DeepMind)

    Facebook の AI   Lab の所長を兼任

14

Deep Learning の著名な研究者(2)

Schmidhuber (IDSIA) 多くの Competition で1位httpwwwidsiach~juergen

長年 Deep Learning の研究をしている文字標識などの認識テストでトップGPU の活用方法検出認識処理の高速化手法も提案

XWang ( 香港中文大 ) 人検出などへの応用httpmmlabiecuhkeduhkproject_deep_learninghtml

人検出のベンチマークでトップ顔器官検出などへも幅広く応用している

15

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

Dropconnect16

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

ネットワークの構成 ネットワークの学習方法

汎化性向上の方法

17

何が Deep Learning

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Multi-Layer Perceptron

人工知能モデル

確率モデル

多層化畳込み層を導入

多層化多層化

Deep LearningDropout

Maxout

Max pooling

Dropconnect

18

MLP と RBM

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

19

DNN と DBN

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

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

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

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

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

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

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

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

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

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

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

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

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

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

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

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

P(y2)

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

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

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

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

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

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

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

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

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

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

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

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

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

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

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

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

48

Dropout

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

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

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

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

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

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

前処理の重要性

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

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

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

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

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

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

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

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

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

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

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

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

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

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

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

01KB

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

4KB

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

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

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

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

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

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

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

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

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

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

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

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

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 7: MIRU2014 tutorial deeplearning

Deep Learning で何ができる

シーン認識 (2012)

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

CFarabet CCouprie LNajman YLeCun ldquoLearning Hierarchical Features for Scene Labelingrdquo PAMI2012 7

Deep Learning で何ができる

デノイジング (2012)

階層的に学習するニューラルネットワークスパースコーディングをネットワークの学習に利用 rArrデノイジング オートエンコーダ従来手法に比べて見た目で勝る(数値上は同等)

JXie LXu EChen ldquoImage Denoising and Inpainting with Deep Neural Networksrdquo NIPS2012

ノイズなし画像

Deep learning での復元

8

従来手法での復元

Deep Learning で何ができる

人検出 (2013)

畳み込みニューラルネットワークの学習にスパースコーディングを利用各階層の出力をすべて統合する方法でローカルグローバルな特徴を抽出

PSermanet KKavukcuoglu SChintala YLeCun ldquoPedestrian Detection with Unsupervised Multi-Stage Feature Learningrdquo CVPR2013

畳み込み層のフィルタ例( INRIA データセットフィルタサイズ 9x9 )

9

最近の状況

10

Deep Learning で何ができる

人検出のリアルタイム処理 (2014)NVIDIA の Tegra K1 上で 16-17fps で動作( 140x60 ピクセル)9層の畳み込みニューラルネットワーク人までの距離身長向きも同時に検出

I Sato H Niihara ldquoBeyond Pedestrian Detection Deep Neural Networks Level-Up Automotive Safetyrdquo2014

11

Deep Learning で何ができる

Deep Belief Object Recognition (iOS の物体認識アプリ )(2014)

物体認識を iOS 上に実装し3 00ms で動作Krizhevsky らの畳み込みミューラルネットワークをベースとしているSDK を公開している

httpswwwjetpaccom

12

Project Adam

httpswwwyoutubecomwatchfeature=player_embeddedampv=zOPIvC0MlA413

犬の種別まで認識

Deep Learning の著名な研究者(1)

Hinton   ( トロント大学 ) 教祖的存在httpswwwcstorontoedu~hintonニューラルネットワークの暗黒時代でも根気強く研究Auto encoder drop out などのアプローチを提案Deep Learning の使い方をレシピとしてまとめている

LeCun( ニューヨーク大学) CNN の第一人者httpyannlecuncom

Deep Learning を画像応用畳み込みネットワーク (CNN) で手書き文字認識を実現数多くの学生を輩出 Ranzato(Facebook) Kavukcuoglu(DeepMind)

    Facebook の AI   Lab の所長を兼任

14

Deep Learning の著名な研究者(2)

Schmidhuber (IDSIA) 多くの Competition で1位httpwwwidsiach~juergen

長年 Deep Learning の研究をしている文字標識などの認識テストでトップGPU の活用方法検出認識処理の高速化手法も提案

XWang ( 香港中文大 ) 人検出などへの応用httpmmlabiecuhkeduhkproject_deep_learninghtml

人検出のベンチマークでトップ顔器官検出などへも幅広く応用している

15

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

Dropconnect16

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

ネットワークの構成 ネットワークの学習方法

汎化性向上の方法

17

何が Deep Learning

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Multi-Layer Perceptron

人工知能モデル

確率モデル

多層化畳込み層を導入

多層化多層化

Deep LearningDropout

Maxout

Max pooling

Dropconnect

18

MLP と RBM

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

19

DNN と DBN

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

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

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

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

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

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

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

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

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

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

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

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

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

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

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

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

P(y2)

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

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

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

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

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

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

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

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

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

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

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

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

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

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

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

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

48

Dropout

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

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

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

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

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

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

前処理の重要性

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

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

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

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

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

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

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

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

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

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

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

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

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

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

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

01KB

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

4KB

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

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

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

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

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

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

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

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

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

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

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

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

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 8: MIRU2014 tutorial deeplearning

Deep Learning で何ができる

デノイジング (2012)

階層的に学習するニューラルネットワークスパースコーディングをネットワークの学習に利用 rArrデノイジング オートエンコーダ従来手法に比べて見た目で勝る(数値上は同等)

JXie LXu EChen ldquoImage Denoising and Inpainting with Deep Neural Networksrdquo NIPS2012

ノイズなし画像

Deep learning での復元

8

従来手法での復元

Deep Learning で何ができる

人検出 (2013)

畳み込みニューラルネットワークの学習にスパースコーディングを利用各階層の出力をすべて統合する方法でローカルグローバルな特徴を抽出

PSermanet KKavukcuoglu SChintala YLeCun ldquoPedestrian Detection with Unsupervised Multi-Stage Feature Learningrdquo CVPR2013

畳み込み層のフィルタ例( INRIA データセットフィルタサイズ 9x9 )

9

最近の状況

10

Deep Learning で何ができる

人検出のリアルタイム処理 (2014)NVIDIA の Tegra K1 上で 16-17fps で動作( 140x60 ピクセル)9層の畳み込みニューラルネットワーク人までの距離身長向きも同時に検出

I Sato H Niihara ldquoBeyond Pedestrian Detection Deep Neural Networks Level-Up Automotive Safetyrdquo2014

11

Deep Learning で何ができる

Deep Belief Object Recognition (iOS の物体認識アプリ )(2014)

物体認識を iOS 上に実装し3 00ms で動作Krizhevsky らの畳み込みミューラルネットワークをベースとしているSDK を公開している

httpswwwjetpaccom

12

Project Adam

httpswwwyoutubecomwatchfeature=player_embeddedampv=zOPIvC0MlA413

犬の種別まで認識

Deep Learning の著名な研究者(1)

Hinton   ( トロント大学 ) 教祖的存在httpswwwcstorontoedu~hintonニューラルネットワークの暗黒時代でも根気強く研究Auto encoder drop out などのアプローチを提案Deep Learning の使い方をレシピとしてまとめている

LeCun( ニューヨーク大学) CNN の第一人者httpyannlecuncom

Deep Learning を画像応用畳み込みネットワーク (CNN) で手書き文字認識を実現数多くの学生を輩出 Ranzato(Facebook) Kavukcuoglu(DeepMind)

    Facebook の AI   Lab の所長を兼任

14

Deep Learning の著名な研究者(2)

Schmidhuber (IDSIA) 多くの Competition で1位httpwwwidsiach~juergen

長年 Deep Learning の研究をしている文字標識などの認識テストでトップGPU の活用方法検出認識処理の高速化手法も提案

XWang ( 香港中文大 ) 人検出などへの応用httpmmlabiecuhkeduhkproject_deep_learninghtml

人検出のベンチマークでトップ顔器官検出などへも幅広く応用している

15

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

Dropconnect16

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

ネットワークの構成 ネットワークの学習方法

汎化性向上の方法

17

何が Deep Learning

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Multi-Layer Perceptron

人工知能モデル

確率モデル

多層化畳込み層を導入

多層化多層化

Deep LearningDropout

Maxout

Max pooling

Dropconnect

18

MLP と RBM

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

19

DNN と DBN

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

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

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

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

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

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

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

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

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

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

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

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

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

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

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

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

P(y2)

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

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

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

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

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

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

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

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

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

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

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

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

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

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

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

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

48

Dropout

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

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

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

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

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

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

前処理の重要性

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

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

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

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

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

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

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

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

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

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

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

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

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

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

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

01KB

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

4KB

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

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

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

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

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

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

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

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

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

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

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

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

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 9: MIRU2014 tutorial deeplearning

Deep Learning で何ができる

人検出 (2013)

畳み込みニューラルネットワークの学習にスパースコーディングを利用各階層の出力をすべて統合する方法でローカルグローバルな特徴を抽出

PSermanet KKavukcuoglu SChintala YLeCun ldquoPedestrian Detection with Unsupervised Multi-Stage Feature Learningrdquo CVPR2013

畳み込み層のフィルタ例( INRIA データセットフィルタサイズ 9x9 )

9

最近の状況

10

Deep Learning で何ができる

人検出のリアルタイム処理 (2014)NVIDIA の Tegra K1 上で 16-17fps で動作( 140x60 ピクセル)9層の畳み込みニューラルネットワーク人までの距離身長向きも同時に検出

I Sato H Niihara ldquoBeyond Pedestrian Detection Deep Neural Networks Level-Up Automotive Safetyrdquo2014

11

Deep Learning で何ができる

Deep Belief Object Recognition (iOS の物体認識アプリ )(2014)

物体認識を iOS 上に実装し3 00ms で動作Krizhevsky らの畳み込みミューラルネットワークをベースとしているSDK を公開している

httpswwwjetpaccom

12

Project Adam

httpswwwyoutubecomwatchfeature=player_embeddedampv=zOPIvC0MlA413

犬の種別まで認識

Deep Learning の著名な研究者(1)

Hinton   ( トロント大学 ) 教祖的存在httpswwwcstorontoedu~hintonニューラルネットワークの暗黒時代でも根気強く研究Auto encoder drop out などのアプローチを提案Deep Learning の使い方をレシピとしてまとめている

LeCun( ニューヨーク大学) CNN の第一人者httpyannlecuncom

Deep Learning を画像応用畳み込みネットワーク (CNN) で手書き文字認識を実現数多くの学生を輩出 Ranzato(Facebook) Kavukcuoglu(DeepMind)

    Facebook の AI   Lab の所長を兼任

14

Deep Learning の著名な研究者(2)

Schmidhuber (IDSIA) 多くの Competition で1位httpwwwidsiach~juergen

長年 Deep Learning の研究をしている文字標識などの認識テストでトップGPU の活用方法検出認識処理の高速化手法も提案

XWang ( 香港中文大 ) 人検出などへの応用httpmmlabiecuhkeduhkproject_deep_learninghtml

人検出のベンチマークでトップ顔器官検出などへも幅広く応用している

15

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

Dropconnect16

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

ネットワークの構成 ネットワークの学習方法

汎化性向上の方法

17

何が Deep Learning

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Multi-Layer Perceptron

人工知能モデル

確率モデル

多層化畳込み層を導入

多層化多層化

Deep LearningDropout

Maxout

Max pooling

Dropconnect

18

MLP と RBM

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

19

DNN と DBN

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

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

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

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

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

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

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

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

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

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

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

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

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

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

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

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

P(y2)

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

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

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

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

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

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

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

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

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

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

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

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

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

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

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

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

48

Dropout

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

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

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

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

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

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

前処理の重要性

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

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

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

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

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

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

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

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

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

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

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

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

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

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

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

01KB

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

4KB

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

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

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

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

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

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

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

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

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

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

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

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

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 10: MIRU2014 tutorial deeplearning

最近の状況

10

Deep Learning で何ができる

人検出のリアルタイム処理 (2014)NVIDIA の Tegra K1 上で 16-17fps で動作( 140x60 ピクセル)9層の畳み込みニューラルネットワーク人までの距離身長向きも同時に検出

I Sato H Niihara ldquoBeyond Pedestrian Detection Deep Neural Networks Level-Up Automotive Safetyrdquo2014

11

Deep Learning で何ができる

Deep Belief Object Recognition (iOS の物体認識アプリ )(2014)

物体認識を iOS 上に実装し3 00ms で動作Krizhevsky らの畳み込みミューラルネットワークをベースとしているSDK を公開している

httpswwwjetpaccom

12

Project Adam

httpswwwyoutubecomwatchfeature=player_embeddedampv=zOPIvC0MlA413

犬の種別まで認識

Deep Learning の著名な研究者(1)

Hinton   ( トロント大学 ) 教祖的存在httpswwwcstorontoedu~hintonニューラルネットワークの暗黒時代でも根気強く研究Auto encoder drop out などのアプローチを提案Deep Learning の使い方をレシピとしてまとめている

LeCun( ニューヨーク大学) CNN の第一人者httpyannlecuncom

Deep Learning を画像応用畳み込みネットワーク (CNN) で手書き文字認識を実現数多くの学生を輩出 Ranzato(Facebook) Kavukcuoglu(DeepMind)

    Facebook の AI   Lab の所長を兼任

14

Deep Learning の著名な研究者(2)

Schmidhuber (IDSIA) 多くの Competition で1位httpwwwidsiach~juergen

長年 Deep Learning の研究をしている文字標識などの認識テストでトップGPU の活用方法検出認識処理の高速化手法も提案

XWang ( 香港中文大 ) 人検出などへの応用httpmmlabiecuhkeduhkproject_deep_learninghtml

人検出のベンチマークでトップ顔器官検出などへも幅広く応用している

15

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

Dropconnect16

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

ネットワークの構成 ネットワークの学習方法

汎化性向上の方法

17

何が Deep Learning

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Multi-Layer Perceptron

人工知能モデル

確率モデル

多層化畳込み層を導入

多層化多層化

Deep LearningDropout

Maxout

Max pooling

Dropconnect

18

MLP と RBM

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

19

DNN と DBN

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

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

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

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

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

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

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

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

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

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

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

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

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

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

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

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

P(y2)

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

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

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

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

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

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

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

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

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

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

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

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

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

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

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

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

48

Dropout

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

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

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

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

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

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

前処理の重要性

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

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

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

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

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

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

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

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

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

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

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

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

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

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

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

01KB

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

4KB

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

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

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

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

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

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

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

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

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

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

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

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

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 11: MIRU2014 tutorial deeplearning

Deep Learning で何ができる

人検出のリアルタイム処理 (2014)NVIDIA の Tegra K1 上で 16-17fps で動作( 140x60 ピクセル)9層の畳み込みニューラルネットワーク人までの距離身長向きも同時に検出

I Sato H Niihara ldquoBeyond Pedestrian Detection Deep Neural Networks Level-Up Automotive Safetyrdquo2014

11

Deep Learning で何ができる

Deep Belief Object Recognition (iOS の物体認識アプリ )(2014)

物体認識を iOS 上に実装し3 00ms で動作Krizhevsky らの畳み込みミューラルネットワークをベースとしているSDK を公開している

httpswwwjetpaccom

12

Project Adam

httpswwwyoutubecomwatchfeature=player_embeddedampv=zOPIvC0MlA413

犬の種別まで認識

Deep Learning の著名な研究者(1)

Hinton   ( トロント大学 ) 教祖的存在httpswwwcstorontoedu~hintonニューラルネットワークの暗黒時代でも根気強く研究Auto encoder drop out などのアプローチを提案Deep Learning の使い方をレシピとしてまとめている

LeCun( ニューヨーク大学) CNN の第一人者httpyannlecuncom

Deep Learning を画像応用畳み込みネットワーク (CNN) で手書き文字認識を実現数多くの学生を輩出 Ranzato(Facebook) Kavukcuoglu(DeepMind)

    Facebook の AI   Lab の所長を兼任

14

Deep Learning の著名な研究者(2)

Schmidhuber (IDSIA) 多くの Competition で1位httpwwwidsiach~juergen

長年 Deep Learning の研究をしている文字標識などの認識テストでトップGPU の活用方法検出認識処理の高速化手法も提案

XWang ( 香港中文大 ) 人検出などへの応用httpmmlabiecuhkeduhkproject_deep_learninghtml

人検出のベンチマークでトップ顔器官検出などへも幅広く応用している

15

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

Dropconnect16

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

ネットワークの構成 ネットワークの学習方法

汎化性向上の方法

17

何が Deep Learning

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Multi-Layer Perceptron

人工知能モデル

確率モデル

多層化畳込み層を導入

多層化多層化

Deep LearningDropout

Maxout

Max pooling

Dropconnect

18

MLP と RBM

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

19

DNN と DBN

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

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

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

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

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

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

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

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

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

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

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

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

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

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

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

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

P(y2)

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

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

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

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

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

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

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

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

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

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

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

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

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

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

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

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

48

Dropout

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

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

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

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

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

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

前処理の重要性

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

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

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

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

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

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

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

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

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

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

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

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

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

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

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

01KB

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

4KB

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

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

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

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

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

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

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

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

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

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

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

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

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 12: MIRU2014 tutorial deeplearning

Deep Learning で何ができる

Deep Belief Object Recognition (iOS の物体認識アプリ )(2014)

物体認識を iOS 上に実装し3 00ms で動作Krizhevsky らの畳み込みミューラルネットワークをベースとしているSDK を公開している

httpswwwjetpaccom

12

Project Adam

httpswwwyoutubecomwatchfeature=player_embeddedampv=zOPIvC0MlA413

犬の種別まで認識

Deep Learning の著名な研究者(1)

Hinton   ( トロント大学 ) 教祖的存在httpswwwcstorontoedu~hintonニューラルネットワークの暗黒時代でも根気強く研究Auto encoder drop out などのアプローチを提案Deep Learning の使い方をレシピとしてまとめている

LeCun( ニューヨーク大学) CNN の第一人者httpyannlecuncom

Deep Learning を画像応用畳み込みネットワーク (CNN) で手書き文字認識を実現数多くの学生を輩出 Ranzato(Facebook) Kavukcuoglu(DeepMind)

    Facebook の AI   Lab の所長を兼任

14

Deep Learning の著名な研究者(2)

Schmidhuber (IDSIA) 多くの Competition で1位httpwwwidsiach~juergen

長年 Deep Learning の研究をしている文字標識などの認識テストでトップGPU の活用方法検出認識処理の高速化手法も提案

XWang ( 香港中文大 ) 人検出などへの応用httpmmlabiecuhkeduhkproject_deep_learninghtml

人検出のベンチマークでトップ顔器官検出などへも幅広く応用している

15

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

Dropconnect16

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

ネットワークの構成 ネットワークの学習方法

汎化性向上の方法

17

何が Deep Learning

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Multi-Layer Perceptron

人工知能モデル

確率モデル

多層化畳込み層を導入

多層化多層化

Deep LearningDropout

Maxout

Max pooling

Dropconnect

18

MLP と RBM

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

19

DNN と DBN

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

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

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

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

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

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

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

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

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

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

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

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

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

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

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

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

P(y2)

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

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

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

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

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

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

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

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

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

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

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

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

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

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

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

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

48

Dropout

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

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

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

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

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

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

前処理の重要性

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

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

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

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

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

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

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

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

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

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

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

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

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

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

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

01KB

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

4KB

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

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

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

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

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

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

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

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

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

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

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

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

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 13: MIRU2014 tutorial deeplearning

Project Adam

httpswwwyoutubecomwatchfeature=player_embeddedampv=zOPIvC0MlA413

犬の種別まで認識

Deep Learning の著名な研究者(1)

Hinton   ( トロント大学 ) 教祖的存在httpswwwcstorontoedu~hintonニューラルネットワークの暗黒時代でも根気強く研究Auto encoder drop out などのアプローチを提案Deep Learning の使い方をレシピとしてまとめている

LeCun( ニューヨーク大学) CNN の第一人者httpyannlecuncom

Deep Learning を画像応用畳み込みネットワーク (CNN) で手書き文字認識を実現数多くの学生を輩出 Ranzato(Facebook) Kavukcuoglu(DeepMind)

    Facebook の AI   Lab の所長を兼任

14

Deep Learning の著名な研究者(2)

Schmidhuber (IDSIA) 多くの Competition で1位httpwwwidsiach~juergen

長年 Deep Learning の研究をしている文字標識などの認識テストでトップGPU の活用方法検出認識処理の高速化手法も提案

XWang ( 香港中文大 ) 人検出などへの応用httpmmlabiecuhkeduhkproject_deep_learninghtml

人検出のベンチマークでトップ顔器官検出などへも幅広く応用している

15

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

Dropconnect16

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

ネットワークの構成 ネットワークの学習方法

汎化性向上の方法

17

何が Deep Learning

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Multi-Layer Perceptron

人工知能モデル

確率モデル

多層化畳込み層を導入

多層化多層化

Deep LearningDropout

Maxout

Max pooling

Dropconnect

18

MLP と RBM

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

19

DNN と DBN

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

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

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

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

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

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

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

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

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

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

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

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

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

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

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

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

P(y2)

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

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

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

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

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

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

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

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

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

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

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

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

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

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

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

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

48

Dropout

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

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

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

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

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

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

前処理の重要性

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

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

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

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

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

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

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

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

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

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

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

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

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

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

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

01KB

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

4KB

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

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

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

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

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

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

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

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

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

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

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

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

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 14: MIRU2014 tutorial deeplearning

Deep Learning の著名な研究者(1)

Hinton   ( トロント大学 ) 教祖的存在httpswwwcstorontoedu~hintonニューラルネットワークの暗黒時代でも根気強く研究Auto encoder drop out などのアプローチを提案Deep Learning の使い方をレシピとしてまとめている

LeCun( ニューヨーク大学) CNN の第一人者httpyannlecuncom

Deep Learning を画像応用畳み込みネットワーク (CNN) で手書き文字認識を実現数多くの学生を輩出 Ranzato(Facebook) Kavukcuoglu(DeepMind)

    Facebook の AI   Lab の所長を兼任

14

Deep Learning の著名な研究者(2)

Schmidhuber (IDSIA) 多くの Competition で1位httpwwwidsiach~juergen

長年 Deep Learning の研究をしている文字標識などの認識テストでトップGPU の活用方法検出認識処理の高速化手法も提案

XWang ( 香港中文大 ) 人検出などへの応用httpmmlabiecuhkeduhkproject_deep_learninghtml

人検出のベンチマークでトップ顔器官検出などへも幅広く応用している

15

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

Dropconnect16

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

ネットワークの構成 ネットワークの学習方法

汎化性向上の方法

17

何が Deep Learning

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Multi-Layer Perceptron

人工知能モデル

確率モデル

多層化畳込み層を導入

多層化多層化

Deep LearningDropout

Maxout

Max pooling

Dropconnect

18

MLP と RBM

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

19

DNN と DBN

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

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

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

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

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

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

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

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

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

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

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

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

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

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

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

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

P(y2)

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

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

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

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

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

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

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

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

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

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

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

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

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

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

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

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

48

Dropout

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

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

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

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

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

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

前処理の重要性

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

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

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

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

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

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

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

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

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

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

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

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

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

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

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

01KB

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

4KB

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

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

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

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

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

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

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

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

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

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

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

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

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 15: MIRU2014 tutorial deeplearning

Deep Learning の著名な研究者(2)

Schmidhuber (IDSIA) 多くの Competition で1位httpwwwidsiach~juergen

長年 Deep Learning の研究をしている文字標識などの認識テストでトップGPU の活用方法検出認識処理の高速化手法も提案

XWang ( 香港中文大 ) 人検出などへの応用httpmmlabiecuhkeduhkproject_deep_learninghtml

人検出のベンチマークでトップ顔器官検出などへも幅広く応用している

15

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

Dropconnect16

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

ネットワークの構成 ネットワークの学習方法

汎化性向上の方法

17

何が Deep Learning

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Multi-Layer Perceptron

人工知能モデル

確率モデル

多層化畳込み層を導入

多層化多層化

Deep LearningDropout

Maxout

Max pooling

Dropconnect

18

MLP と RBM

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

19

DNN と DBN

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

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

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

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

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

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

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

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

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

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

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

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

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

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

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

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

P(y2)

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

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

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

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

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

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

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

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

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

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

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

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

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

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

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

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

48

Dropout

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

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

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

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

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

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

前処理の重要性

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

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

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

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

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

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

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

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

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

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

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

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

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

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

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

01KB

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

4KB

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

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

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

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

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

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

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

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

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

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

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

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

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 16: MIRU2014 tutorial deeplearning

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

Dropconnect16

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

ネットワークの構成 ネットワークの学習方法

汎化性向上の方法

17

何が Deep Learning

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Multi-Layer Perceptron

人工知能モデル

確率モデル

多層化畳込み層を導入

多層化多層化

Deep LearningDropout

Maxout

Max pooling

Dropconnect

18

MLP と RBM

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

19

DNN と DBN

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

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

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

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

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

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

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

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

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

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

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

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

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

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

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

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

P(y2)

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

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

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

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

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

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

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

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

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

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

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

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

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

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

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

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

48

Dropout

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

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

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

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

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

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

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

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

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

前処理の重要性

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

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

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

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

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

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

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

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

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

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

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

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

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

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

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

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 17: MIRU2014 tutorial deeplearning

何が 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

ネットワークの構成 ネットワークの学習方法

汎化性向上の方法

17

何が Deep Learning

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Multi-Layer Perceptron

人工知能モデル

確率モデル

多層化畳込み層を導入

多層化多層化

Deep LearningDropout

Maxout

Max pooling

Dropconnect

18

MLP と RBM

Multi-Layer Perceptron(MLP) Restricted Boltzmann Machine(RBM)

19

DNN と DBN

Deep Neural Networks(DNNs) Deep Belief Networks(DBN)

教師あり学習 (Back propagation)すべてのパラメータを同時に学習

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

カーネルをスライドさせて画像に畳み込む近接の画素とのみ結合する (局所受容野 )

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

カーネルをスライドさせて画像に畳み込む近接の画素とのみ結合する (局所受容野 )

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

シグモイド関数 Rectified Linear Unit(ReLU) Maxout

古くから使われているサチると勾配が消滅

画像認識でよく使われる学習が速く勾配がサチることがない

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

複数のカーネルの応答値から最大値を出力

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

Feature   map のサイズを縮小させる

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

Softmax を利用するのが一般的P(y1)

P(y2)

P(yM)各クラスの確率を算出して 最大値を認識クラスとする

出力ノード数=認識するクラス数

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

Layer 数が多ければ多いほど沢山のパラメータ

教師データをもとに識別エラーから各パラメータを更新エラーが小さくなるように更新を繰り返し行い収束を図る

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

順伝搬 現パラメータ群により各学習データの認識を行う

逆伝搬 認識結果(誤差)をもとにパラメータ群を更新する

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

誤差を最小化するように各層のパラメータを更新する

逆誤差伝搬法で誤差の偏微分を計算

更新率 γ を掛けてパラメータ群W を更新

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 18: MIRU2014 tutorial deeplearning

何が Deep Learning

Restricted Boltzmann Machines

Deep Belief Networks

Deep Boltzmann Machines

Convolutional Neural

Networks

Deep Neural Networks

Multi-Layer Perceptron

人工知能モデル

確率モデル

多層化畳込み層を導入

多層化多層化

Deep LearningDropout

Maxout

Max pooling

Dropconnect

18

MLP と RBM

Multi-Layer Perceptron(MLP) Restricted Boltzmann Machine(RBM)

19

DNN と DBN

Deep Neural Networks(DNNs) Deep Belief Networks(DBN)

教師あり学習 (Back propagation)すべてのパラメータを同時に学習

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

カーネルをスライドさせて画像に畳み込む近接の画素とのみ結合する (局所受容野 )

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

カーネルをスライドさせて画像に畳み込む近接の画素とのみ結合する (局所受容野 )

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

シグモイド関数 Rectified Linear Unit(ReLU) Maxout

古くから使われているサチると勾配が消滅

画像認識でよく使われる学習が速く勾配がサチることがない

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

複数のカーネルの応答値から最大値を出力

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

Feature   map のサイズを縮小させる

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

Softmax を利用するのが一般的P(y1)

P(y2)

P(yM)各クラスの確率を算出して 最大値を認識クラスとする

出力ノード数=認識するクラス数

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

Layer 数が多ければ多いほど沢山のパラメータ

教師データをもとに識別エラーから各パラメータを更新エラーが小さくなるように更新を繰り返し行い収束を図る

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

順伝搬 現パラメータ群により各学習データの認識を行う

逆伝搬 認識結果(誤差)をもとにパラメータ群を更新する

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

誤差を最小化するように各層のパラメータを更新する

逆誤差伝搬法で誤差の偏微分を計算

更新率 γ を掛けてパラメータ群W を更新

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 19: MIRU2014 tutorial deeplearning

MLP と RBM

Multi-Layer Perceptron(MLP) Restricted Boltzmann Machine(RBM)

19

DNN と DBN

Deep Neural Networks(DNNs) Deep Belief Networks(DBN)

教師あり学習 (Back propagation)すべてのパラメータを同時に学習

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

カーネルをスライドさせて画像に畳み込む近接の画素とのみ結合する (局所受容野 )

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

カーネルをスライドさせて画像に畳み込む近接の画素とのみ結合する (局所受容野 )

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

シグモイド関数 Rectified Linear Unit(ReLU) Maxout

古くから使われているサチると勾配が消滅

画像認識でよく使われる学習が速く勾配がサチることがない

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

複数のカーネルの応答値から最大値を出力

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

Feature   map のサイズを縮小させる

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

Softmax を利用するのが一般的P(y1)

P(y2)

P(yM)各クラスの確率を算出して 最大値を認識クラスとする

出力ノード数=認識するクラス数

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

Layer 数が多ければ多いほど沢山のパラメータ

教師データをもとに識別エラーから各パラメータを更新エラーが小さくなるように更新を繰り返し行い収束を図る

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

順伝搬 現パラメータ群により各学習データの認識を行う

逆伝搬 認識結果(誤差)をもとにパラメータ群を更新する

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

誤差を最小化するように各層のパラメータを更新する

逆誤差伝搬法で誤差の偏微分を計算

更新率 γ を掛けてパラメータ群W を更新

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 20: MIRU2014 tutorial deeplearning

DNN と DBN

Deep Neural Networks(DNNs) Deep Belief Networks(DBN)

教師あり学習 (Back propagation)すべてのパラメータを同時に学習

教師なし学習 (Contrastive Divergence)階層ごとにパラメータを学習 +教師あり学習 (Back propagation)すべてのパラメータを同時に学習パラメータ更新

パラメータ更新

パラメータ学習

20

入力層入力層

隠れ層

隠れ層

出力層

入力層出力層

入力層出力層

出力層

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

カーネルをスライドさせて画像に畳み込む近接の画素とのみ結合する (局所受容野 )

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

カーネルをスライドさせて画像に畳み込む近接の画素とのみ結合する (局所受容野 )

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

シグモイド関数 Rectified Linear Unit(ReLU) Maxout

古くから使われているサチると勾配が消滅

画像認識でよく使われる学習が速く勾配がサチることがない

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

複数のカーネルの応答値から最大値を出力

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

Feature   map のサイズを縮小させる

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

Softmax を利用するのが一般的P(y1)

P(y2)

P(yM)各クラスの確率を算出して 最大値を認識クラスとする

出力ノード数=認識するクラス数

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

Layer 数が多ければ多いほど沢山のパラメータ

教師データをもとに識別エラーから各パラメータを更新エラーが小さくなるように更新を繰り返し行い収束を図る

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

順伝搬 現パラメータ群により各学習データの認識を行う

逆伝搬 認識結果(誤差)をもとにパラメータ群を更新する

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

誤差を最小化するように各層のパラメータを更新する

逆誤差伝搬法で誤差の偏微分を計算

更新率 γ を掛けてパラメータ群W を更新

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 21: MIRU2014 tutorial deeplearning

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

21

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

カーネルをスライドさせて画像に畳み込む近接の画素とのみ結合する (局所受容野 )

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

カーネルをスライドさせて画像に畳み込む近接の画素とのみ結合する (局所受容野 )

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

シグモイド関数 Rectified Linear Unit(ReLU) Maxout

古くから使われているサチると勾配が消滅

画像認識でよく使われる学習が速く勾配がサチることがない

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

複数のカーネルの応答値から最大値を出力

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

Feature   map のサイズを縮小させる

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

Softmax を利用するのが一般的P(y1)

P(y2)

P(yM)各クラスの確率を算出して 最大値を認識クラスとする

出力ノード数=認識するクラス数

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

Layer 数が多ければ多いほど沢山のパラメータ

教師データをもとに識別エラーから各パラメータを更新エラーが小さくなるように更新を繰り返し行い収束を図る

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

順伝搬 現パラメータ群により各学習データの認識を行う

逆伝搬 認識結果(誤差)をもとにパラメータ群を更新する

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

誤差を最小化するように各層のパラメータを更新する

逆誤差伝搬法で誤差の偏微分を計算

更新率 γ を掛けてパラメータ群W を更新

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 22: MIRU2014 tutorial deeplearning

Convolutional Neural Networks

初期の研究(今も同じ)畳み込みサンプリング全結合の層から構成手書き文字認識に応用平行移動に対する不変性がある

Y LeCun etal ldquoGradient-based Learning Applied to Document Recognition Proc of The IEEE 1998 22

各構成要素について説明します

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

カーネルをスライドさせて画像に畳み込む近接の画素とのみ結合する (局所受容野 )

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

カーネルをスライドさせて画像に畳み込む近接の画素とのみ結合する (局所受容野 )

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

シグモイド関数 Rectified Linear Unit(ReLU) Maxout

古くから使われているサチると勾配が消滅

画像認識でよく使われる学習が速く勾配がサチることがない

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

複数のカーネルの応答値から最大値を出力

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

Feature   map のサイズを縮小させる

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

Softmax を利用するのが一般的P(y1)

P(y2)

P(yM)各クラスの確率を算出して 最大値を認識クラスとする

出力ノード数=認識するクラス数

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

Layer 数が多ければ多いほど沢山のパラメータ

教師データをもとに識別エラーから各パラメータを更新エラーが小さくなるように更新を繰り返し行い収束を図る

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

順伝搬 現パラメータ群により各学習データの認識を行う

逆伝搬 認識結果(誤差)をもとにパラメータ群を更新する

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

誤差を最小化するように各層のパラメータを更新する

逆誤差伝搬法で誤差の偏微分を計算

更新率 γ を掛けてパラメータ群W を更新

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 23: MIRU2014 tutorial deeplearning

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

23

Convolution Layer

カーネルをスライドさせて画像に畳み込む近接の画素とのみ結合する (局所受容野 )

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

カーネルをスライドさせて画像に畳み込む近接の画素とのみ結合する (局所受容野 )

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

シグモイド関数 Rectified Linear Unit(ReLU) Maxout

古くから使われているサチると勾配が消滅

画像認識でよく使われる学習が速く勾配がサチることがない

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

複数のカーネルの応答値から最大値を出力

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

Feature   map のサイズを縮小させる

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

Softmax を利用するのが一般的P(y1)

P(y2)

P(yM)各クラスの確率を算出して 最大値を認識クラスとする

出力ノード数=認識するクラス数

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

Layer 数が多ければ多いほど沢山のパラメータ

教師データをもとに識別エラーから各パラメータを更新エラーが小さくなるように更新を繰り返し行い収束を図る

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

順伝搬 現パラメータ群により各学習データの認識を行う

逆伝搬 認識結果(誤差)をもとにパラメータ群を更新する

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

誤差を最小化するように各層のパラメータを更新する

逆誤差伝搬法で誤差の偏微分を計算

更新率 γ を掛けてパラメータ群W を更新

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 24: MIRU2014 tutorial deeplearning

Convolution Layer

カーネルをスライドさせて画像に畳み込む近接の画素とのみ結合する (局所受容野 )

ConvolutionResponse

f

Input image Feature map10x10 kernel 3x3 8x8Activation function

24Convolutions

Convolution Layer

カーネルをスライドさせて画像に畳み込む近接の画素とのみ結合する (局所受容野 )

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

シグモイド関数 Rectified Linear Unit(ReLU) Maxout

古くから使われているサチると勾配が消滅

画像認識でよく使われる学習が速く勾配がサチることがない

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

複数のカーネルの応答値から最大値を出力

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

Feature   map のサイズを縮小させる

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

Softmax を利用するのが一般的P(y1)

P(y2)

P(yM)各クラスの確率を算出して 最大値を認識クラスとする

出力ノード数=認識するクラス数

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

Layer 数が多ければ多いほど沢山のパラメータ

教師データをもとに識別エラーから各パラメータを更新エラーが小さくなるように更新を繰り返し行い収束を図る

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

順伝搬 現パラメータ群により各学習データの認識を行う

逆伝搬 認識結果(誤差)をもとにパラメータ群を更新する

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

誤差を最小化するように各層のパラメータを更新する

逆誤差伝搬法で誤差の偏微分を計算

更新率 γ を掛けてパラメータ群W を更新

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 25: MIRU2014 tutorial deeplearning

Convolution Layer

カーネルをスライドさせて画像に畳み込む近接の画素とのみ結合する (局所受容野 )

カーネルは複数でも良い

25

Activation functionInput image Feature map10x10 8x8

Convolution

Response

kernel 3x3

f

f

f

Convolutions

Activation Function

シグモイド関数 Rectified Linear Unit(ReLU) Maxout

古くから使われているサチると勾配が消滅

画像認識でよく使われる学習が速く勾配がサチることがない

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

複数のカーネルの応答値から最大値を出力

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

Feature   map のサイズを縮小させる

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

Softmax を利用するのが一般的P(y1)

P(y2)

P(yM)各クラスの確率を算出して 最大値を認識クラスとする

出力ノード数=認識するクラス数

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

Layer 数が多ければ多いほど沢山のパラメータ

教師データをもとに識別エラーから各パラメータを更新エラーが小さくなるように更新を繰り返し行い収束を図る

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

順伝搬 現パラメータ群により各学習データの認識を行う

逆伝搬 認識結果(誤差)をもとにパラメータ群を更新する

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

誤差を最小化するように各層のパラメータを更新する

逆誤差伝搬法で誤差の偏微分を計算

更新率 γ を掛けてパラメータ群W を更新

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 26: MIRU2014 tutorial deeplearning

Activation Function

シグモイド関数 Rectified Linear Unit(ReLU) Maxout

古くから使われているサチると勾配が消滅

画像認識でよく使われる学習が速く勾配がサチることがない

複数のカーネルの畳み込み値の最大を出力

区分線形凸関数ReLU より表現力が高い勾配が消えない

26Convolutions

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

複数のカーネルの応答値から最大値を出力

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

Feature   map のサイズを縮小させる

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

Softmax を利用するのが一般的P(y1)

P(y2)

P(yM)各クラスの確率を算出して 最大値を認識クラスとする

出力ノード数=認識するクラス数

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

Layer 数が多ければ多いほど沢山のパラメータ

教師データをもとに識別エラーから各パラメータを更新エラーが小さくなるように更新を繰り返し行い収束を図る

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

順伝搬 現パラメータ群により各学習データの認識を行う

逆伝搬 認識結果(誤差)をもとにパラメータ群を更新する

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

誤差を最小化するように各層のパラメータを更新する

逆誤差伝搬法で誤差の偏微分を計算

更新率 γ を掛けてパラメータ群W を更新

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 27: MIRU2014 tutorial deeplearning

Maxout

Input image

Feature map

10x10

kernel3x3

8x8x3

Convolution

Feature map8x8

複数のカーネルの応答値から最大値を出力

IJGoodfellow DWarde-Farley MMirza ACourville and YBengio ldquoMaxout networksldquo arXiv preprint arXiv13024389 2013 27

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

Feature   map のサイズを縮小させる

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

Softmax を利用するのが一般的P(y1)

P(y2)

P(yM)各クラスの確率を算出して 最大値を認識クラスとする

出力ノード数=認識するクラス数

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

Layer 数が多ければ多いほど沢山のパラメータ

教師データをもとに識別エラーから各パラメータを更新エラーが小さくなるように更新を繰り返し行い収束を図る

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

順伝搬 現パラメータ群により各学習データの認識を行う

逆伝搬 認識結果(誤差)をもとにパラメータ群を更新する

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

誤差を最小化するように各層のパラメータを更新する

逆誤差伝搬法で誤差の偏微分を計算

更新率 γ を掛けてパラメータ群W を更新

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 28: MIRU2014 tutorial deeplearning

Pooling Layer

Max pooling

2x2 の領域での最大値

Average pooling

2x2 の領域での平均値

Lp pooling

28Sampling

ピークをより強調

Feature   map のサイズを縮小させる

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

Softmax を利用するのが一般的P(y1)

P(y2)

P(yM)各クラスの確率を算出して 最大値を認識クラスとする

出力ノード数=認識するクラス数

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

Layer 数が多ければ多いほど沢山のパラメータ

教師データをもとに識別エラーから各パラメータを更新エラーが小さくなるように更新を繰り返し行い収束を図る

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

順伝搬 現パラメータ群により各学習データの認識を行う

逆伝搬 認識結果(誤差)をもとにパラメータ群を更新する

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

誤差を最小化するように各層のパラメータを更新する

逆誤差伝搬法で誤差の偏微分を計算

更新率 γ を掛けてパラメータ群W を更新

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 29: MIRU2014 tutorial deeplearning

Fully connection layer

x1

x2

x3

xi

h1

h2

hj

各ノードとの結合重み

例えば  は

を算出し  activation function に与えて値を得る

全結合型の構成

29Full connection

Classification Layer

Softmax を利用するのが一般的P(y1)

P(y2)

P(yM)各クラスの確率を算出して 最大値を認識クラスとする

出力ノード数=認識するクラス数

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

Layer 数が多ければ多いほど沢山のパラメータ

教師データをもとに識別エラーから各パラメータを更新エラーが小さくなるように更新を繰り返し行い収束を図る

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

順伝搬 現パラメータ群により各学習データの認識を行う

逆伝搬 認識結果(誤差)をもとにパラメータ群を更新する

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

誤差を最小化するように各層のパラメータを更新する

逆誤差伝搬法で誤差の偏微分を計算

更新率 γ を掛けてパラメータ群W を更新

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 30: MIRU2014 tutorial deeplearning

Classification Layer

Softmax を利用するのが一般的P(y1)

P(y2)

P(yM)各クラスの確率を算出して 最大値を認識クラスとする

出力ノード数=認識するクラス数

x1

x2

x3

xi

h1

h2

hM

30

前層

出力層

classification

各クラスの確率

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

Layer 数が多ければ多いほど沢山のパラメータ

教師データをもとに識別エラーから各パラメータを更新エラーが小さくなるように更新を繰り返し行い収束を図る

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

順伝搬 現パラメータ群により各学習データの認識を行う

逆伝搬 認識結果(誤差)をもとにパラメータ群を更新する

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

誤差を最小化するように各層のパラメータを更新する

逆誤差伝搬法で誤差の偏微分を計算

更新率 γ を掛けてパラメータ群W を更新

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 31: MIRU2014 tutorial deeplearning

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素学習の方法

31

どうやって学習するの

Layer 数が多ければ多いほど沢山のパラメータ

教師データをもとに識別エラーから各パラメータを更新エラーが小さくなるように更新を繰り返し行い収束を図る

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

順伝搬 現パラメータ群により各学習データの認識を行う

逆伝搬 認識結果(誤差)をもとにパラメータ群を更新する

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

誤差を最小化するように各層のパラメータを更新する

逆誤差伝搬法で誤差の偏微分を計算

更新率 γ を掛けてパラメータ群W を更新

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 32: MIRU2014 tutorial deeplearning

どうやって学習するの

Layer 数が多ければ多いほど沢山のパラメータ

教師データをもとに識別エラーから各パラメータを更新エラーが小さくなるように更新を繰り返し行い収束を図る

確率的勾配降下法 (Stochastic Gradient Descent)

学習できめること 各種パラメータ畳み込み層の各カーネルの要素の値全結合層の各ユニットの結合重みバイアス

32

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

順伝搬 現パラメータ群により各学習データの認識を行う

逆伝搬 認識結果(誤差)をもとにパラメータ群を更新する

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

誤差を最小化するように各層のパラメータを更新する

逆誤差伝搬法で誤差の偏微分を計算

更新率 γ を掛けてパラメータ群W を更新

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 33: MIRU2014 tutorial deeplearning

確率的勾配降下法

33

順伝搬と逆伝搬による更新を繰り返し行い良いパラメータ群を得る

Input 画像x ラベル y学習セット

(I1y1)hellip (xnyn)

順伝搬 現パラメータ群により各学習データの認識を行う

逆伝搬 認識結果(誤差)をもとにパラメータ群を更新する

Convolution

Full connection

Classification

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

誤差を最小化するように各層のパラメータを更新する

逆誤差伝搬法で誤差の偏微分を計算

更新率 γ を掛けてパラメータ群W を更新

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 34: MIRU2014 tutorial deeplearning

確率的勾配降下法

Input 画像xi

 ラベル yi学習セット

(x1y1)hellip (xnyn)

全パラメータを W とする

ロス関数 yrsquoi とラベル yi の違いを算出

これを最小化する

34

Convolution

Full connection Classification

誤差を最小化するように各層のパラメータを更新する

逆誤差伝搬法で誤差の偏微分を計算

更新率 γ を掛けてパラメータ群W を更新

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 35: MIRU2014 tutorial deeplearning

mini batch

一度に大量の学習サンプルでロスを求めるのは大変 rArr過学習もおきやすい少しのサンプルだけでパラメータを更新rArr mini batch

確率的勾配降下法(SGD)

m1

m2

mk

各 m を利用して逐次的にパラメータを更新mk まで利用したら再度 m1 を利用

35

n枚

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 36: MIRU2014 tutorial deeplearning

初期のパラメータはどうする

すべて乱数できめます

うまく収束しない良いパラメータが得られないことあり

36

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 37: MIRU2014 tutorial deeplearning

Convolutional Neural Networks について

Convolutional Neural Networks の全体像ネットワークを構成する要素(よりよい初期パラメータを得るための)学習の

方法

37

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 38: MIRU2014 tutorial deeplearning

教師なしでの事前学習(1)

層ごとに初期初期パラメータを学習する

38

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

まずは各カーネルの要素を決める

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 39: MIRU2014 tutorial deeplearning

教師なしでの事前学習(2)

層ごとに初期パラメータを学習する

39

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

次に結合重みを決める(前層で学習されたカーネルを畳み込んで得られた特徴を入力とする)

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 40: MIRU2014 tutorial deeplearning

教師なしでの事前学習(3)

層ごとに初期パラメータを学習する

40

Input 画像x ラベル y

学習セット (x1y1)hellip (xnyn)

そして次の層のパラメータ(結合重み)も順次決めていく(前層までの学習されたパラメータにより得られた特徴を入力とする)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 41: MIRU2014 tutorial deeplearning

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

41

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 42: MIRU2014 tutorial deeplearning

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

42

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 43: MIRU2014 tutorial deeplearning

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

43

x xrsquo

h(x)

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 44: MIRU2014 tutorial deeplearning

Auto encoder

教師なしで初期パラメータを学習

Input layer

hidden layer

Reconstruction layer

入力と復元結果のエラーが最小となるように各パラメータを更新する

Reconstruction error

復元する際の重みは W の転置

Tied weights

パラメータ更新には確率的勾配降下法を利用

求めるパラメータ w1 b1 b1rsquo

44

x xrsquo

h(x)

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 45: MIRU2014 tutorial deeplearning

Auto encoder

Convolutional 層も同様に行う

入力画像

Kernel

復元画像

カーネル k1 の畳み込みとカーネル k1rsquo の畳み込みの差が最小になるように更新する

k1

求めるパラメータ k krsquo b brsquo

パラメータ更新には確率的勾配降下法を利用

Reconstruction error

45

krsquo1

feature map

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 46: MIRU2014 tutorial deeplearning

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS0746

h(x)x xrsquo

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 47: MIRU2014 tutorial deeplearning

Stacked Auto encoder

2層目以降は前層までの出力を利用して行う

Input layer

hidden layer

Reconstruction layer

1層目の出力を入力データして利用再構成層のユニット数は入力層と同じ (この場合は1層目の出力数)2層目のパラメータを更新する

求めるパラメータ w2 b2 b2rsquo

Reconstruction error

47

h(x)x xrsquo

YBengio P Lamblin D Popovici and H Larochelle ldquoGreedy Layer-Wise Training of Deep Networksrdquo NIPS07

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 48: MIRU2014 tutorial deeplearning

汎化性を向上させるための方法

48

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 49: MIRU2014 tutorial deeplearning

Dropout

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部のノードからの結合を取り除く ( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

G Hinton NSrivastava AKrizhevsky ISutskever and RSalakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectorsrdquo arXiv preprint arXiv12070580 2012 49

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 50: MIRU2014 tutorial deeplearning

Dropconnect

全結合層の過学習を抑制する

( 学習方法のおさらい )  入力データのラベルとネットワークの  出力の誤差を元にパラメータを更新

Input layer

Kernel

K1

Kn

Fully connected layer の一部の結合を取り除く( 0にする ) だいたい50

各 mini-batch で異なる結合をランダムに取り除く

近似的なアンサンブル学習

50LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 51: MIRU2014 tutorial deeplearning

Dropout vs Dropconnect

51LWan MZeiler SZhang YLeCun RFergus ldquoRegularization of Neural Network using DropConnectrdquo ICML2013

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 52: MIRU2014 tutorial deeplearning

学習画像の生成

Elastic Distortion位置や大きさだけでなく形状の変化も適用

Data Augmentation位置や大きさを変えて学習データ数を増やす

52PY Simard D Steinkraus and JC Platt ldquoBest practices for convolutional neural networks applied to visual document analysisrdquo ICDAR2003

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 53: MIRU2014 tutorial deeplearning

前処理の重要性

Global Contrast Normalization

各画像を平均0分散1になるように正規化

入力データの明るさを正規化することで性能が向上53

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 54: MIRU2014 tutorial deeplearning

前処理の重要性

Global Contrast Normalization各画像を平均0分散1になるように正規化

正規化なし 正規化あり

下図は pylearn2 の結果

54

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 55: MIRU2014 tutorial deeplearning

前処理の重要性

ZCA whitening

隣接ピクセルの冗長性をなくすようなW を主成分分析により学習

httpwwwcstorontoedu~krizlearning-features-2009-TRpdf

隣接ピクセルの冗長性をなくす

55

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 56: MIRU2014 tutorial deeplearning

前処理の重要性

ZCA whitening

56

ZCA whitening onlyGlobal contrast normalization + ZCA whitening

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 57: MIRU2014 tutorial deeplearning

Normalize Layer

activation function で得られた値を正規化

Convolutional layer Normalize layer

Pooling layer Convolutional layerNormalize layer

Pooling layer

pooling layer後に Normalize layer を配置することもある

57

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 58: MIRU2014 tutorial deeplearning

Normalize Layer

Local contrast normalization

Convolutional layer Normalize layer

同一特徴マップにおける局所領域内で正規化する

K Jarrett K Kavukcuoglu M Ranzato and YLeCun ldquoWhat is the Best Multi-Stage Architecture for Object Recognitionrdquo ICCV2009 58

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 59: MIRU2014 tutorial deeplearning

Normalize Layer

Local response normalization

Convolutional layer Normalize layer

同一位置における異なる特徴マップ間で正規化する

59G E Hinton N Srivastava A Krizhevsky I Sutskever and R R Salakhutdinov ldquoImproving neural networks by preventing co-adaptation of feature detectors rdquo arxiv2012

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 60: MIRU2014 tutorial deeplearning

パラメータによる性能比較

60

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 61: MIRU2014 tutorial deeplearning

学習に関係するパラメータ

学習するために決めること(ネットワークの構成)

畳み込むカーネルサイズと数Activation function の種類  sigmoid maxout ReLUPooling の方法とサイズ   max average L2 etcMaxout のサイズ畳み込み層の数Fully connection のユニット数Fully connection 層の数Dropout の割合

61

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 62: MIRU2014 tutorial deeplearning

学習に関係するパラメータ

学習するために決めること(学習のパラメータ)

mini batch のサイズ更新回数学習率Auto encoder の有無

62

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 63: MIRU2014 tutorial deeplearning

CIFAR10 での性能比較

データセットについてクラス数10

airplane automobile bird cat deer dog frog horse ship truck

学習データ50000枚評価データ10000枚

63data augmentation なし約 85

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 64: MIRU2014 tutorial deeplearning

ベースとなるネットワークの構成

64

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 65: MIRU2014 tutorial deeplearning

比較内容

65

入力画像

32 x32

Convolution layer

Norm

alize layer

Poo

ling layer

Convolution layer

Norm

alize layer

Poo

ling layer

Classification layer

Convolution layer

Norm

alize layer

Poo

ling layer

3層の Convolutional layer と 1 層の Classification layer

カーネルのサイズと数活性化関数の種類

Normalize layer の有無

Pooling の種類

fully connection layer の数

前処理の有無その他 dropout の有無バッチサイズ学習率

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 66: MIRU2014 tutorial deeplearning

CIFAR10 での性能比較(1)

ネットワークの構成

繰り返し回数

エラー率

0

02

04

06

08

1

Conv3Full0

Conv3Full1

Conv3Full2

Conv3Full3

66

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 67: MIRU2014 tutorial deeplearning

CIFAR10 での性能比較(2)

前処理の有無

0

02

04

06

08

1GCN+ZCAZCA

なし

繰り返し回数

エラー率

67

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 68: MIRU2014 tutorial deeplearning

Convolution layer のフィルタ

original image ZCA image GCN + ZCA image68

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 69: MIRU2014 tutorial deeplearning

CIFAR10 での性能比較(3)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

1

3x3x2

5x5x4

3x4x5

7x6x4

69

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 70: MIRU2014 tutorial deeplearning

CIFAR10 での性能比較(4)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x4x48x8x816x16x1632x32x3264x64x64128x128x128256x256x256

70

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 71: MIRU2014 tutorial deeplearning

CIFAR10 での性能比較(5)

Convolutional Layerカーネルのサイズによる性能比較カーネル数による性能比較

繰り返し回数

エラー率

0

02

04

06

08

14x8x168x16x3216x32x6432x64x12864x128x256128x256x512256x512x1024256x256x256

71

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 72: MIRU2014 tutorial deeplearning

フィルタの可視化

1層目の Convolutional layer の変化

72

更新回数 0〜 7000 回( 1000 回間隔 )カーネル数128カーネルサイズ5 x5

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 73: MIRU2014 tutorial deeplearning

CIFAR10 での性能比較(6)

Activation Function

0

02

04

06

08

1

maxout

sigmoid

ReLU

Tanh

繰り返し回数

エラー率

73

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 74: MIRU2014 tutorial deeplearning

CIFAR10 での性能比較(7)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

dropoutありdropoutなし

繰り返し回数

エラー率

74

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 75: MIRU2014 tutorial deeplearning

CIFAR10 での性能比較(9)

学習の設定Dropout の有無による性能比較Auto Encoder の有無による性能比較学習率による性能比較

0

02

04

06

08

1

01

001

0001

00001

繰り返し回数

エラー率

75

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 76: MIRU2014 tutorial deeplearning

CIFAR10 での性能比較(10)

学習の設定バッチサイズによる性能比較

繰り返し回数

エラー率

76

0

02

04

06

08

1

batch size 5

batch size 10

batch size 20

batch size 25

batch size 50

batch size 100

batch size 125

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 77: MIRU2014 tutorial deeplearning

CIFAR10 での性能比較(11)

Normalize Layer の有無

0

02

04

06

08

1

正規化あり

繰り返し回数

エラー率

77

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 78: MIRU2014 tutorial deeplearning

CIFAR10 でのパラメータ

項目 結果

層の構成 3 層の convolution + 1 層のclassification

入力画像の前処理 GCN+ZCA

convolution layer のカーネル数とサイズ

128x256x512 5x5+5x5+4x4

Activation function maxout ( ReLu も良い )

full connection 層の数 なくても良い

dropout の有無 ありの方がよい

Normalize layer の有無 ありの方がよい

学習率 0001 が一番良い

バッチサイズ 10程度(大きすぎると時間がかかる)

78

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 79: MIRU2014 tutorial deeplearning

学習時間について

CPU VS GPU( 1回の更新にかかる時間)

Layer CPU(Core2 26GHz)

GPU(GeForce GT690)

比率

畳み込み層  カーネル1

273ms 116ms 235倍

畳み込み層  カーネル20

4515ms 292ms 1546倍

全結合層 ノード数100

486ms 148ms 3284倍

学習率  Pre training 05  Fine tuning 001Mini-batch 10

79

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 80: MIRU2014 tutorial deeplearning

リソースサイズについて

Layer の種類 リソースサイズ

畳み込み層  カーネルサイズ5 x5 カーネル数 1

01KB

畳み込み層カーネルサイズ5 x5カーネル数 32

4KB

全結合層 ノード数 100 ( パラメータ数約87000)

035MB

2値化層 ノード数 1600( パラメータ数約410000)

16MB

入力画像サイズ 40x40 ピクセルの場合

80

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 81: MIRU2014 tutorial deeplearning

今から始めるためのツール     知っておきたいこと

81

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 82: MIRU2014 tutorial deeplearning

チュートリアルページ

httpdeeplearningnettutorialintrohtml

82

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 83: MIRU2014 tutorial deeplearning

CNN を使いこなすための環境

Theano ライブラリが有名  (python)偏微分等の数値演算実装が容易

httpdeeplearningnetsoftwaretheano

83

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 84: MIRU2014 tutorial deeplearning

cuda-convnet

httpscodegooglecompcuda-convnet

Krizhevsky らのコード

84

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 85: MIRU2014 tutorial deeplearning

Caffe

Caffe畳み込みニューラルネットワークの公開実装コード

httpsgithubcomUCB-ICSI-Vision-Groupdecaf-release

UC バークレーの研究グループ (T Darrell)

学習済みのネットワークも公開 これをベースにベンチマークサイト(Kaggle) でトップになっているチームもあり

85

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 86: MIRU2014 tutorial deeplearning

OverFeat

OverFeat畳み込みニューラルネットワークの公開実装コード (CC++)ImageNet で学習済み

httpcilvrnyuedudokuphpid=softwareoverfeatstart

LeCun RFagus のグループ

86

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 87: MIRU2014 tutorial deeplearning

Deep Learning のツール

ツール 環境 できること

Cuda Conv-net python c++ CNN の学習評価GPU による高速化

Caffe c++ CNN の学習評価GPU による高速化

OverFeat python cc++ CNN の学習評価GPU による高速化

Torch7 lua( スクリプト言語 ) 機械学習ライブラリCNNRBM の学習評価GPU による高速化

Pylearn2 python 機械学習ライブラリCNNRBM の学習評価GPU による高速化

87

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 88: MIRU2014 tutorial deeplearning

ベンチマークテストでの性能(1)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 88

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 89: MIRU2014 tutorial deeplearning

ベンチマークテストでの性能(2)

httprodrigobgithubioare_we_there_yetbuildclassification_datasets_resultshtml 89

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 90: MIRU2014 tutorial deeplearning

ベンチマークテストでの性能(3)

Large Scale Visual Recognition Challenge 2012 (ILSVRC2012)

httpwwwimage-netorgchallengesLSVRC2012resultshtmlt1 90

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 91: MIRU2014 tutorial deeplearning

ベンチマークテストでの性能(4)

Caltech Pedestrian Detection

httpwwwvisioncaltecheduImage_DatasetsCaltechPedestrians91

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 92: MIRU2014 tutorial deeplearning

Kaggle Dog vs Cat

bull PSermanet が優勝Image net で学習した OverFeat をベースにベンチマークのデータセットでネットワークを更新2 位は Decaf(Caffe) の UC Berkley チーム

httpfastlykagglenetcdogs-vs-cats

データセット例92

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 93: MIRU2014 tutorial deeplearning

研究事例紹介

93

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 94: MIRU2014 tutorial deeplearning

CVPR2014

Program

94

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 95: MIRU2014 tutorial deeplearning

物体検出

最近のトレンドCNN を特徴量の生成として使用Image net で学習したネットワークを活用

R Girshick J Donahue T Darrell J Malik ldquoRich feature hierarchies for accurate object detection and semantic segmentationrdquo Conference on Computer Vision and Pattern Recognition pp 580ndash587 2014

Caffe をもとに物体の Localization に応用CNN で抽出した特徴量を SVM でクラス識別Pascal VOC でトップの物体検出

95

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 96: MIRU2014 tutorial deeplearning

物体検出(転移)

学習済みのネットワーク (Image net) を特定のデータセット (Pascal VOC) に転移 rArr限られたデータセットでネットワークを更新  

Oquab Maxime et al Learning and transferring mid-level image representations using convolutional neural networks (2013) 96

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 97: MIRU2014 tutorial deeplearning

人の属性分類

各 poselet の CNN から特徴抽出SVM により各属性の判別を行う

NZhang MPaluri MRanzato TDarrell LBourdev ldquoPANDA Pose Aligned Networks for Deep Attribute Modelingrdquo CVPR2014 97

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 98: MIRU2014 tutorial deeplearning

ビデオの認識

時系列での特徴を抽出するネットワーク

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

ピクセルレベルで複数フレーム の情報を統合局所的な動き方向と速度の 検出が可能

大域的な運動特性を計算可能時間空間の情報をバランス よく使用空間だけではなく時間的に 畳み込むため大域的な情報が 得られる

Single Frame Late Fusion Early Fusion Slow Fusion 2 つの Single Frame を使用

98

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 99: MIRU2014 tutorial deeplearning

ビデオの認識

Slow Fusion network on the first layer

AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014 99

>

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 100: MIRU2014 tutorial deeplearning

ビデオの認識Sports-1M Dataset を公開

100AKarpathy TLeung GToderici RSukthankarSShetty Li Fei-Fei ldquo Large-scale Video Classification with Convolutional Neural Networksrdquo 2014

>

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 101: MIRU2014 tutorial deeplearning

顔照合

2次元3次元での顔のアライメント後 CNN により特徴抽出( 4096次元ベクトル4030人分 440万枚の画像を利用)個人認証はベクトルの距離比較人間の識別能力に限りなく近くなっている

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014101

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 102: MIRU2014 tutorial deeplearning

顔照合

切り出し位置を変えた複数のネットワークから特徴を抽出DeepFace を超える照合精度

Y Taingman M Yang M A Ranzato and L Wolf DeepFace Closing the Gap to Human-Level Performance in Face Verificationrdquo CVPR2014

Method Accuracy() No of points No of images Feature dimensions

DeepFace 9725 6+67 4400000+3000000 4096times4

DeepID on CelebFaces 9605 5 87628 150

DeepID on CelebFaces+ 9720 5 202599 150

DeepID on CelebFaces+ amp TL 9745 5 202599 150

102

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 103: MIRU2014 tutorial deeplearning

Deep Learning の応用先

認識

検出 回帰

セグメンテーション

一般物体認識(LSVRC トップ )

一般物体検出(Pascal VOC トップ )

人検出 (Caltech Pedestrian dataset トップ ) HOG+CSS-SVM での Sliding window 処理あり

顔認識 (照合)(LFW トップ )

シーンラベリング

顔器官検出

人の姿勢推定

人物属性推定手領域抽出

髪領域抽出

顔ラベリング

103

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 104: MIRU2014 tutorial deeplearning

研究紹介(1)

手領域抽出

グレースケールの画像から未知の手の領域を抽出

104山下 綿末 山内 藤吉 ldquoDeep Convolutional Neural Network による手形状領域の抽出rdquo SSII2014

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 105: MIRU2014 tutorial deeplearning

セグメンテーション問題の場合

Classification Layer の代わりに Biarization Layer を利用

x1

x2

x3

xi

y1

y2

Yj

y = σ(wx +b)

activation function には sigmoid を利用

Fully connection layer と同様に全結合入力画像と同じ大きさの出力ノード数

105

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 106: MIRU2014 tutorial deeplearning

Binarized layer の可視化

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 107: MIRU2014 tutorial deeplearning

パラメータの可視化

識別層の重みを可視化

107

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

x1

x2

x3

xi

y1

y2

Yj

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 108: MIRU2014 tutorial deeplearning

その他の研究事例

顔器官検出

108

器官点の位置を推定

シーンラベリング

各画素に 8 つのクラスラベルを付与

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ
Page 109: MIRU2014 tutorial deeplearning

まとめ

Deep Learning の動向畳み込みニューラルネットワークについて紹介

パラメータによる性能の変化について  (この結果は一例データセットにより変わるので注意)

さらなる理解を深めるために  チュートリアルページ等活用できる情報が沢山あります  (が分かりにくいのも多数)

もっと聞きたい方連絡ください  yamashitacschubuacjp

Twitter takayosiy Facebook などでも 109

  • Deep Learning ~使いこなすために知っておきたいこと~
  • Deep Learningについて
  • なぜDeep Learningが注目されてる
  • Deep Learning界隈の状況
  • Deep Learning関連の投稿
  • Deep Learningで何ができる
  • Deep Learningで何ができる (2)
  • Deep Learningで何ができる (3)
  • Deep Learningで何ができる (4)
  • Slide 10
  • Deep Learningで何ができる (5)
  • Deep Learningで何ができる (6)
  • Project Adam
  • Deep Learningの著名な研究者(1)
  • Deep Learningの著名な研究者(2)
  • 何がDeep Learning
  • 何がDeep Learning (2)
  • 何がDeep Learning (3)
  • MLPとRBM
  • DNNとDBN
  • Slide 21
  • Convolutional Neural Networks
  • Slide 23
  • Convolution Layer
  • Convolution Layer (2)
  • Activation Function
  • Maxout
  • Pooling Layer
  • Fully connection layer
  • Classification Layer
  • Slide 31
  • どうやって学習するの
  • 確率的勾配降下法
  • 確率的勾配降下法 (2)
  • mini batch
  • 初期のパラメータはどうする
  • Slide 37
  • 教師なしでの事前学習(1)
  • 教師なしでの事前学習(2)
  • 教師なしでの事前学習(3)
  • Auto encoder
  • Auto encoder (2)
  • Auto encoder (3)
  • Auto encoder (4)
  • Auto encoder (5)
  • Stacked Auto encoder
  • Stacked Auto encoder (2)
  • Slide 48
  • Dropout
  • Dropconnect
  • Dropout vs Dropconnect
  • 学習画像の生成
  • 前処理の重要性
  • 前処理の重要性 (2)
  • 前処理の重要性 (3)
  • 前処理の重要性 (4)
  • Normalize Layer
  • Normalize Layer (2)
  • Normalize Layer (3)
  • Slide 60
  • 学習に関係するパラメータ
  • 学習に関係するパラメータ (2)
  • CIFAR10での性能比較
  • ベースとなるネットワークの構成
  • 比較内容
  • CIFAR10での性能比較(1)
  • CIFAR10での性能比較(2)
  • Convolution layerのフィルタ
  • CIFAR10での性能比較(3)
  • CIFAR10での性能比較(4)
  • CIFAR10での性能比較(5)
  • フィルタの可視化
  • CIFAR10での性能比較(6)
  • CIFAR10での性能比較(7)
  • CIFAR10での性能比較(9)
  • CIFAR10での性能比較(10)
  • CIFAR10での性能比較(11)
  • CIFAR10でのパラメータ
  • 学習時間について
  • リソースサイズについて
  • Slide 81
  • チュートリアルページ
  • CNNを使いこなすための環境
  • cuda-convnet
  • Caffe
  • OverFeat
  • Deep Learningのツール
  • ベンチマークテストでの性能(1)
  • ベンチマークテストでの性能(2)
  • ベンチマークテストでの性能(3)
  • ベンチマークテストでの性能(4)
  • Kaggle Dog vs Cat
  • Slide 93
  • CVPR2014
  • 物体検出
  • 物体検出(転移)
  • 人の属性分類
  • ビデオの認識
  • ビデオの認識 (2)
  • ビデオの認識 (3)
  • 顔照合
  • 顔照合 (2)
  • Deep Learningの応用先
  • 研究紹介(1)
  • セグメンテーション問題の場合
  • Binarized layerの可視化
  • パラメータの可視化
  • その他の研究事例
  • まとめ