Basic Idea of GAN
以图片生成为例,假设有两个网络,G(Generator)和D(Discriminator):
- G是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z)。
- D是一个判别网络,判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,而输出为0,就代表不可能是真实的图片。
训练目标
训练过程中,生成网络G的目标就是尽量生成真实的图片去欺骗判别网络D。而D的目标就是尽量把G生成的图片和真实的图片分别开来。
训练的最理想结果就是G生成的图片可以以假乱真,骗过D,用文章中的解释如下:
黑色虚线表示真实的样本的分布情况,蓝色虚线表示判别器判别概率的分布情况,绿色实线表示生成样本的分布。 Z Z Z表示噪声, Z Z Z到 x x x表示通过生成器之后的分布的映射情况(G的功劳)。上图包含两个信息:(1)生成器G越来越拟合真实图片:绿色实线越来越和黑色虚线重合、随即噪音 z z z经过G映射后的 x x x越来越符合真实分布。(2)判别器D逐渐分辨不出真实和生成图片的区别,即判别概率趋于0.5,蓝色虚线刚开始还有区分,经过训练逐渐没有区分。
训练方法
GAN的优化目标:
min G max D V ( D , G ) = E x ∼ p data ( x ) [ log D ( x ) ] + E z ∼ p z ( z ) [ log ( 1 − D ( G ( z ) ) ) ] \min _{G} \max _{D} V(D, G)=\mathbb{E}_{\boldsymbol{x} \sim p_{\text {data }}(\boldsymbol{x})}[\log D(\boldsymbol{x})]+\mathbb{E}_{\boldsymbol{z} \sim p_{\boldsymbol{z}}(\boldsymbol{z})}[\log (1-D(G(\boldsymbol{z})))] GminDmaxV(D,G)=