24
Semi-supervised Learning with Deep Generative Models Yusuke Iwasawa DL Hacks 輪読 2015.04.21

DL Hacks輪読 Semi-supervised Learning with Deep Generative Models

Embed Size (px)

Citation preview

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つから、アナロジーを生成可能

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で表現: アルゴリズム全体像をM1と比較

• 左:M1(説明済み)、右:M2 • yの認識モデルまで同時に学習できる

13

zとyを生成zを生成

M2

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))

M1+M2のアルゴリズム全体

• M1の学習部分のうち、yの識別モデルの学習部分をM2のアルゴリズムに 置き換える

• (変数は適宜読み替える)

16

yの識別モデルの学習

置き換え

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