• x: Data we already have
  • z: Data we want to generate
  • θg: parameter for Generator
  • θd: parameter for D
  • G: Generator
  • D: Discriminator

target is training G to minimize

minGmaxDV(D,G)=Expdata(x)[logD(x)]+Ezpz(z)[log(1D(G(z)))]

For player D, want V bigger by

  • making more accurate estimate on real date x as D(x)1
  • discriminate the fake data by D(G(z))0 equals to (1D(G(z)))1
  • more accurate the D is ,the larger value of V can be

For player G, want V smaller by

  • enlarge D(G(z))1 for (1D(G(z)))0
  • better fake of G, G(z)1, and less value of V

Algorithm

for number of iterations do

for k steps do

  • Sample m noise samples {z(1),,z(m)} from noise prior pg(z)
  • Sample m examples {x(1),,x(m)} from data generating distribution pdata(x)
  • Update the discriminator by ascending its stochastic gradient :θg1mi=1m[logD(x(i))+log(1D(G(z(i))))]

end for

  • Sample m noise samples {z(1),,z(m)} from noise prior pg(z)
  • Update the generator by descending its stochastic gradient :θg1mi=1mlog(1D(G(z(i))))

end for

  ew
  - q
  - q