熵的定义
H = − ∑ i = 1 N p ( x i ) l o g ( p ( x i ) ) H=-\sum_{i=1}^Np(x_i)log(p(x_i)) H=−i=1∑Np(xi)log(p(xi))
KL散度实际含义
D = ∑ i = 1 N p ( x i ) l o g 2 ( q ( x i ) p ( x i ) ) = ∑ i = 1 N p ( x i ) ∗ ( l o g 2 ( q ( x i ) ) − l o g 2 ( p ( x i ) ) ) D=\sum_{i=1}^Np(x_i)log_2(\frac{q(x_i)}{p(x_i)})=\sum_{i=1}^Np(x_i)*(log_2(q(x_i))-log_2(p(x_i))) D=i=1∑Np(xi)log2(p(xi)q(xi))=i=1∑Np(xi)∗(log2(q(xi))−log2(p(xi)))
实际用途
在很多情况下,我们没有办法计算出来真正的概率,我们只能尽可能的去拟合。在上式子中, p ( x i ) p(x_i) p(xi)是真实的概率, q ( x i ) q(x_i) q(xi)是我们的拟合概率的函数,最后可以用这个作为loss来优化
可能有用的地方
给定两组数据
p
:
p
1
,
p
2
,
p
3
,
.
.
.
p
n
p:p_1,p_2,p_3,...p_n
p:p1,p2,p3,...pn,且p是真实数据
q
:
q
1
,
q
2
,
q
3
,
.
.
.
q
n
q:q_1,q_2,q_3,...q_n
q:q1,q2,q3,...qn
可以用这个loss:
l
o
s
s
=
∑
i
=
0
n
(
p
i
−
q
i
)
2
∗
l
o
g
2
(
q
i
2
p
i
2
)
loss=\sum_{i=0}^n(p_i-q_i)^2*log_2(\frac{q_i^2}{p_i^2})
loss=i=0∑n(pi−qi)2∗log2(pi2qi2)
我们可以发现有这么一个性质,当 p i p_i pi越靠近 q i q_i qi时候,loss越小,反之越大
可能的延伸
把KL散度中的概率表示加入进去