GAN入门
GAN的基本原理其实非常简单,这里以生成图片为例进行说明。假设我们有两个网络,G(Generator)和D(Discriminator)。正如它的名字所暗示的那样,它们的功能分别是:
- D是一个判别网络,判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,而输出为0,就代表不可能是真实的图片。他的目标是D(x)=1 => max log(D(x))
- G是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z)。它的目标是D(G(z))=1 ,=> min log(1-D(G(z))
而他们的优化公式是
他们的优化步骤是:
先对D进行k次优化,再对G进行优化。能避免过拟合,且保持D的最优。在实际工程中,为何避免早期的训练一直被拒绝,可以先优化 max D(G(z)),而非min log(1 − D(G(z)))
在训练后,D(G(z))=D(x)= 12 .达到真假难分的效果.
其中,D 的最优公式应该是
DG(x)=pdata(x)pdata(x)+pg(x)
令
V(G,D)=∫xpdata(x)log(D(x))+py(x)log(1−D(x))dx
而