+
Regularization With Stochastic Transformations and
Perturbations for Deep Semi-Supervised Learning	
工学系研究科	システム創成学専攻	加藤・中村研
M1? 岡本 弘野		
17/02/09
+
Introduction	
n  ラベルなしデータの適用
n  convnetは大量のパラメタがあり、大量の学習データがないと過学
習する
n  しかし、大量のデータセットをつくるのはコストがかかる
n  一方で、ラベルなしデータは集めやすく、convnetの性能をあげる
ために利用したい
n  ランダム化
n  確率的勾配降下法、ドロップアウト、データのランダムな変形
n  同じデータから、ランダム化によって、違う出力を生み出すことを
利用する
17/02/09	
1
+
Related Work	
n  古典的なアプローチ
n  データとラベルの結合分布のモデル化
n  GMM
n  HMM
n  ラベルありデータとなしデータのマージン最大化
n  TSVM
n  S3VM
n  これらの半教師学習はサンプル間の類似度を利用
n  あるラベルなしデータがAのラベルデータに似ていれば、そのデー
タはAとみなす
17/02/09	
2
+
Related Work	
n  半教師deep learning
n  ConvNetの性能をあげるためにラベルなしデータをつかう
n  convnetのフィルターをpretrainするなど
n  ほかの論文でのアプローチ
n  predictive sparse decomposition
n  resion embedding
n  ladder networks	
17/02/09	
3
+
Method	
n  教師なしloss関数を定義
n  Transformation/stability loss function
n  変化/安定損失関数
n  同じデータによる違う出力のペアの差の二乗和を最小化する
n  勾配降下法で最適化
17/02/09	
4
+
Method	
n  idea
n  どんなランダムなデータ変形(線形、非線形変換)にたいしても、モ
デルの予測は同じであるべき
17/02/09	
5
+
Method	
n  idea
n  どんなネットワークでも(dropoutやランダムなpooling)、モデルの
予測は同じであるべき	
17/02/09	
6
+
Method	
n  もう一つ、教師なし学習のloss関数を定義
n  Mutual Exclusivity loss function
n  相互排他的損失関数
n  決定境界をどんなサンプルからもできるだけ遠い所に置こうとす
る。結果的に、密度の低いところに決定境界が置かれる		
17/02/09	
7
+
Method	
n  最終的に、教師なし損失関数と教師あり損失関数の和を最小化
すればよい	
17/02/09	
8
+
Experiments and Results	
n  MNIST
n  100サンプルでstate of the art
n  SVHN and NORB
n  CIFAR10
n  state of the art
n  CIFAR100
n  state of the art
n  ImageNet
17/02/09	
9
+
Experiments and Results	
n  MNIST
n  100サンプルではstate of the art
n  全ラベルでは、誤差0.24が最高精度[40]
17/02/09	
10
+
Experiments and Results	
n  SVHN and NORB
17/02/09	
11
+
実際に実装してみた(ができなかっ
た)	
n  MNISTでやってみた
n  データオーグメンテーションによるlossTS関数の最小化
n  lossME関数の最小化
n  クロスエントロピーによるラベルあり損失関数の最小化
n  tensorflowをつかった
n  一部kerasを使っている
n  できなかったが、誰かアドバイスをくれることを願ってgithub
にあげた
n  https://github.com/HironoOkamoto/hoge/blob/master/semi
%20supervised%20mnist%20tensorflow-12.ipynb
17/02/09	
12
+
ConvNet	
n  簡単のため、Lenetをつかった
n  batch normalizationも	
17/02/09	
13
+
17/02/09	
14
n  データ増やすのはkerasが楽
だった
n  Tの部分
変形/安定損失関数
+
Fractional Max-Pooling	
n  ランダムにプーリングする部分
n  tf.nn.fractional_max_pool
n  ここは時間の関係上実装していなかったが、おそらく一番重要
n  jの部分
n  https://arxiv.org/abs/1412.6071
n  ドロップアウト	
17/02/09	
15
+
相互排他的損失関数	
n  愚直に実装した
17/02/09	
16
+
損失関数	
n  ラベルありデータに関しては、クロスエントロピー	
n  loss_label =
tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=outp
ut, labels=y))
	
n  loss = loss_label + lam1 * loss_unlabel_TS + lam2 * loss_unlabel_ME	
17/02/09	
17

[DL輪読会]Regularization with stochastic transformations and perturbations for deep semi supervised learning