这一节课是说明 GAN 不一定用 JS divergence,可以用别的 divergence。理论挺厉害的,但是实作可能没什么用。

 

目录

1 f-divergence 的定义

 2 Fenchel Conjugate(共轭)

3 fGAN 的作用/GAN 存在的问题

3.1 问题1 Mode Collapse

3.2 问题2 Model Dropping

3.3 解决思路

3.4 最现实的解决办法


 

1 f-divergence 的定义

f-divergence 的定义式如下:

李弘毅老师GAN笔记(五),fGAN

 其中 f(x) 是凸的(convex),且f(1)=0。可以推导出 P 和 Q 的 f-divergence 的最大值是 0

对于不同的f(x),得到的就是不同的 divergence,如下图:

李弘毅老师GAN笔记(五),fGAN

 2 Fenchel Conjugate(共轭)

每一个凸函数 f 都有一个共轭的函数:

李弘毅老师GAN笔记(五),fGAN

这个函数理解参考下面这幅图,自变量是 t,对于所有的 x,寻找最大的 f*:

李弘毅老师GAN笔记(五),fGAN

 这里举了一个例子,李弘毅老师GAN笔记(五),fGAN 的共轭函数就是李弘毅老师GAN笔记(五),fGAN

一个函数和他的共轭函数是互为共轭的:

李弘毅老师GAN笔记(五),fGAN

最后推导出如下的式子(推导过程不放了,有兴趣的可以看课件):

李弘毅老师GAN笔记(五),fGAN

 这里与之前的区别就是f(x)不同。取不同 divergence 的 f(x) 就可以得到不同的生成网络。

3 fGAN 的作用/GAN 存在的问题

3.1 问题1 Mode Collapse

如下图所示,所有生成的数据都集中在了某个真实数据附近,如生成的图中大部分图其实都是对应一个同样的脸:

李弘毅老师GAN笔记(五),fGAN

3.2 问题2 Model Dropping

模型只会生成同样的一些图片,但这些图片只是真实图像中固定的一个小部分,如下图所示,一直都只生成了这些图片,唯一不同的是一些颜色光泽等比较小的地方:

李弘毅老师GAN笔记(五),fGAN

3.3 解决思路

老师课上说这个理论上的解决办法实际中可能没有什么用,所以理论仅供参考。

解决的办法就是可以换不同的 divergence 来衡量生成数据的分布和真实数据的分布的差异,比如下边的示例,使用不同的divergence 生成的分布式不同的,所以可以根据实际的数据分布选择较为合适的函数。GAN 的 divergence 和 reverse KL 是比较接近的,所以可能会使得生成数据集中在真实数据的某一部分。

李弘毅老师GAN笔记(五),fGAN

3.4 最现实的解决办法

一个可以生成不同数据的办法就是训练多个不同的 GAN,每个 GAN 选一个图。。。\笑哭

相关文章:

  • 2021-04-04
  • 2021-04-29
  • 2021-10-06
  • 2022-12-23
  • 2021-04-03
  • 2021-12-09
  • 2021-10-20
  • 2021-11-29
猜你喜欢
  • 2021-08-16
  • 2021-07-07
  • 2021-11-19
  • 2021-11-26
  • 2021-08-02
  • 2021-09-19
相关资源
相似解决方案