生成对抗网络 GAN
模型
- GAN由生成器与判别器组成,需要同时训练两者,生成器通过噪音变量生成伪造的图片数据,而判别器对于输入图片来源于数据集还是伪造的图片要进行区分,生称器要尽可能的欺骗判别器(使判别器分辨不出图片的来源),而判别器要尽可能的判别出图片的来源,这是一个两方博弈的问题
- 为了学习生成器对于数据的分布 pg p g ,定义输入噪声先验变量 pz(z) p z ( z ) ,生成器记为 G(z;θg) G ( z ; θ g )
- 判别器用于判断样本来源于生成器,还是原数据集, D(x;θd) D ( x ; θ d )
- 训练
- 对于判别器D,训练其最小化生成器采样的样本与数据集中样本的判别误差
- 同时去训练生成器G,最小化 log(1−D(G(z))) l o g ( 1 − D ( G ( z ) ) )
- 损失函数 minGmaxDV(G,D)=Ex∼pdata(x)[logD(x)]+Ez∼pz(z)(log(1−D(G(z))) min G max D V ( G , D ) = E x ∼ p d a t a ( x ) [ l o g D ( x ) ] + E z ∼ p z ( z ) ( l o g ( 1 − D ( G ( z ) ) )
损失推导
2.1.1 最大似然估计
数据分布记为 Pdata(x) P d a t a ( x ) ,对于分布 PG(x;θ) P G ( x ; θ ) ,我们想要使得其与数据分布近似,从 Pdata(x) P d a t a ( x ) 采样样本,最大化如下似然函数:
∏i=1mPG(xi;θ) ∏ i = 1 m P G ( x i ; θ )
ML估计如下:
θ∗=argmaxθlog∏i=1mPG(xi;θ)=argmaxθ∑i=1mlogPG(xi;θ)≈argmaxθEx∼Pdata[logPG(x;θ)]=argmaxθ∫xP(data(x))logPG(xi;θ)dx−∫xP(data(x))logPdata(x)dx=argminθKL(Pdata(x)||PG(x;θ)) θ ∗ = a r g m a x θ l o g ∏ i = 1 m P G ( x i ; θ ) = a r g m a x θ ∑ i = 1 m l o g P G ( x i ; θ ) ≈