香农信息量
信息量表示不确定性的大小。 信息量的单位是比特(bit)。
香
农
信
息
量
=
log
1
p
=
−
log
p
(
以
2
为
底
)
香农信息量=\log\frac{1}{p}=-\log p\quad(以2为底)
香农信息量=logp1=−logp(以2为底)
上式中,p越小,则不确定性越大,包含的信息量就越多。比如32支球队,在无任何先验信息的前提下,用二分法猜冠军队伍,最多猜5次,那么信息量就是
log
1
32
=
5
\log \frac{1}{32}=5
log321=5。
信息熵(Entropy)
用于衡量信息量和变量的不确定度。熵越大,所涵盖的信息量越大,变量的不确定度越大。对于任意一个随机变量X,它的熵定义如下:
H
(
X
)
=
−
∑
x
∈
X
P
(
x
)
log
P
(
x
)
H(X)=-\sum_{x\in X}P(x)\log P(x)
H(X)=−x∈X∑P(x)logP(x)
当X中每个x的概率P(x)相等时,X的不确定度最大,熵最大,也就是其涵盖的信息量最大。
熵的概念来源于热力学中的熵,代表系统中的混乱程度(也就是不确定度)。熵越大,系统越混乱,越接近与均匀分布。(很容易想象,如果系统的分布很不均匀,也就是有某种规律在里面,那么系统的混乱程度就低)
条件熵(Conditional Entropy)
条件熵的含义是:假定X和Y是两个随机变量。现在我们知道X和Y同时出现的概率(联合分布),以及在Y取不同值的前提下X的概率分布(条件概率分布)。那么定义X在Y的条件下的条件熵为:
H
(
X
∣
Y
)
=
−
∑
x
∈
X
,
y
∈
Y
P
(
x
,
y
)
l
o
g
P
(
x
∣
y
)
H(X|Y)=-\sum_{x\in X,y\in Y}P(x,y)logP(x|y)
H(X∣Y)=−x∈X,y∈Y∑P(x,y)logP(x∣y)
可以证明,H(X)>=H(X|Y)。也就是说多了Y的信息后,关于X的不确定性下降了。在统计语言模型中,如果把Y看成是前一个字,那么在数学上就证明了二元模型的不确定性小于一元模型。
当Y与X完全无关(独立)时,H(X|Y)=H(X)
同理,可以定义有两个条件的条件熵
H
(
X
∣
Y
,
Z
)
=
−
∑
x
∈
X
,
y
∈
Y
,
z
∈
Z
P
(
x
,
y
,
z
)
l
o
g
P
(
x
∣
y
,
z
)
H(X|Y,Z)=-\sum_{x\in X,y\in Y,z\in Z}P(x,y,z)logP(x|y,z)
H(X∣Y,Z)=−x∈X,y∈Y,z∈Z∑P(x,y,z)logP(x∣y,z)
还可以证明H(X|Y)>=H(X|Y,Z)。也就是说,三元模型应该比二元的好。
互信息(Mutual Information)
互信息用来表示事件X和Y的相关性。互信息是一个取值在0到min(H(X),H(Y))之间的函数。当X和Y完全相关时,它的取值是H(X),同时H(X)=H(Y);当X和Y完全不相关时,X与Y的互信息为0。互信息的公式如下:
I
(
X
;
Y
)
=
∑
x
∈
X
,
y
∈
Y
P
(
x
,
y
)
l
o
g
P
(
x
,
y
)
P
(
x
)
P
(
y
)
=
H
(
X
)
−
H
(
X
∣
Y
)
I(X;Y)=\sum_{x\in X,y\in Y}P(x,y)log\frac{P(x,y)}{P(x)P(y)}=H(X)-H(X|Y)
I(X;Y)=x∈X,y∈Y∑P(x,y)logP(x)P(y)P(x,y)=H(X)−H(X∣Y)
相对熵(Relative Enrtopy)
又叫KL散度(Kullback-Leibler Divergence)
K
L
(
f
(
x
)
∣
∣
g
(
x
)
)
=
∑
x
∈
X
f
(
x
)
⋅
log
f
(
x
)
g
(
x
)
KL(f(x)||g(x))=\sum_{x\in X}f(x)\cdot \log\frac{f(x)}{g(x)}
KL(f(x)∣∣g(x))=x∈X∑f(x)⋅logg(x)f(x)
相对熵也用来衡量相关性,但和变量的互信息不同,它用来衡量两个取值为正数的函数的相似性。
不必关心公式本身,只要记住下面三条结论就好:
- 如果两个函数完全相同,那么它们的相对熵为0
- 相对熵越大,两个函数的差异越大;相对熵越小,两个函数的差异越小
- 对于概率分布或者概率密度函数(>0),如果取值都大于0,那么相对熵可以度量两个随机分布的差异性
需要注意,相对熵是不对称的,即:
K
L
(
f
(
x
)
∣
∣
g
(
x
)
)
≠
K
L
(
g
(
x
)
∣
∣
f
(
x
)
)
KL(f(x)||g(x)) \ne KL(g(x)||f(x))
KL(f(x)∣∣g(x))=KL(g(x)∣∣f(x))
因此为了方便,詹森和香农剔除一种新的相对熵计算方法,将不等式两边取平均,即:
J
S
(
f
(
x
)
∣
∣
g
(
x
)
)
=
1
2
[
K
L
(
f
(
x
)
∣
∣
g
(
x
)
)
+
K
L
(
g
(
x
)
∣
∣
f
(
x
)
)
]
JS(f(x)||g(x))=\frac{1}{2}[KL(f(x)||g(x))+KL(g(x)||f(x))]
JS(f(x)∣∣g(x))=21[KL(f(x)∣∣g(x))+KL(g(x)∣∣f(x))]
交叉熵(Cross-Entropy)
对于一个随机事件,其真实概率分布为p(x),从数据中得到的概率分布为q(x),则我们定义,交叉熵为:
H
(
p
,
q
)
=
∑
i
p
(
x
)
log
1
q
(
x
)
=
−
∑
i
p
(
x
)
log
q
(
x
)
H(p,q)=\sum_ip(x)\log\frac{1}{q(x)}=-\sum_ip(x)\log q(x)
H(p,q)=i∑p(x)logq(x)1=−i∑p(x)logq(x)
理解:
用p的熵来衡量识别一个真实分布的信息量:
H
(
p
)
=
∑
p
log
1
p
H(p)=\sum p\log \frac{1}{p}
H(p)=∑plogp1
用q来估计真实分布为p的样本的信息量:
H
(
p
,
q
)
=
∑
p
log
1
q
H(p,q)=\sum p\log \frac{1}{q}
H(p,q)=∑plogq1
则估计多出来的冗余信息量
D
(
p
∣
∣
q
)
=
H
(
p
,
q
)
−
H
(
p
)
=
∑
p
log
p
q
D(p||q)=H(p,q)-H(p)=\sum p\log\frac{p}{q}
D(p∣∣q)=H(p,q)−H(p)=∑plogqp (就是KL散度)
在机器学习中,通常设定p为真实标记的分布,q为训练后模型预测标记的分布。很容易发现:
H
(
p
,
q
)
=
H
(
p
)
+
D
K
L
(
p
∣
∣
q
)
H(p,q)=H(p)+D_{KL}(p||q)
H(p,q)=H(p)+DKL(p∣∣q)
即:pq的交叉熵=p的信息熵+pq的KL散度(相对熵)
由于真实分布的信息熵H§是固定不变的,因此我们在机器学习中就用交叉熵作为损失函数。
显然,
H
(
p
,
q
)
≥
H
(
p
)
H(p,q)\ge H(p)
H(p,q)≥H(p)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)