1948年Shannon博士的《A Mathematical Theory of Communication》(通信的数学理论)横空出世,创世般地开辟了信息论,信息论从此便在通信领域发光发热,为通信工程方面的成功奠定了坚实的理论基础。然而信息论是一门普适性理论,它被认为当下热潮的人工智能和机器学习修炼“内功”,这是因为人工智能本质是处理信息的,我们以为机器学习的算法可以用信息论的思维去理解。
文章目录
前言
在引入熵的概念之前,我们可以思考这样一个问题:
抛一枚有均匀正反面的硬币,和掷一个均匀六面的骰子,哪一种试验的不确定性更强一点呢?
粗略地看,我们感觉抛硬币这个试验的不确定性会更少一点,因为硬币毕竟仅有2个结果,而骰子有6个结果,但是对于这样一个直觉的事实,我们怎么进行量化从而在数字层面上反映两个随机变量的不确定性的大小关系呢?
Shannon提出了熵的概念,解决了以上这个问题。对于上述离散型随机事件,可以用离散熵定义其不确定性:
熵是一个随机变量不确定性的度量,对于一个离散型随机变量 X ∼ p ( x ) X \sim p(x) X∼p(x) ,其离散熵可以定义为:
H ( X ) = − ∑ x ∈ χ p ( x ) log p ( x ) H(X)=-\sum_{x \in \chi} p(x) \log p(x) H(X)=−x∈χ∑p(x)logp(x)
其中:花体 χ \chi χ 表示为包含所有小 x x x 元素的集合, log以 2 为底。
下面用Shannon离散熵量化解决我们之前引入的两个试验:
设随机变量 X X X 为抛一枚均匀硬币的取值,其中正面朝上用 1 表示,反面朝上用 0 表示,于是有:
P
{
X
=
0
,
1
}
=
1
2
P\{X=0,1\}=\frac{1}{2}
P{X=0,1}=21
注: 由于
X
=
0
,
X
=
1
X=0, X=1
X=0,X=1 概率均相等,为了版面整洁故合并表示。
H
(
X
)
=
−
1
2
×
log
1
2
−
1
2
×
log
1
2
=
1
H(X)=-\frac{1}{2} \times \log \frac{1}{2}-\frac{1}{2} \times \log \frac{1}{2}=1
H(X)=−21×log21−21×log21=1
设随机变量
Y
Y
Y 为掷一个六面均匀骰子的取值,其中
Y
=
1
,
2
,
…
,
6
Y=1,2, \ldots, 6
Y=1,2,…,6 ,于是有:
P
{
Y
=
1
,
2
,
…
,
6
}
=
1
6
P\{Y=1,2, \ldots, 6\}=\frac{1}{6}
P{Y=1,2,…,6}=61
有
H
(
Y
)
=
6
×
(
−
1
6
log
1
6
)
=
log
6
H(Y)=6 \times\left(-\frac{1}{6} \log \frac{1}{6}\right)=\log 6
H(Y)=6×(−61log61)=log6
综上我们有如下结论:
H
(
X
)
=
1
=
log
2
<
H
(
Y
)
=
log
6
H(X)=1=\log 2<H(Y)=\log 6
H(X)=1=log2<H(Y)=log6
即随机变量
X
X
X 的不确定性确实比随机变量
Y
Y
Y 来的要小,符合我们的直觉。
以更进一步地看,一个随机变量的熵越大,意味着不确定性越大,那么也就是说,该随机变量包含的信息量越大,那到底信息量是什么呢?抛一枚硬币的信息量就是,正面朝上,反面朝上,这
2
2
2就是信息量;同样,掷骰子的信息量就是
6
6
6个不同数字的面朝上,这
6
6
6也是信息量。那么,在计算机角度上看,熵到底是什么,我们不妨看
H
(
X
)
=
1
,
H
(
Y
)
=
log
6
H(X)=1, H(Y)=\log 6
H(X)=1,H(Y)=log6
其实就是意味着,在计算机中,要表示抛硬币的结果,需要用
1
b
i
t
1 bit
1bit,要表示掷骰子的结果需要用
l
o
g
6
b
i
t
log6 bit
log6bit(实际表示时为向上取整
3
b
i
t
3 bit
3bit),也就是说熵是平均意义上对随机变量的编码长度。为什么这么说呢?
由熵的定义,我们知道:
H
(
X
)
=
−
∑
x
∈
χ
p
(
x
)
log
p
(
x
)
=
∑
x
∈
χ
p
(
x
)
log
1
p
(
x
)
=
E
[
log
1
p
(
X
)
]
H(X)=-\sum_{x \in \chi} p(x) \log p(x)=\sum_{x \in \chi} p(x) \log \frac{1}{p(x)}=E\left[\log \frac{1}{p(X)}\right]
H(X)=−x∈χ∑p(x)logp(x)=x∈χ∑p(x)logp(x)1=E[logp(X)1]
即,熵实际上是随机变量 X X X 的函数 log 1 p ( X ) \log \frac{1}{p(X)} logp(X)1 的期望。
至此,我们已经了解到熵在信息论中的意义和在计算机编码中的物理含义。最后我们再说明一下,必然事件的熵是多少呢?应该是0,因为必然是事件是确定无疑的,并不含有不确定性,也就是说,必然事件不含有信息量。
上面的介绍只是让各位读者基本对熵有了解,接下来我们进入正题
一、自信息,熵是什么?
我们先来复习一下自信息的概念。对于事件集合
X
=
{
x
1
,
x
2
…
x
n
}
X=\left\{x_{1}, x_{2} \ldots x_{n}\right\}
X={x1,x2…xn} ,其中某一事件
x
i
x_{i}
xi 发生 的概率为
p
i
p_{i}
pi ,则自信息量定义为:
I
(
x
i
)
=
−
log
p
i
I\left(x_{i}\right)=-\log p_{i}
I(xi)=−logpi
显然
I
(
x
i
)
≥
0
I\left(x_{i}\right) \geq 0
I(xi)≥0 ,且随
p
i
p_{i}
pi 减小而增大。这里的底数可以任取,方便起见,我们统一取
2
2
2 ,此时自 信息的单位为" 比特 " (
b
i
t
bit
bit)。 但也用Sh、nat、Hart计量,取决于定义用到对数的底。
根据概率论的观点,这里的事件集合 X X X 其实可以看成一个概率空间的事件域,那么也就可以定义 概率空间上的随机变量。为便于理解,可以记这个随机变量为 X X X ,而 { x 1 , x 2 … x n } \left\{x_{1}, x_{2} \ldots x_{n}\right\} {x1,x2…xn} 是这一随机变量的观测集合。对于自信息,可从多个角度来理解:
- 表示事件不确定性的大小。
- 表示事件发生带来信息量的多少。事件一旦发生,就消除了不确定性,从而带来了信息量。
- 表示为了确定事件的发生,所需信息量的多少。
举个小栗子: 东京发生海啸的概率为 0.01 % 0.01 \% 0.01% ,那么相应的自信息量 I ( x ) = − log p ( x ) = 13.2879 I(x)=-\log p(x)=13.2879 I(x)=−logp(x)=13.2879
那么为了量化这个随机变量的不确定性,我们可以引入熵这个概念。
1. 熵的定义
信息论中的 “ 信息 ” 是指 “ 概率信息 ”,发生的事件概率越小,越是能给我们更多的信息量。在生 活中,小概率事件一旦发生往往会令我们震惊,其至惊呼:“信息量太大,一时接受不了”, 而大概率的事件的发生则在我们的意料之中。这就是事件信息量的直观体现。定性地看,事件的概率越小,不确定性越大,一旦发生带来的信息量也就越大。而下面介绍 的几个概念就用于定量分析这种不确定性。
熵(entropy):是衡量一个系统的稳定程度。其实就是一个系统所有变量信息量的期望或者说均值,又叫平均自信息,数学定义如下:
公式 (离散变量):
H
(
X
)
=
∑
x
∈
X
P
(
x
)
log
1
P
(
x
)
=
−
∑
x
∈
X
P
(
x
)
log
P
(
x
)
=
−
E
log
P
(
X
)
H(X)=\sum_{x \in X} P(x) \log \frac{1}{P(x)}=-\sum_{x \in X} P(x) \log P(x)=-E \log P(X)
H(X)=x∈X∑P(x)logP(x)1=−x∈X∑P(x)logP(x)=−ElogP(X)
可以从多种角度理解熵的概念:
- 随机变量不确定性的大小
- 观测这个随机变量得到平均信息量的大小
- 确定这个随机变量取值所需的平均信息量大小
- 系统的凌乱程度
当一个系统越不稳定,或者事件发生的不确定性越高,它的熵就越高。
以投硬币为例,正面的概率为, 反面的概率则为,那么这个系统的熵就是
显然易得,当时,的取值最大,也就印证了 事件发生的不确定性越高,它的熵就越高。
2. 熵的数学性质
- 对称性
当 p i p_{i} pi 交换位置时,熵值不变。这实际上是熵的一个局限性,因为它只考虑事件整体的概率分布, 抺杀了个体的特殊性。
为解决这一局限性,提出了加权熵的概念:
H w ( X ) = − ∑ i = 1 n w i p i log p i H_{w}(X)=-\sum_{i=1}^{n} w_{i} p_{i} \log p_{i} Hw(X)=−i=1∑nwipilogpi
这样可以通过权重来体现各个事件的重要程度。 - 非负性
显然有 H ( X ) = − ∑ i = 1 n p i log p i ≥ 0 H(X)=-\sum_{i=1}^{n} p_{i} \log p_{i} \geq 0 H(X)=−∑i=1npilogpi≥0 ,仅有某一个 p i = 1 p_{i}=1 pi=1 时可取等。这体现了只有当不确定 性完全消失时,熵才能减小至0。 - 扩展性
实际上我们很难列举所有可能的事件,因为总有些小概率事件在意料之外,而可扩展性告诉我们, 这些小概率事件对熵没有影响。
lim ϵ → 0 H ( p 1 , p 2 , … , p n − ϵ , ϵ ) = H ( p 1 , p 2 , … , p n ) \lim _{\epsilon \rightarrow 0} H\left(p_{1}, p_{2}, \ldots, p_{n}-\epsilon, \epsilon\right)=H\left(p_{1}, p_{2}, \ldots, p_{n}\right) ϵ→0limH(p1,p2,…,pn−ϵ,ϵ)=H(p1,p2,…,pn) - 可加性
这体现了熵、条件熵、联合熵之间的关系:
H ( X , Y ) = H ( X ) + H ( Y ∣ X ) H(X, Y)=H(X)+H(Y \mid X) H(X,Y)=H(X)+H(Y∣X)
同理,有:
H ( X , Y ) = H ( Y ) + H ( X ∣ Y ) H(X, Y)=H(Y)+H(X \mid Y) H(X,Y)=H(Y)+H(X∣Y)
用条件概率公式即可证明,略去不表,可留作练习。 - 极值性(最大熵定理)
集合中各个事件等概率发生时,集合的熵达到极大值:
H ( p 1 , p 2 , … , p n ) ≤ H ( 1 n , 1 n , … , 1 n ) = log n H\left(p_{1}, p_{2}, \ldots, p_{n}\right) \leq H\left(\frac{1}{n}, \frac{1}{n}, \ldots, \frac{1}{n}\right)=\log n H(p1,p2,…,pn)≤H(n1,n1,…,n1)=logn - 上凸性
熵函数是一个上凸函数。
二、条件熵
1.条件自信息
生活中,某一事件的发生会导致另一事件发生的概率发生变化。例如,天津疫情的爆发使得南开大 学线下授课的概率急剧下降,期末考试推迟的概率迅速上升。而结合上文中信息的概念,就是说, 事件y发生所给出的信息会改变事件x的不确定性,而此时事件x的不确定性就是其条件自信息。数 学上定义为:
I
(
x
∣
y
)
=
−
log
p
(
x
∣
y
)
I(x \mid y)=-\log p(x \mid y)
I(x∣y)=−logp(x∣y)
依然是上文中的栗子,如果已经探明东京沿海海底发生了地震,那么此时东京发生海啸的概率就上 升到了
1
%
1 \%
1% ,那么其条件自信息量
I
(
x
∣
y
)
=
−
log
p
(
x
∣
y
)
=
6.6584
I(x \mid y)=-\log p(x \mid y)=6.6584
I(x∣y)=−logp(x∣y)=6.6584 ,小于
I
(
x
)
I(x)
I(x) ,其不确定性降 低了。
2.条件熵
当考虑两个随机变量之间的不确定性关系时,需要引入条件熵的概念。一个随机变量在给定的情况下,系统的熵。
H
(
Y
∣
X
)
=
∑
x
∈
X
P
(
x
)
H
(
Y
∣
X
=
x
)
=
∑
x
∈
X
P
(
x
)
[
∑
y
∈
Y
P
(
y
∣
x
)
log
1
P
(
y
∣
x
)
]
=
∑
x
∈
X
∑
y
∈
Y
P
(
x
)
P
(
y
∣
x
)
log
1
P
(
y
∣
x
)
=
∑
x
∈
X
∑
y
∈
Y
P
(
x
,
y
)
log
1
P
(
y
∣
x
)
=
−
E
log
P
(
Y
∣
X
)
\begin{aligned} H(Y \mid X) & =\sum_{x \in X} P(x) H(Y \mid X=x) \\ & =\sum_{x \in X} P(x)\left[\sum_{y \in Y} P(y \mid x) \log \frac{1}{P(y \mid x)}\right] \\ & =\sum_{x \in X} \sum_{y \in Y} P(x) P(y \mid x) \log \frac{1}{P(y \mid x)} \\ & =\sum_{x \in X} \sum_{y \in Y} P(x, y) \log \frac{1}{P(y \mid x)} \\ & =-E \log P(Y \mid X) \end{aligned}
H(Y∣X)=x∈X∑P(x)H(Y∣X=x)=x∈X∑P(x)
y∈Y∑P(y∣x)logP(y∣x)1
=x∈X∑y∈Y∑P(x)P(y∣x)logP(y∣x)1=x∈X∑y∈Y∑P(x,y)logP(y∣x)1=−ElogP(Y∣X)
不难看出,条件熵就是假设在给定一个变量下,该系统信息量的期望。
条件熵也有多个理解角度:
- 当观测 X 后,随机变量 Y 仍然保留的平均不确定性
- 得到 X 的观测后,再去观测 Y 能得到的平均信息量
- 得到 X 的观测后,再想确定 Y 所需的信息量
三、联合熵
联合熵,又称共熵,含义与熵相似,只不过考虑两个集合中的事件同时发生。
H
(
X
,
Y
)
=
∑
x
∈
X
∑
y
∈
Y
P
(
x
,
y
)
log
1
P
(
x
,
y
)
=
−
E
log
P
(
X
,
Y
)
H(X, Y)=\sum_{x \in X} \sum_{y \in Y} P(x, y) \log \frac{1}{P(x, y)}=-E \log P(X, Y)
H(X,Y)=x∈X∑y∈Y∑P(x,y)logP(x,y)1=−ElogP(X,Y)
四、微分熵
前文所讨论的都是离散型随机变量,而连续型随机变量则有些不同。由于连续型随机变量取值无 穷,因此其不确定性也是无穷大的,为了更好地描述。我们将连续型随机变量的樀拆分为微分熵和 绝对熵,其中微分熵与离散型随机变量的熵相对应,一般简称为熵。
H
c
(
X
)
=
−
∫
−
∞
+
∞
p
(
x
)
log
p
(
x
)
d
x
H_{c}(X)=-\int_{-\infty}^{+\infty} p(x) \log p(x) d x
Hc(X)=−∫−∞+∞p(x)logp(x)dx
需要注意的是,微分熵可以为负,这与离散型随机变量的熵不同。
五、相对熵
Kullback-Leibler Divergence
,即K-L散度
,是一种量化两种概率分布P和Q之间差异的方式,又叫相对熵
。在概率学和统计学上,我们经常会使用一种更简单的、近似的分布
来替代观察数据
或太复杂的分布
。K-L散度能帮助我们度量使用一个分布来近似另一个分布时所损失的信息量。
D
K
L
(
p
∥
q
)
=
∑
i
p
(
x
i
)
⋅
[
log
1
q
(
x
i
)
−
log
1
p
(
x
i
)
]
=
∑
i
p
(
x
i
)
⋅
log
p
(
x
i
)
q
(
x
i
)
D_{K L}(p \| q)=\sum_{i} p\left(x_{i}\right) \cdot\left[\log \frac{1}{q\left(x_{i}\right)}-\log \frac{1}{p\left(x_{i}\right)}\right]=\sum_{i} p\left(x_{i}\right) \cdot \log \frac{p\left(x_{i}\right)}{q\left(x_{i}\right)}
DKL(p∥q)=i∑p(xi)⋅[logq(xi)1−logp(xi)1]=i∑p(xi)⋅logq(xi)p(xi)
其中是观察到的变量分布,
q
q
q是我们找到的一个尽量分布。是一个非对称的度量,这里我们希望对于较大概率出现的时,近似值和实际分布的信息量差异应该有个较大权重。
KL散度非负性
根据KL散度的定义式,有:
K
L
(
P
∥
Q
)
=
∑
i
=
1
n
p
i
log
p
i
q
i
=
−
E
P
[
log
q
i
p
i
]
K L(P \| Q)=\sum_{i=1}^{n} p_{i} \log \frac{p_{i}}{q_{i}}=-\mathbb{E}_{P}\left[\log \frac{q_{i}}{p_{i}}\right]
KL(P∥Q)=i=1∑npilogqipi=−EP[logpiqi]
根据Jensen不等式,可证明
K
L
(
P
∥
Q
)
≥
0
K L(P \| Q) \geq 0
KL(P∥Q)≥0 ,当且仅当两分布相同时取等。同样也有:
H
(
P
,
Q
)
≥
H
(
P
)
H(P, Q) \geq H(P)
H(P,Q)≥H(P)。
非对称性
交叉嫡和KL散度中, P 和 Q 之间是不可互换的,也就是说他们其实不满足” 距离 “的定义,但我 们在实际操作中常常会用他们来度量两个分布之间的距离,并且指定实际分布为 P 。
六、交叉熵
交叉熵(cross entropy): 也是用来衡量两个分布之间的差异性。
H
C
E
(
p
,
q
)
=
∑
i
p
(
x
i
)
⋅
log
1
q
(
x
i
)
H_{C E}(p, q)=\sum_{i} p\left(x_{i}\right) \cdot \log \frac{1}{q\left(x_{i}\right)}
HCE(p,q)=i∑p(xi)⋅logq(xi)1
显然交叉熵是相对熵的第一部分,因为在通常情况下我们是已知, 即第二部分是常量,此时交 叉熵和相对熵是一个线性关系,在考虑计算量的情况下,所以我们通常都用这部分交叉熵来 做。|
JS散度(Jensen-Shannon divergence):为了解决相对熵(KL散度不对称的问题),对KL散 度进行变体。
D
J
S
(
p
∥
q
)
=
=
0.5
∗
[
D
K
L
(
p
∥
p
+
q
2
)
+
D
K
L
(
q
∥
p
+
q
2
)
]
=
0.5
∗
[
∑
i
p
(
x
i
)
⋅
log
2
p
(
x
i
)
p
(
x
i
)
+
q
(
x
i
)
+
∑
i
q
(
x
i
)
⋅
log
2
q
(
x
i
)
p
(
x
i
)
+
q
(
x
i
)
]
\begin{aligned} D_{J S}(p \| q) & ==0.5 *\left[D_{K L}\left(p \| \frac{p+q}{2}\right)+D_{K L}\left(q \| \frac{p+q}{2}\right)\right] \\ & =0.5 *\left[\sum_{i} p\left(x_{i}\right) \cdot \log \frac{2 p\left(x_{i}\right)}{p\left(x_{i}\right)+q\left(x_{i}\right)}+\sum_{i} q\left(x_{i}\right) \cdot \log \frac{2 q\left(x_{i}\right)}{p\left(x_{i}\right)+q\left(x_{i}\right)}\right] \end{aligned}
DJS(p∥q)==0.5∗[DKL(p∥2p+q)+DKL(q∥2p+q)]=0.5∗[i∑p(xi)⋅logp(xi)+q(xi)2p(xi)+i∑q(xi)⋅logp(xi)+q(xi)2q(xi)]
七、信息增益
信息增益(information gain):在一个训练集上,用来衡量一个变量
A
A
A 对其的影响。比如西瓜 熟不熟,它本身有一个樀。但是通过瓜蒂、纹理等可以减少判断的不确定性,往往最能使我 们确定瓜熟的变量,便是关键变量。
g
(
D
,
A
)
=
H
(
D
)
−
H
(
D
∣
A
)
=
−
∑
P
(
D
i
)
log
P
(
D
i
)
−
∑
∣
D
i
∣
∣
D
∣
H
(
D
i
)
\begin{aligned} g(D, A) & =H(D)-H(D \mid A) \\ & =-\sum P\left(D_{i}\right) \log P\left(D_{i}\right)-\sum \frac{\left|D_{i}\right|}{|D|} H\left(D_{i}\right) \end{aligned}
g(D,A)=H(D)−H(D∣A)=−∑P(Di)logP(Di)−∑∣D∣∣Di∣H(Di)
当这个值较大,也就是原来的熵没有什么变化,则该变量并不是什么关键变量; 相反关键变 量会使系统的樀大大降低。这个度量经常用在决策树选根节点。
八、互信息
1. 互信息
从条件自信息中,我们知道事件之间存在干丝万缕的联系,为了表征这种联系的紧密程度,我们定义了互信息的概念。
I
(
x
;
y
)
=
(
−
log
p
(
x
)
)
−
(
−
log
p
(
x
∣
y
)
)
=
log
p
(
x
∣
y
)
p
(
x
)
=
I
(
x
)
−
I
(
x
∣
y
)
I(x ; y)=(-\log p(x))-(-\log p(x \mid y))=\log \frac{p(x \mid y)}{p(x)}=I(x)-I(x \mid y)
I(x;y)=(−logp(x))−(−logp(x∣y))=logp(x)p(x∣y)=I(x)−I(x∣y)
实际上,也就是说:
互信息量 = 自信息量 - 条件自信心量 = 事件 y y y 为 x x x 消除的不确定性
在概率论和信息论中,两个随机变量的互信息(Mutual Information,简称MI)或转移信息(Transinformation)是变量间相互依赖性的量度。不同于相关系数,互信息并不局限于实值随机变量,它更加一般且决定着联合分布 p ( X , Y ) p(X,Y) p(X,Y) 和分解的边缘分布的乘积 p ( X ) p ( Y ) p(X)p(Y) p(X)p(Y) 的相似程度。互信息是度量两个事件集合之间的相关性。
正式地,两个离散随机变量 X 和 Y 的互信息可以定义为:
其中
p
(
x
,
y
)
p(x,y)
p(x,y) 是
X
X
X 和
Y
Y
Y 的联合概率分布函数,而
p
(
x
)
p(x)
p(x)和
p
(
y
)
p(y)
p(y)分别是 X 和 Y 的边缘概率分布函数。
I
(
X
;
Y
)
=
∑
y
∈
Y
∑
x
∈
X
p
(
x
,
y
)
log
(
p
(
x
,
y
)
p
(
x
)
p
(
y
)
)
I(X ; Y)=\sum_{y \in Y} \sum_{x \in X} p(x, y) \log \left(\frac{p(x, y)}{p(x) p(y)}\right)
I(X;Y)=y∈Y∑x∈X∑p(x,y)log(p(x)p(y)p(x,y))
在连续随机变量的情形下,求和被替换成了二重定积分:
I
(
X
;
Y
)
=
∫
Y
∫
X
p
(
x
,
y
)
log
(
p
(
x
,
y
)
p
(
x
)
p
(
y
)
)
d
x
d
y
I(X ; Y)=\int_{Y} \int_{X} p(x, y) \log \left(\frac{p(x, y)}{p(x) p(y)}\right) d x d y
I(X;Y)=∫Y∫Xp(x,y)log(p(x)p(y)p(x,y))dxdy
互信息又可以等价地表示成
I
(
X
;
Y
)
=
H
(
X
)
−
H
(
X
∣
Y
)
=
H
(
Y
)
−
H
(
Y
∣
X
)
=
H
(
X
)
+
H
(
Y
)
−
H
(
X
,
Y
)
=
H
(
X
,
Y
)
−
H
(
X
∣
Y
)
−
H
(
Y
∣
X
)
\begin{aligned} I(X ; Y) & =H(X)-H(X \mid Y) \\ & =H(Y)-H(Y \mid X) \\ & =H(X)+H(Y)-H(X, Y) \\ & =H(X, Y)-H(X \mid Y)-H(Y \mid X) \end{aligned}
I(X;Y)=H(X)−H(X∣Y)=H(Y)−H(Y∣X)=H(X)+H(Y)−H(X,Y)=H(X,Y)−H(X∣Y)−H(Y∣X)
其中
H
(
X
)
H(X)
H(X) 和
H
(
Y
)
H(Y)
H(Y) 是边缘熵,
H
(
X
∣
Y
)
H(X \mid Y)
H(X∣Y) 和
H
(
Y
∣
X
)
H(Y \mid X)
H(Y∣X) 是条件樀,而
H
(
X
,
Y
)
H(X, Y)
H(X,Y) 是
X
X
X和
Y
Y
Y的联合熵。注意到 这组关系和并集、差集和交集的关系类似,用
V
e
n
n
Venn
Venn图表示:
当两个随机变量相同时,互信息最大,如下:
I
(
X
;
X
)
=
H
(
X
)
−
H
(
X
∣
X
)
=
H
(
X
)
I(X ; X)=H(X)-H(X \mid X)=H(X)
I(X;X)=H(X)−H(X∣X)=H(X)
在机器学习中,理想情况下,当互信息最大,可以认为从数据集中拟合出来的随机变量的概率分布 与真实分布相同。
在互信息定义的基础上使用Jensen不等式,我们可以证明
I
(
X
;
Y
)
I(X;Y)
I(X;Y) 是非负的,因此
H
(
X
)
>
=
H
(
X
∣
Y
)
H(X)>=H(X|Y)
H(X)>=H(X∣Y),这里我们给出
I
(
X
;
Y
)
=
H
(
Y
)
–
H
(
Y
∣
X
)
I(X;Y) = H(Y) – H(Y|X)
I(X;Y)=H(Y)–H(Y∣X) 的详细推导:
I
(
X
;
Y
)
=
∑
x
,
y
p
(
x
,
y
)
log
p
(
x
,
y
)
p
(
x
)
p
(
y
)
=
∑
x
,
y
p
(
x
,
y
)
log
p
(
x
,
y
)
p
(
x
)
−
∑
x
,
y
p
(
x
,
y
)
log
p
(
y
)
=
∑
x
,
y
p
(
x
)
p
(
y
∣
x
)
log
p
(
y
∣
x
)
−
∑
x
,
y
p
(
x
,
y
)
log
p
(
y
)
=
∑
x
p
(
x
)
(
∑
y
p
(
y
∣
x
)
log
p
(
y
∣
x
)
)
−
∑
y
log
p
(
y
)
(
∑
x
p
(
x
,
y
)
)
=
−
∑
x
p
(
x
)
H
(
Y
∣
X
=
x
)
−
∑
y
log
p
(
y
)
p
(
y
)
=
−
H
(
Y
∣
X
)
+
H
(
Y
)
=
H
(
Y
)
−
H
(
Y
∣
X
)
.
\begin{aligned} I(X ; Y) & =\sum_{x, y} p(x, y) \log \frac{p(x, y)}{p(x) p(y)} \\ & =\sum_{x, y} p(x, y) \log \frac{p(x, y)}{p(x)}-\sum_{x, y} p(x, y) \log p(y) \\ & =\sum_{x, y} p(x) p(y \mid x) \log p(y \mid x)-\sum_{x, y} p(x, y) \log p(y) \\ & =\sum_{x} p(x)\left(\sum_{y} p(y \mid x) \log p(y \mid x)\right)-\sum_{y} \log p(y)\left(\sum_{x} p(x, y)\right) \\ & =-\sum_{x} p(x) H(Y \mid X=x)-\sum_{y} \log p(y) p(y) \\ & =-H(Y \mid X)+H(Y) \\ & =H(Y)-H(Y \mid X) . \end{aligned}
I(X;Y)=x,y∑p(x,y)logp(x)p(y)p(x,y)=x,y∑p(x,y)logp(x)p(x,y)−x,y∑p(x,y)logp(y)=x,y∑p(x)p(y∣x)logp(y∣x)−x,y∑p(x,y)logp(y)=x∑p(x)(y∑p(y∣x)logp(y∣x))−y∑logp(y)(x∑p(x,y))=−x∑p(x)H(Y∣X=x)−y∑logp(y)p(y)=−H(Y∣X)+H(Y)=H(Y)−H(Y∣X).
经过推导后,我们可以直观地看到
H
(
X
)
H(X)
H(X) 表示为原随机变量
X
X
X 的信息量,
H
(
X
∣
Y
)
H(X \mid Y)
H(X∣Y) 为知道事 实
Y
Y
Y 后
X
X
X 的信息量,互信息
I
(
X
;
Y
)
I(X ; Y)
I(X;Y) 则表示为知道事实
Y
Y
Y 后,原来信息量减少了多少。
我们举一个例子来说明事件不确定性的变化:
假设现在我给你一枚硬币,告诉你这是均匀的,请你抛100次然后告诉我结果,结果你抛了100次后,记录的结果是:正面朝上90次,反面朝上10次,你就会开始怀疑“这真是一枚均匀的硬币吗?”
由第一部分熵中,我们知道,这一枚硬币的熵应该是1 bit,但是这样的试验之后,这枚硬币的熵还是1 bit吗?我们可以假设正面朝上的概率为0.9,反面朝上的概率为0.1,计算一下这个熵:
H
(
X
∣
X
^
)
=
−
0.9
log
0.9
−
0.1
log
0.1
≈
0.469
H(X \mid \hat{X})=-0.9 \log 0.9-0.1 \log 0.1 \approx 0.469
H(X∣X^)=−0.9log0.9−0.1log0.1≈0.469
其中,
H
(
X
∣
X
^
)
H(X \mid \hat{X})
H(X∣X^) 表示为知道90次正面朝上的事实后,原硬币的熵。
经过抛掷100次后,我们知道这么硬币可能是不均匀的,且新的熵为0.469 bit,也就是说我们在知道90次正面朝上,10次反面朝下的事实之后,这个硬币的熵缩小了0.531 bit,这个0.531的信息量,我们就称为互信息。
2. 互信息与信息增益的区别
- 互信息描述的是同一个系统下两个子系统的对应部分的信息量;
信息增益描述的是同一个系统下,不同状态的信息量。 - 是指一些物体以不同属性进行分类时的信息量,评价的是属性的关键程度;
是指在已知一个事件后, 事件的不确定程度。 - 信息增益是互信息的无偏估计,所以在决策树的训练过程中, 两者是等价的。
3. 互信息的性质
- 互易性(对称性)
很容易就可以推导出:
I ( x ; y ) = I ( y ; x ) I(x ; y)=I(y ; x) I(x;y)=I(y;x)
这意味着,两件事能给对方提供的信息量一定是相等的。这一性质说明: 互信息可以用于表征两个 事件之间联系的紧密程度。
当互信息量为正时,两事件呈正相关,互相有促进作用; 当互信息量为负时,两事件呈负相关,互 相有抑制作用; 而当互信息量为 0 时,两事件无联系,相互独立。
需要注意的是,互信息量为正并不意味着两个事件呈因果关系,可能它们都是某一潜在的” 因 “产 生的" 果 "。例如南开大学线上授课和线上考试这两件事,显然互信息量为正,但他们之间并无因 果关系,都是疫情产生的” 果 “。 - 互信息量不大于其中任一事件的自信息量
很容易理解,互信息表征削去的不确定性,当然不能超过事件本身的不确定性。证明如下:
I ( x ; y ) = log p ( x ∣ y ) p ( x ) ≤ log 1 p ( x ) = I ( x ) I(x ; y)=\log \frac{p(x \mid y)}{p(x)} \leq \log \frac{1}{p(x)}=I(x) I(x;y)=logp(x)p(x∣y)≤logp(x)1=I(x)
由此可知,自信息其实也可以理解成互信息的一种特殊情况: I ( x ; x ) = I ( x ) I(x ; x)=I(x) I(x;x)=I(x)。
总结
在机器学习中熵是表征随机变量分布的混乱程度,分布越混乱,则熵越大,在物理学上表征物质状态的参量之一,也是体系混乱程度的度量;熵存在的意义是度量信息量的多少,人们常常说信息很多,或者信息较少,但却很难说清楚信息到底有多少,这时熵的意义就体现出来了。上面我们介绍熵的定义及其性质。其在机器学习中应用很多,比如神经网络学习到的是费希尔信息,而Generalization是由香农信息表征的。学习目标的computational representation都是可以用熵函数的优化来描述或者解释的等等,在机器学习中我们总是能看见信息熵的影子。
以下是本文的参考链接,如有问题,欢迎各位读者批评指正!
参考链接
Cover, T.M. and Thomas, J.A. (2006). Elements of Information Theory, 2nd ed. Hoboken, NJ: Wiley. MR2239987
Schervish, M.J. (1995). Theory of Statistics. Springer Series in Statistics. New York: Springer. MR1354146
互信息(Mutual Information)浅尝辄止(一):基础概念 - 知乎 (zhihu.com)