最近阅读的几篇paper中都大量使用到了信息论中的概念,在此进行整理。日后如有遇到其他理论,将会不定期更新。。。
为了避免拾人牙慧,我尽量用自己的理解进行叙述,并且给出互相之间的关系推导,难免会有些错误,欢迎评论区批评指正。
一件事发生的概率记作 p ( x ) p(x) p(x),且有 p ( x ) ∈ [ 0 , 1 ] p(x)\in[0,1] p(x)∈[0,1]
信息,又叫自信息,其定义式为:
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)作为信息量的度量。
说到这里,想起来高中的一个荤段子:
小明天生体质比较特殊,因为他有三个蛋(信息量)。
小明突然有一天把好朋友小刚叫到角落,神神秘秘地跟小刚说:"告诉你一个秘密,咱们俩加起来一共有五个蛋。”小刚十分惊讶:“什么???难道你有四个?(信息量爆炸)。”
通过这个小故事我们可以体会一下什么叫信息量。
信息熵,也就是我们所熟知的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)(离散形式)
信息熵度量的是同一分布下的信息的期望值。
交叉熵度量的是不同分布下的信息的平均
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)(离散形式)
对于一个联合概率分布 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)
上式被称作联合概率分布的信息熵即联合熵。
相对熵也就是我们熟悉的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 ) − H ( P , Q ) \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)-H(P,Q) \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)−H(P,Q)
也就是说,相对熵=信息熵-交叉熵。相对熵是两个分布 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散度度量了两个分布之间的差异度。
条件熵的推导可以对应到条件概率去理解,也就是对于给定 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)
考虑一对随机变量的联合分布 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)