信息熵、交叉熵、相对熵、条件熵、互信息的讲解和推导
最近阅读的几篇paper中都大量使用到了信息论中的概念,在此进行整理。日后如有遇到其他理论,将会不定期更新。。。
为了避免拾人牙慧,我尽量用自己的理解进行叙述,并且给出互相之间的关系推导,难免会有些错误,欢迎评论区批评指正。
1.概率 p ( x ) p(x) p(x)
一件事发生的概率记作 p ( x ) p(x) p(x),且有 p ( x ) ∈ [ 0 , 1 ] p(x)\in[0,1] p(x)∈[0,1]
2.信息 − log p ( x ) -\log{p(x)} −logp(x)
信息,又叫自信息,其定义式为:
I
(
X
)
=
log
1
P
(
X
)
I(X) = \log \frac{1}{P(X)}
I(X)=logP(X)1
承接上文,那么已知一件事发生的概率,如何衡量它所带来的信息量呢?
一件事发生的概率越高,包含的信息量也就越小,因为它越确定。所以我们取负对数得到 − log p ( x ) -\log{p(x)} −logp(x)作为信息量的度量。
说到这里,想起来高中的一个荤段子:
小明天生体质比较特殊,因为他有三个蛋(信息量)。
小明突然有一天把好朋友小刚叫到角落,神神秘秘地跟小刚说:"告诉你一个秘密,咱们俩加起来一共有五个蛋。”小刚十分惊讶:“什么???难道你有四个?(信息量爆炸)。”
通过这个小故事我们可以体会一下什么叫信息量。
3.信息熵Entropy
信息熵,也就是我们所熟知的Shannon熵,为信息的期望:
H
(
X
)
=
−
∫
p
(
x
)
log
p
(
x
)
d
x
(连续形式)
=
−
∑
p
(
x
)
log
p
(
x
)
(离散形式)
\begin{aligned} H(X) &= -\int{p(x) \log{p(x)} }dx (连续形式) \\ &= -\sum{p(x) \log{p(x)} } (离散形式) \end{aligned}
H(X)=−∫p(x)logp(x)dx(连续形式)=−∑p(x)logp(x)(离散形式)
信息熵度量的是同一分布下的信息的期望值。
4.交叉熵 H ( P , Q ) H(P,Q) H(P,Q)
交叉熵度量的是不同分布下的信息的平均
E
=
−
∫
p
(
x
)
log
q
(
x
)
d
x
(连续形式)
=
−
∑
p
(
x
)
log
q
(
x
)
(离散形式)
\begin{aligned} \mathbb{E} &= -\int{p(x) \log{q(x)} }dx (连续形式) \\ &= -\sum{p(x) \log{q(x)} } (离散形式) \end{aligned}
E=−∫p(x)logq(x)dx(连续形式)=−∑p(x)logq(x)(离散形式)
5.联合熵
对于一个联合概率分布 P ( X , Y ) P(X,Y) P(X,Y)
其信息熵为
H
(
X
,
Y
)
=
−
∫
p
(
x
,
y
)
log
p
(
x
,
y
)
d
x
=
−
∑
p
(
x
,
y
)
l
o
g
(
x
,
y
)
\begin{aligned} H(X,Y) &= -\int{p(x,y) \log{p(x,y)}}dx \\ &= -\sum{p(x,y)log(x,y)} \end{aligned}
H(X,Y)=−∫p(x,y)logp(x,y)dx=−∑p(x,y)log(x,y)
上式被称作联合概率分布的信息熵即联合熵。
6.相对熵
相对熵也就是我们熟悉的KL散度,
D
K
L
(
P
(
X
)
∣
∣
Q
(
X
)
)
=
−
∫
p
(
x
)
log
q
(
x
)
p
(
x
)
d
x
=
∫
p
(
x
)
log
p
(
x
)
q
(
x
)
d
x
=
∫
[
p
(
x
)
log
p
(
x
)
−
p
(
x
)
log
q
(
x
)
]
d
x
=
H
(
P
,
Q
)
−
H
(
P
)
\begin{aligned} DKL(P(X)||Q(X)) &= -\int{ p(x) \log{ \frac{ q(x) }{ p(x) } } }dx \\ &=\int{ p(x) \log{ \frac{p(x)}{q(x)}}}dx \\ &=\int{ [p(x) \log{p(x)}- p(x)\log{q(x)}]}dx \\ &=H(P,Q)-H(P) \end{aligned}
DKL(P(X)∣∣Q(X))=−∫p(x)logp(x)q(x)dx=∫p(x)logq(x)p(x)dx=∫[p(x)logp(x)−p(x)logq(x)]dx=H(P,Q)−H(P)
也就是说,相对熵=交叉熵-信息熵。相对熵是两个分布
P
(
X
)
P(X)
P(X)和
Q
(
X
)
Q(X)
Q(X)差别的非对称性度量。
以信息论来解释,则KL散度是用来度量使用基于Q的分布来编码服从P的分布的样本所需的额外的平均比特数。通常
P
(
X
)
P(X)
P(X)表示数据的真实分布,
Q
(
X
)
Q(X)
Q(X)表示数据的理论分布、估计的模型分布、或
P
(
X
)
P(X)
P(X)的近似分布。
通俗来说,KL散度度量了两个分布之间的差异度。
7.条件熵 H ( X ∣ Y ) H(X|Y) H(X∣Y)
条件熵的推导可以对应到条件概率去理解,也就是对于给定
Y
=
y
Y=y
Y=y的条件下求得
X
X
X的熵
H
(
X
∣
Y
=
y
)
H(X|Y=y)
H(X∣Y=y)
则求
Y
Y
Y取到所有可能的
y
y
y的期望便得到条件熵:
H
(
X
∣
Y
)
=
∫
Y
p
(
y
)
H
(
X
∣
Y
=
y
)
d
y
(连续形式)
=
−
∫
Y
p
(
y
)
∫
X
p
(
x
∣
y
)
log
p
(
x
∣
y
)
d
x
d
y
=
∑
y
∈
Y
p
(
y
)
H
(
X
∣
Y
=
y
)
(离散形式)
=
−
∑
y
∈
Y
p
(
y
)
∑
x
∈
X
p
(
x
∣
y
)
log
p
(
x
∣
y
)
\begin{aligned} H(X|Y) &= \int_Y{p(y)H(X|Y=y)}dy (连续形式) \\ &=-\int_Y{p(y)\int_X{p(x|y)\log{p(x|y)}}dx}dy \\ &= \sum_{y\in Y}{ p(y)H(X|Y=y)} (离散形式) \\ &= -\sum_{y \in Y}{ p(y) \sum_{x \in X}p(x|y) \log{p(x|y)}} \\ \end{aligned}
H(X∣Y)=∫Yp(y)H(X∣Y=y)dy(连续形式)=−∫Yp(y)∫Xp(x∣y)logp(x∣y)dxdy=y∈Y∑p(y)H(X∣Y=y)(离散形式)=−y∈Y∑p(y)x∈X∑p(x∣y)logp(x∣y)
8.互信息 I ( X , Y ) I(X,Y) I(X,Y)
考虑一对随机变量的联合分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y),其边缘分布为
P
(
X
)
,
P
(
Y
)
P(X),P(Y)
P(X),P(Y)
定义其互信息为:
I
(
X
,
Y
)
=
K
L
(
P
(
X
,
Y
)
∣
∣
P
(
X
)
⊗
P
(
Y
)
)
=
∬
p
(
x
,
y
)
log
p
(
x
,
y
)
p
(
x
)
p
(
y
)
d
x
d
y
=
∬
[
p
(
x
,
y
)
log
p
(
x
,
y
)
p
(
x
)
−
p
(
x
,
y
)
log
p
(
y
)
]
d
x
d
y
=
∬
[
p
(
x
,
y
)
log
p
(
y
∣
x
)
−
p
(
x
,
y
)
log
p
(
y
)
]
d
x
d
y
=
∬
[
p
(
x
)
p
(
y
∣
x
)
log
p
(
y
∣
x
)
]
d
x
d
y
−
∫
Y
log
p
(
y
)
∫
X
p
(
x
,
y
)
d
x
d
y
=
∫
X
p
(
x
)
∫
Y
P
(
y
∣
x
)
log
P
(
y
∣
x
)
d
y
d
x
−
∫
p
(
y
)
log
p
(
y
)
d
y
=
∫
X
−
H
(
Y
∣
X
=
x
)
d
x
+
H
(
Y
)
=
H
(
Y
)
−
H
(
Y
∣
X
)
=
H
(
X
)
−
H
(
X
∣
Y
)
\begin{aligned} I(X,Y) &= KL(P(X,Y)||P(X)\otimes P(Y)) \\ &=\iint p(x, y) \log \frac{p(x, y)}{p(x) p(y)} d x d y \\ &=\iint \left[ p(x, y) \log \frac{p(x, y)}{p(x)}-p(x, y) \log p(y) \right] d x d y \\ &=\iint\left[ p(x, y) \log p(y|x)-p(x, y) \log p(y)\right] dx d y \\ &=\iint \left[ p(x) p(y|x) \log p(y|x) \right] dx dy-\int_Y \log p(y)\int_X p(x, y) dx dy \\ &=\int_X p(x) \int_Y P(y \mid x) \log P(y \mid x) dy dx-\int p(y) \log p(y) dy\\ &=\int_X{-H(Y|X=x)}dx + H(Y) \\ &=H(Y) - H(Y|X) \\ &=H(X) - H(X|Y) \end{aligned}
I(X,Y)=KL(P(X,Y)∣∣P(X)⊗P(Y))=∬p(x,y)logp(x)p(y)p(x,y)dxdy=∬[p(x,y)logp(x)p(x,y)−p(x,y)logp(y)]dxdy=∬[p(x,y)logp(y∣x)−p(x,y)logp(y)]dxdy=∬[p(x)p(y∣x)logp(y∣x)]dxdy−∫Ylogp(y)∫Xp(x,y)dxdy=∫Xp(x)∫YP(y∣x)logP(y∣x)dydx−∫p(y)logp(y)dy=∫X−H(Y∣X=x)dx+H(Y)=H(Y)−H(Y∣X)=H(X)−H(X∣Y)
互信息的定义式比较难以理解,但是经过推导之后倒显得直观些:
我们把
X
X
X和
Y
Y
Y之间的互信息可以理解为,
Y
Y
Y的熵减去在
X
X
X发生的条件下
Y
Y
Y发生的熵(或
X
X
X的熵减去在
Y
Y
Y发生的条件下
X
X
X发生的熵),也就是说对于
Y
Y
Y事件的信息量,有多少是由
X
X
X发生所带来的。
互信息用于度量两个随机变量之间的依赖程度,也就是说如果两个变量之间相互独立,则
I
(
X
,
Y
=
0
)
I(X,Y=0)
I(X,Y=0)