Pokémon Generation with GAN
Lilian Weng の記事では、GAN の簡単な実験例として、DCGAN を Pokémon sprite の小さな dataset に適用した例が紹介されています。
Dataset
この実験では、約 900 枚の Pokémon sprite 画像が使われています。同じ Pokémon species の進化段階なども含まれており、dataset としては非常に小さいものです。
実験の位置づけ
実装には、carpedm20/DCGAN-tensorflow が使われています。小さな dataset に対して DCGAN を training し、training epoch が進むにつれて、生成される Pokémon 風の画像がどのように変化するかを確認しています。

画像出典: Lilian Weng, “From GAN to WGAN”。Training epoch が 7、21、49 と進むにつれて、生成画像の形や色が少しずつ改善しています。
結果の見方
Training の epoch が増えるにつれて、生成される Pokémon 風の画像は、形や色の面では少しずつ良くなります。しかし、dataset が小さいため、細部まで一貫した画像を生成することは難しく、出力は大まかな形を持つにとどまります。
この例は、GAN の性質を直感的に理解するために役立ちます。Generator は、training が進むにつれて real sample の見た目に近い pattern を学びますが、十分な data と安定した training がなければ、細部の品質や多様性は制限されます。
WGAN への拡張
元記事では、DCGAN の TensorFlow 実装に加えて、WGAN や WGAN with Gradient Penalty へ拡張した実装として、lilianweng/unified-gan-tensorflow も紹介されています。
この例は、理論的な loss の話と、実際の画像生成の挙動をつなぐ case study として読むとよいでしょう。