GAN:两者分布不重合JS散度为log2的数学证明

引言:
不知道大家在初学GAN时,当遇到WGAN时,突然抛出一个结论:
对于真实数据分布 P r P_r Pr和生成数据分布 P g P_g Pg,如果满足上述无法全维度重合的情况的话,则 J S D ( P r ∣ ∣ P g ) = log ⁡ 2 JSD(P_r||P_g)=\log2 JSD(PrPg)=log2是否存在疑惑。其实当初我刚接触这个结论时,还是挺疑惑的,不知道如何用数学证明。在思考了一会后,找到了一个合理的证明思路,如果有误,请大家指出


KL散度:
在开始介绍JS散度之前,必须首先引入KL散度,因为JS散度是在KL散度的基础上而来的,其公式为 K L ( P ∣ ∣ Q ) = ∑ p ( x ) log ⁡ p ( x ) q ( x ) KL(P||Q)=\sum p(x)\log \frac{p(x)}{q(x)} KL(PQ)=p(x)logq(x)p(x) K L ( Q ∣ ∣ P ) = ∑ q ( x ) log ⁡ q ( x ) p ( x ) KL(Q||P)=\sum q(x)\log \frac{q(x)}{p(x)} KL(QP)=q(x)logp(x)q(x)其有一个特性,就是KL散度是非对称的,即 K L ( P ∣ ∣ Q ) ≠ K L ( Q ∣ ∣ P ) KL(P||Q) \neq KL(Q||P) KL(PQ)̸=KL(QP)

JS散度:
由于KL散度是非对称的,对其稍加修改,便能转化为对称的JS散度
首先,我们设 M = 1 2 ( P + Q ) M=\frac{1}{2}(P+Q) M=21(P+Q),则 J S D ( P ∣ ∣ Q ) = 1 2 K L ( P ∣ ∣ M ) + 1 2 K L ( Q ∣ ∣ M ) JSD(P||Q)=\frac{1}{2}KL(P||M)+\frac{1}{2}KL(Q||M) JSD(PQ)=21KL(PM)+21KL(QM)如果我们把KL散度公式带入展开的话,结果如下 J S D ( P ∣ ∣ Q ) = 1 2 ∑ p ( x ) log ⁡ ( p ( x ) p ( x ) + q ( x ) 2 ) + 1 2 ∑ q ( x ) log ⁡ ( q ( x ) p ( x ) + q ( x ) 2 ) JSD(P||Q)=\frac{1}{2}\sum p(x)\log(\frac{p(x)}{\frac{p(x)+q(x)}{2}})+\frac{1}{2}\sum q(x)\log(\frac{q(x)}{\frac{p(x)+q(x)}{2}}) JSD(PQ)=21p(x)log(2p(x)+q(x)p(x))+21q(x)log(2p(x)+q(x)q(x))我们接下来把log中的 1 2 \frac{1}{2} 21放到分母 J S D ( P ∣ ∣ Q ) = 1 2 ∑ p ( x ) log ⁡ ( 2 p ( x ) p ( x ) + q ( x ) ) + 1 2 ∑ q ( x ) log ⁡ ( 2 q ( x ) p ( x ) + q ( x ) ) JSD(P||Q)=\frac{1}{2}\sum p(x)\log(\frac{2p(x)}{p(x)+q(x)})+\frac{1}{2}\sum q(x)\log(\frac{2q(x)}{p(x)+q(x)}) JSD(PQ)=21p(x)log(p(x)+q(x)2p(x))+21q(x)log(p(x)+q(x)2q(x))接着把2提出 J S D ( P ∣ ∣ Q ) = 1 2 ∑ p ( x ) log ⁡ ( p ( x ) p ( x ) + q ( x ) ) + 1 2 ∑ q ( x ) log ⁡ ( q ( x ) p ( x ) + q ( x ) ) + log ⁡ 2 JSD(P||Q)=\frac{1}{2}\sum p(x)\log(\frac{p(x)}{p(x)+q(x)})+\frac{1}{2}\sum q(x)\log(\frac{q(x)}{p(x)+q(x)})+\log2 JSD(PQ)=21p(x)log(p(x)+q(x)p(x))+21q(x)log(p(x)+q(x)q(x))+log2这是因为 ∑ p ( x ) = ∑ q ( x ) = 1 \sum p(x) = \sum q(x) = 1 p(x)=q(x)=1

接下来,我们只需要证明当 p ( x ) p(x) p(x) q ( x ) q(x) q(x)不重叠时,左边部分为0即可。为了方便大家理解,我放了一张数据分布图:

GAN:两者分布不重合JS散度为log2的数学证明_第1张图片

在这张图里,我们令 P r P_r Pr P g P_g Pg都是服从正态分布,并且不妨令 p ( x ) p(x) p(x) P r P_r Pr取得 x x x时的概率, q ( x ) q(x) q(x) P g P_g Pg取得 x x x时的概率。可以发现,在两个分布之间,几乎不存在重叠( P r o b a b i l i t y ( x ) Probability(x) Probability(x)表示取得 x x x的概率值)。
接下来,我们回到上式的左边部分,即 1 2 ∑ p ( x ) log ⁡ ( p ( x ) p ( x ) + q ( x ) ) + 1 2 ∑ q ( x ) log ⁡ ( q ( x ) p ( x ) + q ( x ) ) \frac{1}{2}\sum p(x)\log(\frac{p(x)}{p(x)+q(x)})+\frac{1}{2}\sum q(x)\log(\frac{q(x)}{p(x)+q(x)}) 21p(x)log(p(x)+q(x)p(x))+21q(x)log(p(x)+q(x)q(x))我们可以发现,当 x ≥ 5 x\geq 5 x5时, p ( x ) ≈ 0 p(x)\approx 0 p(x)0,则上式变为 1 2 ∑ 0 × l o g ( 0 0 + q ( x ) ) + 1 2 ∑ q ( x ) log ⁡ ( q ( x ) 0 + q ( x ) ) = 0 \frac{1}{2}\sum 0\times log(\frac{0}{0+q(x)})+\frac{1}{2}\sum q(x)\log(\frac{q(x)}{0+q(x)})=0 210×log(0+q(x)0)+21q(x)log(0+q(x)q(x))=0 x < 5 x<5 x<5时, q ( x ) ≈ 0 q(x)\approx 0 q(x)0,则上式变为 1 2 ∑ p ( x ) log ⁡ ( p ( x ) p ( x ) + 0 ) + 1 2 ∑ 0 × log ⁡ ( 0 p ( x ) + 0 ) = 0 \frac{1}{2}\sum p(x)\log(\frac{p(x)}{p(x)+0})+\frac{1}{2}\sum 0\times \log(\frac{0}{p(x)+0})=0 21p(x)log(p(x)+0p(x))+210×log(p(x)+00)=0所以可以得出, ∀ x ∈ R , 都 有 J S D ( P ∣ ∣ Q ) = log ⁡ 2 \forall x \in R,都有JSD(P||Q)=\log2 xRJSD(PQ)=log2这就是JS散度的缺陷,当两个分布完全不重叠时,即便两个分布的中心距离有多近,其JS散度都是一个常数,以至于梯度为0,无法更新。


为什么会出现两个分布不重叠?
从理论和经验上来说,真实的数据分布通常是一个低维流形,简单地说就是数据不具备高维特性,而是存在一个嵌入在高维度的低维空间内,如下图在3维空间中,数据事实上是在一个二维平面上:

GAN:两者分布不重合JS散度为log2的数学证明_第2张图片

而且,在实际操作中,我们的维度空间远远不止3维,有可能是上百维,在这样的情况下,数据就更加难于重合。


如果觉得我有地方讲的不好的或者有错误的欢迎给我留言,谢谢大家阅读(点个赞我可是会很开心的哦)~

你可能感兴趣的:(深度学习/机器学习,JS散度,分布不重叠,log2,GAN)