完整笔记:http://www.gwylab.com/note-gans.html
———————————————————————
3. JS divergence不是最佳的divergence
在第三篇当中我们介绍了fGAN告诉我们的结论:不只是JS divergence,任何的divergence(统称为f-Divergence)都可以被放到GANs的架构中去。
现在有了这个结论,我们开始思考,原始GANs的JS Divergence到底是不是最好的divergence。也就是说,我们得去发掘,JS Divergence是否存在一些毛病。
我们先考虑一下 与
的实际分布情况,我们会发现,大多数情况下
与
是没有重合的。因为一方面,
与
都属于高维空间中的低维流形,二者具有重合的可能性是非常低的(如下左图);另外一方面,即算
与
的分布有了重合区域,但是在实际训练中我们是从
与
中取的采样,这些采样也基本不可能出现重复(如下右图)。所以我们可以认为,大多数情况下
与
是没有重合的。
那如果与
是没有重合的,然后用JS divergence去衡量
与
的距离的话,就会造成如下障碍:
在上图中可以看出,与
都与
没有交集,但是
与
的距离比
与
的距离近,然而用JS divergence去衡量二者的距离却是一样的,都为log2,这是我们认为JS divergence不合理的地方,因为实际情况是
,
应当比
,
要小,才能反映出
与
比
与
要靠的更近。有必要说明一下,为什么如果两个分布完全没有重合的话,那么这两个分布的JS divergence会是一样的。前面有提到,JS divergence是通过discriminator计算出来的,而discriminator的本质是binary classifier,只要
与
完全没有重合,discriminator就能100%地鉴别出
与
的差异,因此二者的JS divergence就是一样的。
因此,我们发现JS divergence是存在问题的。为了解决这些问题,我们开始介绍下面几篇paper,它们从不同角度采用了不同的方法,实现GANs的改进与提升。