©PaperWeekly 原创 · 作者|武广

学校|合肥工业大学硕士生

研究方向|图像生成

GAN 自提出以来就以生成对抗为目标进行模型优化,这种对抗真的区分了真实数据和生成数据了吗?ICLR 2020 中的一篇 Real or Not Real, that is the Question(RealnessGAN)提出了对传统 GAN 判别数据真假的质疑。

文章抛出了在传统 GAN 中对于判别器的鉴别输出为一常数 score 是不合理的观点,并由此提出合理的解决方案,本文将对 RealnessGAN 进行解析,探究 GAN 是否真的区分了真假。

论文标题:Real or Not Real, that is the Question
论文来源:ICLR 2020

论文链接:https://arxiv.org/abs/2002.05512

代码链接:https://github.com/kam1107/RealnessGAN

GAN [1] 自提出就得到了空前反响,GAN 在逼真的图像生成方面以及处理高维数据时的灵活性上推动着包括图像,音频和视频生成的发展,更甚者在诸如强化学习、迁移学习等也展示了一定的价值。

GAN 通过生成器和判别器的博弈下达到交替更新,其核心就是模型能否鉴别数据的真实与生成并与生成器形成对抗。

在标准的 GAN 中,输入样本的真实性由判别器使用单个标量估算,也就是判别输出的是一个鉴别分数。然而诸如图像之类的高维数据,需要从多个角度认知它们,并基于多个标准来推断这幅图像是否逼真。

如图 1 所示,在拿到一张人脸肖像图时,我们可能会关注其面部结构,皮肤色调,头发纹理,甚至虹膜和牙齿等细节,它们每一个属性都代表着真实性的不同方面。此时判别器用单个标量输出鉴别结果,这是多个量度的抽象和汇总,它们共同反映了图像的整体真实性。

但是这种简洁的测量可能传达的信息不足,无法引导生成器向着正确的图像进行生成,这就可能导致在 GAN 中众所周知的模式崩溃和梯度消失的发生。

▲ 图1. 人脸肖像图中的人眼感知(a)真实人眼感知(b)由于面部结构/组件不协调,背景不自然,样式组合异常和纹理变形可能降低的真实感

既然判别器的单标量输出是不合理的,那么怎样表示判别器的输出呢?Realness-GAN 提出了通过将逼真度视为随机变量,也就是对于判别器的输出表示为一分布而不是单个标量。

整体的架构和训练上 RealnessGAN 沿用标准 GAN 的方式,只是将判别器的输出表示为一个分布,并且在优化阶段是以分布进行度量。

总结一下 RealnessGAN 的优势:

  • 将标量真实性得分扩展为分布的真实性得分,判别器 




    为生成器 




    提供了更强的指导。

  • RealnessGAN 的思路可以推广到一般的 GAN 中,具有较强的灵活性。

  • 基于一个简单的 DCGAN 架构,RealnessGAN 可以成功地从头开始学习生成 






    分辨率的逼真的图像。

RealnessGAN原理分析

在 RealnessGAN 原理分析前,先回顾一下标准 GAN 的优化过程:

此时用 0 和 1 分别表示两个虚拟的标量,也就是作为判别器的输出对照,判别器鉴定真实为 1,虚假为 0。通过固定的 




,最优 




得到 ,再将 




固定为最优值,最优 




满足 

















采用单个标量作为真实性的度量是受限的,现实中的很多本质上是一个涵盖多个因素的随机变量,此时 RealnessGAN 便发挥了作用。

用一个分布 
















替换判别器 




的标量输出,那么对于一个输入 




,此时 。其中 




是输出 
















的结果集,可以将每个结果 




视为通过某些标准估算的真实性度量。

既然判别器的输出被规定为是个分布,那么如何去优化这个判别器输出呢?

类似于标准 GAN 的 0 和 1 真假标量,RealnessGAN 需要两个分布来代表判别器输出的真实和虚假图像的鉴定分布,这里的分布可不同于数据的分布,这里的分布指的是判别器的对照分布。

定义两个分布 









表示理论上的判别输出为真实的分布,









表示理论上的判别输出为假的分布,它们也在 




上定义,优化分布之间的距离可以想到的是通过 KL 散度进行,此时生成器与判别器的博弈过程表示为:

先从理论角度分析下这个目标函数,对于判别器 




,它的目的是为了将真的数据鉴定为真的,假的数据鉴定为假的,所以对于真实数据 














,希望鉴定结果 







与理论真实分布 









尽可能接近,即 



























为理想解。

同理对于生成数据 









则希望判别输出与理论虚假分布 









尽可能接近,即 



























为理想解。

而对于生成器 




,公式的第一项由于没有 




的参与不允讨论,而对于第二项生成器则希望能够骗过判别器,即 

























越大越好,也就是希望 







与理论虚假分布 









差异越大越好。

那生成数据的判别分布于理论虚假分布差异越大,怎么能保证与理论真实分布









越接近呢?文章也进行了讨论,主要通过对生成器的损失进行调整实现,这个我们后面再详细说明。

知道了目标函数,那怎么保证模型博弈到最后得到的最优解就是 

















呢?

这需要进一步对目标函数进行分析了,接下来会有一定的公式推导,不喜欢这部分的可以直接跳到下一节,最后的结论就是模型的收敛最优解就是生成数据分布于真实数据分布相同 

















与标准 GAN 的分析相同,固定 




,目标 




表示为:

根据熵的定义,记 ,同理 ,则上式改写为:

公式的第一项与 




无关,将之记为 







,上式可进一步表示为:

记 




























,可得到:

最小化 









就是最小化 





















,则 D 的最优解就是 

















,接下来就是对 




的最优解进行讨论,当 

















时,假设 

















,此时 ,则对应的 
















从 

















中减去



















得:

由于 
















相对于 




为常数,最大化 













等价于最大化 
















,当且仅当 KL 散度达到其最小值时,才能获得最佳 
















,对于任何有效的 




和 




即 




































,因此,只要存在一个有效的 




,使得 






















,对于任何有效 




,都有 

















RealnessGAN的实施和训练

当满足 






















,为了优化模型,此时的 




需要足够的强大才能匹配理论真实分布。

随着




数量的增加,对 




施加的约束因此变得更加严格,则 




需要付出更多去学习才能匹配判别下理论真实分布,所以




数量的增加决定着模型的一定性能,说了这么多,这个 









和 









以及 




到底怎么表示呢?

我们知道 









和 









是定义下的判别理论分布,只要这两个分布之间差异足够的大即可,那么到底取什么呢?这个答案在文章公布的源码中作者规定了理论判别真实分布锚点 









和理论判别虚假分布锚点 









对于理论判别真实分布 









,作者用 









的均匀分布来表示,用均值为 0,方差为 0.1 的高斯分布来表示理论判别虚假分布 









,通过 np.histogram 通过对这采样的 1000 个点进行 num_outcomes 的离散化,这个 num_outcomes 就是 




的数量。

高斯分布与均匀分布分布上的差异决定着锚点



















的不同,这也满足了推导的条件,num_outcomes则在一定程度上影响着生成的结果,这点我们在后面的实验中再进行分析。

回到之前提到的优化 




的问题上来,上述的目标函数对于 




而言是通过欺骗 




是增大假样本的 







和锚点分布 









之间的 KL 散度,而不是减小假样本和锚点分布 









之间的 KL 散度,作者进行了损失上的一定改进,对于一般 




的优化:

文章又提出了:

至于说哪个损失更好用,这个在实验中进行了对比。值得一说的是 RealnessGAN 提出的思想可以用在大部分的 GAN 中,只需要对损失函数进行一定的调整即可,这也展示了 RealnessGAN 的灵活性。

在训练阶段,采用 Adam 优化器,BN 用在生成器,SN 用在判别器。

实验

文章首先进行了简单的实验验证模型的有效性,通过toy dataset进行验证,与基准模型进行了对比,选取了StdGAN [2]、WGAN-GP [3]、LSGAN [4] 和HingeGAN [5] 作为基准模型,得到的结果如图 2 所示。

▲ 图2. toy dataset下RealnessGAN与基准模型的对比

可以看到 RealnessGAN 展示了较为优越的结果生成,在验证 




的数量上,文章也进行了实验,得到的结果如图 3 所示。

▲ 图3. 输出结果数量对生成的影响

在固定 




的更新数量下,




的数量越多并没有取得越好的结果,但是随着 




给予足够的更新,




的数量增大得到的结果就越有优势。在定性上模型给出的结果如图4.

▲ 图4. RealnessGAN在Cifar10、CelebA和FFHQ下的生成结果

定量上文章在 Cifar10 数据集下进行了对比实验:

▲ 图5. 在Cifar10数据集下各模型在FID和SD指标下结果

为了验证 









与 









的差异性对结果的影响,文章做了对比实验,结果如图6.

▲ 图6. 锚点分布的差异性对生成结果的影响

对于 




的损失优化上,作者进行了比对。

▲ 图7. G的不同损失下的生成结果

总结

RealnessGAN 从分布的角度扩展了生成对抗网络的逼真性,以判别输出分布替代了标准 GAN 中的单标量判别输出,此时判别器会从多个角度估算真实性,从而为生成器提供更多信息指导。

同时这种判别输出分布的方式可以推广到更多的一般性 GAN 的训练上,从理论和实验分析上可以得到该方法的有效性,对于 GAN 的发展起到了推助作用。

参考文献

[1] Ledig C, Theis L, Huszár F, et al. Photo-realistic single image super-resolution using a generative adversarial network[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 4681-4690.

[2] Zhang Z, Yu J. STDGAN: ResBlock Based Generative Adversarial Nets Using Spectral Normalization and Two Different Discriminators[C]//Proceedings of the 27th ACM International Conference on Multimedia. 2019: 674-682.

[3] Gulrajani I, Ahmed F, Arjovsky M, et al. Improved training of wasserstein gans[C]//Advances in neural information processing systems. 2017: 5767-5777.

[4] Mao X, Li Q, Xie H, et al. Least squares generative adversarial networks[C]//Proceedings of the IEEE International Conference on Computer Vision. 2017: 2794-2802.

[5] Junbo Zhao, Michael Mathieu, and Yann LeCun. Energy-based generative adversarial network. InICLR, 2017.

点击以下标题查看更多往期内容:

  • Designing GANs:又一个GAN生产车间

  • ShapeMatchingGAN:打造炫酷动态的艺术字

  • ICCV 2019 | 通过条件坐标的部分图像生成

  • 从动力学角度看优化算法:GAN的第三个阶段

  • 深度学习预训练模型可解释性概览

  • ICLR 2020:从去噪自编码器到生成模型

????

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

ICLR 2020 | GAN是否真的判断出了数据的真假?相关推荐

  1. ICLR 2020被爆半数审稿人无相关领域经验,同行评审制度在垮塌?

    作者 | 若名 出品 | AI科技大本营(ID:rgznai100) 根据维基百科,同行评议(peer review),是指由一个或多个具有与作品生产者具有相似能力的人员(同行)对作品进行的评估活动. ...

  2. ICLR 2020论文投稿2600篇,GNN、BERT、Transformer领跑热门研究方向

    (图片由AI科技大本营付费下载自视觉中国) 出品 | AI科技大本营(ID:rgznai100) 2019 年 4,ICLR 2020 论文征集活动开始,截止 9 月 25 日,大会共收到近 2600 ...

  3. 一片哗然!ICLR 2020被曝47%的审稿人没发过相关论文

    乾明 鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 决定你论文是否中选顶会的人,可能自己都没有发过相关论文. 这不是开玩笑,而是正在发生的事情. 出现这种情况的,正是深度学习领域的顶级会 ...

  4. ICLR 2017 | GAN Missing Modes 和 GAN

    ICLR 2017 | GAN Missing Modes 和 GAN 原创2016-11-07小 S程序媛的日常程序媛的日常 ICLR 2017 的 submission DDL 刚刚过,网上就纷纷 ...

  5. 从ICLR 2020、AAAI 2020看对话系统近期研究进展

    ©PaperWeekly 原创 · 作者|王馨月 学校|四川大学本科生 研究方向|自然语言处理 本文盘点近期 ICLR 2020.AAAI 2020 上几篇对话系统相关的论文. ICLR 2020 论 ...

  6. ICLR 2020 | “同步平均教学”框架为无监督学习提供更鲁棒的伪标签

    ©PaperWeekly · 作者|葛艺潇 学校|香港中文大学博士生 研究方向|图像检索.图像生成等 本文介绍一篇由港中文发表于 ICLR 2020 的论文 Mutual Mean-Teaching: ...

  7. ICLR 2020:从去噪自编码器到生成模型

    作者丨苏剑林 单位丨追一科技 研究方向丨NLP,神经网络 个人主页丨kexue.fm 在我看来,几大顶会之中,ICLR 的论文通常是最有意思的,因为它们的选题和风格基本上都比较轻松活泼.天马行空,让人 ...

  8. 在深度学习顶会ICLR 2020上,Transformer模型有什么新进展?

    一只小狐狸带你解锁炼丹术&NLP秘籍 大数据文摘出品 来源:medium 编译:一一.Andy ICLR是机器学习社群最喜爱的会议平台之一.如今,机器学习领域的会议已成为预印本里论文质量的标志 ...

  9. 论文浅尝 | ICLR 2020 - 一文全览知识图谱研究

    本文转载自公众号: AI科技评论 作者 | Michael Galkin 编译 | 贾伟 ICLR 2020 正在进行,但总结笔记却相继出炉.我们曾对 ICLR 2020 上的趋势进行介绍,本文考虑的 ...

最新文章

  1. Kafka 原理以及分区分配策略剖析
  2. 使用(xy) + ((x^y)1) 求平均数
  3. 连载《一个程序猿的生命周期》-《发展篇》 - 3.农民与软件工程师,农业与IT业...
  4. rpm 软件的安装和卸载
  5. linux下压缩命令gzip使用
  6. deepin如何布署python_【玩转deepin】简单三步,教你在deepin15.11上安装Python3.7.4
  7. 纪念下数据路上遇到的贵人
  8. 跟我一起屏蔽百度搜索页面右侧的内容
  9. python3 上传文件到目标机器_通过python模块实现服务器和本地机器之间快速拷贝文件...
  10. TIDB2.1版本升级步骤
  11. yum命令 启用仓库_yum仓库详细解读
  12. HelloDjango 第 08 篇:开发博客文章详情页
  13. mysql initialsize,单机数据库优化
  14. cad迷你看图免费版|cad迷你看图电脑版免费版下载 v2019R8
  15. 轻量级Kubernetes k3s初探
  16. 优制网亮相“2016工业软件与制造业融合发展论坛”
  17. DELL EMC Isilon配额Quota
  18. JS实现放大镜特效原理解析
  19. linux u盘版下载官网,Linux助手:Universal USB Installer新版下载
  20. js判断扑克牌同花顺

热门文章

  1. webstorm如何自动换行_怎样在word中自动生成目录
  2. CENTOS elasticsearch plugin install:Failed: SSLException[java.security.ProviderException,解决
  3. poj2513 Fence Repair(小根堆)
  4. ASP.NET MVC项目 解决session失效
  5. 用IIS怎样在局域网内建网站
  6. Ubuntu caffe 测试matlab接口
  7. Autofac - 属性注入
  8. Exception raised during rendering: java.lang.System.arraycopy([CI[CII)V
  9. javascript array sort()
  10. HMM学习(3)-Patterns generated by a hidden process