Upload
yusuke-iwasawa
View
156
Download
2
Embed Size (px)
Citation preview
• 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つから、アナロジーを生成可能
3
Test Analogies
半教師有り学習• ラベル有りデータ:少ない、ラベル付コストは一般に高い • ラベル無しデータ:多い • ->学習の段階でラベルなしデータを使えれば良い学習ができるのでは?
4
http://pages.cs.wisc.edu/~jerryzhu/pub/sslicml07.pdf
一般に1. Self Thought Learning, 2. グラフベースの方法, 3. 多様体学習による方法, 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によって生成されている�
5
3つのモデルを提案、これらをNNで表現
M1, M2, M1+M2をグラフィカルモデルで書く
6
M1 M2
M1+M2
z1
z2 y
x
z
x z1
z y
p(x, y) = p(z)p(x|z) p(x, y, z) = p(y)p(z)p(x|y, z)
p(x, y, z1, z2) = p(y)p(z2)p(z1|y, z2)p(x|z1)
M1
M2}
}
M1をNNで表現
• zを入力にとり、確率pθ(x|z)を出力にするNNを考える
• zはどこからやってくるのか • pθ(z|x)は解析的に解けない
7
………
※1Neural Network (パラメタ※2θ)
………
pθ(x|z)
z~pθ(z)
※1岩澤理解ではNNの部分はどうなっていてもOK。Dropoutなどのテクニックも使える ※2パラメタθ=(W1, W2, b1, b2)など
z
x
p(x, y) = p(z)p(x|z)
グラフィカルモデル NNで生成モデル
M1をNNで表現: Variational Autoencoderを利用
• VAE Approach: pθ(z|x) を近似するqΦ(z|x)を出力するNNを考える(推論モデル)
• 生成モデルのNNと推論モデルのNN(パラメタθとΦ)を同時に学習する
8
………
Neural Network (パラメタθ)
………
pθ(x|z)
生成モデル
………
Neural Network (パラメタΦ)
………
Observationsx
qΦ(z|x)
推論モデル
z~pθ(z)
M1をNNで表現:アルゴリズム全体像
9
2. qΦ(z|x)に従ってzを生成1. 学習に使う観測値の選択
3. Objective4. Gradientの計算5. パラメタの更新mini-batch SGD + AdaGrad (Duchi et al., 2010)
生成モデルの訓練
識別モデルの訓練latent variable zを使った通常の分類器の学習 ex) SVM, KNN
M1をNNで表現: Objective
周辺尤度を最大化する代わりに(無理だから)その変分下界(Variational Bound)を最大化
10
周辺尤度最大化
Reconstruction Error Regulations※理解甘いので間違ってるかも知れません 式を直接解釈すると、qΦ(z|x)がpθ(z)と出来るだけ同じになるようにするという意味合い
Variational Bound
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を利用
12
………
※Neural Network (パラメタθ)
pθ(x|z)
生成モデル
………
※Neural Network (パラメタΦ)
Observations x
qΦ(y|x)
推論モデル
• 基本的にM1と同じでVariational Autoencoderを利用すればできる • 基本的な流れも同じ
…qΦ(z|x)
…z ~ pθ(z)
…y~ pθ(y)
…
M2をNNで表現: ObjectiveをM1と比較
14
M1: J(x)がObjective
M2: Jα(x)がObjective
1. ラベル有りデータとラベルなしデータ別々にObjectiveを定義して足す
2. ラベル有りデータについては
1
ラベル無しデータ※ラベル無しデータではyも隠れ変数だとみなす以外は同じ ※M1と同じ形(M1のKLダイバージェンスを元に直せば)なので論文参照
パラメタ ラベル有りデータに対する分類誤差
ラベル有りデータ
M2をNNで表現: Gradientの計算をM1と比較
• SGD + AdaGradを使うのは同じ
15
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))
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(ラベルを固定)
• テストデータXから2次元の隠れ変数yを学習 • zを-5 ~ 5まで変化させてxを生成 • zが近いと筆跡が似ている(zがstyleのようなものを捉えている)
20
z1
z2
定性評価2(zを固定)
• 訓練データDで学習済みのqΦ(z|x)と、あるテストデータxを使ってzを固定 • クラスyを色々いじってxを生成 • MNIST, SVHNともにstyleのようなものが見える
21
Test Analogies AnalogiesTest
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/#variational-
autoencoders • 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