zl程序教程

您现在的位置是:首页 >  其他

当前栏目

LSGANs : Least Squares GAN(最小二乘GAN)--解决标准GAN生成的图片质量不高以及训练过程不稳定问题

标准训练 解决 -- 图片 以及 生成 过程
2023-09-14 09:14:43 时间

LSGANs基本思想

LSGANs的英文全称是Least Squares GANs。这篇文章针对的是标准GAN生成的图片质量不高以及训练过程不稳定这两个缺陷进行改进。改进方法就是将GAN的目标函数由交叉熵损失换成最小二乘损失,而且这一个改变同时解决了两个缺陷。

为什么最小二乘损失可以提高生成图片质量?

我们知道,GANs包含两个部分:判别器和生成器。判别器用于判断一张图片是来自真实数据还是生成器,要尽可能地给出准确判断;生成器用于生成图片,并且生成的图片要尽可能地混淆判别器。
本文作者认为以交叉熵作为损失,会使得生成器不会再优化那些被判别器识别为真实图片的生成图片,即使这些生成图片距离判别器的决策边界仍然很远,也就是距真实数据比较远。这意味着生成器的生成图片质量并不高。为什么生成器不再优化优化生成图片呢?是因为生成器已经完成我们为它设定的目标——尽可能地混淆判别器,所以交叉熵损失已经很小了。而最小二乘就不一样了,要想最小二乘损失比较小,在混淆判别器的前提下还得让生成器把距离决策边界比较远的生成图片拉向决策边界。这一段总结起来就是图1:
这里写图片描述

补充:作者是把决策边界作为中介,认为生成图片和真实数据之间的距离可以由生成图片和决策边界之间的距离来反映。这是因为学到的决策边界必须穿过真实数据点,否则就是学习过程饱和了。在未来工作中作者也提到可以改进的一点就是直接把生成图片拉向真实数据,而不是拉向决策边界。

为什么最小二乘损失可以使得GAN的训练更稳定呢?

作者对这一点介绍的并不是很详细,只是说sigmoid交叉熵损失很容易就达到饱和状态(饱和是指梯度为0),而最小二乘损失只在一点达到饱和,如图2所示:
这里写图片描述

LSGANs的损失函数表达式

最小二乘损失函数:

最小二乘GAN中判别器最后没有sigmoid层,那判别器输出的分数就不再是0和1之间的,即输入一张图片进入判别器,输出的分数不一定位于0和1之间,可能是任何值。 但对于交叉熵损失函数,判别器最后一层是sigmoid,这样判别器输出的分数就位于0和1之间。 

 


原文链接:https://blog.csdn.net/victoriaw/article/details/60755698