Semi-supervised Learning with Deep Generative

Semi-supervised Learning with
Deep Generative Models
Yusuke Iwasawa
DL Hacks 輪読 2015.04.21
•
•
NIPS2014(非引用:4)
選定理由
• MNISTデータでStyle(筆跡みたいなもの)を学習している結果を見て
• 人間行動でも同じこと大事なんじゃないかなーと
• Semi-Supervised Learningというよりは、Deep Generative Modelsの方に興味
Summary
•
•
•
変分AutoEncoder(ICML2014, ICLR2014)を半教師あり学習に有効に
利用するためのモデルを提案
3つのデータセットで定量評価(※(%f.2->%f.2)はエラー率の変化)
• MNIST(8.10->3.33)
• SVHN(66.55->36.02)
• NORB(26.00->18.79)
テストデータ1つから、アナロジーを生成可能
Test
Analogies
3
半教師有り学習
•
•
•
ラベル有りデータ:少ない、ラベル付コストは一般に高い
ラベル無しデータ:多い
->学習の段階でラベルなしデータを使えれば良い学習ができるのでは?
http://pages.cs.wisc.edu/~jerryzhu/pub/sslicml07.pdf
一般に1. Self Thought Learning, 2. グラフベースの方法, 3. 多様体学習による方法, 4. 生成モデルを用いた方法,がある
本論文はこれ
4
生成モデルを半教師有り学習に活用するモデル
•
M1: Latent Discriminative Model
• 観測値xが隠れ変数z(連続値)によって生成されている
• P(z)とP(x|z)を学習する
•
M2: Generative Semi-Supervised Model
• 観測値xが隠れ変数z(連続値)と隠れクラス変数yによって生成されている
• p(y), P(z), P(x|y, z)を学習する
•
M1+M2: Stacked Generative Semi-Supervised Model
• M1とM2を重ねたもの
• xが隠れ変数z1に生成されており(M1)、
• その隠れ変数z1が隠れ変数z2とクラス変数yによって生成されている�
3つのモデルを提案、これらをNNで表現
5
M1, M2, M1+M2をグラフィカルモデルで書く
M1
M2
z
z
y
z1
x
p(x, y) = p(z)p(x|z)
p(x, y, z) = p(y)p(z)p(x|y, z)
M1+M2
z2
y
z1
} M2
} M1
x
p(x, y, z1, z2) = p(y)p(z2)p(z1|y, z2)p(x|z1)
6
M1をNNで表現
グラフィカルモデル
NNで生成モデル
………
z pθ(z)
z
x
※1Neural Network
(パラメタ※2θ)
p(x, y) = p(z)p(x|z)
………
•
•
zを入力にとり、確率pθ(x|z)を出力にする
NNを考える
zはどこからやってくるのか
• pθ(z|x)は解析的に解けない
pθ(x¦z)
※1岩澤理解ではNNの部分はどうなっていて
もOK。Dropoutなどのテクニックも使える
※2パラメタθ=(W1, W2, b1, b2)など
7
M1をNNで表現: Variational Autoencoderを利用
•
•
VAE Approach: pθ(z|x) を近似するqΦ(z|x)を出力するNNを考える
(推論モデル)
生成モデルのNNと推論モデルのNN(パラメタθとΦ)を同時に学習する
qΦ(z|x)
Observations
x
推論モデル
生成モデル
………
………
Neural Network
Neural Network
(パラメタΦ)
(パラメタθ)
………
………
z pθ(z)
pθ(x¦z)
8
M1をNNで表現:アルゴリズム全体像
生成モデルの訓練
1. 学習に使う観測値の選択
2. qΦ(z¦x)に従ってzを生成
3. Objective
4. Gradientの計算
5. パラメタの更新
mini-batch SGD + AdaGrad
(Duchi et al., 2010)
識別モデルの訓練
latent variable zを使った
通常の分類器の学習
ex) SVM, KNN
9
M1をNNで表現: Objective
周辺尤度最大化
Variational Bound
Reconstruction Error
Regulations
※理解甘いので間違ってるかも知れません
式を直接解釈すると、qΦ(z|x)がpθ(z)と出来るだけ
同じになるようにするという意味合い
周辺尤度を最大化する代わりに(無理だから)
その変分下界(Variational Bound)を最大化
10
M1をNNで表現: Gradientの計算
•
•
•
•
Stochastic Gradient Variational Bayes(SGVB)やStochastic
BackProp(SBP)と呼ばれる手法を利用
• ICLR2014, ICML2014で提案
Keyとなるのは次のReparameterisation
• pθ(z) ~ N (z|0, I)
• qΦ(z|x) ~ N(z|uΦ(x), diag(σΦ2(x)))
• つまり、z = µz(x) + σz(x) ϵz where ϵz = N (0, 1)
こうすると、KLダイバージェンス(第2項)については解析的に計算できて、
対数尤度の部分(第1項)については勾配が計算できる
11
M2をNNで表現: M1と同じくVariational Autoencoderを利用
•
•
基本的にM1と同じでVariational Autoencoderを利用すればできる
基本的な流れも同じ
推論モデル
生成モデル
qΦ(y|x)
qΦ(z|x)
z ~ pθ(z)
y~ pθ(y)
…
…
…
…
※Neural Network
※Neural Network
(パラメタΦ)
(パラメタθ)
………
Observations x
………
pθ(x¦z)
12
M2をNNで表現: アルゴリズム全体像をM1と比較
zを生成
zとyを生成
M2
•
•
左:M1(説明済み)、右:M2
yの認識モデルまで同時に学習できる
13
M2をNNで表現: ObjectiveをM1と比較
M1: J(x)がObjective
M2: Jα(x)がObjective
1. ラベル有りデータとラベルなしデータ別々にObjectiveを定義して足す
ラベル有りデータ ラベル無しデータ
※ラベル無しデータではyも隠れ変数だとみなす以外は同じ
※M1と同じ形(M1のKLダイバージェンスを元に直せば)なので論文参照
2. ラベル有りデータについては
1
パラメタ
ラベル有りデータに対する分類誤差
14
M2をNNで表現: Gradientの計算をM1と比較
M1: zとqΦ(z¦x)がガウス分布に従うと仮定
•
•
•
pθ(z) ~ N (z|0, I)
qΦ(z|x) ~ N(z|uΦ(x), diag(σΦ2(x)))
つまり、z = µz(x) + σz(x) ϵz where ϵz = N (0, 1)
M2: zとqΦ(z¦x)がガウス分布に従うと仮定
•
•
•
•
pθ(z) ~ N (z|0, I)
qΦ(z|x) ~ N(z|uΦ(x), diag(σΦ2(x)))
qΦ(y|x) ~ Cat(y|πΦ(x))
SGD + AdaGradを使うのは同じ
15
置
き
換
え
M1+M2のアルゴリズム全体
yの識別モデルの学習
•
•
M1の学習部分のうち、yの識別モデルの学習部分をM2のアルゴリズムに
置き換える
(変数は適宜読み替える)
16
Computational Complexity
•
•
auto-encoderやNNをベースにした他のアプローチより計算量が少ない
• 既存の有力な手法と比べて最も少ない計算量である
• (よく調べてないので詳しい方教えてください)
かつ、完全な確率モデルを提供している
• いろんな推論を行える(あとで示すように、アナロジーみたいなものも
出せる)
17
評価実験
•
•
定量的評価
• ラベル有りデータ数を制限した上でMNIST, SVHN, NORBで評価
定性的評価:
• テストデータXから2次元の隠れ変数yを学習、ラベルyを固定して様々な
ZからX|y, zを生成
• テストデータXからZ|Xの推論モデルを構築し、あるテストデータxに対する
z推論、様々なラベルyでX|y,zを生成
18
定量評価
•
•
•
いずれのデータセットでも提案手法(特にM1+M2)が良い精度
• MNISTだとラベル100枚だけでも3.33%のエラー率(既存で最も
良かったのはAtlasRBF8.10%.AtlasRBFはECML2014で提案)
隠れ変数は50に固定、活性化関数をsoftplus関数を利用。M1についてはUnit数
600の隠れ層を2層、M2についてはUnit数500の隠れ層を1層
SVHN, NORBでは入力をPCAに入れて白色化
19
定性評価1(ラベルを固定)
z1
z2
•
•
•
テストデータXから2次元の隠れ変数yを学習
zを-5 ~ 5まで変化させてxを生成
zが近いと筆跡が似ている(zがstyleのようなものを捉えている)
20
定性評価2(zを固定)
Test
•
•
•
Analogies
Test
Analogies
訓練データDで学習済みのqΦ(z|x)と、あるテストデータxを使ってzを固定
クラスyを色々いじってxを生成
MNIST, SVHNともにstyleのようなものが見える
21
Discussion and Conclusion
•
•
•
半教師有り学習に有効なNNを利用した生成モデルを提案
• 変分Autoencoderを利用
提案モデルは、既存手法と同程度の計算コストでより良い精度を出せる
次の様な課題がある
1. Convolutional Neural Networkの枠組みをどう入れるか
2. クラスの数が増えると、計算量が増える
22
参考文献
•
•
論文
• Kingma, Max Welling, “Auto-Encoding Variational Bayes”, ICLR2014
• D. J. Rezende, S. Mohamed, D. Wiestra, “Stochastic Backpropagation and
Approximate Inference in Deep Generative Models”, ICML2014
Webサイト
• NIPS2014読み会で深層半教師あり学習の論文を紹介しました: http://
beam2d.github.io/blog/2015/01/24/ssl-deep/
• PRML8章解説: http://www.slideshare.net/ruto5/chap08-1-12
• Denosing Autoencoderとその一般化、http://beam2d.github.io/blog/
2013/12/23/dae-and-its-generalization/
• Morphing Faces: http://vdumoulin.github.io/morphing_faces/#variationalautoencoders
• Deep Learningによる医用画像読影支援:�http://www.slideshare.net/
issei_sato/deep-learning-41310617
• Variational Autoencoder参考サイト: https://
ift6266h15.files.wordpress.com/2015/04/20_vae.pdf
• 半教師あり学習: http://www.slideshare.net/syou6162/ss-3001118
• 多様体学習について: http://d.hatena.ne.jp/Zellij/20131127/p1
23
Variational Autoencoderを利用したDemo、関連するVideo、実装
•
•
•
Demo
• Morphing Faces: http://vdumoulin.github.io/morphing_faces/
online_demo.html
Video
• Deep Learning Lecture 14: Karol Gregor on Variational
Autoencoders and Image Generation: https://
www.youtube.com/watch?v=P78QYjWh5sM
実装
• 本論文の実験リポジトリ: https://github.com/dpkingma/nips14-ssl
24