19
Semi-Supervised Learning with Ladder Networks DL Hacks Paper Reading, 2016.1.7 Yusuke IWASAWA

[DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

Embed Size (px)

Citation preview

Page 1: [DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

Semi-Supervised Learning with Ladder

NetworksDL Hacks Paper Reading, 2016.1.7 Yusuke IWASAWA

Page 2: [DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

書誌情報• Proc. NIPS2015 and arXiv• arXiv の方が若干詳しいのでオススメ

• Authours: • Antti Ramsus, Harri Valpola, Mikko Honkala, Mathias Berglund,

and Tapani Raiko• #citations: 10• 選定理由• 精度が良い• 半教師、教師なし学習界隈の戦いがすごい

Page 3: [DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

Abstract• Ladder Network [Valpola, 2015] を応用した Deep で Semi-

supervised なモデルを提案• 提案手法は、階層的潜在空間モデルを denoising function の学習を通して効率的に学習可能• 精度がとても良い• MNIST と CIFAR-10 の半教師あり学習で state-of-the-art• Permutation-MNIST でも state-of-the-art

Page 4: [DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

Introduction: Motivations• 教師ありは強力、しかし教師なしデータも有効活用したい• もっとも単純な方法の 1 つは潜在空間モデルを利用すること• Ex. Auto Encoder で入力データを潜在空間に飛ばす +Fine Tuning

• ただし、単層の潜在空間だと表現力足りない-> Deepにしたい• Deep にする方法では、 sDA + Fine Tuning がもっとも一般的• sDA ではタスクを解くのに不必要な情報も保存してしまう• Ex. 位置などのピクセルレベルの情報

-> Deepな潜在空間モデルを解く別の方法が必要

Page 5: [DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

Introduction: 提案手法Semi-Supervised

Ladder Network

まず [Valpola, 2015] を参考にこいつを説明します

Page 6: [DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

Ladder Network: 概要• 潜在空間モデルを

Unsupervised に学習する方法• ハシゴみたいな形してるので

Ladder Network• sDA と比較すると、 Encoderと Decoder の間に

Connection が張られている• 青 : Encoder• オレンジ : Decoder

Cited From “From Neural PCA to Deep Unsupervised Learning”

Page 7: [DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

Ladder Network: 何をするのか• 結論から言えば、 Denoising Source Separation をする• これ自体 2005 年の論文で発表された方法• 複数の情報が混ざった観測信号から元の複数の情報源を取り出す方法• 40 ページある• Source separation も Representation learning も入力をうまく分解するという観点では同じ(岩澤解釈)

• DSS: ノイズを加えた潜在変数から加える前の潜在変数を再構成する• sDA: ノイズを加えた入力から 1 つ前の層を再構成する

Page 8: [DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

Ladder Network: 何をするのか(図示)•各層でノイズ付きの h~(l) からノイズを入れる前の h(l)を再構成( h^(l) )• 誤差関数 C(l) は 2 乗和誤差• 誤差関数の重み付き和を小さくするような g(l) を学習する• C = Σλ(l) C(l)

Page 9: [DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

Ladder Network: 何をしてるのか• Denoising function g の学習により階層的潜在変数モデルを学習 • [Bengio, 2013]

denoising function がわかれば確率密度を推定できる• 良い g を求めることと良いモデル(分布の良い近似)を得ることは本質的に近い関係にある

図 : Denoising の周辺尤度の関係

P(z)

P(z~)

g

Page 10: [DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

Ladder Network vs. Auto Encoder• Auto Encoder (複数レイヤを一気に学習)• そもそも学習が難しい• 学習が遅い

• Auto Encoder ( Layer Wise )• 細部まで再現しようとする(顔のような概念を獲得しても Reconstruction Error は下がらない)• Deep にすると上の層で誤差が蓄積する

• Ladder Network• 上の層はより抽象的な情報だけに集中できる(細部の再構築は下の層に任せることができる)

Page 11: [DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

Semi-supervised Ladder Net• ラベル有りデータについてはその情報を利用する• 純粋にクラス分類コストを追加して学習• C = Ce + Σλ(l) Cd

(l)

• 学習には Corrupted Encoder (左)を利用• 予測では Clean

Encoder (右)を利用する CorruptedEncoder Decoder Clean

Encoder

Ce

Page 12: [DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

Implementation of the Model1. Encoder を訓練※( Corrupted と Clean の 2 種類)• MLP でも CNN でも RNN でも良い• 2 種類といっても重みは共有してるので実際は 1 種類2. 各層で条件付き分布 を求める• 今回の実験ではガウス分布を仮定してそのパラメタを NN で求める

3. 2. の条件付き分布に乗ったノイズをうまくキャンセルするような関数 g を定義する• 次スライドで話します

4. Fully-labeled or Semi-supervised な設定でネットワーク全体を SGD で学習する※ 論文に” 1. Train any standard feedforward neural networks” と書かれているのでたぶん先に学習しておくんじゃないかなと思いますがちょっと微妙です

Page 13: [DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

Denoising function g• 理想的な g の形は分布の形に依存• 左カラム:分布の形• 右カラム:理想的な g の形• 上から順に、次の 3 つの例• Super-Gaussian• Sub-Gaussian• Gaussian

• 今回は Gaussian を使うので線形•具体的な式はちょっと複雑になるので実装したい人は論文参照

Page 14: [DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

Γmodel: Special Case of Ladder Network• 一番上の層だけ再構築• Decoder がいらなくなるので実装が楽• 結果で示すようにこれでもまぁまぁ精度良い

黒枠の中をそっくり無くす

Page 15: [DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

Experimental Setup• Datasets: Permutation MNIST, MNIST, CIFAR-10• Encoder: MLP と CNN• Baselines: いろいろ• Training: • Adam(lr=0.002)• Lr scheduling (linearly decreasing to zero at final epoch)• Minibatch size = 100

• The source codes:• https://github.com/arasmus/ladder

Page 16: [DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

Results: Permutation MNIST (MLP)

• 使ったラベル数によらず State-of-the-art• 特にラベル数が少ない場合に良い精度(エラー率で VAE の 1/3 )

Page 17: [DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

Results: MNIST (CNN)

• State-of-the-art• Full Labeled の評価がないのが若干気になる( Full Labeled なら普通に CNN使えばいい話な気もする

Page 18: [DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

Results: CIFAR10 (CNN)

• ラベルが限られてる場合は普通の CNN より良い•特に少数ラベルの場合高精度

Page 19: [DL Hacks輪読] Semi-Supervised Learning with Ladder Networks (NIPS2015)

Conclusion and Future Direction• 複数の半教師ありタスクで state-of-the-art なモデルを提案• 今後は次の方針で進める予定• どのような Encoder+Decoder の組み合わせが適切か• 時系列方向での発展