miru2014 tutorial deeplearning
DESCRIPTION
Tutorial material of Deep Learning in MIRU2014.TRANSCRIPT
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
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
なぜ 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
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
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
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
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
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
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
最近の状況
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
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
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
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
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
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
何が 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
何が 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
何が 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
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
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
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
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
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
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
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
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
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
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
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
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
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
どうやって学習するの
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
確率的勾配降下法
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
確率的勾配降下法
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
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
初期のパラメータはどうする
すべて乱数できめます
うまく収束しない良いパラメータが得られないことあり
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
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
教師なしでの事前学習(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
教師なしでの事前学習(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
教師なしでの事前学習(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
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
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
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
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
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
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
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
汎化性を向上させるための方法
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
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
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
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
学習画像の生成
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
前処理の重要性
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
前処理の重要性
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
前処理の重要性
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
前処理の重要性
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
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
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
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
パラメータによる性能比較
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
学習に関係するパラメータ
学習するために決めること(ネットワークの構成)
畳み込むカーネルサイズと数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
学習に関係するパラメータ
学習するために決めること(学習のパラメータ)
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
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
ベースとなるネットワークの構成
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
比較内容
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
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
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
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
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
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
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
フィルタの可視化
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
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
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
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
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
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
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
学習時間について
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
リソースサイズについて
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
今から始めるためのツール 知っておきたいこと
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
チュートリアルページ
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
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
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
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
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
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
ベンチマークテストでの性能(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
ベンチマークテストでの性能(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
ベンチマークテストでの性能(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
ベンチマークテストでの性能(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
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
研究事例紹介
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
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
物体検出
最近のトレンド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
物体検出(転移)
学習済みのネットワーク (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
人の属性分類
各 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
ビデオの認識
時系列での特徴を抽出するネットワーク
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
ビデオの認識
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の可視化
- パラメータの可視化
- その他の研究事例
- まとめ
-
顔照合
切り出し位置を変えた複数のネットワークから特徴を抽出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の可視化
- パラメータの可視化
- その他の研究事例
- まとめ
-
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の可視化
- パラメータの可視化
- その他の研究事例
- まとめ
-
研究紹介(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の可視化
- パラメータの可視化
- その他の研究事例
- まとめ
-
セグメンテーション問題の場合
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の可視化
- パラメータの可視化
- その他の研究事例
- まとめ
-
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の可視化
- パラメータの可視化
- その他の研究事例
- まとめ
-
パラメータの可視化
識別層の重みを可視化
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の可視化
- パラメータの可視化
- その他の研究事例
- まとめ
-
その他の研究事例
顔器官検出
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の可視化
- パラメータの可視化
- その他の研究事例
- まとめ
-
まとめ
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の可視化
- パラメータの可視化
- その他の研究事例
- まとめ
-