引言:
不知道大家在初学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(Pr∣∣Pg)=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(P∣∣Q)=∑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(Q∣∣P)=∑q(x)logp(x)q(x)其有一个特性,就是KL散度是非对称的,即
K
L
(
P
∣
∣
Q
)
≠
K
L
(
Q
∣
∣
P
)
KL(P||Q) \neq KL(Q||P)
KL(P∣∣Q)̸=KL(Q∣∣P)
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(P∣∣Q)=21KL(P∣∣M)+21KL(Q∣∣M)如果我们把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(P∣∣Q)=21∑p(x)log(2p(x)+q(x)p(x))+21∑q(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(P∣∣Q)=21∑p(x)log(p(x)+q(x)2p(x))+21∑q(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(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
\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即可。为了方便大家理解,我放了一张数据分布图:

在这张图里,我们令
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)})
21∑p(x)log(p(x)+q(x)p(x))+21∑q(x)log(p(x)+q(x)q(x))我们可以发现,当
x
≥
5
x\geq 5
x≥5时,
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
21∑0×log(0+q(x)0)+21∑q(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
21∑p(x)log(p(x)+0p(x))+21∑0×log(p(x)+00)=0所以可以得出,
∀
x
∈
R
,
都
有
J
S
D
(
P
∣
∣
Q
)
=
log
2
\forall x \in R,都有JSD(P||Q)=\log2
∀x∈R,都有JSD(P∣∣Q)=log2这就是JS散度的缺陷,当两个分布完全不重叠时,即便两个分布的中心距离有多近,其JS散度都是一个常数,以至于梯度为0,无法更新。
为什么会出现两个分布不重叠?
从理论和经验上来说,真实的数据分布通常是一个低维流形,简单地说就是数据不具备高维特性,而是存在一个嵌入在高维度的低维空间内,如下图在3维空间中,数据事实上是在一个二维平面上:

而且,在实际操作中,我们的维度空间远远不止3维,有可能是上百维,在这样的情况下,数据就更加难于重合。
如果觉得我有地方讲的不好的或者有错误的欢迎给我留言,谢谢大家阅读(点个赞我可是会很开心的哦)~