生成对抗网络(Generative Adversarial Network,GAN)
一、引入
GAN中主要包括两个核心网络:生成器(Generator);判别器(Discriminator);
生成器(Generator,G):通过对大量样本的学习,能够生成一些以假乱真的样本;
判别器(Discriminator,D):接受真实样本和G生成的假样本,并进行判断和区分。
G和D相互博弈,通过学习和对抗,G的生成能力和D的判别能力都逐渐增强并收敛(纳什均衡)。
生成器:
输入服从随机分布的噪音 Z \mathcal{Z} Z,例如正态分布;通过一个复杂的映射函数(这里的映射函数,其实就是要得到的生成器神经网络,后面会详细说明),生成假样本。
x ^ = G ( z , θ g ) \hat{x}=G(z,\theta_{g}) x^=G(z,θg)
判别器:
输入为真实样本或假样本,通过另一个复杂的映射函数(同上),输出一个(0,1)之间的值,值越大表示越有可能为真实样本。
s = D ( x , θ d ) s=D(x,\theta_{d}) s=D(x,θd)
二、目标函数
接下来,对于整个任务来说,我们先看看总体的目标函数,先看懂目标函数对后面的理解也会很有帮助。
min G max D V ( D , G ) = E x ∼ p data [ log D ( x ) ] + E z ∼ p z [ log ( 1 − D ( G ( z ) ) ) ] \min _{G} \max _{D} V(D, G)=\mathbb{E}_{x \sim p_{\text {data}}}[\log D(x)]+\mathbb{E}_{z \sim p_{z}}[\log (1-D(G(z)))] GminDmaxV(D,G)=Ex∼p<