shortcomings of the original GAN

1.Evaluation

original GAN的Loss Funtion表示,D实际上是在对P_data和P_G之间做一个JSD的衡量,也就是说,在学习训练D的过程,也就是在衡量给定的G所对应的分布P_G与真实数据所处的分布P_data之间的JS divergence。也正如前述,GAN和VAE使用了相同的架构,但是二者的区别在于Loss Function的不同,即GAN中使用的是D来作为GAN中G的训练方向的指引。所以就有必要来对这样的引导来进行一个评估。

通过计算JSD可以知道,其值介于0和log2之间。当P_data和P_G 完全overlap时,二者的JSD值才为0,否则二者的JSD值为小于log2的非零值。

而在实际过程中会发现,D的Loss Function值始终为0,即JSD始终为log2,也就是表示为P_data和P_G始终没有overlap。

可能的原因有:

  • 对于P_data和P_G而言,二者通常是高维空间中的一个低维的manifold,所以二者的overlap通常非常非常小,或者说根本就没有。所以对于original GAN的Loss Function计算的用于衡量P_data和P_G之间相似度的JSD基本始终为log2,只有在二者完全重合时,JSD才为0。

  • b.在Loss Function的计算过程中,采用的是使用sample出来的data来进行E值的估计。正是由于采用的是sample的方式来估计E,才会给D机会找到一个hyperplane/boundary将从P_data和P_G中sample出来的样本很好的分开。如果是从分布的角度来计算Loss Function,就必然会有两个分布交叠的情况,而无法像对样本分类那样找到一个hyperplane/boundary将两个分布完全地分开。简而言之,由于是采用sample的方式来计算Loss Function,所以如果遇到一个很强势的D,那么将始终无法计算二者的overlap,也就是始终会导致JSD的值为log2。

这就会导致什么问题:

  • a.无法从loss值中去判断现在已经训练到什么程度了,或者说loss值并无法反映P_data和P_G的接近、相似程度,因为P_data和P_G的JSD值在绝大多数时候值都为log2,所以仅从由JSD构成的loss值中是无法反映二者的相似程度的。

  • b.很难达到收敛

solution:

  • a.不需要那么强的D,找一个相对弱的D即可。
  • b.加入噪声,使得P_data和P_G二者有更大的overlap的可能。

2.Mode Collapse

也就是说,真实的数据分布中可能有多个mode,但是生成的分布中却只有一个mode。换言之,虽然training dataset中的数据的mode很丰富,并且生成的数据也很逼真,但是多次生成G_data后会发现,每次生成的data都只有相同的一个mode。根据生成分布你可以知道他能做什么,但是你无法得知他不能够做什么。他可能可以做更多的事,也可能不能,但是你不知道,因为他并没有表现出来。

然而使用MLL的方式来估计模型并不容易出现mode collapse的情况。

假设P_data中有多个mode。但是在学习G所对应的分布时,当G对应分布逼近P_data的一个mode时,发现能够很好地被D判别出来,这时G可能就会放弃这个mode转向逼近下一个mode…而不是同时去学习逼近多个P_data中对应的mode,因为这种行为可能反而更容易被D给判别出来,也就是说,让G去学习多个mode,相比之下G不如去只学习一个mode能够更好地从Loss Function中得到好的反馈(或者是更好地欺骗D)。这是由于Loss Funtion的所决定的。所以去思考Loss Function背后的含义以及Loss Function是如何引导G去学习的很重要。

更具体地从数学的角度去分析一下这个原因。在basic idea of GAN中提到,MLL相当于是在求P_data和P_G之间的KL散度。

而目标是让KL—>0。从式中可知,当P_G=0且P_data有值时,KL—>∞,当P_data=0时,KL=0

所以为了避免KL—>∞,P_G就会趋向在P_data有值时也有值,即不趋向于0。

这种情况下,反而使得P_G能够学得P_data中的多个mode。

而在reverse KL中

当P_data=0且P_G有值时,reverse KL—>∞,所以这就会导致P_G害怕跨过P_data=0处或者P_data很小的地方去逼近P_data中的多个mode,这就导致了mode collapse。

因为original GAN在D*=argmax_D V(G, D)下,对应的V(G, D*)表示的是JS divergence。而JS divergence

可以展开成下式

所以JSD中是包含reverse KL的,这可能是original GAN中出现mode collapse情况的原因。

Reference

台大深度学习_李宏毅

CV_shortcomings of original GAN相关推荐

  1. CV_shortcomings of the original GAN

    shortcomings of the original GAN 1.Evaluation.梯度消失及梯度不稳定 original GAN的Loss Funtion表示,D实际上是在对P_data和P ...

  2. 【PyTorch】50行代码实现GAN——PyTorch

    本文来源于PyTorch中文网. 一直想了解GAN到底是个什么东西,却一直没能腾出时间来认真研究,前几日正好搜到一篇关于PyTorch实现GAN训练的文章,特将学习记录如下,本文主要包含两个部分:GA ...

  3. 一文看尽深度学习中的生成对抗(GAN)网络

    参考:<CVHub带你看一看GANs架构发展的8年> 导读 生成对抗网络 (Generative Adversarial Networks, GANs) 在过去几年中被广泛地研究,其在图像 ...

  4. 【Markovian:GAN:IVIF】

    GAN-FM: Infrared and Visible Image Fusion Using GAN With Full-Scale Skip Connection and Dual Markovi ...

  5. 【万物皆可 GAN】给马儿换皮肤

    [万物皆可 GAN]给马儿换皮肤 概述 真假斑马 实现流程 代码 执行流程 执行结果 概述 CycleGAN (Cycle Generative Adversarial Network) 即循环对抗生 ...

  6. 深度学习中的生成对抗网络GAN

    转载:一文看尽深度学习中的生成对抗网络 | CVHub带你看一看GANs架构发展的8年 (qq.com) 导读 生成对抗网络 (Generative Adversarial Networks, GAN ...

  7. 论坛报名 | 数理基础:人工智能的重大理论挑战和最新成果

    与6位图灵奖得主和100多位专家 共同探讨人工智能的下一个十年 长按图片或点击阅读原文,内行盛会,首次免费注册 北京智源大会倒计时:10天 2020年6月21-24日,第二届北京智源大会(官网:htt ...

  8. sci face 补全

    In this paper, we propose an effective face completion algorithm using a deep generative model. 本文提出 ...

  9. 手把手教你写一个生成对抗网络

    成对抗网络代码全解析, 详细代码解析(TensorFlow, numpy, matplotlib, scipy) 那么,什么是 GANs? 用 Ian Goodfellow 自己的话来说: " ...

最新文章

  1. 关于iOS去除数组中重复数据的几种方法
  2. QT的QBufferDataGenerator类的使用
  3. 有一批共n个集装箱要装上2艘载重量分别为C1和C2的轮船,其中集装箱i的重量为wi,且 装载问题要求确定,是否有一个合理的装载方案可将这n
  4. 如何在Git上创建工程,演示在Git中创建项目
  5. mysql中chr_MySQL常见函数
  6. 基金的A、B、C、E、H,有意思!
  7. 数字水印--给我的文件充当保护神
  8. 现场抽奖小程序_抽奖小程序助手转盘活动微信抽奖系统
  9. 发送邮件 显示对方服务器未响应,邮件对方服务器未响应
  10. 经典的广告词及其翻译
  11. 南京大学学生用7000张照片算出院系“平均脸”
  12. 用c语言找出图片中黄颜色部分,测试:6种玫瑰颜色找出你的恋爱基因,神准!...
  13. 如何选择适合你的兴趣爱好(十),排球
  14. E18-D80NK光电传感器
  15. DNS添加KMS SRV记录激动激活
  16. 电脑上做的ppt拿到别的电脑或手机上播放的时候字体错位的解决方法
  17. 首篇Nature!“国字头”高校,实现重大突破!
  18. 【CSS 教程系列第 8 篇】什么是 CSS 中的后代选择器
  19. 2021-4-25日语学习
  20. 案例精选 | 淘宝服务端高并发分布式架构演进之路

热门文章

  1. 秉火429笔记之三GPIO框图剖析
  2. Halcon图像读取的方式
  3. 上海国际能源交易中心大户持仓报告制度 操作指南
  4. MMD :maximum mean discrepancy
  5. FUEL: Fast UAV Exploration using Incremental Frontier Structure and Hierarchical Planning
  6. 【电脑讲解】宽带连接错误711的两种解决方法
  7. 8086CPU从功能上分为几部分?各部分由什么组成?各部分的功能是什么?
  8. 反游戏规则~触发5亿创设~引发3-6个跌停?
  9. 装完黑苹果怎么装windows_黑苹果安装教程,小编教你黑苹果怎么安装
  10. vr性能测试软件,VR性能测试