DC-GAN

Deep Convolutional GAN dc-gan

  • Generator
    • FCN
    • Decoder
    • Generate image from code
      • Low-dimensional
        • ~100-D
    • Reshape to tensor
    • Train using Gaussian random noise for code
  • Discriminator

Loss

D(S,L)=iLilog(Si)D(S,L)=-\sum_iL_ilog(S_i)
  • SS
    • (0.1,0.9)T(0.1, 0.9)^T
    • Score generated by discriminator
  • LL
    • (1,0)T(1, 0)^T
    • One-hot label vector
    • Step 1
      • Depends on choice of real/fake
    • Step 2
      • One-hot fake vector
  • i\sum_i
    • Sum over all images in mini-batch
NoiseImage
zzxx
  • Generator wants
    • D(G(z))=1D(G(z))=1
    • Wants to fool discriminator
  • Discriminator wants
    • D(G(z))=0D(G(z))=0
    • Wants to correctly catch generator
  • Real data wants
    • D(x)=1D(x)=1
J(D)=12ExpdatalogD(x)12Ezlog(1D(G(z)))J^{(D)}=-\frac 1 2 \mathbb E_{x\sim p_{data}}\log D(x)-\frac 1 2 \mathbb E_z\log (1-D(G(z)))J(G)=J(D)J^{(G)}=-J^{(D)}
  • First term for real images
  • Second term for fake images

Mode Collapse

  • Generator gives easy solution
  • Learns one image for most noise that will fool discriminator
  • Mitigate by minibatch discriminator
    • Match G(z) distribution to x

What is Learnt?

  • Encoding texture/patch detail from training set
    • Similar to FCN
    • Reproducing texture at high level
    • Cues triggered by code vector
      • Input random noise
  • Iteratively improves visual feasibility
    • Different to FCN
  • Discriminator is a task specific classifier #classification
  • Difficult to train over diverse footage
    • Mixing concepts doesn’t work
    • Single category/class