Ian Goodfellow 在首次提出GAN,使用了形象的比喻来介绍 GAN 模型:生成网络 G 的功能就是产生逼真的假钞试图欺骗鉴别器 D,鉴别器 D 通过学习真钞和生成器 G 生成的假钞来掌握钞票的鉴别方法。这两个网络在相互博弈中进行训练,直到生成器 G 产生的假钞使鉴别器 D 难以分辨。而DCGAN是使用卷积操作和反卷积操作来替代原始GAN中的全连接操作。
GAN包含生成网络(Generator, G
)和判别网络(Discriminator, D
),其中 G
用于学习数据的真实分布, D
用于将 G
生成的数据与真实样本区分开。
生成网络 G ( z ) G(z) G(z) G
从先验分布 p z ( ⋅ ) p_z(\cdot ) pz(⋅)中采样潜变量 z ∼ p z ( ⋅ ) z\sim p_z(\cdot) z∼pz(⋅),通过 G 学习分布 p g ( x ∣ z ) p_g (x|z) pg(x∣z),获得生成样本 x ∼ p g ( x ∣ z ) x\sim ~p_g (x|z) x∼ pg(x∣z)。其中潜变量z的先验分布 p z ( ⋅ ) p_z (\cdot) pz(⋅)可以假设为常见的分布。
判别网络 D ( x ) D(x) D(x) **D
**是一个二分类网络,它判断采样自真实数据分布 p r ( ⋅ ) p_r (\cdot) pr(⋅)的数据 x r ∼ p r ( ⋅ ) x_r\sim p_r(\cdot ) xr∼pr(⋅)和采样自生成网络的生成的数据 x f ∼ p g ( x ∣ z ) x_f\sim p_g (x|z) xf∼pg(x∣z),判别网络的训练数据集由 x r x_r xr和 x f x_f xf组成。真实样本 x r x_r xr的标签标为1,生成网络产生的样本 x f x_f xf标为0,通过最小化判别网络 D 的预测值与标签之间的误差来优化判别网络。
判别网络目标是分辨出真样本 x r x_r xr与假样本 x f x_f xf。它的目标是最小化预测值和真实值之间的交叉熵损失函数:
m θ i n L = C E ( D θ ( x r ) , y r , D θ ( x f ) , y f ) \underset{θ}min \mathcal L = CE(D_θ (x_r ), y_r,D_θ (x_f),y_f) θminL=CE(Dθ(xr),yr,Dθ(xf),yf)
CE表示交叉熵损失函数CrossEntropy:
L = − ∑ x r ∼ p r ( ⋅ ) l o g D θ ( x r ) − ∑ x f ∼ p g ( ⋅ ) l o g ( 1 − D θ ( x f ) ) \mathcal L = − \sum_{x_r \sim p_r (\cdot)}logD_θ (x_r ) −\sum_{x_f \sim p_g (\cdot) } log (1 − D_θ (x_f )) L=−xr∼pr(⋅)∑logDθ(xr)−xf∼pg(⋅)∑log(1−Dθ(xf))
判别网络 D 的优化目标是:
θ ∗ = a θ r g m i n − ∑ x r ∼ p r ( ⋅ ) l o g D θ ( x r ) − ∑ x f ∼ p g ( ⋅ ) l o g ( 1 − D θ ( x f ) ) θ^∗ = \underset{θ}argmin − \sum_{x_r \sim p_r (\cdot)}logD_θ (x_r ) −\sum_{x_f \sim p_g (\cdot) } log (1 − D_θ (x_f )) θ∗=θargmin−xr∼pr(⋅)∑logDθ(xr)−xf∼pg(⋅)∑log(1−Dθ(xf))
把 m i n L min \mathcal L minL转换为