自然语言处理中数学基础(信息论)
01.熵(entropy)
如果
X
是一个离散性随机变量,其概率分布为:
P(x)=P(X=x)x∈X
,
X
的熵
H(X)
为:
H(X)=−∑x∈XP(x)log2P(x)
H(X)
也可以写成
H(p)(bit)
熵又称为自信息(self-information),表示信源
x
每一个符号(不论发出什么符号)所提供的平均信息量。
02.联合熵(joint entropy)
如果
X,Y
是一对离散随机变量(
X,Y
有一定的关系),
X,Y
的联合熵
H(X,Y)
为:
H(X,Y)=−∑x∈X∑y∈YP(x,y)logP(x,y)
联合熵实际上就是描述一对随机变量平均所需要的信息量。
03.条件熵(conditional entropy)
给定随机变量
X
的情况下,随机变量
Y
的条件熵定义为:
H(Y|X)=−∑x∈XP(x)H(Y|X=x)=−∑x∈XP(x)[−∑y∈YP(y|x)log(P(y|x)]=−∑x∈X∑y∈YP(x,y)logP(y|x)
在此我们也可以做进一步的推导:
H(X,Y)=−∑x∈X∑y∈YP(x,y)logP(x,y)=−∑x∈X∑y∈YP(x,y)log[P(x)P(y|x)]=−∑x∈X∑y∈YP(x,y)logP(x)−∑x∈X∑y∈YP(x,y)logP(y|x)(Notice:∑y∈YP(x,y)=P(x))=−∑x∈XP(x)log(P(x))−∑x∈X∑y∈YP(x,y)logP(y|x)=H(X)+H(Y|X)
为了更加便于理解以上概念,博主在网上搜了一道例题供大家参考:
一个二进制信源
X
发出符号集{0,1},经过离散无记忆新的传输,信道输出用
Y
表示,由于信道正存在噪声,接收端除收到0和1的符号外,还有不确定符号“2”,已知
X
的先验概率:
P(x0)=2/3
,
P(x1)=1/3
;
符号的转移概率:
P(y0|x0)=3/4
;
P(y2|x0)=1/4
;
P(y1|x1)=1/2
;
P(y2|x1)=1/2
其对应的图形有:
那么根据这些信息可以计算出:
1.信息熵:
H(X)
H(X)=H(2/3,1/3)=−2/3log(2/3)−1/3log(1/3)=0.92bit
2.条件熵:
H(Y|X)
由
P(xiyj)=P(xi)P(yj|xi)=P(yj)P(xi|yj)
(这里使用条件概率公式可以推导)
进而有:联合概率:
P(x0y0)=P(x0)P(y0|x0)=23∗34=12
P(x0y1)=P(x0)P(y1|x0)=0
P(x0y2)=P(x0)P(y2|x0)=23∗14=16
P(x1y0)=P(x1)P(y0|x1)=0
P(x1y1)=P(x1)P(y1|x1)=13∗12=16
P(x1y2)=P(x1)P(y2|x1)=13∗12=16
进而有:
H(Y|X)=−∑i,jP(xiyj)logP(yj|xi)=−12log34−13log14−16log12−16log12=0.88bit
3.联合熵:
H(XY)
由条件熵中的推导可知:
H(XY)=H(X)+H(Y|X)=1.8bit/符号
4.信源输出熵:
H(Y)
由全概率公式有:
∑i=1nP(xiyj)=P(yj)
、
∑j=1mP(xiyj)=P(xi)
得:
P(y0)=∑P(xiy0)=P(x0y0)+P(x1y0)=12+0=12
P(y1)=∑P(xiy1)=P(x0y1)+P(x1y1)=0+16=16
P(y2)=∑P(xiy2)=P(x0y2)+P(x1y2)=16+16=13
故有:
H(Y)=H(12,13,16)=−12log12−13log13−16log16=1.47bit
5.条件熵:
H(X|Y)
这里就介绍思路,具体步骤可以参照以上;依然是根据条件概率和全概率公式计算,先求得y条件下的x的概率,然后再结合条件概率公式求解即可。结果为
0.33bit