論文
著者
Alec Radford, Luke Metz, Soumith Chintala
indico Research, Facebook AI Research
背景
ラベルなしのデータセットから特徴を学習する教師なし学習は近年注力されている分野で、とくにコンピュータビジョンの画像分類(image classification)の分野等が注目されている。 従来では、k-meansのようなクラスタリングのあとで、分類の評価値を調整する方法が一般的であった。 中でも階層化クラスタリングが、強力な画像表現を学習したモデルとして挙げられる。
また、オートエンコーダを学習させる方法がある。 オートエンコーダによって画像をコードに変換し、コードから画像を再構築する(デコード)プロセスを学習させる。 これにより、最適な特徴抽出が可能になる。
近年の先行研究では、教師なし学習による画像分類では、GAN(Generative Adversarial Networks)という手法が提案されている。 しかし、GANは学習が不安定であることが指摘されている。 しばしばおかしな出力を出すことが知られており、GAN(特にマルチレイヤのGAN)は限定された研究にとどまっている。 本論文ではDCGANを提案し、GANによる学習によって構築されたDiscriminatorとGeneratorを教師あり学習として活用できることを示す。
目的とアプローチ
目的
- 教師なし学習による画像分類の精度の向上
アプローチ
- DCGAN(Deep Convolutional GAN)の使用
提案手法
本論文の提案手法であるDCGANの要点を下記に示す。
- 畳み込みにおけるpoolingの排除
- バッチノーマライゼーションによるGenerator学習の効率化
- 全結合層の排除
- Generatorの出力層にtanh関数を採用
- Discriminatorの全ての活性化関数をLeakyReLUに変更
ネットワーク構成
その他
初期化
全てのネットワークの重みの初期値は下記の正規分布に従うものとする。
- 平均:0
- 標準偏差:0.02
LeakyReLU
Leak部の傾き:0.2
最適化
- Adam Optimizer
- Learning rate:0.0002
- mometam term:0.5
評価
CIFER-10
CIFER-10ベンチマークでのAccuracyを下記に示す。
比較対象のExemplar CNNより精度が劣るものの、同じ教師なし学習の3層k-meansより高い精度を達成している。
SVHN
SVHNのerror rateを下記に示す。
比較対象のモデルと比べて、最も低いerror rateを達成している。
Discriminator
DiscriminatorのFilterの学習結果を下記に示す。
Generator
サンプルの画像とGeneratorが生成した画像の比較を下記に示す。
実装
※実装のサンプルです。細かいとこ間違ってたらごめんなさい。
その他、githubはこちら。
https://github.com/nogawanogawa/DCGAN_tensorflow.git
実行結果
epochを2で設定しているにも関わらず、ほぼ丸一日かかりました。 パフォーマンスが悪い原因はマシンの限界なのか、SSE命令が使えていないからなのか、どちらにせよそのうちなんとかします。
流石に時間がかかり過ぎだと思いますが、一応画像は出てきていたので、参考までに乗せておきます。
i=0
i=5
i=55
i=109
感想
だんだん実装と数式が難しくなってきました。 なれてこないと、実装は時間かかりますね。
あとMacBook Airだと実行がしんどくなってきた感じがしました。 環境周りの問題はなんとかしたいので、そのうちクラウドでやりたいですね。