首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >经典GAN简明原理:LSGAN

经典GAN简明原理:LSGAN

作者头像
公众号机器学习与AI生成创作
发布2021-04-19 12:38:10
发布2021-04-19 12:38:10
2.3K0
举报

1,摘要

  • 事实证明,使用生成对抗网络(GAN)进行无监督学习是成功可行的。常规GAN默认的判别器设置是sigmoid交叉熵损失函数训练的分类器。但是,在训练学习过程中这种损失函数的使用可能会导致梯度消失。
  • 为了克服这个问题,最小二乘生成对抗网络(LSGAN)采用最小二乘的损失来缓解。实际上,LSGAN的目标函数将本质上是最小化Pearson χ2散度。
  • 与常规GAN相比,LSGAN有两个好处:一是能生成更高质量的图像;二是在训练过程中更稳定。

2,背景

  • 原始GAN的极小极大损失函数为:
  • 而针对生成器的更新,Goodfellow推荐的非饱和损失是:
  • 原始的GAN中,非饱和损失和极小极大损失都有更新生成器时梯度消失的问题。
  • 如下图所示,当输入相对较大时,非饱和损失(蓝色线,即-log D(·))将饱和;而当输入相对较小时,极小极大损失(红色线,即log(1- D(·)))将饱和。
  • 因此,如下面的图1(b)所示,在更新生成器时,非饱和损失几乎不会对品红色中的伪样本(即生成数据)产生任何梯度的反馈,因为这些样本已位于真实数据的一侧,对应于具有相对图2(a)中的较大值。
  • 同样,极小极大损失对绿色的伪样本几乎没有梯度反馈。但是这些假样本仍与真实数据相去甚远,而我们希望它们更接近真实数据。
  • 基于上述观察,LSGAN对判别器和生成器均采用最小二乘损失,它能促使生成的伪样本更靠近决策边界,因为最小二乘损失会惩罚距离边界远的样本,而不仅仅要求它们满足坐落于正确一侧的“弱”条件。如图1(c)所示,最小二乘损失将惩罚上述两种类型的假样本并将其拉向决策边界。基于此属性,LSGAN能够生成更接近真实数据的样本。
  • LSGAN的另一个好处是提高了训练稳定性。一般来说,由于GAN学习的不稳定性,训练GAN是一个困难的问题。此前的研究里表明,GANs学习的不稳定性是由目标函数引起的:最小化常规GAN的目标函数可能会导致梯度消失,这很难去更新生成器。相反,LSGAN则可缓解此问题,因为基于与决策边界的距离对样本进行惩罚可能会生成更丰富的梯度。
  • LSGAN还提出了一种评估GAN稳定性的方法。此前一种流行的评估方法是搭建“困难”的网络结构,例如不用批归一化等。但实际上我们总会选择稳定的网络结构来完成任务。况且困难往往源于数据集。因此,LSGAN作者们建议使用较困难的数据集、而较稳定的网络结构来评估GAN的稳定性。例如,使用字体数据集来进行实验,因为不同的字体风格带有差异,判别器要捕捉这些微小的差异是不简单的事情。

3,方法

  • LSGAN则从平方误差的角度出发,判别器理想下给生成样本和真实样本分别编码为a和b以示区分;
  • 生成器希望能将它的生成样本编码为c并以此成功“欺骗”判别器;
  • 那么用平方误差作为目标函数,上述的目标函数就是:
  • 而当b-c=1,b-a=2时,LSGAN目标函数等价于皮尔森卡方散度Pearson χ2。为了验证,首先,求一阶导可得到D的最优解为:
  • 代入:
  • 注意,上式添加了一项
\frac{1}{2} \mathbb{E}_{\boldsymbol{x} \sim p_{\text {data }}(\boldsymbol{x})}\left[(D(\boldsymbol{x})-c)^{2}\right]

,并不影响最终的

V_{\text {LSGAN }}(G)

,因为对它而言没有参数G,可以视为常数。当b-c=1,b-a=2时,

V_{\text {LSGAN }}(G)

为:

  • 也就是:

4,总结

  • 最小二乘生成对抗网络(LSGAN)可以缓解训练过程中梯度消失的问题。实验结果表明,与常规GAN相比,LSGAN更稳定、生成的图像质量更高。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习与AI生成创作 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1,摘要
  • 2,背景
  • 3,方法
  • 4,总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档