元論文
Distributional Smoothing with Virtual Adversarial Training
深層学習で,半教師あり学習に興味を持ったので,ここに書いてあったコードを動かそうとしたら,バージョンの関係で動かなかったので,chainerの勉強がてら5.0.0で動くようにしました
(深層学習関係のライブラリはアップデートが早すぎる...)
元々の記事がGPU onlyだったので,GPUを積んだマシンでしか動きません(CPUで動かすとかなり時間を食うのでCPU版を実装する気が無いというのはわかる...)
実装例
VATLossClassifierはchainer.links.Classifierの中身をコピーして
イテレータはラベル付きのものとラベル無しのものの二つを用意して,それを共にVATUpdaterに食わせました
実行例
python train_mnist_vat.py -g [gpuid] -e 25000
実行結果
手元の環境(Windows 10 + Nvidia GTX 1080 Ti)で,大体96~98%くらいのaccuracy
メモ
元論文ではAdamの学習率は0.002って書いてあったけど,0.0001にした方が収束しました