在信息论中,熵用来衡量一个随机事件的不确定性。在物理学中,表示一个热力学系统的无序程度。
自信息(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)
熵越大,则随机变量的信息越多;熵越小,则随机变量的信息越小。如果对于一个确定的信息,那么熵为零,信息量也为零。如果一个概率分布为一个均匀分布,则熵最大。
对于两个离散随机变量 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)
互信息是衡量已知一个变量时,另一个变量不确定性减少程度。两个离散随机变量 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互相独立,他们的互信息为零。
对于分布为 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越远,交叉熵越大。
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.
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散度都很难衡量两个分布的距离。
信息论的研究目标之一是如何用最少的编码表示传递信息. 假设我们要传递一段文本信息,这段文本中包含的符号都来自于一个字母表 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)是两种最常见的熵编码技术.