GAN——ModeCollapse
来源:互联网 发布:懒蛋的玩具淘宝 编辑:程序博客网 时间:2024/06/04 18:17
大部分内容来源于李宏毅的课程[1]
Example
先给一个直观的例子,这个是在我们训练GAN的时候经常出现的
这就是所谓的Mode Collapse
但是实际中ModeCollapse不能像这个一样这么容易被发现(sample中出现完全一模一样的图片)
例如训练集有很多种类别(如猫狗牛羊),但是我们只能生成狗(或猫或牛或羊),虽然生成的狗的图片质量特别好,但是!整个G就只能生成狗,根本没法生成猫牛羊,陷入一种训练结果不好的状态。这和我们对GAN的预期是相悖的。
Analysis
如上图。
我们希望给定一个随机高斯分布(中间列中的最左图),我们希望这一个随机高斯分布经过G最后可以映射到这8个高斯分布的mode上面去
但是最下面一列的图表明,我们不能映射到这8个高斯分布的mode上面,整个G只能生成同一个mode,由于G和D的对抗关系,G不断切换mode
李宏毅原话:
- 在step10k的时候,G的位置在某一个 Gaussian所在位置,然后D发现G只是在这个Gaussian这里了,所以就把这个地方的所有data(无论real还是fake)都给判定为fake
- G发现在这个Gaussian待不下去了,只会被D永远判定为fake,所以就想着换到另一个地方。在step15k就跳到了另一个Gaussian上去
- 然后不断跳跳跳,不断重复上述两个过程,就像猫捉老鼠的过程一样,然后就没有办法停下来,没法达到我们理想中映射到8个不同的Gaussian上面去
对于左边的KL散度,出现无穷大的KL散度是因为
也就是说当我们
假设我们的G的capacity不够,只能产生一个Gaussian的时候,那么这个时候的G就会倾向去覆盖所有
当然,即使
虽然这个时候基本上不会出现mode collapse的情况,但是会出现很多无意义的样本
对于右边的reverse KL散度,如果出现了
所以对于在minimize KL散度这个training过程中,就会出现很高的惩罚。为了安全起见,
而由于我们这里假设
Reference
[1]Youtube-MLDS Lecture 9: Generative Adversarial Network
[2]知乎专栏——令人拍案叫绝的Wasserstein GAN
- GAN——ModeCollapse
- GAN——WGAN
- GAN——DCGAN
- GAN——LAPGANs
- GAN——LSGANs(最小二乘GAN)
- GAN学习笔记(一)——初探GAN
- GAN——LSGANs(最小二乘GAN)
- GAN—生成对抗网络
- 论文笔记——拉普拉斯金字塔GAN
- tensorflow学习——GAN手写体生成
- 深度学习(七)—— GAN
- GAN——UNIT简单梳理
- 生成式对抗网络GAN研究进展(二)——原始GAN
- 生成式对抗网络GAN研究进展(三)——条件GAN
- 生成式对抗网络GAN研究进展(三)——条件GAN
- 深度学习系列(1)——初探GAN和W-GAN
- gan
- GAN
- [WIP]PROJECT-FUN
- 6、使用bind()和connect()函数
- LeetCode 69: Sqrt(x) 求根号x(牛顿迭代法和二分查找法)
- springmvc注解的处理器映射器和适配器
- 7、使用listen()和accept()函数
- GAN——ModeCollapse
- USACO-Section1.1 Greedy Gift Givers【查找】
- 素材
- 嵌入式系统学习——STM32之通用定时器
- 列表、元组和字符串
- 8、socket数据的接收和发送
- poj 1703 : Find them Catch them (并查集)
- 传递参数 和 堆
- centos7 docker安装