![0415e954686900aff9b9d13fe812eb1b.png](https://i-blog.csdnimg.cn/blog_migrate/1ff5ea497400a9898a65cba2f0edb6cd.jpeg)
本文首发于微信公众号:有三AI
作者:小米粥
说到对GAN的理解,我们不能简单停留在“生成器产生样本,判别器分辨样本真假”的阶段了,在经过第二篇文章后,对GAN的理解应该是:先学习一个关于生成器定义的隐式概率分布和训练数据集的本质概率分布之间的距离度量,然后优化生成器来缩减这个距离度量。今天的主要内容依旧围绕这个距离度量来展开。
1.度量连续性的问题
在第二篇文章的最后,我们简要讨论了f散度的问题。实际中,生成器定义的隐式概率分布和训练数据集的本质概率分布几乎不存在重叠部分,而且随着数据维度增加,这个趋势会更加严重,那么采样计算得来的f散度距离不仅不连续,而且几乎处处导数为0。
用一个非常简单的例子来解释一下,在二维空间有两个无任何重合的均匀分布,其中
![f5a84580c2acd0786733c685627a91ac.png](https://i-blog.csdnimg.cn/blog_migrate/c5b183fc660ae235be08213130f6e4a1.png)
我们来计算一下两个分布的KL散度,JS散度,总变差。
可以看出,当P和Q没有重合或者重合部分可忽略时,其f散度值为常数;当两者完全重合时,f散度值为0,即f散度无法为生成器提供可以减少损失函数的梯度信息,生成器无法训练获得优化方向。
对于此问题的一种解决方案是:通过对数据集中的样本和生成器生成的样本增加噪声,使得原本的两个低维概率分布“弥散”到整个高维空间,强行让它们产生不可忽略的重叠,此时的f散度便能“指示”出两个分布的距离。在训练过