引言:
不知道大家在初学GAN时,当遇到WGAN时,突然抛出一个结论:
对于真实数据分布Pr和生成数据分布Pg,如果满足上述无法全维度重合的情况的话,则JSD(Pr∣∣Pg)=log2是否存在疑惑。其实当初我刚接触这个结论时,还是挺疑惑的,不知道如何用数学证明。在思考了一会后,找到了一个合理的证明思路,如果有误,请大家指出
KL散度:
在开始介绍JS散度之前,必须首先引入KL散度,因为JS散度是在KL散度的基础上而来的,其公式为KL(P∣∣Q)=∑p(x)logq(x)p(x) KL(Q∣∣P)=∑q(x)logp(x)q(x)其有一个特性,就是KL散度是非对称的,即KL(P∣∣Q)̸=KL(Q∣∣P)
JS散度:
由于KL散度是非对称的,对其稍加修改,便能转化为对称的JS散度
首先,我们设M=21(P+Q),则JSD(P∣∣Q)=21KL(P∣∣M)+21KL(Q∣∣M)如果我们把KL散度公式带入展开的话,结果如下JSD(P∣∣Q)=21∑p(x)log(2p(x)+q(x)p(x))+21∑q(x)log(2p(x)+q(x)q(x))我们接下来把log中的21放到分母上JSD(P∣∣Q)=21∑p(x)log(p(x)+q(x)2p(x))+21∑q(x)log(p(x)+q(x)2q(x))接着把2提出JSD(P∣∣Q)=21∑p(x)log(p(x)+q(x)p(x))+21∑q(x)log(p(x)+q(x)q(x))+log2这是因为∑p(x)=∑q(x)=1
接下来,我们只需要证明当p(x)与q(x)不重叠时,左边部分为0即可。为了方便大家理解,我放了一张数据分布图:
在这张图里,我们令Pr和Pg都是服从正态分布,并且不妨令p(x)为Pr取得x时的概率,q(x)为Pg取得x时的概率。可以发现,在两个分布之间,几乎不存在重叠(Probability(x)表示取得x的概率值)。
接下来,我们回到上式的左边部分,即21∑p(x)log(p(x)+q(x)p(x))+21∑q(x)log(p(x)+q(x)q(x))我们可以发现,当x≥5时,p(x)≈0,则上式变为21∑0×log(0+q(x)0)+21∑q(x)log(0+q(x)q(x))=0当x<5时,q(x)≈0,则上式变为21∑p(x)log(p(x)+0p(x))+21∑0×log(p(x)+00)=0所以可以得出,∀x∈R,都有JSD(P∣∣Q)=log2这就是JS散度的缺陷,当两个分布完全不重叠时,即便两个分布的中心距离有多近,其JS散度都是一个常数,以至于梯度为0,无法更新。
为什么会出现两个分布不重叠?
从理论和经验上来说,真实的数据分布通常是一个低维流形,简单地说就是数据不具备高维特性,而是存在一个嵌入在高维度的低维空间内,如下图在3维空间中,数据事实上是在一个二维平面上:
而且,在实际操作中,我们的维度空间远远不止3维,有可能是上百维,在这样的情况下,数据就更加难于重合。
如果觉得我有地方讲的不好的或者有错误的欢迎给我留言,谢谢大家阅读(点个赞我可是会很开心的哦)~