1、熵
在信息论中,熵用来衡量一个随机事件的不确定性。在物理学中,表示一个热力学系统的无序程度。
1.1 自信息和熵
自信息(Self Information)表示一个随机事件所包含的信息量. 一个随机事件发生的概率越高,其自信息越低. 如果一个事件必然发生,其自信息为0.
对一个随机变量
X
X
X(
X
∈
X
X\in{\mathfrak{X}}
X∈X,概率分布为
P
(
x
)
,
x
∈
X
P(x),x\in{\mathfrak{X}}
P(x),x∈X,当
X
=
x
X=x
X=x时,自信息
I
(
x
)
I(x)
I(x)定义为:
I
(
x
)
=
−
l
o
g
p
(
x
)
(式1)
I(x)=-logp(x)\tag{式1}
I(x)=−logp(x)(式1)
对于分布为
p
(
x
)
p(x)
p(x)的随机变量
X
X
X,其熵(自信息的期望)的定义如下:
H
(
X
)
=
E
X
[
I
(
x
)
]
=
E
X
[
−
l
o
g
p
(
x
)
]
=
−
∑
x
∈
X
p
(
x
)
l
o
g
p
(
x
)
(式2)
H(X)=E_X[I(x)]=E_X[-logp(x)]=-\sum_{x\in{\mathfrak{X}}}p(x)logp(x)\tag{式2}
H(X)=EX[I(x)]=EX[−logp(x)]=−x∈X∑p(x)logp(x)(式2)
熵越大,则随机变量的信息越多;熵越小,则随机变量的信息越小。如果对于一个确定的信息,那么熵为零,信息量也为零。如果一个概率分布为一个均匀分布,则熵最大。
1.2 联合熵和条件熵
对于两个离散随机变量
X
和
Y
X和Y
X和Y,假设
X
X
X取值集合为
X
\mathfrak{X}
X;
Y
Y
Y取值集合为
Y
\mathcal{Y}
Y,联合概率分布满足
p
(
x
,
y
)
p(x,y)
p(x,y),则
X
和
Y
X和Y
X和Y的联合熵为:
H
(
X
,
Y
)
=
−
∑
x
∈
X
∑
y
∈
Y
p
(
x
,
y
)
l
o
g
p
(
x
,
y
)
(式3)
H(X,Y)=-\sum_{x\in{\mathfrak{X}}}\sum_{y\in{\mathcal{Y}}}p(x,y)logp(x,y)\tag{式3}
H(X,Y)=−x∈X∑y∈Y∑p(x,y)logp(x,y)(式3)
X
和
Y
X和Y
X和Y的条件熵为:
H
(
X
∣
Y
)
=
−
∑
x
∈
X
∑
y
∈
Y
p
(
x
,
y
)
l
o
g
p
(
x
∣
y
)
=
−
∑
x
∈
X
∑
y
∈
Y
p
(
x
,
y
)
l
o
g
p
(
x
,
y
)
p
(
y
)
(式4)
H(X|Y)=-\sum_{x\in{\mathfrak{X}}}\sum_{y\in{\mathcal{Y}}}p(x,y)logp(x\vert{y})=-\sum_{x\in{\mathfrak{X}}}\sum_{y\in{\mathcal{Y}}}p(x,y)log\cfrac{p(x,y)}{p(y)}\tag{式4}
H(X∣Y)=−x∈X∑y∈Y∑p(x,y)logp(x∣y)=−x∈X∑y∈Y∑p(x,y)logp(y)p(x,y)(式4)
2、互信息
互信息是衡量已知一个变量时,另一个变量不确定性减少程度。两个离散随机变量
X
X
X和
Y
Y
Y的互信息定义为:
I
(
X
:
Y
)
=
∑
x
∈
X
∑
y
∈
Y
p
(
x
,
y
)
l
o
g
p
(
x
,
y
)
P
(
x
)
p
(
y
)
(式5)
I(X:Y)=\sum_{x\in{\mathfrak{X}}}\sum_{y\in{\mathcal{Y}}}p(x,y)log\cfrac{p(x,y)}{P(x)p(y)}\tag{式5}
I(X:Y)=x∈X∑y∈Y∑p(x,y)logP(x)p(y)p(x,y)(式5)
性质:
I
(
X
:
Y
)
=
H
(
X
)
−
H
(
X
∣
Y
)
=
H
(
Y
)
−
H
(
Y
∣
X
)
(式6)
I(X:Y)=H(X)-H(X|Y)\\=H(Y)-H(Y|X)\tag{式6}
I(X:Y)=H(X)−H(X∣Y)=H(Y)−H(Y∣X)(式6)
如果变量
X
X
X和变量
Y
Y
Y互相独立,他们的互信息为零。
3、交叉熵和散度
3.1 交叉熵
对于分布为
p
(
x
)
p(x)
p(x)的随机变量,熵
H
(
p
)
H(p)
H(p)表示其最优编码长度。交叉熵是按照概率分布
q
q
q的最优编码对真实分布
p
p
p的信息进行编码的长度,定义如下:
H
(
p
,
q
)
=
E
p
[
−
l
o
g
q
(
x
)
]
=
−
∑
x
p
(
x
)
l
o
g
q
(
x
)
(式7)
H(p,q)=E_p[-logq(x)]=-\sum_{x}p(x)logq(x)\tag{式7}
H(p,q)=Ep[−logq(x)]=−x∑p(x)logq(x)(式7)
在给定
p
p
p的情况下,如果
q
和
p
q和p
q和p约接近,那么交叉熵越小;如果
q
和
P
q和P
q和P越远,交叉熵越大。
3.2 KL散度
K
L
散
度
KL散度
KL散度也叫做
K
L
距
离
KL距离
KL距离或者
相
对
熵
相对熵
相对熵,是用概率分布
q
q
q来近似
p
p
p时所造成的信息损失量。KL散度是按照概率分布
q
q
q的最优编码对真实分布
p
p
p的信息进行编码,其平均编码长度(交叉熵)
H
(
p
,
q
)
H(p,q)
H(p,q)和
p
p
p的最优编码长度(熵)
H
(
p
)
H(p)
H(p)之间的差异。对于离散概率分布
p
p
p和
q
q
q,从
q
到
q到
q到p$的KL散度定义为:
K
L
(
p
,
q
)
=
H
(
p
,
q
)
−
H
(
p
)
=
∑
x
p
(
x
)
l
o
g
p
(
x
)
q
(
x
)
(式8)
KL(p,q)=H(p,q)-H(p)=\sum_xp(x)log\cfrac{p(x)}{q(x)}\tag{式8}
KL(p,q)=H(p,q)−H(p)=x∑p(x)logq(x)p(x)(式8)
KL散度总是非负的,即 K L ( p , q ) ≥ 0 KL(p,q)\ge{0} KL(p,q)≥0,可以衡量两个概率分布之间的距离。只有当 p = q p=q p=q时, K L ( p , q ) = 0 KL(p,q)=0 KL(p,q)=0.
3.3 JS散度
J
S
散
度
JS散度
JS散度是一种对称的衡量两个分布相似度的度量方式,定义如下:
J
S
(
p
,
q
)
=
1
2
K
L
(
p
,
m
)
+
1
2
K
L
(
q
,
m
)
(式9)
JS(p,q)=\cfrac{1}{2}KL(p,m)+\cfrac{1}{2}KL(q,m)\tag{式9}
JS(p,q)=21KL(p,m)+21KL(q,m)(式9)
其中:
m
=
1
2
(
p
+
q
)
m=\cfrac{1}{2}(p+q)
m=21(p+q).
很明显,JS散度是KL散度的一种改进,JS散度是对称的,但是两中散度的共性问题是:当两个分布 p , q p,q p,q没有重叠或者重叠很少的时候,KL散度和JS散度都很难衡量两个分布的距离。
4、熵编码
信息论的研究目标之一是如何用最少的编码表示传递信息. 假设我们要传递一段文本信息,这段文本中包含的符号都来自于一个字母表 A \boldsymbol{A} A,我们就需要对字母表 A \boldsymbol{A} A 中的每个符号进行编码. 以二进制编码为例,我们常用的ASCII 码就是用固定的8 bits 来编码每个字母. 但这种固定长度的编码方案不是最优的. 一种高效的编码原则是字母的出现概率越高,其编码长度越短. 比如对字母 a , b , c a,b,c a,b,c 分别编码为0, 10, 110.
给定一串要传输的文本信息,其中字母 x x x的出现概率为 p ( x ) p(x) p(x),其最佳编码长度为 − l o g 2 p ( x ) -log_2p(x) −log2p(x),整段文本的平均编码长度为 − ∑ x p ( x ) l o g 2 p ( x ) -\sum_xp(x)log_2p(x) −∑xp(x)log2p(x),即底为2 的熵.
在对分布 p ( x ) p(x) p(x) 的符号进行编码时,熵 H ( p ) H(p) H(p)也是理论上最优的平均编码长度,这种编码方式称为熵编码(Entropy Encoding).
由于每个符号的自信息通常都不是整数,因此在实际编码中很难达到理论上的最优值. 霍夫曼编码(Huffman Coding)和算术编码(Arithmetic Coding)是两种最常见的熵编码技术.