1、简介
- 信息熵是随机事件不确定性的度量
- 信息熵越
大
,不确定性越高
2、公式
H ( X ) = − ∑ i = 1 n p ( x i ) log 2 p ( x i ) = ∑ i = 1 n p ( x i ) log 2 1 p ( x i ) H(X) = - \sum_{i=1}^{n} {p(x_i) \log_2 p(x_i)} = \sum_{i=1}^{n} {p(x_i) \log_2\frac{1}{p(x_i)}} H(X)=−i=1∑np(xi)log2p(xi)=i=1∑np(xi)log2p(xi)1
先看下 − x log 2 x - x \log_2 x −xlog2x 的函数图像:
import numpy as np, matplotlib.pyplot as mp
X = np.linspace(0.001, 1, 1001)
Y = - X * np.log2(X)
mp.plot(X, Y)
如图所示,概率P取值在0~1,概率为0或1时取最小值0(
lim
x
→
0
−
x
log
2
x
=
0
\lim_{x\rightarrow0} - x \log_2 x = 0
limx→0−xlog2x=0)
3、举个栗子
栗子1
黑箱中10个球,分红白2色,随机抽取1个:
H
=
P
(
红
)
log
2
1
P
(
红
)
+
P
(
白
)
log
2
1
P
(
白
)
H=P(红) \log_2\frac{1}{P(红)} + P(白) \log_2\frac{1}{P(白)}
H=P(红)log2P(红)1+P(白)log2P(白)1
若5红5白,信息熵为1.00
,难以确定会抽到的哪个颜色;
若9红1白,信息熵为0.47
,有较大几率抽到红球,不确定性较小;
若全为红球,则信息熵为0
,必定抽到红球,无不确定性。
from math import log2
import matplotlib.pyplot as mp
for x in range(1, 10):
p1 = x / 10
p2 = 1 - p1
X = [p1, p2]
H = - sum([p * log2(p) for p in X])
print('红球概率:%.2f、白球概率:%.2f、信息熵:%.2f' % (p1, p2, H))
mp.bar(p1, H, color='r', width=0.018)
栗子2
import numpy as np, matplotlib.pyplot as mp
X = np.arange(1, 257) # 物种数取值范围
H = []
for x in X:
P = [1 / x for _ in range(x)] # 物种数为x时,概率的集合
H.append(- sum([p * np.log2(p) for p in P]))
mp.xlabel('species')
mp.ylabel('information entropy')
mp.plot(X, H)
如图,横坐标表示种类,纵坐标表示信息熵
种类是1时,信息熵为0;种类是256时,信息熵为8;种类越多,信息熵越大。
4、相关补充
联合熵
- 二维随机变量X、Y的不确定性的度量
H ( X , Y ) = − ∑ i = 1 n ∑ j = 1 n P ( x i , y j ) log P ( x i , y j ) H(X,Y) = - \sum_{i=1}^{n} \sum_{j=1}^{n} {P(x_i,y_j) \log P(x_i,y_j)} H(X,Y)=−i=1∑nj=1∑nP(xi,yj)logP(xi,yj)
条件熵
- 用于衡量:随机变量X发生的条件下,随机变量Y的不确定性
H ( Y ∣ X ) = − ∑ x , y P ( x , y ) log P ( y ∣ x ) H(Y|X) = - \sum_{x,y} {P(x,y) \log P(y|x)} H(Y∣X)=−x,y∑P(x,y)logP(y∣x)
互信息
- 随机变量X、Y之间相互依赖性的量度
I ( X , Y ) = − ∑ x ∈ X ∑ y ∈ Y P ( x , y ) log P ( x , y ) P ( x ) P ( x ) I(X,Y) = - \sum_{x \in X} \sum_{y \in Y} {P(x,y) \log \frac {P(x,y)}{P(x)P(x)}} I(X,Y)=−x∈X∑y∈Y∑P(x,y)logP(x)P(x)P(x,y)
最大熵模型
-
白话解释:
- 满足一定约束条件下,选择熵最大的模型 e.g.
-
- 对于随机变量
X
X
X,其可能的取值为
{
A
,
B
,
C
}
\{A,B,C\}
{A,B,C},没有任何约束的情况下,各个值等概率时模型的熵值最大:
P ( A ) = P ( B ) = P ( C ) = 1 3 P(A)=P(B)=P(C)=\frac{1}{3} P(A)=P(B)=P(C)=31
- 对于随机变量
X
X
X,其可能的取值为
{
A
,
B
,
C
}
\{A,B,C\}
{A,B,C},没有任何约束的情况下,各个值等概率时模型的熵值最大:
-
- 当给定一个约束
P
(
A
)
=
1
2
P(A)=\frac{1}{2}
P(A)=21时,满足该约束条件下的最大熵模型则变成:
P ( A ) = 1 2 ; P ( B ) = P ( C ) = 1 4 P(A)=\frac{1}{2};P(B)=P(C)=\frac{1}{4} P(A)=21;P(B)=P(C)=41
- 当给定一个约束
P
(
A
)
=
1
2
P(A)=\frac{1}{2}
P(A)=21时,满足该约束条件下的最大熵模型则变成: