GAN-overview reading note(2)Least Squares-GAN

昨天说了GAN记得基本概念,同时说了等效的数学模型,和需要求解的目标函数!
附上链接: GAN-overview reading note(1)基础概念

文章目录

  • LSGAN介绍
    • loss函数
  • 主要优势
    • 优势一:稳定训练
    • 优势二:改善生成质量
  • 2019.4.10 ——子涣

LSGAN介绍

中文名:最小二乘GAN
英文全称:Least Squares Generative Adversarial Networks

原文地址:https://arxiv.org/abs/1611.04076

github相关程序项目:https://github.com/hwalsuklee/tensorflow-generative-model-collections

接上回说的,LSGAN属于f-divergence体系下的GAN结构,即也是求取生成数据与真实数据分布之间距离关系的方式来对GAN网络进行提升的。

可见,传统的GAN是利用JS散度来表达两分布之间距离,而LSGAN是用Pearson χ 2 \chi^2 χ2来表达分布距离。下面来讨论这样做都带来了怎样的提升。

loss函数

首先LSGAN的loss函数改为:
min ⁡ D J ( D ) = min ⁡ d [ 1 2 E x ∼ p d a t a ( x ) [ D ( x ) − a ] 2 + 1 2 E z ∼ p z ( z ) [ D ( G ( z ) ) − b ] 2 ] \min_DJ(D)=\min_d[\frac{1}{2}E_{x\sim p_{data}(x)}[D(x)-a]^2+\frac{1}{2}E_{z\sim p_z(z)}[D(G(z))-b]^2] DminJ(D)=dmin[21Expdata(x)[D(x)a]2+21Ezpz(z)[D(G(z))b]2]

min ⁡ G J ( G ) = min ⁡ G 1 2 E z ∼ p z ( z ) [ D ( G ( z ) ) − c ] 2 \min_GJ(G)=\min_G\frac{1}{2}E_{z\sim p_z(z)}[D(G(z))-c]^2 GminJ(G)=Gmin21Ezpz(z)[D(G(z))c]2
原文中, a = c = 1 , b = 0 a=c=1,b=0 a=c=1,b=0
这里可以看出,第一个判别器的loss函数中,D希望最真实数据判别效果越接近1越好,对生成数据的判别结果越接近0越好,符合GAN的思路。而生成器的loss函数中,希望是D判别的结果越接近1越好。这里都是合理的,也没看出什么特殊。

主要优势

下面来说说LSGAN的两个主要优势:

  1. 稳定训练:解决了传统GAN训练过程中的梯度饱和问题
  2. 改善生成质量:通过惩罚远离判别器决策边界的生成样本来实现

优势一:稳定训练

GAN-overview reading note(2)Least Squares-GAN_第1张图片GAN-overview reading note(2)Least Squares-GAN_第2张图片

理解:也就是说,sigmoid函数下的交叉熵会导致在生成数据与真实数据分布距离太远的情况下,给不出比较明显的进化方向。这与我们期望的越远方向越明确,驱动力越强相矛盾,这也就是梯度饱和。而,最小二乘由于其“ 2 ^2 2”机制,导致不会有这种情况出现,而且恰恰就是希望的,越远方向越明确,驱动力越强。所以,上边说的第一条,稳定训练:解决了传统GAN训练过程中的梯度饱和问题
至于第二条,有很多blog也解释很多遍了,如下图所示。

优势二:改善生成质量

GAN-overview reading note(2)Least Squares-GAN_第3张图片本文作者认为以交叉熵作为损失,会使得生成器不会再优化那些被判别器识别为真实图片的生成图片,即使这些生成图片距离判别器的决策边界仍然很远,也就是距真实数据比较远。这意味着生成器的生成图片质量并不高。为什么生成器不再优化优化生成图片呢?是因为生成器已经完成我们为它设定的目标——尽可能地混淆判别器,所以交叉熵损失已经很小了。而最小二乘就不一样了,要想最小二乘损失比较小,在混淆判别器的前提下还得让生成器把距离决策边界比较远的生成图片拉向决策边界。此段文字摘抄自: CodeTutor博主的GAN——LSGANs(最小二乘GAN)
理解: 这里需要先明确一点,决策边界在GAN网络中应该穿过真实数据的中心,也就是说,判别器判别真实数据有50%的可能判对,有50%的可能认为其实生成数据。同时,D判别生成数据也是各50%,即达到了G生成结果混淆D的目的。还有一点,就是我们希望生成数据越接近真实越好,而不是表面上看到的,生成数据都被D判对就越好。明确了这两点后,就可以理解LSGAN的第二点优势了,通过已经判对的数据进一步优化G,从而提高生成数据的质量,最终达到:改善生成质量:通过惩罚远离判别器决策边界的生成样本来实现
以上就是我找到的对LSGAN的讲述和我自己的理解,记录以备用,也希望对看到的人有所帮助。
本文链接:https://blog.csdn.net/bufanwangzi/article/details/89189445

2019.4.10 ——子涣

你可能感兴趣的:(deep,learning)