LSGAN:最小二乘生成对抗网络
解决问题: 解决传统 GAN 生成图片质量不高,训练不稳定的问题。
做法: 将传统 GAN 的 交叉熵损失函数 换成 最小二乘损失函数
本篇主要通过GAN对比来学习LSGAN
通过例子介绍:
使用 位于决策边界正确侧 但仍然 远离真实数据的假样本 更新生成器时,交叉熵损失函数将导致梯度消失的问题。
如图 (b)所示,当我们使用 假样本 (品红色)通过使鉴别器相信它们来自真实数据来更新生成器时,它 几乎不会引起错误 ,因为它们在正确的一侧,既决策边界的真实数据面。
然而,这些样本 仍然离真实数据很远 ,我们想把它们拉得接近真实数据。
问题总结:在交叉熵损失函数情况下,判别器判定真实面的假数据距离真实数据较远,效果不足。
基于这一观察,我们提出了最小二乘生成对抗网络,它采用 最小二乘损失函数作为鉴别器 。
最小二乘损失函数能够 将伪样本移向决策边界 ,
因为最小二乘损失函数会 惩罚位于决策边界正确一侧很远的样本 。
如图 (c)所示,最小二乘损失函数将惩罚假样本(品红色),并 将它们拉向决策边界 ,使它们被正确分类。
基于这一特性,最小二乘能够生成更接近真实数据的样本
总结概括
最小二乘: 最小二乘损失与交叉熵损失相比,优势在于生成样本在欺骗判别器的前提下同时让生成器把 距离决策边界比较远 的生成图片拉向 决策边界 ,这样保证了生成高质量的样本。
交叉熵: 以交叉熵作为损失,会使得生成器 不会再优化那些被判别器识别为真实图片的生成图片 ,即使这些生成图片距离判别器的决策边界仍然很远,也就是距离真实数据比较远,因为此时的交叉熵损失已经很小,生成器完成了为它设计的目标。
LSGAN的缺陷: 在于它并 没有解决当判别器足够优秀时生成器发生梯度弥散的问题
梯度弥散: 使用反向传播算法传播梯度的时候,随着传播深度的增加, 梯度的幅度会急剧减小,会导致浅层神经元的权重更新非常缓慢 ,不能有效学习。
这样一来,深层模型也就变成了前几层相对固定,只能改变最后几层的浅层模型。
GANs 的损失函数:
LSGANs的损失函数:
最小二乘
公式注释:
鉴别器 D
生成器 G
G 的目标是学习数据 x 上的分布 pg。
G 服从均匀或高斯分布 pz(z)对输入变量 z 进行采样开始,然后将输入变量 z 映射到数据空间 G(z; θg)。
D 是分类器 D(x; θd),其目的是识别图像是来自训练数据还是来自g。
z 为噪音,它可以服从归一化或者高斯分布,为真实数据 x 服从的概率分布,为 z 服从的概率分布。为期望值,同为期望值。
假设我们对鉴别器使用 a-b 编码方案 ,其中a 和b 分别是假数据和真实数据的标签。
c 表示 G 预测的D 相信的假数据的值。
最小二乘法的具体优点:
1.决策边界固定(鉴别器参数固定),生成样本靠近决策边界,更接近真实数据。
2.惩罚远离决策边界的样本时,可以在更新生成器时生成更多的梯度,这反过来缓解了梯度消失的问题(梯度消失:前面隐藏层的学习速率低于后面隐藏层的学习速率,即随着隐藏层数目的增加,分类准确率反而下降)
GAN中:最小化等式 1 产生最小化詹森-香农散度:
LSGAN:探讨LSGAN与f散度的关系
公式解释:(下文关于a-b编码证明a,b,c条件)
将
加入到
并不会改变最佳值,因为并没有引入含有G的参数
从而我们可以推出G固定情况下的最佳鉴别器:
使用 pd 来表示 pdata,来重新表示4式
此处不详细证明
化简为:
如果: b-c = 1, b-a = 2,则
是皮尔逊散度,总之可证,当 a,b,c满足b-c = 1 和 b-a = 2的条件,则最小化等式 4 会使 pd + pg 和 2pg 之间的皮尔逊 χ2 散度最小化。
采用 a-b编码方案:
由上述证明可设a = 1, b = 1, c = 0
采用 0-1二进制编码方案 :
两式接近,但此处,论文作者采用a-b编码方式,来实现实验:
带上其中一个实验:
参考论文:Mao X D, Li Q, Xie H R, et al. Least squares generative
adversarial networks[C]//Proceedings of the 2017 IEEE
International Conference on Computer Vision, Venice, Oct
22- 29, 2017. Washington: IEEE Computer Society, 2017:
2813-2821.
赞拜德瑞: 生成对抗网络是一种生成模型(Generative Model),其背后最基本的思想就是从训练库里获取很多的训练样本(Training Examples),从而学习这些训练案例生成的概率分布. 一些生成模型可以给出概率分布函数定义的估测,而另一些生成模型可以给你全新的样本,这些新样本来自于原有生成训练库的概率分布.
昌都地区15996588004: 生成式对抗网络GAN在NLP领域最近有哪些应用 - ?
赞拜德瑞: 1. GAN最开始是设计用于生成连续数据,但是自然语言处理中我们要用来生成离散tokens的序列.因为生成器(Generator,简称G)需要利用从判别器(Discriminator,简称D)得到的梯度进行训练,而G和D都需要完全可微,碰到有离散变量...
昌都地区15996588004: Python培训需要学习哪些内容?
赞拜德瑞: 学习Python编程需要学习:第一阶段:Python语言及应用 课程内容:Python语言基础,面向对象设计,多线程编程,数据库交互技术,前端特效,Web框架,爬虫框架,网络编程 掌握技能:(1)掌握Python语言语法及面向对象设计;(2)掌...
昌都地区15996588004: 生成对抗网络相比传统训练方法有什么优势 - ?
赞拜德瑞: 个人感觉,gan之所以比其他生成模型更优秀,是因为gan在本质上相当于最优化js距离而不是kl距离.虽然后者会得到一个更general的分布,但是从生成角度来讲,一个special的分布更能使人感到生成的数据更佳“真实”.
昌都地区15996588004: matlab 神经网络 怎么做dropout - ?
赞拜德瑞: 这个特例称为对抗的网络.这里,仅用反向传播和 Dropout 来训练模型,生成模型通过前向传播来生成样本.不需要近似推理和 Markov 链.
昌都地区15996588004: 以下哪些场景属于生成对抗网络GAN的应用场景(). - 上学吧?
赞拜德瑞: 人工智能主要由三个板块组成,分别为算法、算力与数据. 算法层面,目前主流的算法为深度学习,常见的算法包括卷积神经网络、循环神经网络以及生成对抗网络; 算力层面,主要包含AI计算架构以及各种AI芯片; 数据层面,包含数据采集、数据清洗、数据标注等. 以上这些内容构成AI行业的基础.