信息论中的熵(Entropy)一般被解释为随机分布的不确定性,但其实有明确的物理意义:编码一个随机事件,平均所需的比特位数下界(二进制下的最短平均编码长度,熵表达式中底数2的来源)。具体证明参考[^1]:
(1). 二进制中,长度为 L L L的编码耗费的信息空间比例(代价)为:
(1-1) c o s t ( L ) = 1 2 L cost(L)=\frac{1 }{2^{L}} \tag{1-1} cost(L)=2L1(1-1)
。比如,以01编码了一个信息,为了避免解码时的歧义其它编码不能以01开头,其长度为2占用了整个编码空间的代价为 c o s t ( 2 ) = 1 2 2 = 1 4 cost(2)=\frac{1}{2^{2}}=\frac{1}{4} cost(2)=221=41
(2). 在二进制的各种编码方式中,以事件 x x x出现的概率分布 p ( x ) p(x) p(x)为代价编码时,平均编码长度会最短,用这种最佳编码方法得到的平均长度称为信息熵 H ( p ) H(p) H(p)。
由(1-1)可知代价 c o s t ( L ) = p ( x ) 时 , 编 码 事 件 cost(L)=p(x)时,编码事件 cost(L)=p(x)时,编码事件x 的 长 度 L = log 2 1 p ( x ) 的长度L=\log_2\frac{1}{p(x)} 的长度L=log2p(x)1,所以平均编码长度为:
(1-2) a v g ( L ) = H ( p ) = ∑ x p ( x ) log 2 ( 1 p ( x ) ) avg(L)=H(p)=\sum_x p(x)\log_2\left(\frac{1}{p(x)}\right) \tag{1-2} avg(L)=H(p)=x∑p(x)log2(p(x)1)(1-2)
另一种更常见的变形为:
(1-3) H ( p ) = − ∑ x p ( x ) log ( p ( x ) ) H(p)=-\sum_x p(x)\log(p(x)) \tag{1-3} H(p)=−x∑p(x)log(p(x))(1-3)
(因为 log ( 1 / a ) = − log ( a ) \log(1/a)=−\log(a) log(1/a)=−log(a) 。但原始形式更直观、物理意义更明确,为方便理解后面的相关概念也以原始形式引出)
用其它分布 p ( x ) p(x) p(x)的最佳编码方式来编码另一种分布 q ( x ) q(x) q(x)时,信息的平均长度就是 p p p关于 q q q的交叉熵。结合(1-2)可知交叉熵 H p ( q ) H_p(q) Hp(q):
(2-1) H p ( q ) = ∑ x q ( x ) log 2 ( 1 p ( x ) ) H_p(q)=\sum_x q(x)\log_2\left(\frac{1}{p(x)}\right) \tag{2-1} Hp(q)=x∑q(x)log2(p(x)1)(2-1)
可以看出交叉熵不是对称的。
我们为什么要关心交叉熵?交叉熵给我们提供了一种方式来衡量两个概率分布的差异程度。如果 p p p与 q q q的差异越大,那么 p p p关于 q q q的交叉熵就比 q q q的熵更大,这个差值称为KL散度(KL divergence)或相对熵:
(3-1) D p ( q ) = H p ( q ) − H ( q ) = ∑ x q ( x ) log 2 ( 1 p ( x ) ) − ∑ x q ( x ) log 2 ( 1 q ( x ) ) = ∑ x q ( x ) log 2 ( q ( x ) p ( x ) ) D_p(q)=H_p(q)−H(q)\\ =\sum_x q(x)\log_2(\frac{1}{p(x)}) - \sum_x q(x)\log_2(\frac{1}{q(x)})\\ =\sum_x q(x)\log_2(\frac{q(x)}{p(x)}) \tag{3-1} Dp(q)=Hp(q)−H(q)=x∑q(x)log2(p(x)1)−x∑q(x)log2(q(x)1)=x∑q(x)log2(p(x)q(x))(3-1)
交叉熵和KL divergence在机器学习领域都非常适用。很多问题都转化为学习一个分布去逼近另外一个分布,比如我们需要用一个预测的分布 p ( x ) p(x) p(x)来逼近实际真实的分布 q ( x ) q(x) q(x)。KL divergence提供了一个很好的思路来定义损失函数: L o s s ( p ) = D p ( q ) = H p ( q ) − H ( q ) Loss(p) = D_p(q)=H_p(q)−H(q) Loss(p)=Dp(q)=Hp(q)−H(q)。因为在固定的样本上对于不同的预测分布 p ( x ) p(x) p(x), 真实分布的 H ( q ) H(q) H(q)是一样的,所以优化目标一般直接用cross-entropy代替:
L o s s ( p ) = H p ( q ) Loss(p) = H_p(q) Loss(p)=Hp(q)
KL-divergence的非负性证明:
直观理解上,由定义可知熵 H ( q ) H(q) H(q)已经是q的最优编码的平均长度,交叉熵 H p ( q ) H_p(q) Hp(q)是用另一种分布p的最优编码方式来编码q的平均长度, H p ( q ) H_p(q) Hp(q)一定大于等于 H ( q ) H(q) H(q),所以是非负的。下面给出数学证明:
将一维随机变量分布推广到多维随机变量分布,随机事件 X , Y X,Y X,Y的联合信息熵 H ( X , Y ) H(X,Y) H(X,Y):
(4-1) H ( X , Y ) = ∑ x , y p ( x , y ) log 1 p ( x , y ) H(X,Y)=\sum_{x,y}p(x,y)\log\frac{1}{p(x,y)} \tag{4-1} H(X,Y)=x,y∑p(x,y)logp(x,y)1(4-1)
条件熵 H ( X ∣ Y ) H(X|Y) H(X∣Y) 表示在已知随机变量 Y Y Y 的条件下随机变量 X X X 的不确定性。条件熵 H ( X ∣ Y ) H(X|Y) H(X∣Y) 定义为 Y Y Y 给定条件下 X X X的条件概率分布的熵对 Y Y Y 的数学期望:
(4-2) H ( X ∣ Y ) = ∑ y p ( y ) H ( X ∣ Y ) = ∑ y p ( y ) ∑ x p ( x ∣ y ) log 1 p ( x ∣ y ) = ∑ x , y p ( x , y ) log 1 p ( x ∣ y ) H(X|Y)=\sum_{y}p(y)H(X|Y)\\ =\sum_{y}p(y)\sum_{x}p(x|y)\log\frac{1}{p(x|y)}\\ =\sum_{x,y}p(x,y)\log\frac{1}{p(x|y)} \tag{4-2} H(X∣Y)=y∑p(y)H(X∣Y)=y∑p(y)x∑p(x∣y)logp(x∣y)1=x,y∑p(x,y)logp(x∣y)1(4-2)
关系:
(4-3) H ( X , Y ) = H ( Y ) + H ( X ∣ Y ) H(X,Y)=H(Y)+H(X|Y) \tag{4-3} H(X,Y)=H(Y)+H(X∣Y)(4-3)
。 可以理解为 X X X和 Y Y Y共同的信息等于 Y Y Y的信息量,加上知道 Y Y Y后要表达 X X X时的信息量。
互信息就是一个联合分布中的两个信息的纠缠程度/或者叫相互影响那部分的信息量 :
(5-1) I ( X ; Y ) = H ( X ) + H ( Y ) − H ( X , Y ) I(X;Y)=H(X)+H(Y)−H(X,Y) \tag{5-1} I(X;Y)=H(X)+H(Y)−H(X,Y)(5-1)
由式(4-3)可知上式等价于:
(5-2) I ( X ; Y ) = H ( X ) − H ( X ∣ Y ) = H ( Y ) − H ( Y ∣ X ) = I ( Y , X ) I(X;Y)=H(X)−H(X|Y)\\ =H(Y)-H(Y|X)\\ =I(Y,X) \tag{5-2} I(X;Y)=H(X)−H(X∣Y)=H(Y)−H(Y∣X)=I(Y,X)(5-2)
式(5-2)通常也被称作信息增益,比如在决策树中用来衡量特征 Y Y Y的加入对数据 X X X的熵减少的程度,特征选择时选取信息增益大的特征。
互信息的表达式推导:
(5-3) I ( X ; Y ) = H ( X ) − H ( X ∣ Y ) = ∑ x p ( x ) log 2 ( 1 p ( x ) ) − ∑ x , y p ( x , y ) log 1 p ( x ∣ y ) = ∑ x , y p ( x , y ) log 2 ( 1 p ( x ) ) − ∑ x , y p ( x , y ) log p ( y ) p ( x , y ) = ∑ x , y p ( x , y ) log 2 ( p ( x , y ) p ( x ) p ( y ) ) I(X;Y)=H(X)−H(X|Y)\\ =\sum_x p(x)\log_2\left(\frac{1}{p(x)}\right) - \sum_{x,y}p(x,y)\log\frac{1}{p(x|y)}\\ =\sum_{x,y} p(x,y)\log_2\left(\frac{1}{p(x)}\right) - \sum_{x,y}p(x,y)\log\frac{p(y)}{p(x,y)}\\ =\sum_{x,y} p(x,y)\log_2\left(\frac{p(x,y)}{p(x)p(y)}\right) \tag{5-3} I(X;Y)=H(X)−H(X∣Y)=x∑p(x)log2(p(x)1)−x,y∑p(x,y)logp(x∣y)1=x,y∑p(x,y)log2(p(x)1)−x,y∑p(x,y)logp(x,y)p(y)=x,y∑p(x,y)log2(p(x)p(y)p(x,y))(5-3)
特征评估有时常用的另一种形式是点互信息(Pointwise Mutual Information, PMI),用来衡量两个事物之间的相关性。比如两个词 x , y x,y x,y,或者词 x x x和类别 y y y的相关性。
(5-4) P M I ( x ; y ) = log p ( x , y ) p ( x ) p ( y ) = log p ( y ∣ x ) p ( y ) = log p ( x ∣ y ) p ( x ) PMI(x;y)=\log\frac{p(x,y)}{p(x)p(y)}=\log\frac{p(y|x)}{p(y)} = \log\frac{p(x|y)}{p(x)} \tag{5-4} PMI(x;y)=logp(x)p(y)p(x,y)=logp(y)p(y∣x)=logp(x)p(x∣y)(5-4)
可以看出点互信息是对称的 P M I ( x ; y ) = P M I ( x ; y ) PMI(x;y)=PMI(x;y) PMI(x;y)=PMI(x;y)。在概率论中我们知道,如果x跟y不相关,则 p ( x , y ) = p ( x ) p ( y ) p(x,y)=p(x)p(y) p(x,y)=p(x)p(y)。如果二者相关性越大,则 p ( x , y ) p(x,y) p(x,y)就相比于 p ( x ) p ( y ) p(x)p(y) p(x)p(y)越大。
用后面的式子可能更好理解,在 y y y出现的情况下 x x x出现的条件概率 p ( x ∣ y ) p(x|y) p(x∣y)(文本类别 y y y中词 x x x出现的频率)除以 x x x本身出现的概率 p ( x ) p(x) p(x)(词 x x x在所有文本类别中出现的频率),自然就表示 x x x跟 y y y的相关程度(词 x x x和文本类别 y y y的相关程度)。
[^1] http://colah.github.io/posts/2015-09-Visual-Information/
[^2] https://www.cnblogs.com/kyrieng/p/8694705.html
[^3] https://blog.csdn.net/haolexiao/article/details/70142571