- Generative Adversarial Nets,生成对抗网络
- 解决问题
- 步骤
- 实现
- 损失函数
- GminDmaxV(D,G)=Ex∼pdata(x)[logD(x)]+Ez∼pz(z)[log(1−D(G(z)))]
- Gmin是生成器目标,Dmax是判别器目标
- E是求均值,即加权求和
- DmaxV(D,G)=Ex∼pdata(x)[logD(x)]+Ex∼pg(x)[log(1−D(x)]
- 换写法去G(z),实现中上下文已有生成器生成的分布G(z)
- L=Pdata(x)logD(x)+Pg(x)log(1−D(x)))
- 具体x时
- ∂D(x)∂L=0时
- D(x)为极值
- D是可训练的DNN
- =D(x)Pdata(x)−1−D(x)Pg(x)=0
- D∗(x)=Pdata(x)+Pg(x)Pdata(x)
- Ex∼Prlog21[Pr(x)+Pg(x)]Pr(x)+Ex∼Pglog21[Pr(x)+Pg(x)]Pg(x)−2log2
- D∗最优判别器代入, Pr为Pdata
- JS距离
- 问题
- ∂Gw∂JS≡0,所以不能优化生成器
- 办法1,多随机,某次Pr=0,Pg=0分布交集多
- 办法2,不用D∗,判别器不宜太强
- WGAN