GAN(以下LSGAN)は正解ラベルに対する二乗誤差を用いる学習手法を提案しています。論文の生成画像例を見ると、データセットをそのまま貼り付けているかのようなリアルな画像が生成されていたので興味を持ちました。実装は非常に簡単です。目的関数LSGANの目的関数は以下のようになっています。0,1,1$が推奨されています。実装Discriminatorは出力ベクトルの次元を1にし、出力には活性化関数を通しません。誤差の計算をChainerで実装すると以下のようになります。0,1,1$としました。実験に用いたコードやLSGANの実装はGitHubにあります。Dataset8つの正規分布の混合分布から生成されているデータです。collapseが起こりやすいようにノイズ$z$を256次元にしています。collapseを回避できているように見えます。MNISTMNISTは何回実験しても全く学習してくれませんでした。Normalizationレイヤーを入れるのを忘れていました。再度実験すると正しく学習が行えました。アニメ顔画像データセットわりと自然な画像が生成されました。collapseを過剰に回避する傾向があるのか生成画像が歪みます。1epoch目の生成画像を載せておきます。(特に意味はありません)LSGANWGANおわりにMNISTの実験では2層の小さなネットワークでしたが、それでもBatchnormがないと学習できないようですね。