GANは訓練データに似た新しいデータを生成する学習モデルの一種です。 2つの学習するAIから作られます。
generatorは、新しい、訓練データに似たデータを生成する仕組み。 わかりやすく言うと、夢を描くようなしくみ。優秀な贋作者を目指します。
discriminatorは、データが、訓練データなのか、生成したデータなのか判別する仕組み。 夢か現実か判断するようなしくみ。優秀な鑑定士を目指します。
どちらも基本的には多層パーセプトロンで、ドロップアウトを使って学習させるそうです。
どんどん、generatorの性能が上がると、discriminatorの正解率は50%になります。いいかえると、本物なのか偽物なのか、判別がつかない作品をだしてくるようになるということです。
CNN(convolutional neural network)をつかって、generatorをつくるのが、性能がよいみたいだというのが、最近の研究結果です。Radford et al. (2015)
CNNでは最後の方の層は、特徴マップごとにクラスを対応させたものを持ってきて、その平均値で判断するのが効率がよいと、Lin et al. (2013)で提案があったそうです。
ストライド2のたたみ込みをつかうのが、よいとかいてありました。
活性化関数にReLUを使う。
データの入力と、データの出力は正規化しないほうがよいようです。
https://www.slideshare.net/hamadakoichi/gan-training-techniques
以下のサイトを参考にしています。
https://elix-tech.github.io/ja/2017/02/06/gan.html
http://qiita.com/sergeant-wizard/items/0a57485bc90a35efcf26
http://www.kdnuggets.com/2017/01/generative-adversarial-networks-hot-topic-machine-learning.html