交叉熵函数
信息量
一个信息的信息量取决于该消息对应事件发生概率的大小。或者说信息量是用来消除****随机不确定性的东西,衡量信息量的大小在于该信息消除不确定性的程度
例:
对于事件A,如果
P
(
A
)
=
1
P\left ( A \right ) = 1
P(A)=1,信息(A事件发生了)没有消除任何不确定性,则该信息量为0
如果事件B的发生概率很小,则信息(B事件发生了)消除了很大的不确定性,该信息量也很大
假设 X X X是一个离散型随机变量,其取值的集合为 ϕ \phi ϕ,其概率分布函数 p ( x ) = P r ( X = x ) , x ⊆ ϕ p(x) = Pr(X=x),x\subseteq\phi p(x)=Pr(X=x),x⊆ϕ , 则定义事件 X = X 0 X=X_{0} X=X0的信息量为 I ( x 0 ) = − l o g ( p ( x 0 ) ) I\left ( x_{0} \right ) = -log\left ( p\left ( x_{0} \right ) \right ) I(x0)=−log(p(x0))
熵
对于一个事件,有n种可能性,每一种可能性对应的概率 p ( x i ) p(x_{i}) p(xi),计算每一种可能性对应的信息量
事件 | 概率p | 信息量 |
---|---|---|
A | 0.7 | 0.36 |
B | 0.2 | 1.61 |
C | 0.1 | 2.30 |
熵可表示为所有信息量的期望,为 H ( X ) = ∑ i n p ( x i ) I ( x i ) = − ∑ i n p ( x i ) l o g ( p ( x i ) ) H\left ( X \right ) =\sum_{i}^{n}p\left ( x_{i} \right )I\left ( x_{i} \right ) =-\sum_{i}^{n}p(x_{i})log(p(x_{i})) H(X)=i∑np(xi)I(xi)=−i∑np(xi)log(p(xi))
相对熵(KL散度)
相对熵又称KL散度,如果我们对于同一个随机变量 x 有两个单独的概率分布 P(x) 和 Q(x),我们可以使用 KL 散度(Kullback-Leibler (KL) divergence)来衡量这两个分布的差异
计算公式为:
D
K
L
(
p
∣
∣
q
)
=
∑
i
=
1
n
p
(
x
i
)
l
o
g
(
p
(
x
i
)
q
(
x
i
)
)
D_{KL}(p||q)=\sum_{i=1}^n p(x_{i})log( \frac{p(x_{i})}{q(x_{i})} )
DKL(p∣∣q)=i=1∑np(xi)log(q(xi)p(xi))
D
K
L
D_{KL}
DKL的值越小,表示
q
q
q分别和
p
p
p分布越接近
在机器学习中,认为
p
p
p为现实生活中真实的分布,可以和现实数据完美拟合,
q
q
q分别为模型拟合的分布,相对熵可以表示模型分布和现实分布的差距
交叉熵
分解KL散度公式有
D
K
L
(
p
∣
∣
q
)
=
∑
i
=
1
n
p
(
x
i
)
l
o
g
(
p
(
x
i
)
)
−
∑
i
=
1
n
p
(
x
i
)
l
o
g
(
q
(
x
i
)
)
D_{KL}(p||q)=\sum_{i=1}^{n} p(x_{i})log(p(x_{i}))-\sum_{i=1}^{n}p(x_{i})log(q(x_{i}))
DKL(p∣∣q)=i=1∑np(xi)log(p(xi))−i=1∑np(xi)log(q(xi))
=
−
H
(
p
(
x
)
)
+
[
−
∑
i
=
1
n
p
(
x
i
)
l
o
g
(
q
(
x
i
)
)
]
=-H(p(x))+[-\sum_{i=1}^{n}p(x_{i})log(q(x_{i}))]
=−H(p(x))+[−i=1∑np(xi)log(q(xi))]
等式的前一部分恰巧就是p的熵,等式的后一部分,就是交叉熵:
H
(
p
,
q
)
=
−
H
(
p
(
x
)
)
+
[
−
∑
i
=
1
n
p
(
x
i
)
l
o
g
(
q
(
x
i
)
)
]
H(p,q) = -H(p(x))+[-\sum_{i=1}^{n}p(x_{i})log(q(x_{i}))]
H(p,q)=−H(p(x))+[−i=1∑np(xi)log(q(xi))]
参考:
https://blog.csdn.net/tsyccnh/article/details/79163834
https://blog.csdn.net/b1055077005/article/details/100152102