LSGAN详解
论文链接:Least Squares Generative Adversarial Networks
LSGAN的思想
原始GAN采用了Sigmoid+Binary Cross Entropy的损失
其存在一个问题,即G生成的图像G(z)虽然成功地让D认为是真图像,但实际上G(z)仍然和真实的图像x有很大差距
此时由于D已经被欺骗,导致G没有可更新的梯度
最终使得G生成的图像质量仍较低
我们可以根据作者的图来理解
其中蓝点为G生成的假图像,红点为真图像,蓝线和红线分别为原始GAN的D和LSGAN的D的判别界限
当我们试图用被D判别为真的假图像(洋红色点)去更新G的时候
若使用sigmoid+BCE损失,会发现因为loss几乎为0而产生梯度消失
因此作者提出了用least square loss训练GAN
由于成功训练的GAN的D的判别曲线应该是穿过并平分真实图像分布的
而least square loss可以使生成的图像朝判别边界移动,也就同时使得假图像向真图像区域靠拢的目标函数
这种GAN称为LSGAN(Least Square GAN),其数学表达为
表明当且仅当$p{\mathrm{d}}(x)+p_g(x)=2p_g(x)$,即$p{\mathrm{d}}(x)=p_g(x)$时
训练目标C(G)达到最小,也即G可收敛
代码实现
结构上LSGAN和DCGAN完全相同
把损失函数换乘MSE即可
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.