SlideShare une entreprise Scribd logo
1  sur  397
ディープラーニング基礎講座
山下 隆義
目次
ディープラーニングについて
ニューラルネットワーク
畳み込みニューラルネットワーク
リカレントニューラルネットワーク
生成モデル(オートエンコーダ)
ディープラーニングのツール
2
ディープラーニングの現在(1)
画像認識のベンチマークでトップ
Convolution
Pooling
Softmax
Other
GoogLeNet(2014)
ImageNet Large Scale Visual Recognition Challenge (ILSVRC)
Team year Error	(top-5)
SuperVision 2012 15.3%
Clarifai 2013 11.2%
VGG – Oxford	(16 layers) 2014 7.32%
GoogLeNet	(19	layers) 2014 6.67%
Residual	Net. 2015 3.57%
human expert 5.1% Residual Net(2015)
3
ディープラーニングの現在(2)
2015年:更に深く,更に精度が向上
http://research.microsoft.com/en-us/um/people/kahe/ilsvrc15/ilsvrc2015_deep_residual_learning_kaiminghe.pdf
4
ディープラーニングの現在(3)
画像から文章を生成
http://googleresearch.blogspot.jp/2014/11/a-picture-is-worth-thousand-coherent.html
5
文章から画像へ
http://arxiv.org/pdf/1511.02793v2.pdf
6
ディープラーニングの現在(4)
Deep Q- Network
V. Mnih et al., "Playing atari with deep reinforcement learning”,2014
7
ディープラーニングの現在(5)
高速な一般物体検出
You Only Look Once: Unified, Real-Time Object Detection, 2016
8
ディープラーニングの現在(6)
Convolutional Pose Machine, 2016
高速な姿勢推定
9
ディープラーニングの現在(7)
Fukui, 2016
10
ディープラーニングの現在(8)
V. Badrinarayanan, et.al, , SegNet: A Deep Convolutional Encoder-Decoder Architecture for Robust Semantic
Pixel-Wise Labelling, 2015
11
ディープラーニングの現在(9)
加藤,Heterogeneous Learningと重み付き誤差関数の導入による顔画像解析, 2015
12
ロボットのばら積みピッキング
13
ロボットとディープラーニング
14
ロボット動作の分散学習
15
眼症の早期発見
「緑内障」「糖尿病網膜症」「加齢黄斑変性」の早期
発見(オプティム・佐賀大学)
Google Deep Mindも眼症の早期発見に取り組んでいる
http://www.optim.co.jp/news-detail/21059
16
がんの早期発見
ディープラーニングを活用したがんの早期予測
科学技術振興機構の戦略的創造研究推進事業(CREST)に採択された統合的ながん医療システムの開発プロジェクト
https://www.preferred-networks.jp/ja/news/ncc_crest
17
注目のきっかけ(1)
音声認識・画像認識のベンチマークでトップ
音声認識(2011)
F. Seide, G. Li and D. Yu, “Conversational Speech Transcription Using
Context-Dependent Deep Neural Networks.”, 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で従来性能を大きく上回る
18
注目のきっかけ(2)
“Googleのネコ細胞”(2012)
http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en//archi
ve/unsupervised_icml2012.pdf
YouTubeの映像を学習データとして与えると,
人の顔に反応するニューロン
ネコの顔に反応するニューロン
などを自動的に獲得
1000万枚の学習データ
1000台のPCで3日間学習
19
Deep Learning界隈の動向
Deep Learningの
手法がトップ
Facebook
AI Research設立
LeCunが所長
Googleが
DeepMindを買収
(5億ドル)
PFIがPFN設立
トヨタ・ファナック・パ
ナソニックが出資
Toyotaが米国に研究
所を設立
10億ドル/5年
人の認識精度を上回る
AlphaGoが囲碁世界
チャンピオンに勝利
2012年 2016年
Baiduが1つのネットワーク
で2つの言語を認識
ロボットの動作を学習
2014年
様々な問題へ応用が進む
20
何がDeep Learning??
Deep Learningに関連するキーワード
Restricted
Boltzmann
Machines
Deep Belief
Networks
Deep
Boltzmann
Machines
Convolutional
Neural
Networks
Deep Neural
Networks
Back-
propagation
Contrastive
Divergence
Dropout
Maxout
Maxpooling
Dropconnect
21
何が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
ネットワークの構成 ネットワークの学習方法 汎化性向上の方法
22
何がDeep Learning??
Restricted
Boltzmann
Machines
Deep Belief
Networks
Deep
Boltzmann
Machines
Convolutional
Neural
Networks
Deep Neural
Networks
Perceptron
人工知能モデル
確率モデル
多層化
畳込み層を導入
多層化
多層化
Deep Learning
Dropout
Maxout
Max pooling
Dropconnect
23
PerceptronとRBM
Perceptron Restricted Boltzmann Machine(RBM)
xi
x1
p(xi =1|Y) =σ ( wij yj + ai
j=1
m
∑ )
p(yj =1| X) =σ ( wij xi + bj
i=1
n
∑ )
yi =σ ( wij xj + bj
j=1
m
∑ )
24
DNNとDBN
Deep Neural Networks(DNNs) Deep Belief Networks(DBN)
教師あり学習(Back propagation)
すべてのパラメータを同時に学習
教師なし学習(Contrastive Divergence)
階層ごとにパラメータを学習
+
教師あり学習(Back propagation)
すべてのパラメータを同時に学習パラメータ更新
パラメータ更新
パラメータ学習
入力層入力層
隠れ層
隠れ層
出力層
入力層
出力層
入力層
出力層
出力層
25
目次
ディープラーニングについて
ニューラルネットワーク
畳み込みニューラルネットワーク
リカレントニューラルネットワーク
生成モデル(オートエンコーダ)
ディープラーニングのツール
26
ニューラルネットワークの歴史(1)
1960 1980 2000 201019901970
マカロックとピッツが形式ニューロンを発表
(1943)
ローゼンブラットがパーセプトロンを発表
(1953)
ミンスキーとパパートが単純パーセプトロンは
線形分離不可能なパターンを識別できない事
を示す(1969)
27
ニューラルネットワークの歴史(2)
1960 1980 2000 201019901970
ホップフィールトがホップフィールドモデルを提案
(1986)
ラメルハートらが誤差逆伝播法を提案
(1986)
福島らがネオコグニトロンを提案
(1980)
ルカンらが畳み込みニューラルネットワークを
提案(1998)
28
ニューラルネットワークの歴史(3)
1960 1980 2000 201019901970
様々なベンチマークで圧勝
(2011)
Hinton, BengioらがDeep Neural Networkに
Pre TrainingとAuto Encoderを導入した手法を
提案(2006)
29
第1期のニューラルネットワーク(1)
マカロック−ピッツの素子モデル
最初のニューロンモデル
複数の入力に対して1つの出力を行う素子と見なす
入力:0か1のみ
出力:0か1のみ
wiは結合荷重
hはしきい値
y = f(
nX
i=1
wixi h)
u
y
h
x1
x2
xn
y
w1
w2
wn
30
第1期のニューラルネットワーク(2)
マカロック−ピッツの素子モデル
パラメータはどうやって決める?
⇒ 人があらかじめ決める
当時はまだ抵抗などの素子で構成
自動的にパラメータを決めるには?
⇒ データから学習して決定する
31
第1期のニューラルネットワーク(3)
パーセプトロン
x1とx2のパターンとその教師信号を与えて,
w1とw2およびhの値を学習する
教師あり学習
基本的な考え方
−出力yと教師信号が一致
⇒w1,w2,hの値は変えない
−出力yと教師信号が一致しない
⇒w1,w2,hの値を調整する
誤り訂正学習
x1
x2
y
w1
w2
y = f(
nX
i=1
wixi h)
32
第1期のニューラルネットワーク(4)
パーセプトロン
パラメータの調整方法
2つのケースに分けて考える
1)出力y=0,教師信号1の場合(活性化しなかった)
−hを小さくする
− xi=1である結合荷重wiは大きくする
− xi=0である結合荷重wiは変えない
2)出力y=1,教師信号0の場合(活性化しすぎた)
− hを大きくする
− xi=1である結合荷重wiは小さくする
− xi=0である結合荷重wiは変えない
x1
x2
y
w1
w2
y = f(
nX
i=1
wixi h)
33
第1期のニューラルネットワーク(5)
パーセプトロン
パラメータの調整方法
更新量はあらかじめ決めておく(=α)
rは教師信号
x1
x2
y
w1
w2
y = f(
nX
i=1
wixi h)
h h ↵(r y)
wi wi + ↵(r y)xi
f(u)
0 u
y
uはΣwixi-h
uが0より大きい場合:y =1
それ以外の場合:y=0
1
34
パーセプトロンのトイプロブレム(1)
パーセプトロン
学習データ
入力x1 入力x2 正解r
0 0 0
1 0 0
0 1 0
1 1 1
初期値をそれぞれ w1=1,w2=-1,h=0,α=0.5とする
(初期値は適当に決めている)
学習データを1つずつ与えていき,パラメータを調整する
式
h h ↵(r y)
wi wi + ↵(r y)xi
y = f(
nX
i=1
wixi h)
35
パーセプトロンのトイプロブレム(2)
パーセプトロン
学習データ
入力x1 入力x2 正解r
0 0 0
1 0 0
0 1 0
1 1 1
初期値をそれぞれ w1=1,w2=-1,h=0,α=0.5とすると
式
入力x1 入力x2 出力y
0 0 1 ×
活性化しすぎている学習データから
パラメータを調整
h h ↵(r y)
wi wi + ↵(r y)xi
y = f(
nX
i=1
wixi h)
Σwixi-h は0より多いのでy=1
36
パーセプトロンのトイプロブレム(3)
パーセプトロン
学習データ
入力x1 入力x2 正解r
0 0 0
1 0 0
0 1 0
1 1 1
初期値をそれぞれ w1=1,w2=-1,h=0,α=0.5とすると
式
入力x1 入力x2 出力y
0 0 1 ×
更新式より
w1 = 1 ⇒ 1
w2 = -1 ⇒ -1
h = 0 ⇒ 0.5
h h ↵(r y)
wi wi + ↵(r y)xi
y = f(
nX
i=1
wixi h)
37
パーセプトロンのトイプロブレム(4)
パーセプトロン
学習データ
入力x1 入力x2 正解r
0 0 0
1 0 0
0 1 0
1 1 1
更新されたパラメータ w1=1,w2=-1,h=0.5,α=0.5より
式
入力x1 入力x2 出力y
1 0 1 ×
活性化しすぎている学習データから
再度パラメータを調整
h h ↵(r y)
wi wi + ↵(r y)xi
y = f(
nX
i=1
wixi h)
38
パーセプトロンのトイプロブレム(5)
パーセプトロン
学習データ
入力x1 入力x2 正解r
0 0 0
1 0 0
0 1 0
1 1 1
更新されたパラメータ w1=1,w2=-1,h=0.5,α=0.5より
式
入力x1 入力x2 出力y
1 0 1 ×
更新式より
w1 = 1 ⇒ 0.5
w2 = -1 ⇒ -1
h = 0.5 ⇒ 1
h h ↵(r y)
wi wi + ↵(r y)xi
y = f(
nX
i=1
wixi h)
39
パーセプトロンのトイプロブレム(6)
パーセプトロン
学習データ
入力x1 入力x2 正解r
0 0 0
1 0 0
0 1 0
1 1 1
更新されたパラメータ w1=0.5,w2=-1,h=1,α=0.5より
式
入力x1 入力x2 出力y
0 1 0 ○
正解なのでパラメータの調整なし
h h ↵(r y)
wi wi + ↵(r y)xi
y = f(
nX
i=1
wixi h)
40
パーセプトロンのトイプロブレム(7)
パーセプトロン
学習データ
入力x1 入力x2 正解r
0 0 0
1 0 0
0 1 0
1 1 1
更新されたパラメータ w1=0.5,w2=-1,h=1,α=0.5より
式
入力x1 入力x2 出力y
1 1 0 ×
活性化していないので学習データから
再度パラメータを調整
h h ↵(r y)
wi wi + ↵(r y)xi
y = f(
nX
i=1
wixi h)
41
パーセプトロンのトイプロブレム(8)
パーセプトロン
学習データ
入力x1 入力x2 正解r
0 0 0
1 0 0
0 1 0
1 1 1
更新されたパラメータ w1=0.5,w2=-1,h=1,α=0.5より
式
入力x1 入力x2 出力y
1 1 0 ×
更新式より
w1 = 0.5 ⇒ 1
w2 = -1 ⇒ -0.5
h = 1 ⇒ 0.5
h h ↵(r y)
wi wi + ↵(r y)xi
y = f(
nX
i=1
wixi h)
42
パーセプトロンのトイプロブレム(9)
パーセプトロン
学習データ
入力x1 入力x2 正解r
0 0 0
1 0 0
0 1 0
1 1 1
更新されたパラメータ w1=1,w2=-0.5,h=0.5,α=0.5より
式
入力x1 入力x2 出力y
0 0 0 ○
再度最初の学習データを用いて調整する
h h ↵(r y)
wi wi + ↵(r y)xi
y = f(
nX
i=1
wixi h)
正解なのでパラメータの調整なし
43
パーセプトロンのトイプロブレム(10)
パーセプトロン
学習データ
パラメータ w1=1,w2=-0.5,h=0.5,α=0.5より
式
×
2サイクル目
入力x1 入力x2 正解r
0 0 0
1 0 0
0 1 0
1 1 1
入力x1 入力x2 出力y
1 0 1
更新式より
w1 = 1 ⇒ 0.5
w2 = -0.5 ⇒ -0.5
h = 0.5 ⇒ 1
h h ↵(r y)
wi wi + ↵(r y)xi
y = f(
nX
i=1
wixi h)
44
パーセプトロンのトイプロブレム(11)
パーセプトロン
学習データ
入力x1 入力x2 正解r
0 0 0
1 0 0
0 1 0
1 1 1
更新されたパラメータ w1=0.5,w2=-0.5,h=1,α=0.5より
式
入力x1 入力x2 出力y
0 1 0 ○
正解なのでパラメータの調整なし
2サイクル目
h h ↵(r y)
wi wi + ↵(r y)xi
y = f(
nX
i=1
wixi h)
45
パーセプトロンのトイプロブレム(12)
パーセプトロン
学習データ
入力x1 入力x2 正解
0 0 0
1 0 0
0 1 0
1 1 1
更新されたパラメータ w1=0.5,w2=-0.5,h=1,α=0.5より
式
入力x1 入力x2 出力
1 1 0 ×
更新式より
w1 = 0.5 ⇒ 1
w2 = -0.5 ⇒ 0
h = 1 ⇒ 0.5
2サイクル目
h h ↵(r y)
wi wi + ↵(r y)xi
y = f(
nX
i=1
wixi h)
46
パーセプトロンのトイプロブレム(13)
パーセプトロン
学習データ
入力x1 入力x2 正解
0 0 0
1 0 0
0 1 0
1 1 1
更新されたパラメータ w1=1,w2=0,h=0.5,α=0.5より
式
入力x1 入力x2 出力
0 0 0 ○
再度最初の学習データを用いる(3サイクル目)
h h ↵(r y)
wi wi + ↵(r y)xi
y = f(
nX
i=1
wixi h)
正解なのでパラメータの調整なし
47
パーセプトロンのトイプロブレム(14)
パーセプトロン
学習データ
パラメータ w1=1,w2=0,h=0.5,α=0.5より
式
×
3サイクル目
入力x1 入力x2 正解
0 0 0
1 0 0
0 1 0
1 1 1
入力x1 入力x2 出力
1 0 1
更新式より
w1 = 1 ⇒ 0.5
w2 = 0 ⇒ 0
h = 0.5 ⇒ 1
h h ↵(r y)
wi wi + ↵(r y)xi
y = f(
nX
i=1
wixi h)
48
パーセプトロンのトイプロブレム(15)
パーセプトロン
学習データ
入力x1 入力x2 正解
0 0 0
1 0 0
0 1 0
1 1 1
更新されたパラメータ w1=0.5,w2=0,h=1,α=0.5より
式
入力x1 入力x2 出力
0 1 0 ○
3サイクル目
h h ↵(r y)
wi wi + ↵(r y)xi
y = f(
nX
i=1
wixi h)
正解なのでパラメータの調整なし
49
パーセプトロンのトイプロブレム(16)
パーセプトロン
学習データ
入力x1 入力x2 正解
0 0 0
1 0 0
0 1 0
1 1 1
更新されたパラメータ w1=0.5,w2=0,h=1,α=0.5より
式
入力x1 入力x2 出力
1 1 0 ×
更新式より
w1 = 0.5 ⇒ 1
w2 = 0 ⇒ 0.5
h = 1 ⇒ 0.5
3サイクル目
h h ↵(r y)
wi wi + ↵(r y)xi
y = f(
nX
i=1
wixi h)
50
パーセプトロンのトイプロブレム(17)
パーセプトロン
学習データ
入力x1 入力x2 正解
0 0 0
1 0 0
0 1 0
1 1 1
パラメータ w1=1,w2=0.5,h=0.5
入力x1 入力x2 出力
0 0 0 ○
4サイクル目
パラメータ w1=1,w2=0.5,h=0.5
入力x1 入力x2 出力
1 0 1 ×
パラメータ w1=0.5,w2=0.5,h=0.5
入力x1 入力x2 出力
0 1 0 ○
パラメータ w1=0.5,w2=0.5,h=0.5
入力x1 入力x2 出力
1 1 1 ○
51
パーセプトロンのトイプロブレム(18)
パーセプトロン
学習データ
入力x1 入力x2 正解
0 0 0
1 0 0
0 1 0
1 1 1
入力x1 入力x2 出力
0 0 0 ○
5サイクル目
入力x1 入力x2 出力
1 0 0 ○
パラメータ w1=0.5,w2=0.5,h=1
入力x1 入力x2 出力
0 1 0 ○
パラメータ w1=0.5,w2=0.5,h=1
入力x1 入力x2 出力
1 1 1 ○
パラメータ w1=0.5,w2=0.5,h=1
パラメータ w1=0.5,w2=0.5,h=1
52
パーセプトロンの限界(1)
線形分離可能な場合
トイプロブレムの例を図で表すと
1つの正例 (x1=1,x2=1の場合)と
それ以外のパターンを分ける問題
x1
x2
線形分離可能な問題であれば1つのパーセプトロンだけで解くことができる
53
パーセプトロンの限界(2)
線形分離不可能な場合
2つの正例と2つの負例を分けるパラメータは得ることができない
線形分離不可能な問題は解くことができない
x1
x2
解決策として・・・
複数のパーセプトロンを利用
(1つ1つが線形分離可能な問題を解く)
54
複数パーセプトロンの構成
階層的な構造により構成
x1
x2
各パーセプトロンが1つの線形分離可能な問題を解く
その結果を統合して最終的な結果を得る
⇒ どうやってパラメータを決定するか?
入力
出力
中間値
ニューラルネットワーク
55
初期のニューラルネットワーク(1)
パラメータの決定方法
入力ー中間層のパラメータは固定
中間層ー出力層のパラメータのみ調整する
x1
x2
xn
n11
n12
n1p
n21
n22
n2q
Z1
Z2
Zp
y1
y2
yq
56
初期のニューラルネットワーク(2)
パラメータの決定方法
中間層ー出力層の各パーセプトロンは,
結合荷重:w2ki (中間層のi番目から出力層のk番目)
しきい値:h2k (出力層のk番目)
更新式は,
h2k h2k ↵(rk yk)x1
x2
xn
n11
n12
n1p
n21
n22
n2q
Z1
Z2
Zp
y1
y2
yq
w2ki w2ki ↵(rk yk)zi
57
初期のニューラルネットワーク(3)
線形分離可能か?
出力y1は活性化し,それ以外の出力yは活性化しないような
入力Zを得ることが必要
入力xは中間値zに変換される
入力Xi≠Xjが中間値Zi=Zjとなることもある
−十分なパーセプトロンが中間層に必要
−入力層−中間層の変換も学習により決める必要あり
x1
x2
xn
n11
n12
n1p
n21
n22
n2q
Z1
Z2
Zp
y1
y2
yq
58
初期のニューラルネットワーク(4)
線形分離可能か?
出力y1は活性化し,それ以外の出力yは活性化しないような
入力Zを得ることが必要
入力xは中間値zに変換される
入力Xi≠Xjが中間値Zi=Zjとなることもある
−十分なパーセプトロンが中間層に必要
−入力層−中間層の変換も学習により決める必要あり
線形分離不可能な場合の構成に行き詰まり,下火に・・・
x1
x2
xn
n11
n12
n1p
n21
n22
n2q
Z1
Z2
Zp
y1
y2
yq
59
第2期のニューラルネットワーク(1)
どのようにパラメータを学習するか?
出力yと教師信号との誤差を伝搬できればパラメータの更新が可能
誤差逆伝播法
(バックプロパゲーション)
x1
x2
xn
n11
n12
n1p
n21
n22
n2q
Z1
Z2
Zp
y1
y2
yq
60
第2期のニューラルネットワーク(2)
誤差を伝播させるためには?
出力yと教師信号との誤差を微分可能にする必要あり
マカロック・ピッツモデル
ステップ関数⇒微分不可能
シグモイド関数⇒微分可能
x1
x2
xn
n11
n12
n1p
n21
n22
n2q
Z1
Z2
Zp
y1
y2
yq
61
誤差逆伝播法(1)
シグモイド関数によるパーセプトロン
シグモイド関数
パーセプトロンのもつ値
誤差の算出
f(u) =
1
1 + e u
x1
x2
xn
y
w1
w2
wn
u =
nX
i=1
wixi
E =
1
2
(r y)2
62
誤差逆伝播法(2)
勾配を求める
誤差をwiで微分する
誤差をwiで微分する
x1
x2
xn
y
w1
w2
wn
@E
@wi
@E
@wi
=
@E
@y
@y
@wi
@E
@wi
= (r y)
@y
@wi
= (r y)
@f(u)
@wi
@E
@wi
= (r y)
df(u)
du
@u
@wi
63
誤差逆伝播法(3)
勾配を求める
パーセプトロンの式を微分すると
上を下記式に代入すると
後はf(u)の微分のみ
x1
x2
xn
y
w1
w2
wn
@u
@wi
= xi
u =
nX
i=1
wixi
@E
@wi
= (r y)
df(u)
du
@u
@wi
@E
@wi
= (r y)xi
df(u)
du
64
誤差逆伝播法(4)
シグモイド関数の微分
シグモイド関数
微分すると
f(u) =
1
1 + e u
シグモイド関数の微分はシグモイド関数自身で表すことが出来る
df(u)
du
= f(u)(1 f(u))
x1
x2
xn
y
w1
w2
wn
65
誤差逆伝播法(5)
誤差の計算
誤差の微分
シグモイド関数の微分
df(u)
du
= f(u)(1 f(u))
代入すると
y = f(u) として,
x1
x2
xn
y
w1
w2
wn
@E
@wi
= (r y)xi
df(u)
du
@E
@wi
= (r y)xif(u)(1 f(u))
@E
@wi
= (r y)y(1 y)xi
66
誤差逆伝播法(6)
誤差の計算
誤差の微分からwiの変化量を求める
wiの変化分をΔwiとして
1つのパーセプトロンの結合荷重の更新量は
x1
x2
xn
y
w1
w2
wn
wi = ⌘
@E
@wi
@E
@wi
= (r y)y(1 y)xi
wi = ⌘(r y)y(1 y)xi
67
誤差逆伝播法(7)
複数のパーセプトロンへの対応
誤差の算出
E =
qX
j=1
(rj yj)2
Eの微分は
x1
x2
xn
n1
n2
nq
Z1
Z2
Zp
y1
y2
yq
@E
@wji
=
@E
@yj
@yj
@wji
@E
@wji
= (rj yj)
@yj
@wji
= (rj yj)
@yj
@uj
@uj
@wji
68
誤差逆伝播法(8)
複数のパーセプトロンへの対応
Eの微分の式について
下記の式を元に
@yj
@uj
= yj(1 yj)
@uj
@wji
= xi
@E
@wji
= (rj yj)
@yj
@uj
@uj
@wji
@E
@wji
= (rj yj)yj(1 yj)xi
x1
x2
xn
n1
n2
nq
Z1
Z2
Zp
y1
y2
yq
69
誤差逆伝播法(9)
複数のパーセプトロンへの対応
wiの更新量は
wji = ⌘
@E
@wji
@E
@wji
= (rj yj)yj(1 yj)xi
wji = ⌘(rj yj)yj(1 yj)xi
x1
x2
xn
n1
n2
nq
Z1
Z2
Zp
y1
y2
yq
70
誤差逆伝播法(10)
中間層をもつネットワークへの対応(1つの出力)
中間層−出力層間の結合荷重w2iの更新量は
@E
@w2j1
=
@E
@y
@y
@u21
@u21
@w2j1
x1
x2
xn
n1
1
n1
2
n1
p
n2
1
Z1
Z2
Zp
y1
@E
@w2j1
= (r y)y(1 y)zj
w2j1 = ⌘(r y)y(1 y)zj
71
誤差逆伝播法(11)
中間層をもつネットワークへの対応(1つの出力)
入力層−中間層間の結合荷重w1iの更新量は
結合荷重w1ijは中間層nijのzjにのみ影響を与える
@E
@w1ij
=
@E
@y
@y
@u21
@u21
@w1ij
@u21
@w1ij
=
@u21
@zj
@zj
@w1ij
x1
x2
xn
n1
1
n1
2
n1
p
n2
1
Z1
Z2
Zp
y1
@E
@w1ij
= (r y)y(1 y)
@u21
@w1ij
72
誤差逆伝播法(12)
中間層をもつネットワークへの対応(1つの出力)
中間層nijのzjに対する結合荷重w1ijによる微分は
入力層ー中間層間の微分
@zj
@u1j
= zj(1 zj)
結合荷重
@u21
@w1ij
=
@u21
@zj
@zj
@w1ij
w2j1
@zj
@w1ij
=
@zj
@u1j
@u1j
@w1ij
@zj
@w1ij
= zj(1 zj)xi
x1
x2
xn
n1
1
n1
2
n1
p
n2
1
Z1
Z2
Zp
y1
@u1j
@w1ij
= xi
73
誤差逆伝播法(13)
中間層をもつネットワークへの対応(1つの出力)
入力層ー中間層間の微分
更新量は
@u21
@w1ij
=
@u21
@zj
@zj
@w1ij
x1
x2
xn
n1
1
n1
2
n1
p
n2
1
Z1
Z2
Zp
y1
= w2j1zj(1 zj)xi
@E
@w1ij
= (r y)y(1 y)
@u21
@w1ij
= (r y)y(1 y)w2j1zj(1 zj)xi
w1ij = ⌘(r y)y(1 y)w2j1zj(1 zj)xi
74
誤差逆伝播法(14)
中間層をもつネットワークへの対応(1つの出力)
伝搬される更新量は
中間層−出力層間
入力層−中間層層間
この項は共通
出力層での計算結果の一部を伝播している
x1
x2
xn
n1
1
n1
2
n1
p
n2
1
Z1
Z2
Zp
y1
w2j1 = ⌘(r y)y(1 y)zj
w1ij = ⌘(r y)y(1 y)w2j1zj(1 zj)xi
75
誤差逆伝播法(15)
中間層をもつネットワークへの対応(複数の出力)
誤差Eは
E =
qX
k=1
(rk yk)2
入力層:n個 xi
中間層:p個 n1j
出力層:q個 n2k
結合荷重w2jkの更新量は
yk(1 yk) zj
@E
@w2jk
=
@E
@yk
@yk
@u2k
@u2k
@w2jk
x1
x2
xn
n11
n12
n1p
n21
n22
n2q
Z1
Z2
Zp
y1
y2
yq
(rk yk)
@E
@w2jk
= (rk yk)yk(1 yk)zj
w2jk = ⌘(rk yk)yk(1 yk)zj
76
誤差逆伝播法(16)
中間層をもつネットワークへの対応(複数の出力)
入力層-中間層間の結合荷重w1ijの更新量は
入力層:n個 xi
中間層:p個 n1j
出力層:q個 n2k
結合荷重w1ijは中間層nijのzjにのみ影響を与える
結合荷重
= zj(1 zj)xi
@E
@w1ij
=
qX
k=1
[
@E
@yk
@yk
@u2k
@u2k
@w1ij
]
@u2k
@w1ij
=
@u2k
@zj
@zj
@w1ij
w2jk
@zj
@w1ij
=
@zj
@u1j
@u1j
@w1ij
x1
x2
xn
n11
n12
n1p
n21
n22
n2q
Z1
Z2
Zp
y1
y2
yq
=
qX
k=1
[(rk yk)yk(1 yk)
@u2k
@w1ij
]
77
誤差逆伝播法(17)
中間層をもつネットワークへの対応(複数の出力)
入力層-中間層間の結合荷重w1ijの更新量は
入力層:n個 xi
中間層:p個 n1j
出力層:q個 n2k
@E
@w1ij
=
qX
k=1
[
@E
@yk
@yk
@u2k
@u2k
@w1ij
]
x1
x2
xn
n11
n12
n1p
n21
n22
n2q
Z1
Z2
Zp
y1
y2
yq
=
qX
k=1
[(rk yk)yk(1 yk)
@u2k
@w1ij
]
@E
@w1ij
=
qX
k=1
[(rk yk)yk(1 yk)w2jk]zj(1 zj)xi
w1ij = ⌘
qX
k=1
[(rk yk)yk(1 yk)w2jk]zj(1 zj)xi
78
誤差逆伝播法(18)
中間層をもつネットワークへの対応(複数の出力)
更新式の関係
入力層:n個 xi
中間層:p個 n1j
出力層:q個 n2k
とすると
= 1jxi
w2jk = 2kzj
w1ij =
qX
k=1
[ 2kw2jk]zj(1 zj)xi
x1
x2
xn
n11
n12
n1p
n21
n22
n2q
Z1
Z2
Zp
y1
y2
yq
w2jk = ⌘(rk yk)yk(1 yk)zj
w1ij = ⌘
qX
k=1
[(rk yk)yk(1 yk)w2jk]zj(1 zj)xi
2k = ⌘(rk yk)yk(1 yk)
79
誤差逆伝播法(19)
更新式について
シグモイド関数による更新量
ステップ関数による更新量
wi = ↵(r y)xi
wi = ⌘(r y)y(1 y)xi
80
誤差逆伝播法(20)
更新式について
シグモイド関数による更新量
の項によりy(1 y)
yが0に近いと,Δwiが0に近づく
yが1に近くても,Δwiが0に近づく
uが0よりもかなり小さい場合
uが0よりもかなり大きい場合
Δwiが0に近くなる
勾配(=更新量)がサチる
wi = ⌘(r y)y(1 y)xi
81
@E
@w1ij
= (r y)y(1 y)w2j1zj(1 zj)xi
@E
@w2j1
= (r y)y(1 y)zj
誤差逆伝播法 ーまとめー
x1
x2
xn
y1
入力層 中間層 出力層
z1
z2
zm
w1ij
w2j1
@E
@w2j1
=
@E
@y
@y
@u21
@u21
@w2j1
誤差関数の微分
シグモイド関数の微分
中間層の値
@E
@w1ij
=
@E
@y
@y
@u21
@u21
@w1ij
@u21
@w1ij
=
@u21
@zj
@zj
@w1ij
@zj
@w1ij
=
@zj
@u1j
@u1j
@w1ij
誤差関数の微分
シグモイド関数の微分
重み付き和
中間ー出力層間
シグモイド関数の微分
入力値
入力ー中間層間
82
@E
@w2j1
= (rk yk)y(1 yk)zj
誤差逆伝播法 ーまとめー
x1
x2
xn
y1
入力層 中間層 出力層
z1
z2
zm
w1ij
w2jk
誤差関数の微分
シグモイド関数の微分
中間層の値
誤差関数の微分
シグモイド関数の微分
重み
中間ー出力層間
シグモイド関数の微分 入力値
入力ー中間層間
@E
@w1ij
=
qX
k=1
[
@E
@yk
@yk
@u2k
@u2k
@w1ij
]
@E
@w2jk
=
@E
@yk
@yk
@u2k
@u2k
@w2jk
@zj
@w1ij
=
@zj
@u1j
@u1j
@w1ij
@u2k
@w1ij
=
@u2k
@zj
@zj
@w1ij
yk
= 2
qX
k=1
[(rk yk)yk(1 yk)
@u2k
@w1ij
]
@E
@w1ij
= 2
qX
k=1
[(rk yk)yk(1 yk)w2jk]zj(1 zj)xi
83
誤差関数(1)
E =
qX
k=1
(rk yk)2
E =
NX
n=1
{rn ln yn + (1 rn) ln(1 yn)}
E =
NX
n=1
CX
c=1
rcn ln ycn
2クラス問題の場合
多クラス問題の場合
二乗誤差
クロスエントロピー誤差
84
誤差の更新方法(1)
すべての学習サンプルを一度に用いて誤差を求める
E =
NX
n=1
qX
k=1
(rnk ynk)2
誤差から重みを更新する
wi(t) wi(t+1)
E(t) @E(t)
@wi
学習サンプルが増えると計算量が
増加する
wi(t + 1) = wi(t) ⌘
@E(t)
@wi
最急降下法
85
誤差の更新方法(2)
1つの学習サンプルを一度に用いて誤差を求める
誤差から重みを更新する
wi(t) wi(t+1)
E(t) @E(t)
@wi
E =
qX
k=1
(rk yk)2
学習サンプル数が大量に増えても
計算量は変化しない
1つのサンプルの誤差で大きく更新される
wi(t + 1) = wi(t) ⌘
@E(t)
@wi
確率的勾配降下法(オンライン)
86
誤差の更新方法(3)
少量の学習サンプルを一度に用いて誤差を求める
誤差から重みを更新する
wi(t) wi(t+1)
E(t) @E(t)
@wi
最急降下法と確率的勾配降下法(オンライ
ン)のデメリットを補う
−計算量は変化しない
−誤差を総和するため大きく変化しにくい
E =
NX
n=1
qX
k=1
(rnk ynk)2
wi(t + 1) = wi(t) ⌘
@E(t)
@wi
確率的勾配降下法(ミニバッチ)
87
最適化方法
最適化とは?
予測結果と正解との誤差からパラメータを更新すること
更新の仕方により,最適な解が変わる
確率的勾配降下法(SGD)
Adagrad
Adadelta
RMSProp
Adam
Eve
など
88
確率的勾配降下法
勾配降下法
すべてのサンプルを利用して誤差を求めて更新する
確率的勾配降下法
1つのサンプルの誤差を求めて更新する
ミニバッチ勾配降下法
n個のサンプルを利用して誤差を求めて更新する
89
確率的勾配降下法の問題点
勾配の変化
勾配が大きくブレると収束しにくい
=> 慣性項をいれよう!
学習率の設定
1回の更新でパラメータをどの程度更新したらよいか?
学習過程で学習率をどの程度変えるとよいか?
=>学習率を自動で決めるようにしよう!
90
慣性項(モーメンタム)
ブレを低減するために,過去の更新量を考慮する
wt+1
wt
⌘
@E(wt
)
@wt
+ ↵ wt
α:慣性項のパラメータ
前回の更新量をα倍して加算
パラメータの更新をより慣性的なものにする
η:今回の更新量の学習率
ハイパーパラメータが 2つになり,設定が難しくなる
91
Adagrad
学習係数を自動で調整する
h0 = ✏
⌘t =
⌘0
p
ht
wt+1
wt
⌘t
@E(wt
)
@wt
ht = ht 1 +
@E(wt
)
@wt
2
ε:初期値(小さい値,10-8など)
ht:過去の更新量の2乗を累積
η0:学習率の初期値(0.001など)
ηt:学習率
過去の勾配情報を考慮して学習率を決める
学習率ηtは徐々に小さくなる
J. Duchi, E. Hazan, Y.Singer, Adaptive Subgradient Methods for Online Learning and Stochastic Optimization,
JMLR, Vol.12, pp.2121−2159, 2011.
92
RMSProp
Adagradを改良した手法
h0 = ✏
wt+1
wt
⌘t
@E(wt
)
@wt
ε:初期値(小さい値,10-8など)
ht:過去の更新量の2乗を累積
η0:学習率の初期値(0.001など)
ηt:学習率,徐々に小さくなる
α:過去を考慮する値(0.99など)
ht = ↵ht 1 + (1 ↵)
@E(wt
)
@wt
2
⌘t =
⌘0
p
ht + ✏
αにより過去の勾配の影響を抑える
今回のhtを優先して反映させる
直近の勾配情報を優先して学習率を決める
A. Graves, Generating Sequences With Recurrent Neural Networks, arXiv:1308.0850, 2013
93
Adadelta
学習係数ηを用いない手法
st+1 = ⇢st + (1 ⇢)v2
t
wt+1
= wt
vt
vt =
p
st + ✏
p
ht + ✏
@E(wt
)
@wt
ht = ⇢ht 1 + (1 ⇢)
@E(wt
)
@wt
2
過去の更新量stと勾配htの比から更新率をきめる
初期値:h0=0,s0=0
ρ:減衰率(0.95など)
ht:過去の更新量の2乗を累積
vt:学習率の初期値(0.001など)
st:学習率,徐々に小さくなる
ε:初期値(10-6など)
M. Zeiler, "ADADELTA: an adaptive learning rate method." arXiv arXiv:1212.5701, 2012
94
Adam
モーメンタムとAdagradの長所を組み合わせ
m:1次モーメントに相当
v:2次モーメントに相当
β1:減衰率
β2:減衰率
ˆm =
mt+1
1 t
1
ˆv =
vt+1
1 t
2
wt+1
+ wt
↵
ˆm
p
ˆv + ✏
vt+1 = 2vt + (1 2)
@E(wt
)
@wt
2
mt+1 = 1mt + (1 1)
@E(wt
)
@wt
α=0.001,β1=0.9,β2=0.999,ϵ=10−8
95
最適化の比較
http://sebastianruder.com/optimizing-gradient-descent/index.html
96
目次
ディープラーニングについて
ニューラルネットワーク
畳み込みニューラルネットワーク
リカレントニューラルネットワーク
強化学習
生成モデル(オートエンコーダ)
ディープラーニングのツール
97
畳み込みニューラルネットワーク
初期の研究(今も同じ)
畳み込み、サブサンプリング、全結合の層から構成
手書き文字認識に応用
Y. LeCun, et.al. “Gradient-based Learning Applied to Document Recognition”, Proc. of The IEEE, 1998.
98
畳み込み層(1)
カーネルをスライドさせて画像に畳み込む
近接の画素とのみ結合する(局所受容野)
Convolution
Response
f
Input image Feature map10x10 kernel 3x3 8x8
Activation
function
Convolutions
99
畳み込み層(1)
カーネルをスライドさせて画像に畳み込む
近接の画素とのみ結合する(局所受容野)
Convolution
Response
f
Input image Feature map10x10 kernel 3x3 8x8
Activation
function
Convolutions
100
畳み込み層(1)
カーネルをスライドさせて画像に畳み込む
近接の画素とのみ結合する(局所受容野)
Convolution
Response
f
Input image Feature map10x10 kernel 3x3 8x8
Activation
function
Convolutions
101
畳み込み層(2)
画像全体にフィルタを畳み込む
-1 0 1
-2 0 2
-1 0 1
例えば
ソーベルフィルタ Convolution Layerのフィルタは,
学習により獲得
102
畳み込み層(3)
カーネルをスライドさせて画像に畳み込む
近接の画素とのみ結合する(局所受容野)
カーネルは複数でも良い
Activation
functionInput image Feature map10x10 8x8
Convolution
Response
kernel 3x3
f
f
f
Convolutions
103
畳み込み層(4)
入力が複数チャンネル(カラー画像など)の場合
*
各チャンネルにフィルタを畳み込む
Red
Green
Blue
104
活性化関数
シグモイド関数 Rectified Linear Unit(ReLU) Leaky ReLU
古くから使われている
サチると勾配が消滅
画像認識でよく使われる
学習が速く、勾配がサチる
ことがない
f (xi ) = max(xj,0)f (xi ) =
1
1+e
−xj
Convolutions
f(x) = max(↵x, x) (0 < ↵ < 1)
f(xi) = max(↵xi, xi)
ReLUを改良した活性化関
数
負の値を出力
105
プーリング層
Feature mapのサイズを縮小させる
Max	pooling
2x2の領域
での最大値
Average	pooling
2x2の領域
での平均値
Sampling
89 56 65 18 24 9
121 77 43 22 32 18
181 56 42 35 45 19
210 166 101 67 79 56
121 65 32
210 101 79
89 56 65 18 24 9
121 77 43 22 32 18
181 56 42 35 45 19
210 166 101 67 79 56
86 37 21
153 61 50
106
hj = f(
nX
i=1
wijxi + bj)
全結合層
全結合型の構成
x1
x2
x3
xi
h1
h2
hj
各ノードとの結合重み
例えば、
は
を算出し、 activation functionに与えて値を得る
Full
connection
w11
w12
w21
w1j
w22w31
w32
w3 j
wij
wi2
wi1
107
出力層
出力ノード数=認識するクラス数
Softmaxを利用するのが一般的
P(y1)
P(y2)
P(yM)
各クラスの確率を算出して、
最大値を認識クラスとする
x1
x2
x3
xi
h1
h2
hM
前層
出力層
classification
各クラスの確率
P(yi
) =
exp(hi )
exp(hj )
j=1
M
∑
108
どうやって学習するの?
学習できめること: 各種パラメータ
畳み込み層の各カーネルの要素の値
全結合層の各ユニットの結合重み
Layer数が多ければ多いほど沢山のパラメータ
教師データをもとに識別エラーから各パラメータを更新
エラーが小さくなるように更新を繰り返し行い、収束を図る
確率的勾配降下法(Stochastic Gradient Descent)
109
確率的勾配降下法
順伝播と逆伝播を繰り返してパラメータ群を更新
Input:
画像:x
ラベル:y
学習セット:
(x1,y1),…, (xn,yn)
順伝播
現パラメータ群により各学習データの認識を行う
逆伝播
認識結果(誤差)をもとに,パラメータ群を更新する
Convolution
Full connection
Classification
110
確率的勾配降下法
誤差を最小化するように各層のパラメータを更新
Input:
画像:xi
ラベル:yi
学習セット:
(x1,y1),…, (xn,yn)
全パラメータをWとする
ロス関数:y’iとラベルyiの違いを算出
これを最小化する
Convolution
Full connection Classification
y'
= F(W, x)
E = Loss(F(W, xi ), yi )
i
n
∑
逆誤差伝搬法で誤差の偏微分を計算
更新率γを掛けて、パラメータ群Wを更新
W ← W −γ
∂E
∂W
111
ミニバッチ
一度に大量の学習サンプルでロスを求めるのは大変
⇒過学習もおきやすい
少しのサンプルだけでパラメータを更新⇒mini batch
確率的勾配降下法
(SGD)
m1
m2
mk
各mを利用して逐次的にパラメータを更新
mkまで利用したら再度m1を利用
n枚
112
畳み込み層の誤差逆伝播(1)
畳み込み層を全結合層のように書き直すと
Input image 5x5
f
Feature map 4x4kernel 2x2
Activation
function
n21
n22
n23
n2p
n31
n32
n33
n34
n35
n36
n37
n38
w2jk
n11
n12
n13
n14
y1
w1ij
p=16
n1r
n15
n16
n17
n18
r=25
中間層は入力層の特定のユニットとのみ結合
カーネルは重みw1ijに相当する
113
畳み込み層の誤差逆伝播(2)
畳み込み層を全結合層のように書き直すと
Input image 5x5
f
Feature map 4x4kernel 2x2
Activation
function
n21
n22
n23
n2p
n31
n32
n33
n34
n35
n36
n37
n38
w2jk
n11
n12
n13
n14
y1
w1ij
p=16
n1r
n15
n16
n17
n18
r=25
中間層は入力層の特定のユニットとのみ結合
カーネルは重みw1ijに相当する
114
畳み込み層の誤差逆伝播(3)
カーネルの要素の更新
上位層の重みw2jkを更新する
(全てのw2jkについて下記式で更新)
n21
n22
n23
n2p
n31
n32
n33
n34
n35
n36
n37
n38
w2jk
n11
n12
n13
n14
y1
w1ij
p=16
n1r
n15
n16
n17
n18
r=25
Zj
Input image 5x5
f
Feature map 4x4kernel 2x2
Activation
function
w2jk = ⌘(rk yk)yk(1 yk)zj
115
畳み込み層の誤差逆伝播(4)
カーネルの要素の更新
上位層の重みw2jkとx1から更新量を求める
n21
n22
n23
n2p
n31
n32
n33
n34
n35
n36
n37
n38
w2jk
n11
n12
n13
n14
y1
w1ij
p=16
n1r
n15
n16
n17
n18
r=25
Zj
Input image 5x5
f
Feature map 4x4kernel 2x2
Activation
function
w1
111 = ⌘
qX
k=1
[(rk yk)yk(1 yk)w2jk]z1(1 z1)x1
116
畳み込み層の誤差逆伝播(5)
カーネルの要素の更新
ずらした位置での更新量も求める
n21
n22
n23
n2p
n31
n32
n33
n34
n35
n36
n37
n38
w2jk
n11
n12
n13
n14
y1
w1ij
p=16
n1r
n15
n16
n17
n18
r=25
Zj
Input image 5x5
f
Feature map 4x4kernel 2x2
Activation
function
w2
122 = ⌘
qX
k=1
[(rk yk)yk(1 yk)w2jk]z2(1 z2)x2
117
畳み込み層の誤差逆伝播(6)
カーネルの要素の更新
全ての位置での更新量を累積して,最終的
な更新量を求める
n21
n22
n23
n2p
n31
n32
n33
n34
n35
n36
n37
n38
w2jk
n11
n12
n13
n14
y1
w1ij
p=16
n1r
n15
n16
n17
n18
r=25
Zj
Input image 5x5
f
Feature map 4x4kernel 2x2
Activation
function
wn
1ij = ⌘
qX
k=1
[(rk yk)yk(1 yk)w2jk]zj(1 zj)xi
w1ij = ⌘
NX
n=1
wn
1ij
118
プーリング層の誤差逆伝播(1)
プーリング層を全結合層のように書き直すと
n21
n22
n23
n24
n31
n32
w2jk
n11
n12
n13
n14
y1
w1ij
p=4
n1r
n15
n16
n17
n18
r=16
2x2のmaxプーリングの場合,4つのユニットから結合
し,最大となる結合の重みが1,それ以外は0となる.
Feature Map 4x4
subsampling 2x2
119
プーリング層の誤差逆伝播(2)
プーリング層を全結合層のように書き直すと
n21
n22
n23
n24
n31
n32
w2jk
n11
n12
n13
n14
y1
w1ij
p=4
n1r
n15
n16
n17
n18
r=16
選ばれたユニットのみ誤差が伝播する
Feature Map 4x4
subsampling 2x2
120
汎化性を向上させるための方法
121
Dropout
全結合層の過学習を抑制する
(学習方法のおさらい)
入力データのラベルとネットワークの
出力の誤差を元にパラメータを更新
Input layer
Kernel
K1
Kn
全結合層の一部のノードからの結合を取り除く
(0にする) だいたい50%
各mini-batchで異なる結合をランダムに取り除く
G. Hinton, N.Srivastava, A.Krizhevsky, I.Sutskever, and R.Salakhutdinov, “Improving neural networks by preventing co-
adaptation of feature detectors.”, arXiv preprint arXiv:1207.0580, 2012.
122
学習画像の生成
Data Augmentation
位置や大きさを変えて学習データ数を増やす
Elastic Distortion
位置や大きさだけでなく,形状の変化も適用
P.Y. Simard, D. Steinkraus, and J.C. Platt, “Best practices for convolutional neural networks applied to visual document
analysis.”, ICDAR2003.
123
前処理の重要性
Global Contrast Normalization
各画像を平均0,分散1になるように正規化
入力データの明るさを正規化することで性能が向上
124
前処理の重要性
Global Contrast Normalization
各画像を平均0,分散1になるように正規化
正規化なし 正規化あり
下図はpylearn2の結果
125
前処理の重要性
ZCA whitening
隣接ピクセルの冗長性をなくすような
Wを主成分分析により学習
X ' = WX
http://www.cs.toronto.edu/~kriz/learning-features-2009-TR.pdf
隣接ピクセルの冗長性をなくす
126
前処理の重要性
ZCA whitening
ZCA whitening only
Global contrast normalization +
ZCA whitening
127
Normalize Layer
activation function で得られた値を正規化
Convolutional layer Normalize layer
Pooling layer Convolutional layer
Normalize layer
Pooling layer
pooling layer後にNormalize layerを配置することもある
128
Normalize Layer
Local contrast normalization
Convolutional layer Normalize layer
同一特徴マップにおける局所領域内で正規化する
vj,k = xj,k − wp,q xj+p,k+q∑
wp,q =1∑
yj,k =
vj,k
max(C,σ jk )
σ jk = wpqvj+p,k+q
2
∑
K. Jarrett, K. Kavukcuoglu, M. Ranzato and Y.LeCun ,“What is the Best Multi-Stage Architecture for
Object Recognition?”, ICCV2009 129
Normalize Layer
Local response normalization
Convolutional layer Normalize layer
同一位置における異なる特徴マップ間で正規化する
yi
j,k = (1+α (yl
j,k )2
)β
l=i−N/2
i+N/2
∑
G. E. Hinton, N. Srivastava, A. Krizhevsky, I. Sutskever and R. R. Salakhutdinov ,“Improving neural networks by preventing
co-adaptation of feature detectors ”, arxiv2012
130
Batch Normalization
ミニバッチごとのデータ分布を統一する
スケールγとシフト量βを学習で獲得
収束性が高くなる(速くなる)
各層の入力または出力に対して行い,各層での分布のばらつきを統一することもできる
S.Ioffe, “Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift”, 2015
µB =
1
m
mX
i=1
xi
2
B =
1
m
mX
i=1
(xi µB)2
ˆxi =
xi µ
p
2
B + ✏
yi = ˆxi +
ミニバッチ内の平均と分散を算出 平均0,分散1になるように正規化
平均0,分散1になるように正規化
131
画像認識におけるDeep Learningの活用
132
Deep Learningの応用先
検出 回帰
セグメンテーション
人検出*
(Caltech Pedestrian dataset トップ)
*HOG+CSS-SVMでのSliding window処理あり
シーンラベリング
顔器官検出
人の姿勢推定
手領域抽出
髪領域抽出
顔ラベリング
認識
一般物体認識
(LSVRCトップ)
顔認識(照合)
(LFWトップ)
人物属性推定
一般物体検出
(Pascal VOCトップ)
文字認識
133
ディープラーニング手法の変遷
物体認識ベンチマークを通じて,より深い構造へ
1998年
2012年
2014年
2015年
AlexNet
LeNet
GoogLeNet
ResNet
134
物体認識
ImageNet Large Scale Visual Recognition Challenge
(ILSVRC)
ImageNetのデータセットを利用して1000クラスの物体認識を行う
http://image-net.org
135
ディープラーニングによる物体認識
AlexNet
ILSVRC2012で優勝
8層(畳み込み5層,全結合3層)の構造
Team year Error	(top-5)
SuperVision(AlexNet) 2012 15.3%
1層目のフィルタ
A. Krizhevsky, ImageNet Classification with Deep Convolutional Neural Networks, NIPS2012
136
ディープラーニングによる物体認識
VGG16
ILSVRC2014で2位
16層と深い構造
Team year Error	(top-5)
SuperVision 2012 15.3%
Clarifai 2013 11.2%
VGG – Oxford	(16 layers) 2014 7.32%
3x3のフィルタを2層積層すると
5x5のフィルタと等価になる
AlexNetとほぼ等価の構成
K. Simonyan, Very Deep Convolutional Networks for Large-Scale Image Recognition, ICLR2015
137
ディープラーニングによる物体認識
GoogLeNet
Inception モジュールを9つ積層
途中の層の誤差を求め,下位層まで誤差を伝播
Convolution
Pooling
Softmax
Other
Inception module
Team year Error	(top-5)
SuperVision 2012 15.3%
Clarifai 2013 11.2%
VGG – Oxford	(16 layers) 2014 7.32%
GoogLeNet (22layers) 2014 6.67%
3x3
convolutions
5x5
convolutions
Filter
concatenation
Previouslayer
3x3max
pooling
1x1
convolutions
1x1
convolutions
1x1
convolutions
1x1
convolutions
C. Szegedy, Going Deeper with Convolutions, CVPR2015
138
ディープラーニングによる物体認識
Residual Network
特定層への入力をバイパスして上位層へ与える
逆伝播時に誤差を下位層に直接与えることができる
Team year Error	(top-5)
SuperVision 2012 15.3%
Clarifai 2013 11.2%
VGG – Oxford	(16 layers) 2014 7.32%
GoogLeNet (22layers) 2014 6.67%
Residual	Net. 2015 3.57%
human expert 5.1%
K. He, Deep Residual Learning for Image Recognition, CVPR2016
139
ディープラーニングによる物体認識
http://research.microsoft.com/en-us/um/people/kahe/ilsvrc15/ilsvrc2015_deep_residual_learning_kaiminghe.pdf
140
Network in Network(1)
畳み込み層の活性化関数に小さなネットワークを導入
Input image
Feature map
Respon
se
kernel
マイクロネットワーク
Lin, Min, Qiang Chen, and Shuicheng Yan. "Network In Network.", ICLR2014
141
Network in Network(2)
簡単な実装:1x1の畳み込み処理として表現
CCCP層で畳み込むフィルタは全ての位置で同じなので,パラメータ数は増えない
Lin, Min, Qiang Chen, and Shuicheng Yan. "Network In Network.", ICLR2014
142
Network in Network(3)
全結合層なしでネットワークを構成
ILSVRC2014での性能
TOP5のエラー率
10.91% for 1 model
9.79% for 3 models
Lin, Min, Qiang Chen, and Shuicheng Yan. "Network In Network.", ICLR2014
143
Deep Learningの応用先
回帰
セグメンテーション
シーンラベリング
顔器官検出
人の姿勢推定
手領域抽出
髪領域抽出
顔ラベリング
認識
一般物体認識
(LSVRCトップ)
顔認識(照合)
(LFWトップ)
人物属性推定
文字認識
検出
人検出*
(Caltech Pedestrian dataset トップ)
*HOG+CSS-SVMでのSliding window処理あり
一般物体検出
(Pascal VOCトップ)
144
CNNの課題
物体検出への応用の難しさ
与えられた領域の名称を認識することは得意
問題:どのように物体の領域(=位置)を与えるか?
CNNだけでは物体らしい領域を抽出ことは困難
物体検出とは?
画像中の物体の名称と位置
を特定する
http://image-net.org/challenges/LSVRC/2014/slides/ILSVRC2014_09_12_14_det.pdf
145
一般物体検出
• Selective Searchにより物体候補を検出
• CNNで抽出した特徴量をSVMでクラス識別
4つのステップから構成
1)局所領域の切り出し
2)領域の変形
3)CNNによる特徴抽出
4)SVMによる識別
物体検出への応用の難しさ
R. Girshick, Rich feature hierarchies for accurate object detection and semantic segmentation, CVPR2014
146
R-CNN ステップ1:局所領域の切り出し
Selective Searchによる候補領域の抽出
候補数は2000
R. Girshick, Rich feature hierarchies for accurate object detection and semantic segmentation, CVPR2014
147
R-CNN ステップ2:領域の変形
全ての候補領域を一定の大きさに正規化
アスペクト比は無視
CNNの入力データサイズに合わせる
R. Girshick, Rich feature hierarchies for accurate object detection and semantic segmentation, CVPR2014
148
R-CNN ステップ3:CNNによる特徴量抽出
AlexNetの途中結果を特徴量ベクトルとして利用
最終層の手前の全結合層の値:4096次元
ネットワークは検出対象データセットの学習データを利用してチューニング
1)用意するもの:Image netで学習されたAlexNet
2)チューニング用データ:Pascal VOCの学習データセット
これにより,検出対象に適したネットワークになる
R. Girshick, Rich feature hierarchies for accurate object detection and semantic segmentation, CVPR2014
149
R-CNN ステップ4: SVMによる識別
各検出対象のSVMで,物体かどうかを判定する
Pascal VOCの場合:20種類の物体のSVMを用意
CNNで抽出した特徴量を用いて判定
SVMの学習
Pascal VOCの学習データセットについて,特徴量を抽出
線形SVMにより,各物体のSVMを学習
R. Girshick, Rich feature hierarchies for accurate object detection and semantic segmentation, CVPR2014
150
R-CNN ステップ5: 物体位置の補正
各検出について,座標を回帰により修正する
領域抽出のズレを補正する
R. Girshick, Rich feature hierarchies for accurate object detection and semantic segmentation, CVPR2014
151
R-CNNの課題
特徴抽出
(CNN)
特徴抽出
(CNN)
特徴抽出
(CNN)
物体識別
(SVM)
物体識別
( SVM)
物体識別
(SVM)
入力画像
領域切り出し
領域変形
背景
人
馬
領域ごとに実行
座標補正
(回帰)
座標補正
(回帰)
処理時間がかかる
1画像あたり:47秒 (VGGネットを使用時)
学習・検出プロセスが複雑
処理ごとに個別の学習とデータの準備が必要
R. Girshick, Rich feature hierarchies for accurate object detection and semantic segmentation, CVPR2014
152
Fast R-CNN
特徴抽出
(CNN)
特徴座標 識別層・回帰層
(CNN)
入力画像
領域切り出し
領域変形
物体:背景
座標情報
(-1,-1,-1,-1)
物体:人
座標情報
(10,3,40,100)
物体:馬
座標情報
(5,100,80,20)
領域ごとに実行
識別層・回帰層
(CNN)
識別層・回帰層
(CNN)
R. Girshick,, Fast RCNN, ICCV2015
特徴抽出処理をまとめて行うことで高速化
R-CNNと比べて10-100倍高速
学習・検出プロセスをシンプルに
領域切り出しの処理をCNNの構成で行う(SVMなし)
153
Fast R-CNNのネットワーク
1つのネットワークで識別と回帰を行う
Selective Searchで得られた領域について,
ステップ1)画像全体の特徴抽出(特徴マップ)
ステップ2)特徴マップから物体の特徴を抽出
ステップ3)特徴をプーリング(ROI Pooling)
ステップ4)識別層で物体名を識別・回帰
R. Girshick,, Fast RCNN, ICCV2015
154
Fast R-CNN ステップ1:画像全体の特徴抽出
VGGの最終畳み込み層までの特徴マップを生成
入力画像入力画像
R. Girshick,, Fast RCNN, ICCV2015
特徴マップ
155
特徴マップ
Fast R-CNN ステップ2:物体の特徴抽出
特徴マップから物体の位置の特徴を抽出
入力画像入力画像
領域切り出し
R. Girshick,, Fast RCNN, ICCV2015
156
Fast R-CNN ステップ3:物体の特徴抽出
特徴をプーリング 物体領域のサイズを変形していないので,
特徴マップ上でのサイズはバラバラ
サイズを揃えるプーリング
=ROI プーリング
例)10x15を5x5にプーリングしたい場合,
横10/5=2,縦15/5=3で,2x3の範囲で
max poolingを行う.
(正規化後/元のサイズで比もとめる)
入力画像
特徴マップ
入力画像
領域切り出し
ROI プーリング
R. Girshick,, Fast RCNN, ICCV2015
157
Fast R-CNN ステップ4:識別層での識別・回帰
ROIプーリングした結果をVGGの全結合層へ与える
入力画像
特徴マップ
入力画像
領域切り出し
ROI プーリング
R. Girshick,, Fast RCNN, ICCV2015
158
Fast R-CNN ステップ4:識別層での識別・回帰
softmax層の代わりに識別層・回帰層で結果出力
入力画像
特徴マップ
入力画像
領域切り出し
識別層
回帰層
各クラスの確率を出力
各クラスの座標を出力
出力ユニット数
識別層:K+1
回帰層:4K
クラス数=K
ROI プーリング
R. Girshick,, Fast RCNN, ICCV2015
159
Fast R-CNNの課題
学習・検出プロセスがまだ複雑
Selective Searchによる切り出しが必要
=>この処理が時間かかる
入力画像
特徴マップ
入力画像
領域切り出し
識別層
回帰層
各クラスの確率を出力
各クラスの座標を出力
出力ユニット数
識別層:K+1
回帰層:4K
クラス数=K
ROI プーリング
R. Girshick,, Fast RCNN, ICCV2015
160
Fast R-CNN
特徴抽出
(CNN)
特徴座標 識別層・回帰層
(CNN)
入力画像
領域切り出し
領域変形
物体:背景
座標情報
(-1,-1,-1,-1)
物体:人
座標情報
(10,3,40,100)
物体:馬
座標情報
(5,100,80,20)
領域ごとに実行
識別層・回帰層
(CNN)
識別層・回帰層
(CNN)Selective Searchによる切り出し
=>この処理が時間かかる
R. Girshick,, Fast RCNN, ICCV2015
特徴抽出処理をまとめて行うことで高速化
R-CNNと比べて10-100倍高速
学習・検出プロセスをシンプルに
領域切り出しの処理をCNNの構成で行う(SVMなし)
161
Faster R-CNN
領域切り出しもCNNで行うことでさらなる高速化
R-CNNと比べて10-100倍高速
学習・検出プロセスをさらにシンプルに
すべてをCNNで行う
特徴抽出
(CNN)
検出層
(全結合)
入力画像
回帰層
(全結合)
識別層
(Fast R-CNN)
Region Proposal
Network
S. Ren, Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, NIPS2015
162
Region Proposal Network(RPN)
1つのネットワークで検出と回帰を行う
ステップ1)画像全体の特徴抽出(特徴マップ)
ステップ2)特徴マップを走査して特徴を抽出
ステップ3)特徴を検出層に与えて,物体判別行う
ステップ4)特徴を回帰層に与えて,物体の位置を同定する
特徴抽出
(CNN)
入力画像
S. Ren, Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, NIPS2015
163
RPNの工夫点
大きさ変化と形状変化に対して同時に対応
各注目点の特徴を入力すると
k個のアンカーに対する物体か否か
k個のアンカーに対する座標
を2つの全結合層から出力する
特徴抽出
(CNN)
入力画像
形状は1:1,1:2,2:1の3種類
大きさは128, 256, 512の3スケール
物体でない形状の場合は,
座標値として-1などの値が入る
アンカー=注目領域の形状と
大きさのパターン
S. Ren, Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, NIPS2015
164
RPN ステップ1:画像全体の特徴抽出
VGGの最終畳み込み層までの特徴マップを生成
入力画像入力画像
特徴マップ
S. Ren, Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, NIPS2015
165
RPN ステップ2:領域の特徴抽出
局所領域から256次元の特徴を抽出
入力画像入力画像
特徴マップ
256
全結合層(=1x1の畳み込みで表現)
・入力:3x3領域の中央の値(全特徴マップ)
・出力:256次元
S. Ren, Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, NIPS2015
166
RPN ステップ3:検出層による物体検出
局所領域から256次元の特徴を抽出
入力画像入力画像
特徴マップ
256
全結合層
・入力:256次元
・出力:2k (kはアンカー数,K=9)
物体の確率
物体でない確率
各
ア
ン
カ
の
確
率
S. Ren, Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, NIPS2015
167
RPN ステップ4:回帰層による位置同定
局所領域から256次元の特徴を抽出
入力画像入力画像
特徴マップ
256
全結合層
・入力:256次元
・出力:4k (kはアンカー数,K=9)
左上x座標
左上y座標
各
ア
ン
カ
の
座
標
幅
高さ
S. Ren, Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, NIPS2015
168
Faster R-CNNによる物体検出の速度
特徴マップ作成をVGGで行った場合,selective
searchの場合よりも約10倍高速化
ZFを特徴マップ作成に利用するとさらに3倍高速化
S. Ren, Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, NIPS2015
169
Faster R-CNNによる物体検出例
S. Ren, Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, NIPS2015
170
YOLO
GPU上でリアルタイムでの一般物体検出(22ms)
画像全体をCNNに入力
グリッドごとに物体らしさと矩形を算出
各グリッドがどの物体クラスかを判定
NMSでグリッドを選択し,物体矩形として出力
You Only Look Once: Unified, Real-Time Object Detection, CVPR2016
171
YOLOの処理の流れ
入力画像 各グリットでの矩形と
物体クラスを算出
CNN
矩形算出結果
各グリッドの代表クラスを算出 各グリッドの代表矩形を選択
NMSで出力矩形を選択
You Only Look Once: Unified, Real-Time Object Detection, CVPR2016
172
YOLOのアルゴリズム
CNNの出力をSxSグリッドとして考える
You Only Look Once: Unified, Real-Time Object Detection, CVPR2016
173
YOLOのアルゴリズム
ある注目グリッドに対して
You Only Look Once: Unified, Real-Time Object Detection, CVPR2016
174
YOLOのアルゴリズム
複数の物体らしい領域を推定
You Only Look Once: Unified, Real-Time Object Detection, CVPR2016
175
YOLOのアルゴリズム
全グリッドで物体領域を推定
You Only Look Once: Unified, Real-Time Object Detection, CVPR2016
176
YOLOのアルゴリズム
グリッドごとにクラスを予測
Bicycle
Dog
Car
Dining
Table
You Only Look Once: Unified, Real-Time Object Detection, CVPR2016
177
YOLOのアルゴリズム
クラス予測と領域を対応
You Only Look Once: Unified, Real-Time Object Detection, CVPR2016
178
YOLOのアルゴリズム
スコアの高い領域を検出結果として出力
You Only Look Once: Unified, Real-Time Object Detection, CVPR2016
179
YOLOの出力内容
180
You Only Look Once: Unified, Real-Time Object Detection, CVPR2016
各グリッドの出力
矩形(x,y,幅,高さ)
物体らしさ
クラスの数だけ出力
各グリッドは,
複数の矩形を出力することも可能
Pascal VOCの場合
グリッド数:7x7
矩形数:2
クラ数数:20
出力ユニット数:1470 (7 x 7 x (2 x 5 + 20) = 7 x 7 x 30 tensor)
YOLOの精度
181
Pascal 2007 mAP Speed
DPM v5 33.7 .07 FPS 14 s/img
R-CNN 66.0 .05 FPS 20 s/img
Fast R-CNN 70.0 .5 FPS 2 s/img
Faster R-CNN 73.2 7 FPS 140 ms/img
YOLO 63.4 69.0 45 FPS 22 ms/img
You Only Look Once: Unified, Real-Time Object Detection, CVPR2016
Single Shot MultiBox Detector
182
複数の特徴マップから物体らしさと矩形を出力
小さな物体から大きな物体まで検出できる
SSD: Single Shot MultiBox Detector, ECCV2016
Single Shot MultiBox Detector
複数の特徴マップから物体らしさと矩形を出力
各特徴マップからクラス確率の高い矩形を算出
Default boxの形状を補正するオフセットベクトルを回帰
検出物体にフィットした矩形を出力
183
Ground truth boxes 5 x 5 feature map 3 x 3 feature map
SSD: Single Shot MultiBox Detector, ECCV2016
Single Shot MultiBox Detector
Box1 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.01
0.02
0.04
0.08
0.81
0.03
SSD: Single Shot MultiBox Detector, ECCV2016
184
Single Shot MultiBox Detector
Box1 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.01
0.02
0.04
0.08
0.81
0.03
Box2 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.01
0.01
0.01
0.03
0.93
0.01
SSD: Single Shot MultiBox Detector, ECCV2016
185
Single Shot MultiBox Detector
Box1 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.01
0.02
0.04
0.08
0.81
0.03
Box2 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.01
0.01
0.01
0.03
0.93
0.01
Box3 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.01
0.01
0.01
0.07
0.88
0.02
SSD: Single Shot MultiBox Detector, ECCV2016
186
Single Shot MultiBox Detector
Box1 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.01
0.02
0.04
0.08
0.81
0.03
Box2 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.01
0.01
0.01
0.03
0.93
0.01
Box3 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.01
0.01
0.01
0.07
0.88
0.02
Box4 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.01
0.02
0.02
0.09
0.82
0.03
SSD: Single Shot MultiBox Detector, ECCV2016
187
Single Shot MultiBox Detector
Box1 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.01
0.02
0.04
0.08
0.81
0.03
Box2 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.01
0.01
0.01
0.03
0.93
0.01
Box3 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.01
0.01
0.01
0.07
0.88
0.02
Box4 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.01
0.02
0.02
0.09
0.82
0.03
Max
SSD: Single Shot MultiBox Detector, ECCV2016
188
Single Shot MultiBox Detector
回帰で推定したオフセットベクトルにより
矩形を補正 (cx, cy, w, h)
SSD: Single Shot MultiBox Detector, ECCV2016
189
Single Shot MultiBox Detector
Box1 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.06
0.05
0.04
0.79
0.05
0.01
SSD: Single Shot MultiBox Detector, ECCV2016
190
Single Shot MultiBox Detector
191
Box1 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.06
0.05
0.04
0.79
0.05
0.01
Box2 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.04
0.02
0.02
0.81
0.09
0.02
SSD: Single Shot MultiBox Detector, ECCV2016
Single Shot MultiBox Detector
192
Box1 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.06
0.05
0.04
0.79
0.05
0.01
Box3 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.08
0.04
0.02
0.70
0.03
0.01
Box2 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.04
0.02
0.02
0.81
0.09
0.02
SSD: Single Shot MultiBox Detector, ECCV2016
Single Shot MultiBox Detector
193
Box1 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.06
0.05
0.04
0.79
0.05
0.01
Box3 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.08
0.04
0.02
0.70
0.03
0.01
Box2 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.04
0.02
0.02
0.81
0.09
0.02
Box4 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.05
0.02
0.01
0.68
0.02
0.02
SSD: Single Shot MultiBox Detector, ECCV2016
Single Shot MultiBox Detector
194
Box1 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.06
0.05
0.04
0.79
0.05
0.01
Box3 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.08
0.04
0.02
0.70
0.03
0.01
Box2 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.04
0.02
0.02
0.81
0.09
0.02
Box4 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.05
0.02
0.01
0.68
0.02
0.02
Box5 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.01
0.01
0.02
0.83
0.03
0.03
SSD: Single Shot MultiBox Detector, ECCV2016
Single Shot MultiBox Detector
Box1 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.06
0.05
0.04
0.79
0.05
0.01
Box3 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.08
0.04
0.02
0.70
0.03
0.01
Box2 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.04
0.02
0.02
0.81
0.09
0.02
Box4 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.05
0.02
0.01
0.68
0.02
0.02
Box5 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.01
0.01
0.02
0.83
0.03
0.03
Box6 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.01
0.02
0.01
0.84
0.02
0.04
SSD: Single Shot MultiBox Detector, ECCV2016
195
Single Shot MultiBox Detector
Box1 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.06
0.05
0.04
0.79
0.05
0.01
Box3 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.08
0.04
0.02
0.70
0.03
0.01
Box2 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.04
0.02
0.02
0.81
0.09
0.02
Box4 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.05
0.02
0.01
0.68
0.02
0.02
Box5 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.01
0.01
0.02
0.83
0.03
0.03
Box6 : クラス確率
Background
Car
Boat
Dog
Cat
Parson
0.01
0.02
0.01
0.84
0.02
0.04
Max
SSD: Single Shot MultiBox Detector, ECCV2016
196
Single Shot MultiBox Detector
197
回帰で推定したオフセットベクトルにより
Bounding boxを補正 (cx, cy, w, h)
SSD: Single Shot MultiBox Detector, ECCV2016
SSDのネットワーク構成
198
Non-Maximum Suppression
VGG conv
from conv1_1
to conv4_3
VGG conv
from conv5_1
to fc7
(replace conv)
SDD conv
from conv6_1
to conv6_2
SDD conv
from conv7_1
to conv7_2
SDD conv
from conv8_1
to conv8_2
SDD conv
from conv9_1
to conv9_2
Normalization
conv4_3_mbox_loc
(offset estimator)
&
conv4_3_mbox_conf
(object classifier)
fc7_mbox_loc
(offset estimator)
&
fc7_mbox_conf
(object classifier)
conv6_2_mbox_loc
(offset estimator)
&
conv6_2_mbox_conf
(object classifier)
conv7_2_mbox_loc
(offset estimator)
&
conv7_2_mbox_conf
(object classifier)
conv8_2_mbox_loc
(offset estimator)
&
conv8_2_mbox_conf
(object classifier)
conv9_2_mbox_loc
(offset estimator)
&
conv9_2_mbox_conf
(object classifier)
Input image
300x300x3
Feature maps
38x38x512
Feature maps
19x19x1024
Feature maps
10x10x512
Feature maps
5x5x256
Feature maps
3x3x256
Feature maps
1x1x256
Localization
maps
38x38x16
Confidence
maps
38x38x84
Localization
maps
19x19x24
Confidence
maps
19x19x126
Localization
maps
10x10x24
Confidence
maps
10x10x126
Localization
maps
5x5x24
Confidence
maps
5x5x126
Localization
maps
3x3x16
Confidence
maps
3x3x84
Localization
maps
1x1x16
Confidence
maps
1x1x84
# Default boxes = 4
# Classes = 21
# Default boxes = 6
# Classes = 21
# Default boxes = 6
# Classes = 21
# Default boxes = 6
# Classes = 21
# Default boxes = 4
# Classes = 21
# Default boxes = 4
# Classes = 21
Final detections
Pre-trained VGG Net (remove fc8)
SSD: Single Shot MultiBox Detector, ECCV2016
SSDのネットワーク構成
199
Non-Maximum Suppression
VGG conv
from conv1_1
to conv4_3
VGG conv
from conv5_1
to fc7
(replace conv)
SDD conv
from conv6_1
to conv6_2
SDD conv
from conv7_1
to conv7_2
SDD conv
from conv8_1
to conv8_2
SDD conv
from conv9_1
to conv9_2
Normalization
conv4_3_mbox_loc
(offset estimator)
&
conv4_3_mbox_conf
(object classifier)
fc7_mbox_loc
(offset estimator)
&
fc7_mbox_conf
(object classifier)
conv6_2_mbox_loc
(offset estimator)
&
conv6_2_mbox_conf
(object classifier)
conv7_2_mbox_loc
(offset estimator)
&
conv7_2_mbox_conf
(object classifier)
conv8_2_mbox_loc
(offset estimator)
&
conv8_2_mbox_conf
(object classifier)
conv9_2_mbox_loc
(offset estimator)
&
conv9_2_mbox_conf
(object classifier)
Input image
300x300x3
Feature maps
38x38x512
Feature maps
19x19x1024
Feature maps
10x10x512
Feature maps
5x5x256
Feature maps
3x3x256
Feature maps
1x1x256
Localization
maps
38x38x16
Confidence
maps
38x38x84
Localization
maps
19x19x24
Confidence
maps
19x19x126
Localization
maps
10x10x24
Confidence
maps
10x10x126
Localization
maps
5x5x24
Confidence
maps
5x5x126
Localization
maps
3x3x16
Confidence
maps
3x3x84
Localization
maps
1x1x16
Confidence
maps
1x1x84
# Default boxes = 4
# Classes = 21
# Default boxes = 6
# Classes = 21
# Default boxes = 6
# Classes = 21
# Default boxes = 6
# Classes = 21
# Default boxes = 4
# Classes = 21
# Default boxes = 4
# Classes = 21
Final detections
Pre-trained VGG Net (remove fc8)
SSD: Single Shot MultiBox Detector, ECCV2016
オフセットベクトルとクラス分類
200
Feature maps
5x5x256
SDD conv
from conv7_1
to conv7_2
Convolutional
feature extractor
conv7_2_mbox_loc
Convolutional
offset estimator
Convolutional
object classifier
conv7_2_mbox_conf
Default box generator
6 default boxes
5x5x6=150 default boxes
Localization maps
5x5x24
Confidence maps
5x5x126
# Offset vector dimensions : 4
# Default boxes : 6
# Classes : 21
# Default boxes : 6
SSD: Single Shot MultiBox Detector, ECCV2016
オフセットベクトルとクラス分類
201
conv7_2_mbox_loc
Convolutional
offset estimator
Convolutional
object classifier
conv7_2_mbox_conf
Default box generator
6 default boxes
Localization maps
5x5x24
Confidence maps
5x5x126
5x5x6=150 default boxes
Default box 1
5x5x4
Default box 2
5x5x4
Default box 6
5x5x4
Default box 1
5x5x21
Default box 2
5x5x21
Default box 6
5x5x21
Cat
Softmax
P(Background) = 0.01
P(Dog) = 0.09
P(Cat) = 0.88
P(Person) = 0.01
cx
cy
w
h
Default boxの
オフセットベクトル
Default boxの
クラス確率
Non-maximum suppression
同一物体かつJaccard overlapがT %以上であれば
認識スコアが最大の矩形のみを出力
202
物体候補 最終検出結果
SSD: Single Shot MultiBox Detector, ECCV2016
Non-maximum suppression
同一物体かつJaccard overlapがT %以上であれば
認識スコアが最大の矩形のみを出力
203
Overlap = 76.3%
Person = 0.98 Person = 0.74
物体候補 最終検出結果
SSD: Single Shot MultiBox Detector, ECCV2016
Non-maximum suppression
同一物体かつJaccard overlapがT %以上であれば
認識スコアが最大の矩形のみを出力
Overlap = 57.2%
Person = 0.87
Person = 0.62
物体候補 最終検出結果
SSD: Single Shot MultiBox Detector, ECCV2016
204
Non-maximum suppression
同一物体かつJaccard overlapがT %以上であれば
認識スコアが最大の矩形のみを出力
205
物体候補 最終検出結果
Overlap < T %
SSD: Single Shot MultiBox Detector, ECCV2016
SSDの特徴
複数の解像度の特徴マップを用いて物体検出
→ 小さな物体から大きな物体まで検出可能
多くのBounding box候補を使用
→ 1枚の画像から多くの物体を検出可能
206
YOLO v1の矩形候補数
7 x 7 x 2 = 98 (最新版コードでは 7 x 7 x 3 = 147)
SSDの矩形候補数
(38 x 38 x 4) + (19 x 19 x 6) + (10 x 10 x 6) + (5 x 5 x 6) + (3 x 3 x 4) + (1 x 1 x 4) = 8,732
SSD: Single Shot MultiBox Detector, ECCV2016
Pascal VOC 2007での認識結果
207
SSD: Single Shot MultiBox Detector, ECCV2016
Pascal VOC 2007での認識結果
208
SSD: Single Shot MultiBox Detector, ECCV2016
ディープラーニングベース手法の比較
209
SSD: Single Shot MultiBox Detector, ECCV2016
SSDによる検出結果例
210
SSD: Single Shot MultiBox Detector, ECCV2016
Deep Learningの応用先
検出 回帰
人検出*
(Caltech Pedestrian dataset トップ)
*HOG+CSS-SVMでのSliding window処理あり
顔器官検出
人の姿勢推定
認識
一般物体認識
(LSVRCトップ)
顔認識(照合)
(LFWトップ)
人物属性推定
一般物体検出
(Pascal VOCトップ)
文字認識
セグメンテーション
シーンラベリング
手領域抽出
髪領域抽出
顔ラベリング
211
シーン認識
畳み込みニューラルネットワークを利用して,各ピクセルのシーンラベルを付与
画素情報をそのまま入力して,特徴を自動的に学習
Superpixelによるセグメンテーションも併用
畳み込みニューラルネットワークでのシーン認識
212
C.Farabet, “Learning Hierarchical Features for Scene Labeling.”, PAMI2013
手の形状抽出
畳み込みニューラルネットワークにより手領域を抽出
213
layer type size, # of kernels
Input grayscale 40x40
1st convolution 5x5, 32
2nd max pooling 2x2
3rd maxout 4
4th convolution 5x5, 32
5th max pooling 2x2
6th maxout 4
7th fully connected 200
output L2 norm 1600
手の形状抽出
畳み込みニューラルネットワークにより手領域を抽出
214
更新回数 precision recall F value
0 0.2303 1.0000 0.3742
50000 0.8930 0.9135 0.9032
100000 0.8968 0.9199 0.9082
150000 0.9054 0.9186 0.9120
200000 0.9033 0.9234 0.9133
カーネル precision recall F value
3x3 0.9097 0.9133 0.9115
5x5 0.9033 0.9234 0.9133
7x7 0.9056 0.9039 0.9047
ネットワークの学習過程の可視化(1)
updating time : 0 - 50000
215
ネットワークの学習過程の可視化(2)
最上位の隠れ層ー識別層間の重み
216
x1
x2
x3
xi
y1
y2
Yj
ネットワークの学習過程の可視化(3)
最上位の隠れ層ー識別層間の重み
217
x1
x2
x3
xi
y1
y2
Yj
ネットワークの学習過程の可視化(3)
最上位の隠れ層ー識別層間の重み
218
x1
x2
x3
xi
y1
y2
Yj
ネットワークの学習過程の可視化(4)
最上位の隠れ層ー識別層間の重み
219
x1
x2
x3
xi
y1
y2
Yj
顔パーツラベリング
マルチクラスセグメンテーションへの応用
220
T. Yamashita, Cost-Alleviative Learning for Deep Convolutional Neural Network-based Facial Part Labeling, CVA2015
シーンラベリング手法
Fully Convolutional Network
プーリング層後の特徴マップを拡大し,結合
221
J. Long, Fully Convolutional Networks for Semantic Segmentation, CVPR2015
SegNet
エンコーダ・デコーダの構成
Max Poolingを行う時に位置情報を記憶
222
最大値&圧縮前の位置情報を参照
データがない座標には「0」を補完
V. Badrinarayanan, SegNet: A Deep Convolutional Encoder-Decoder Architecture for Robust Semantic
Pixel-Wise Labelling, 2015
PSPNet
223
複数の解像度で特徴抽出して統合
ILSVRC2016のScene Parsing 部門で優勝
H. Zhao, Pyramid Scene Parsing Network, 2016
Cityscapes
車載用セグメンテーションのデータセット
224
Dataset URL : https://www.cityscapes-dataset.com/
50都市で撮影
30クラスのラベリング
評価には19クラスを利用
(頻出頻度の低いクラスは対象外)
M. Cordts, The Cityscapes Dataset for Semantic Urban Scene Understanding, CVPR2016
シーンラベリング
225
[Yamashita, 2016]
ゲームを利用したデータ生成
226
S.R. Richter, Playing for Data: Ground Truth from Computer Games, ECCV2016
Grand Theft Auto(GTA)を利用
セグメンテーションをあらかじめ行い,アノテーション時間
を短縮
ゲームを利用したデータ生成
227
G. Ros, The SYNTHIA Dataset: A Large Collection of Synthetic Images for Semantic Segmentation of
Urban Scenes, CVPR2016
Virtual cityをCGで作成
様々な国の街の雰囲気,天候,季節を再現
13400フレーム分のデータ,13クラスにラベリング
全周囲のカメラ
距離画像
(未公開)
Dataset URL : http://synthia-dataset.net
Deep Learningの応用先
認識
検出
セグメンテーション
一般物体認識
(LSVRCトップ)
一般物体検出
(Pascal VOCトップ)
人検出*
(Caltech Pedestrian dataset トップ)
*HOG+CSS-SVMでのSliding window処理あり
顔認識(照合)
(LFWトップ)
シーンラベリング
人物属性推定
手領域抽出
髪領域抽出
顔ラベリング
回帰
顔器官検出
人の姿勢推定
228
顔器官検出
出力ユニット数=器官点の座標数
229
各器官点の座標を出力
誤差を最小二乗法で算出
・顔器官点検出
 -Deep Convolutional Neural Network を回帰問題に適応
 - 出力層で各器官点の座標値を推定
・シーンラベリング
正解座標
推定座標
0.23
0.42
0.15
0.77
0.58
0.85
ートした
ラスの出力値
路上物体
道路 山
草原
対象クラス
左目の左目尻
左目の左目頭
唇の右端入力画像
各器官点の座標値を出力
●ground truth / ● estimation
M.Kimura, Facial Point Detection Based on a Convolutional Neural Network with Optimal Mini-batch Procedure, ICIP2015
顔輪郭検出
出力ユニット数=輪郭点の座標数
230
画像と正解情報があれば,
検出点数を増やしたネットワーク学習は可能
M.Kimura, Facial Point Detection Based on a Convolutional Neural Network with Optimal Mini-batch Procedure, ICIP2015
画像認識における学習時の工夫
231
Data augmentationの重要性(1)
背景合成によるデータの自動生成
232
変化項目 範囲1 範囲2
移動 ±3 ±5
拡大縮小 ±5% ±10%
回転 ±5° ±15°
明度 ±10% ±20%
Data augmentationの重要性(2)
データの自動生成がある方が性能が良い
233
カリキュラムラーニング(1)
学習過程で難しいサンプルを追加する
(= similar with Bootstrap, but different…)
234
x1
x2
x3
xi
y1
y2
yj
y1
y2
y3
h1
h2
hj
初期の学習(単純なパターン)
学習の後期(複雑なパターン)
Y. Bengio, “Curriculum Learning”, ICML2009.
カリキュラムラーニング(2)
認識問題を直接解決するのではなく,中間的な問題
を通して解く
235
T. Yamashita, Hand Posture Recognition Based on Bottom-up Structured Deep Convolutional Neural Network with
Curriculum Learning”, “Curriculum Learning, ICIP2014
カリキュラムラーニング(3)
領域抽出に対応したネットワークを学習
236
Convolutional Layer Pooling Layer
Convolutional Layer Pooling Layer fully connection Layer
Binarization layer
Input data : gray scale image
ground truth : hand segmented image
T. Yamashita, Hand Posture Recognition Based on Bottom-up Structured Deep Convolutional Neural Network with
Curriculum Learning”, “Curriculum Learning, ICIP2014
カリキュラムラーニング(4)
ネットワークのパラメータを転移する
237
パラメータを初期値として利用
パラメータを更新
Input data : gray scale image
ground truth : class label
T. Yamashita, Hand Posture Recognition Based on Bottom-up Structured Deep Convolutional Neural Network with
Curriculum Learning”, “Curriculum Learning, ICIP2014
カリキュラムラーニング(5)
認識は識別問題に対応したネットワークのみ利用
238
5
Input data : gray scale image
output : class label
T. Yamashita, Hand Posture Recognition Based on Bottom-up Structured Deep Convolutional Neural Network with
Curriculum Learning”, “Curriculum Learning, ICIP2014
カリキュラムラーニング(6)
without curriculum learning with curriculum learning
Ground Truth class
classificationclass
Ground Truth class
classificationclass
239
T. Yamashita, Hand Posture Recognition Based on Bottom-up Structured Deep Convolutional Neural Network with
Curriculum Learning”, “Curriculum Learning, ICIP2014
カリキュラムラーニング(7)
カリキュラムラーニングを導入した顔器官検出
240
T. Yamashita, Facial Point Detection Using Convolutional Neural Network Transferred from a Heterogeneous Task,
ICIP2015
ヘテロジニアスラーニング(1)
複数の異なる情報を同時に学習
241
年齢と性別の同時推定
Convolution Layer Fully Connection Layer
Male or Female
input samples
Age
加藤, Heterogeneous Learningと重み付き誤差関数の導入による顔画像解析, MIRU2015
ヘテロジニアスラーニング(2)
複数の異なる情報を同時に学習
242
出力情報の種類を増やすことが可能
加藤, Heterogeneous Learningと重み付き誤差関数の導入による顔画像解析, MIRU2015
Convolution Layer Fully Connection Layer
Male or Female
input samples
Age
ヘテロジニアスラーニング(3)
243
加藤, Heterogeneous Learningと重み付き誤差関数の導入による顔画像解析, MIRU2015
ヘテロジニアスラーニング(4)
ヘテロジニアスラーニングによる歩行者検出と部位推定
244
1
0.0001 0.001 0.01 0.1 1 10
MissRate False Positive per Image
回帰型DCNN 31.77%
単体のDCNN 38.38%  
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
Daimler	Mono-Pedestrian	Benchmark	Dataset
の評価結果
距離[m] 距離推定結果[m] 誤差[%]
5 4.89 2.2
10 9.26 5.3
15 14.12 5.8
T. Yamashita, Pedestrian and Part Position Detection Using a Regression-Based Multiple Task
Deep Convolutional Neural Network, ICPR2016
その他の事例:ビデオの認識
時系列での特徴を抽出するネットワーク
245
・ピクセルレベルで複数フレーム
の情報を統合
・局所的な動き方向と速度の
検出が可能
・大域的な運動特性を計算可能
・時間、空間の情報をバランス
よく使用
・空間だけではなく時間的に
畳み込むため大域的な情報が
得られる
Single Frame Late Fusion Early Fusion Slow Fusion
・2つのSingle Frameを使用
A.Karpathy, “ Large-scale Video Classification with Convolutional Neural Networks”, CVPR2014
ビデオの認識
Slow Fusion network on the first layer
246
A.Karpathy, “ Large-scale Video Classification with Convolutional Neural Networks”, CVPR2014
ビデオの認識
247
A.Karpathy, “ Large-scale Video Classification with Convolutional Neural Networks”, CVPR2014
Sports-1M Datasetを公開
ネットワークの可視化(1)
プーリング層でどこが選ばれたのかを記憶しておく
248
M. D. Zeiler, Visualizing and Understanding Convolutional Networks, ECCV2014
ネットワークの可視化(2)
強く反応した特徴マップの位置を遡って可視化
249
M. D. Zeiler, Visualizing and Understanding Convolutional Networks, ECCV2014
ネットワークの可視化(3)
強く反応した特徴マップの位置を遡って可視化
250
M. D. Zeiler, Visualizing and Understanding Convolutional Networks, ECCV2014
Places CNN(1)
シーン認識に特化した大規模データセット
251
250万枚・205クラスのデータ
B. Zhou, Learning Deep Features for Scene Recognition using Places Database, NIPS2015
Places CNN(2)
2つのデータセットでそれぞれ学習
252
B. Zhou, Learning Deep Features for Scene Recognition using Places Database, NIPS2015
Places CNN(3)
Image netとの違い
253
B. Zhou, Learning Deep Features for Scene Recognition using Places Database, NIPS2015
DrawNet(1)
ネットワークのどこを通ってきたかを可視化
• 高い反応をしたユニットを各層で選択
254
DrawNet(2)
ネットワークのどこを通ってきたかを可視化
255
DrawNet(3)
ネットワークのどこを通ってきたかを可視化
256
DrawNet(4)
ネットワークのどこを通ってきたかを可視化
257
注目領域の検出
特定のユニットの反応をもとに注目領域を可視化
258http://places.csail.mit.edu
ディープラーニングについて
ニューラルネットワーク
畳み込みニューラルネットワーク
リカレントニューラルネットワーク
生成モデル(オートエンコーダ)
ディープラーニングのツール
259
Recurrent Neural Networkとは?
Recurrent = 再帰型
系列データを扱うニューラルネットワーク
系列データ=音声,言語,動画像,金融相場・・・
など
データの並びに意味や規則性があるもの
D1, D2, D3, ・・・, DT
系列データの文脈や関連性を学習する
系列データの要素ごとに推論結果を出力
260
RNNの構造(1)
中間層で自分自身に再帰する経路を持つ
入力層→中間層→出力層の経路は通常のNNと等
しい
261
Elman network
その他
Jordan network
Time delay network など
RNNの時間軸方向への展開
各時刻の入力が系列データの一つの要素に相当
ある時刻tにおいて時刻0からの全入力を考慮
262
双方向性RNN
系列データを順方向と逆方向の2方向から入力
順方向のみに比べ出力の精度が高い
オンライン学習では使用できない
263
RNNの問題点
-出力に反映されるのは10時刻分程度の入力
理論上は過去全ての系列データ
-時刻を遡るほど重みの乗算回数が増加
勾配の値が 消失 または 爆発 する
Long Short Term Memory (LSTM) を用いることで解決で
きる
264
順伝播
通常のニューラルネットワークとの違い
1時刻前の中間層の出力を受け取る
265
𝑡 = 1における順伝播
入力層から中間層の流れ
通常のニューラルネットワークと同様
中間層ユニットの入力
入力:𝑥%
&
,重み:𝑤%(の内積
𝑢(
&
= ∑ 𝑤%( 𝑥%
&
%
中間層ユニットの出力
活性化関数を通した応答値
𝑧(
&
= 𝑓 𝑢(
&
266
𝑖 : 入力層ユニット
𝑗 : 中間層ユニット
𝑡 ≧ 2における順伝播
入力層から中間層の流れ
時刻𝑡の中間層ユニット𝑗の入力
二つのユニットからの出力の和
時刻𝑡の入力層ユニットの出力 : 𝑥%
&
時刻𝑡 − 1の中間層ユニットの出力 : 𝑧(
&34
時刻𝑡の中間層ユニット𝑗の出力
活性化関数を通した応答値
267
順伝播
中間層から出力層の流れ
出力層ユニットの入力
中間層ユニットの出力:𝑧(
&
,重み:𝑤(5の内積
出力層ユニットの出力
活性化関数を通した応答値
268
誤差逆伝播
誤差逆伝播手法
Back Propagation Through Time (BPTT法)
• 一般的な方法
Real Time Recurrent Learning (RTRL法)
269
誤差関数の算出方法(1)
各時刻の誤差を算出
時刻𝑡	における誤差関数
最小の𝐸 𝑤 を見つけることが目的 → 𝑤 = 𝑎𝑟𝑔𝑚𝑖𝑛> 𝐸 𝑤
E w = − A A 𝑑5
&
5&
log 𝑦5
&
𝑥; 𝑤
𝑑5
&
= [𝑑4
&
, 𝑑J
&
, ・・・, 𝑑K
&
]Mはクラス数と同じ成分数を持つベクトル
270
𝑑 : 教師データ
𝑦 : 出力データ
𝑥 : 入力データ
𝑘 : 識別クラス
誤差関数の算出方法(2)
確率的勾配降下法により誤差関数を算出
ミニバッチを適用した場合の時刻𝑡	における誤差関
数
最小の𝐸 𝑤 を見つけることが目的 → 𝑤 = 𝑎𝑟𝑔𝑚𝑖𝑛> 𝐸 𝑤
E w = −
1
𝑁
A A A 𝑑P5
&
5&P∈RS
log 𝑦5
&
𝑥P; 𝑤
𝑑P5
&
= [𝑑P4
&
, 𝑑PJ
&
, ・・・, 𝑑PK
&
]M
はクラス数と同じ成分数を持つベクトル
271
𝑡 = 1 𝑡 = 2 𝑡 = 3 𝑈4 𝑡 = 1 𝑡 = 2 𝑡 = 3 𝑈J𝑡 = 4 𝑡 = 4
𝑁 : batch size
𝑑 : 教師データ
𝑦 : 出力データ
𝑥 : 入力データ
𝑘 : 識別クラス
誤差逆伝播 BPTT(1)
時系列を遡るように誤差勾配を伝播
最後の系列データの誤差計算を終えると逆伝播開始
全ての系列データの誤差・経路をメモリに蓄積
時刻Tの出力層から中間層に伝播を最初に行う
272
1
2
2
誤差逆伝播 BPTT(2)
時刻tの中間層の誤差
「時刻tの誤差」と「時刻t+1の誤差」の和
結合重みの更新式
𝑤&W4 = 𝑤& − 𝜂
YZ
Y>[
273
𝜂 : 学習係数
𝐸 : 誤差関数
誤差逆伝播 BPTT(3)
BPTTの終了時に行うこと
蓄積した誤差・誤差経路の消去
内部状態の初期化
1つ前の学習サンプルの最後の出力が引き継がれてしまう
274
誤差逆伝播 BPTT(4)
系列データが長い場合、逆伝播を時間幅単位で行う
指定した時間幅分の系列毎にBPTTを実行
蓄積していた誤差を解放
275
誤差逆伝播 RTRL
誤差を次時刻に伝播
オンライン学習に最適
系列データを入力すると誤差が順次入力層に戻る
メモリ効率がBPTTより良い
前時刻でのユニット間の誤差を記憶しておく必要がない
276
LSTM
Long Short Term Memory
長・短期記憶と呼ばれる
RNNの欠点を解決
勾配の値を意図的に抑制
状態を記憶するメモリセルにより長期の記憶を実現
RNNより長い系列データを扱うことが可能
RNNでは10時刻程度が限界
3種類のゲートによりメモリセルを管理
忘却ゲート
入力ゲート
出力ゲート
277
RNNとLSTMの違い
中間層の構造が異なる
入力・出力層は変わらない
LSTMユニットの構造は色々なバリエーションが存
在
278
通常のRNN RNN-LSTM
LSTMユニット
LSTMユニットの入出力
𝑐&34 : 1時刻前のメモリセルの値
ℎ&34 : 1時刻前のLSTMユニットから
出力層への出力値
𝑐&	: 更新したメモリセルの値
ℎ& :	LSTMユニットから出力層への出力値
𝑎& :		時刻𝑡の入力層からの入力値
活性化関数
𝑠𝑖𝑔𝑚 = 𝜎 :	ロジスティックシグモイド関数
0~1の値を出力
𝑡𝑎𝑛ℎ : シグモイド関数(双曲線正接関数)
-1~1の値を出力
279
𝑓 𝑢 =
1
1 + 𝑒3f
𝑓 𝑢 = tanh	( 𝑢)
LSTMユニット
1時刻前のメモリセルは
忘却ゲート => 入力ゲート => 出力ゲート の順で通過
各ゲートは
0~1の値を持ち,通過する値に対して乗算する
ゲート値が0ならば通過する値を0にする(=リセット)
ゲート値が1ならば通過する値をそのままの通す
メモリセルの入力候補値
入力ゲートを通過してメモリセルに加算(メモリセルの更
新)
時刻t-1の出力層の値と、時刻tの入力層の値より算出
280
忘却ゲート
1時刻前のメモリセルを忘却するかを制御
メモリセルに0~1の値を乗算
0 : メモリセルの値を忘却(0)にして通過させる
1 : メモリセルの値をそのまま通過させる
𝑓& = 𝑠𝑖𝑔𝑚 𝑊n o 𝑎& + 𝐻n o ℎ&34 + 𝐶n o 𝑐&34 + 𝑏n
281
f : 忘却ゲート
i : 入力ゲート
o : 出力ゲート
a : 入力層からの値
𝑐̃ : メモリセルへの入力候値
入力ゲート
メモリセルに加算する入力候補値を制御
入力候補値に0~1の値を乗算
0 : 入力候補値をメモリセルに加算させない(0を加算)
1 : 入力候補値をそのままメモリセルに加算させる
𝑖& = 𝑠𝑖𝑔𝑚 𝑊% o 𝑎& + 𝐻% o ℎ&34 + 𝐶% o 𝑐&34 + 𝑏%
282
f : 忘却ゲート
i : 入力ゲート
o : 出力ゲート
a : 入力層からの値
𝑐̃ : メモリセルへの入力候値
出力ゲート
メモリセルから出力層に出力する値を制御
出力ゲートではメモリセルへの書き込みはない
入力ゲートで更新されたメモリセルに0~1の値を乗
算
0 : メモリセルの値を出力層に伝播しない(0を出力)
1 : メモリセルの値を出力層にそのまま出力させる
𝑜& = 𝑠𝑖𝑔𝑚 𝑊u o 𝑎& + 𝐻u o ℎ&34 + 𝐶u o 𝑐& + 𝑏u
283
f : 忘却ゲート
i : 入力ゲート
o : 出力ゲート
a : 入力層からの値
𝑐̃ : メモリセルへの入力候値
LSTMユニットの出力
メモリセルの入力候補値
𝑐̃& = tanh	( 𝑊ṽ[
⋅ 𝑎& + 𝐻ṽ[
⋅ ℎ&34 + 𝑏ṽ[
)
1時刻前のメモリセルの更新
															𝑐& = 𝑓& ⊚ 𝑐&34 + 𝑖& ⊚ 𝑐̃&
LSTMユニットからの出力層への出力
												ℎ& = 𝑜& ⊚ 𝑡𝑎𝑛ℎ 𝑐&
284
f : 忘却ゲート
i : 入力ゲート
o : 出力ゲート
a : 入力層からの値
𝑐̃ : メモリセルへの入力候値
LSTMユニットの出力例
1時刻前のメモリセルが各ゲートを通過した後の出力
メモリセルへの入力候補値は1に固定
285
(𝑐&34)
(忘却, 入力, 出力)
0
(𝑐&, ℎ&)
1
(𝑐&, ℎ&)
(0, 0, 0) (0, 0) (0, 0)
(0, 0, 1) (0, 0) (0, 0)
(0, 1, 0) (1, 0) (1, 0)
(0, 1, 1) (1, 1) (1, 1)
(1, 0, 0) (0, 0) (1, 0)
(1, 0, 1) (0, 0) (1, 1)
(1, 1, 0) (1, 0) (2, 0)
(1, 1, 1) (1, 1) (2, 2)
RNNを利用した自然言語処理
Recurrent neural network based language model
286
Word Embedding
入力単語をベクトル表現
ベクトル長:辞書の単語数
入力単語の要素は1
それ以外は0
過去の履歴(文脈)をベクトルとして保持
各単語の確率を出力
ソフトマックスを利用
RNNを利用した機械翻訳
Sequence to Sequence Learning with Neural
Networks
287
ソース言語の文章の単語を逐次入力
全て入力後に,ターゲット言語の文章の単語を逐次出力
4層のLSTM層を利用
RNNの画像分野への応用方法
画像においてRNN(LSTM)を使う方法は2種類
なにを系列データとするか?
Ø 時系列 : 動画像などの連続したフレーム
Ø 系列 : X, Y座標方向の連続した画素・ブロックデータ
288
時刻0
時刻t
RNNを利用した画像要約
Deep Visual-Semantic Alignments for Generating
Image Descriptions
289
画像をCNNに入力し,画像特徴を抽出
LSTM層の最初に画像特徴を与える
以降は,単語特徴から次の単語を出力する
学習時の工夫
Infer region-word alignment
・R-CNNにより物体領域の画像ベクトルを抽出
・BRNNで文章ベクトルを生成
・画像と文章のベクトルの内積が最大となるものを
学習に利用
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial
DeepLearningTutorial

Contenu connexe

Tendances

【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fields【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fieldscvpaper. challenge
 
Transformerを雰囲気で理解する
Transformerを雰囲気で理解するTransformerを雰囲気で理解する
Transformerを雰囲気で理解するAtsukiYamaguchi1
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情Yuta Kikuchi
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoderSho Tatsuno
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理Taiji Suzuki
 
【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model
【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model
【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative ModelDeep Learning JP
 
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...Deep Learning JP
 
動画認識における代表的なモデル・データセット(メタサーベイ)
動画認識における代表的なモデル・データセット(メタサーベイ)動画認識における代表的なモデル・データセット(メタサーベイ)
動画認識における代表的なモデル・データセット(メタサーベイ)cvpaper. challenge
 
Deep Learningと画像認識   ~歴史・理論・実践~
Deep Learningと画像認識 ~歴史・理論・実践~Deep Learningと画像認識 ~歴史・理論・実践~
Deep Learningと画像認識   ~歴史・理論・実践~nlab_utokyo
 
Graph convolution (スペクトルアプローチ)
Graph convolution (スペクトルアプローチ)Graph convolution (スペクトルアプローチ)
Graph convolution (スペクトルアプローチ)yukihiro domae
 
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
[DL輪読会]NVAE: A Deep Hierarchical Variational AutoencoderDeep Learning JP
 
深層生成モデルと世界モデル(2020/11/20版)
深層生成モデルと世界モデル(2020/11/20版)深層生成モデルと世界モデル(2020/11/20版)
深層生成モデルと世界モデル(2020/11/20版)Masahiro Suzuki
 
[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展Deep Learning JP
 
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)Masaya Kaneko
 
【メタサーベイ】Video Transformer
 【メタサーベイ】Video Transformer 【メタサーベイ】Video Transformer
【メタサーベイ】Video Transformercvpaper. challenge
 
深層学習の数理:カーネル法, スパース推定との接点
深層学習の数理:カーネル法, スパース推定との接点深層学習の数理:カーネル法, スパース推定との接点
深層学習の数理:カーネル法, スパース推定との接点Taiji Suzuki
 

Tendances (20)

Iclr2016 vaeまとめ
Iclr2016 vaeまとめIclr2016 vaeまとめ
Iclr2016 vaeまとめ
 
【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fields【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fields
 
Transformerを雰囲気で理解する
Transformerを雰囲気で理解するTransformerを雰囲気で理解する
Transformerを雰囲気で理解する
 
深層学習入門
深層学習入門深層学習入門
深層学習入門
 
ResNetの仕組み
ResNetの仕組みResNetの仕組み
ResNetの仕組み
 
最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情最近のDeep Learning (NLP) 界隈におけるAttention事情
最近のDeep Learning (NLP) 界隈におけるAttention事情
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
 
【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model
【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model
【DL輪読会】NeRF-VAE: A Geometry Aware 3D Scene Generative Model
 
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
 
動画認識における代表的なモデル・データセット(メタサーベイ)
動画認識における代表的なモデル・データセット(メタサーベイ)動画認識における代表的なモデル・データセット(メタサーベイ)
動画認識における代表的なモデル・データセット(メタサーベイ)
 
Deep Learningと画像認識   ~歴史・理論・実践~
Deep Learningと画像認識 ~歴史・理論・実践~Deep Learningと画像認識 ~歴史・理論・実践~
Deep Learningと画像認識   ~歴史・理論・実践~
 
Graph convolution (スペクトルアプローチ)
Graph convolution (スペクトルアプローチ)Graph convolution (スペクトルアプローチ)
Graph convolution (スペクトルアプローチ)
 
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
 
深層生成モデルと世界モデル(2020/11/20版)
深層生成モデルと世界モデル(2020/11/20版)深層生成モデルと世界モデル(2020/11/20版)
深層生成モデルと世界モデル(2020/11/20版)
 
実装レベルで学ぶVQVAE
実装レベルで学ぶVQVAE実装レベルで学ぶVQVAE
実装レベルで学ぶVQVAE
 
[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展
 
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)Neural scene representation and rendering の解説(第3回3D勉強会@関東)
Neural scene representation and rendering の解説(第3回3D勉強会@関東)
 
【メタサーベイ】Video Transformer
 【メタサーベイ】Video Transformer 【メタサーベイ】Video Transformer
【メタサーベイ】Video Transformer
 
深層学習の数理:カーネル法, スパース推定との接点
深層学習の数理:カーネル法, スパース推定との接点深層学習の数理:カーネル法, スパース推定との接点
深層学習の数理:カーネル法, スパース推定との接点
 

En vedette

ROSによるロボットソフトウェアの開発
ROSによるロボットソフトウェアの開発ROSによるロボットソフトウェアの開発
ROSによるロボットソフトウェアの開発Yuji Yamauchi
 
Stochastic Variational Inference
Stochastic Variational InferenceStochastic Variational Inference
Stochastic Variational InferenceKaede Hayashi
 
CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition
CVPR2016読み会 Sparsifying Neural Network Connections for Face RecognitionCVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition
CVPR2016読み会 Sparsifying Neural Network Connections for Face RecognitionKoichi Takahashi
 
20170819 CV勉強会 CVPR 2017
20170819 CV勉強会 CVPR 201720170819 CV勉強会 CVPR 2017
20170819 CV勉強会 CVPR 2017issaymk2
 
On the Dynamics of Machine Learning Algorithms and Behavioral Game Theory
On the Dynamics of Machine Learning Algorithms and Behavioral Game TheoryOn the Dynamics of Machine Learning Algorithms and Behavioral Game Theory
On the Dynamics of Machine Learning Algorithms and Behavioral Game TheoryRikiya Takahashi
 
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~Yuma Inoue
 
Greed is Good: 劣モジュラ関数最大化とその発展
Greed is Good: 劣モジュラ関数最大化とその発展Greed is Good: 劣モジュラ関数最大化とその発展
Greed is Good: 劣モジュラ関数最大化とその発展Yuichi Yoshida
 
sublabel accurate convex relaxation of vectorial multilabel energies
sublabel accurate convex relaxation of vectorial multilabel energiessublabel accurate convex relaxation of vectorial multilabel energies
sublabel accurate convex relaxation of vectorial multilabel energiesFujimoto Keisuke
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~Takuya Akiba
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界Preferred Networks
 
PRML輪読#14
PRML輪読#14PRML輪読#14
PRML輪読#14matsuolab
 
Fractality of Massive Graphs: Scalable Analysis with Sketch-Based Box-Coverin...
Fractality of Massive Graphs: Scalable Analysis with Sketch-Based Box-Coverin...Fractality of Massive Graphs: Scalable Analysis with Sketch-Based Box-Coverin...
Fractality of Massive Graphs: Scalable Analysis with Sketch-Based Box-Coverin...Kenko Nakamura
 
Practical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architecturesPractical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architecturesKoji Matsuda
 
ORB-SLAMを動かしてみた
ORB-SLAMを動かしてみたORB-SLAMを動かしてみた
ORB-SLAMを動かしてみたTakuya Minagawa
 
強化学習その2
強化学習その2強化学習その2
強化学習その2nishio
 
多項式あてはめで眺めるベイズ推定 ~今日からきみもベイジアン~
多項式あてはめで眺めるベイズ推定~今日からきみもベイジアン~多項式あてはめで眺めるベイズ推定~今日からきみもベイジアン~
多項式あてはめで眺めるベイズ推定 ~今日からきみもベイジアン~ tanutarou
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解くshindannin
 
LiDAR点群とSfM点群との位置合わせ
LiDAR点群とSfM点群との位置合わせLiDAR点群とSfM点群との位置合わせ
LiDAR点群とSfM点群との位置合わせTakuya Minagawa
 
画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピTakahiro Kubo
 

En vedette (19)

ROSによるロボットソフトウェアの開発
ROSによるロボットソフトウェアの開発ROSによるロボットソフトウェアの開発
ROSによるロボットソフトウェアの開発
 
Stochastic Variational Inference
Stochastic Variational InferenceStochastic Variational Inference
Stochastic Variational Inference
 
CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition
CVPR2016読み会 Sparsifying Neural Network Connections for Face RecognitionCVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition
CVPR2016読み会 Sparsifying Neural Network Connections for Face Recognition
 
20170819 CV勉強会 CVPR 2017
20170819 CV勉強会 CVPR 201720170819 CV勉強会 CVPR 2017
20170819 CV勉強会 CVPR 2017
 
On the Dynamics of Machine Learning Algorithms and Behavioral Game Theory
On the Dynamics of Machine Learning Algorithms and Behavioral Game TheoryOn the Dynamics of Machine Learning Algorithms and Behavioral Game Theory
On the Dynamics of Machine Learning Algorithms and Behavioral Game Theory
 
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~
 
Greed is Good: 劣モジュラ関数最大化とその発展
Greed is Good: 劣モジュラ関数最大化とその発展Greed is Good: 劣モジュラ関数最大化とその発展
Greed is Good: 劣モジュラ関数最大化とその発展
 
sublabel accurate convex relaxation of vectorial multilabel energies
sublabel accurate convex relaxation of vectorial multilabel energiessublabel accurate convex relaxation of vectorial multilabel energies
sublabel accurate convex relaxation of vectorial multilabel energies
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界
 
PRML輪読#14
PRML輪読#14PRML輪読#14
PRML輪読#14
 
Fractality of Massive Graphs: Scalable Analysis with Sketch-Based Box-Coverin...
Fractality of Massive Graphs: Scalable Analysis with Sketch-Based Box-Coverin...Fractality of Massive Graphs: Scalable Analysis with Sketch-Based Box-Coverin...
Fractality of Massive Graphs: Scalable Analysis with Sketch-Based Box-Coverin...
 
Practical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architecturesPractical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architectures
 
ORB-SLAMを動かしてみた
ORB-SLAMを動かしてみたORB-SLAMを動かしてみた
ORB-SLAMを動かしてみた
 
強化学習その2
強化学習その2強化学習その2
強化学習その2
 
多項式あてはめで眺めるベイズ推定 ~今日からきみもベイジアン~
多項式あてはめで眺めるベイズ推定~今日からきみもベイジアン~多項式あてはめで眺めるベイズ推定~今日からきみもベイジアン~
多項式あてはめで眺めるベイズ推定 ~今日からきみもベイジアン~
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
 
LiDAR点群とSfM点群との位置合わせ
LiDAR点群とSfM点群との位置合わせLiDAR点群とSfM点群との位置合わせ
LiDAR点群とSfM点群との位置合わせ
 
画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ
 

Similaire à DeepLearningTutorial

機械学習と深層学習の数理
機械学習と深層学習の数理機械学習と深層学習の数理
機械学習と深層学習の数理Ryo Nakamura
 
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1hirokazutanaka
 
【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター 【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター Unity Technologies Japan K.K.
 
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編Unity Technologies Japan K.K.
 
一般化線形混合モデル isseing333
一般化線形混合モデル isseing333一般化線形混合モデル isseing333
一般化線形混合モデル isseing333Issei Kurahashi
 
2015年9月18日 (GTC Japan 2015) 深層学習フレームワークChainerの導入と化合物活性予測への応用
2015年9月18日 (GTC Japan 2015) 深層学習フレームワークChainerの導入と化合物活性予測への応用 2015年9月18日 (GTC Japan 2015) 深層学習フレームワークChainerの導入と化合物活性予測への応用
2015年9月18日 (GTC Japan 2015) 深層学習フレームワークChainerの導入と化合物活性予測への応用 Kenta Oono
 
ディープニューラルネット入門
ディープニューラルネット入門ディープニューラルネット入門
ディープニューラルネット入門TanUkkii
 
17ゼロから作るディープラーニング2章パーセプトロン
17ゼロから作るディープラーニング2章パーセプトロン17ゼロから作るディープラーニング2章パーセプトロン
17ゼロから作るディープラーニング2章パーセプトロンKeiichirou Miyamoto
 
PATTERN RECOGNITION AND MACHINE LEARNING (1.1)
PATTERN RECOGNITION AND MACHINE LEARNING (1.1)PATTERN RECOGNITION AND MACHINE LEARNING (1.1)
PATTERN RECOGNITION AND MACHINE LEARNING (1.1)Yuma Yoshimoto
 
Casual learning machine learning with_excel_no5
Casual learning machine learning with_excel_no5Casual learning machine learning with_excel_no5
Casual learning machine learning with_excel_no5KazuhiroSato8
 
20170422 数学カフェ Part1
20170422 数学カフェ Part120170422 数学カフェ Part1
20170422 数学カフェ Part1Kenta Oono
 
第2回 メドレー読書会
第2回 メドレー読書会第2回 メドレー読書会
第2回 メドレー読書会Toshifumi
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化Miyoshi Yuya
 
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1hirokazutanaka
 
"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz...
"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz..."Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz...
"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz...nkazuki
 
NN, CNN, and Image Analysis
NN, CNN, and Image AnalysisNN, CNN, and Image Analysis
NN, CNN, and Image AnalysisYuki Shimada
 

Similaire à DeepLearningTutorial (20)

機械学習と深層学習の数理
機械学習と深層学習の数理機械学習と深層学習の数理
機械学習と深層学習の数理
 
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
 
【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター 【Unity道場スペシャル 2017札幌】乱数完全マスター
【Unity道場スペシャル 2017札幌】乱数完全マスター
 
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
【Unity道場スペシャル 2017京都】乱数完全マスター 京都編
 
一般化線形混合モデル isseing333
一般化線形混合モデル isseing333一般化線形混合モデル isseing333
一般化線形混合モデル isseing333
 
2015年9月18日 (GTC Japan 2015) 深層学習フレームワークChainerの導入と化合物活性予測への応用
2015年9月18日 (GTC Japan 2015) 深層学習フレームワークChainerの導入と化合物活性予測への応用 2015年9月18日 (GTC Japan 2015) 深層学習フレームワークChainerの導入と化合物活性予測への応用
2015年9月18日 (GTC Japan 2015) 深層学習フレームワークChainerの導入と化合物活性予測への応用
 
ディープニューラルネット入門
ディープニューラルネット入門ディープニューラルネット入門
ディープニューラルネット入門
 
Gurobi python
Gurobi pythonGurobi python
Gurobi python
 
画像処理の高性能計算
画像処理の高性能計算画像処理の高性能計算
画像処理の高性能計算
 
17ゼロから作るディープラーニング2章パーセプトロン
17ゼロから作るディープラーニング2章パーセプトロン17ゼロから作るディープラーニング2章パーセプトロン
17ゼロから作るディープラーニング2章パーセプトロン
 
PATTERN RECOGNITION AND MACHINE LEARNING (1.1)
PATTERN RECOGNITION AND MACHINE LEARNING (1.1)PATTERN RECOGNITION AND MACHINE LEARNING (1.1)
PATTERN RECOGNITION AND MACHINE LEARNING (1.1)
 
Casual learning machine learning with_excel_no5
Casual learning machine learning with_excel_no5Casual learning machine learning with_excel_no5
Casual learning machine learning with_excel_no5
 
20170422 数学カフェ Part1
20170422 数学カフェ Part120170422 数学カフェ Part1
20170422 数学カフェ Part1
 
第2回 メドレー読書会
第2回 メドレー読書会第2回 メドレー読書会
第2回 メドレー読書会
 
Coqチュートリアル
CoqチュートリアルCoqチュートリアル
Coqチュートリアル
 
実践データ分析基礎
実践データ分析基礎実践データ分析基礎
実践データ分析基礎
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
 
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
 
"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz...
"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz..."Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz...
"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puz...
 
NN, CNN, and Image Analysis
NN, CNN, and Image AnalysisNN, CNN, and Image Analysis
NN, CNN, and Image Analysis
 

Plus de Takayoshi Yamashita

Plus de Takayoshi Yamashita (13)

AI_DL_Education
AI_DL_EducationAI_DL_Education
AI_DL_Education
 
20190804_icml_kyoto
20190804_icml_kyoto20190804_icml_kyoto
20190804_icml_kyoto
 
MIRU_Preview_JSAI2019
MIRU_Preview_JSAI2019MIRU_Preview_JSAI2019
MIRU_Preview_JSAI2019
 
MIRU2018 tutorial
MIRU2018 tutorialMIRU2018 tutorial
MIRU2018 tutorial
 
RL_Tutorial
RL_TutorialRL_Tutorial
RL_Tutorial
 
UsingChainerMN
UsingChainerMNUsingChainerMN
UsingChainerMN
 
Tutorial-DeepLearning-PCSJ-IMPS2016
Tutorial-DeepLearning-PCSJ-IMPS2016Tutorial-DeepLearning-PCSJ-IMPS2016
Tutorial-DeepLearning-PCSJ-IMPS2016
 
DeepLearningDay2016Summer
DeepLearningDay2016SummerDeepLearningDay2016Summer
DeepLearningDay2016Summer
 
IEEE ITSS Nagoya Chapter
IEEE ITSS Nagoya ChapterIEEE ITSS Nagoya Chapter
IEEE ITSS Nagoya Chapter
 
DeepLearningDay2016Spring
DeepLearningDay2016SpringDeepLearningDay2016Spring
DeepLearningDay2016Spring
 
NVIDIA Seminar ディープラーニングによる画像認識と応用事例
NVIDIA Seminar ディープラーニングによる画像認識と応用事例NVIDIA Seminar ディープラーニングによる画像認識と応用事例
NVIDIA Seminar ディープラーニングによる画像認識と応用事例
 
ICIP2014 Presentation
ICIP2014 PresentationICIP2014 Presentation
ICIP2014 Presentation
 
MIRU2014 tutorial deeplearning
MIRU2014 tutorial deeplearningMIRU2014 tutorial deeplearning
MIRU2014 tutorial deeplearning
 

DeepLearningTutorial