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
© Copyright 2024 ExpyDoc