GANについて

GAN(Generative Adversarial Network)について調べた際のメモです。

GANとは

  • Ian Goodfellow (@goodfellow_ian)が2014年に発表1
  • 生成モデル: 訓練データの分布と生成データの分布が同じになるよう学習
  • 訓練データに対してパラメータが小さく、重要な特徴を学習する
  • GeneratorとDiscriminatorに分かれる
  • Generatorは訓練データと同じようなデータを生成するように学習
  • Discriminatorは与えられたデータが訓練のものか、生成されたものかを見分けるように学習
  • Generatorの学習 → Discriminatorの学習 → Generatorの学習 → ...、とイタチごっこをする
    • Dの学習をk回繰り返したらGを1回学習する、の繰り返し(k=1が多い)
  • Generatorはノイズを元にデータを生成する
  • DCGAN(Deep Convolutional GAN): CNNを使ったモデル → 画像の生成 (元の論文2ではベッドルームの画像の生成)
    • プーリングしない、全結合しない、BatchNormalization、Leaky ReLU
  • LAPGAN, SRGAN, pix2pix, StackGAN, SimGAN, 3D-GAN, CycleGAN, DiscoGAN...
  • MSEだと平均的な(ぼやけた)画像になる(VAE)が、GANだとシャープな画像が生成できる
    • 4Kイメージを8Kにしたり
  • 生成した画像に和や差の演算ができる
  • Deep Learningで課題である「教師なし学習」「タグ無しデータ」を解決する可能性がある

Refs