详解熵、最大熵、联合熵和条件熵、相对熵以及互信息之间的关系

信息量的定义

某事件发生的概率小,则该事件的信息量大。
定义随机变量X的概率分布为P(X),X的信息量为:h(X)=log2P(X).

对随机事件的信息量求期望,得到随机变量X的熵:
H(X)=xXP(x)logP(x)

当对数底数是2时,单位是bit,当对数底数是e时,单位是nat(奈特)。同时,若P(x)=0,则定义0log0=0。由熵定义可知,随机变量的熵只依赖于X的分布,而与X的取值无关。
熵表示的是随机变量不确定性的度量。熵越大,随机变量的不确定性也就越大。

两点分布的熵

H(X)=xXP(x)logP(x)=plog2p(1p)log2(1p)

这时,熵H(X)随概率p变化的曲线如下图所示。
详解熵、最大熵、联合熵和条件熵、相对熵以及互信息之间的关系
p=0p=1时,随机变量完全没有不确定性。当p=0.5时,H(X)=1,熵取得最大值,随机变量的不确定性最大。

离散随机变量的最大熵

假设离散随机变量X的概率分布是P(X),则其熵是:

H(X)=xXP(x)logP(x)

熵满足下列不等式:
0H(X)log|X|

其中|X|X的取值个数,当且仅当X的分布是均匀分布时右边的等号成立。也就是说,当X服从均匀分布时,熵最大。

给定期望和方差,最大熵的分布形式

正态分布的概率密度函数为:

f(x)=12πσe(xμ)22σ2

对数正态分布为:
lnf(x)=ln12πlnσ(xμ)22σ2=αx2+βx+γ

该分布的对数是关于随机变量X的二次函数。根据计算过程的可逆性,若某对数分布能够写成随机变量二次形式,该分布必然是正态分布。
目标函数为:
argmaxP(x)H(X)=xXP(x)logP(x)s.t.{E(X)=μVar(X)=σ2

由约束条件E(X)=μ,Var(X)=σ2

可得Var(X)=E(X2)E2(X)E(X2)=Var(X)+E2(X)=μ2+σ2
采用拉格朗日乘子法转化为无约束的极值问题。拉格朗日函数为:

L(P)=xXP(x)logP(x)+λ1(E(X)μ)+λ2(E(X2)μ2σ2)=xXP(x)logP(x)+λ1(xXxP(x)μ)+λ2(xXx2P(x)μ2σ2)

P(x)求导可得:
LP=logP(x)1+λ1x+λ2x2

令其导数等于0,可得:logP(x)=λ1x+λ2x21
P(x)的对数是关于随机变量x的二次形式,所以该分布P(x)是正态分布。

联合熵和条件熵

设有随机变量(X,Y),其联合概率分布为:

P(X=xi,Y=yj)=p(xi,yj)=pij,i=1,2,,n;j=1,2,,m

联合熵为H(X,Y)=x,yP(x,y)logP(x,y)
条件熵为H(Y|X)=H(X,Y)H(X)。条件熵表示在已知随机变量X的条件下随机变量Y的不确定性。
H(Y|X)=H(X,Y)H(X)=x,yP(x,y)logP(x,y)+xP(x)logP(x)=x,yP(x,y)logP(x,y)+x(yP(x,y))logP(x)=x,yP(x,y)logP(x,y)+xyP(x,y)logP(x)=x,yP(x,y)logP(x,y)P(x)=x,yP(x,y)logP(y|x)=xyP(x)P(y|x)logP(y|x)=xP(x)yP(y|x)logP(y|x)=xP(x)(yP(y|x)logP(y|x))=xP(x)H(Y|X=x)

H(Y|X)定义为X给定的条件下Y的条件概率分布的熵对X的数学期望。

相对熵

相对熵,又称互熵,交叉熵,K-L散度等。用来衡量两个概率分布之间的差异。
设有两个概率分布p(x)q(x),则pq的相对熵为:

D(pq)=xp(x)logp(x)q(x)

对于连续的随机变量,定义为:
D(pq)=p(x)logp(x)q(x)dx

1.相对熵可以度量两个随机变量的“距离”。
2.在概率和统计学中,经常会使用一种近似的分布来代替复杂的分布。K-L散度度量了使用一个分布来近似另一个分布时所损失的信息。
3.一般的,D(pq)D(qp),即是非对称的。
4.D(pq)0,D(qp)0。这个可以利用凸函数中Jensen不等式来证明。
D(pq)=xp(x)logp(x)q(x)=xp(x)logq(x)p(x)log(xp(x)q(x)p(x))=log(xp(x))=log(1)=0

其中,因为log函数是凹函数,所以log是凸函数。
同理可证D(qp)0
5.假定已知随机变量P,求相对简单的随机变量Q,使得Q尽量接近P。就可以使用PQ的K-L距离。
6.假定使用D(QP),为了让距离最小,则要求在P为0的地方,Q尽量为0。会得到比较“窄”的分布曲线。
7.假定使用D(PQ),为了让距离最小,则要求在P不为0的地方,Q尽量不为0。会得到比较“宽”的分布曲线。

互信息

两个随机变量X,Y的互信息,定义为X,Y的联合分布和独立分布乘积的相对熵。
I(X,Y)=D(p(x,y)p(x)p(y))=x,yp(x,y)logp(x,y)p(x)p(y)


计算I(X,Y)=D(p(x,y)|p(x)p(y)) =x,yp(x,y)logp(x,y)p(x)p(y)
H(Y)I(X,Y)=yp(y)logp(y)x,yp(x,y)logp(x,y)p(x)p(y)=y(xp(x,y))logp(y)x,yp(x,y)logp(x,y)p(x)p(y)=x,yp(x,y)logp(y)x,yp(x,y)logp(x,y)p(x)p(y)=x,yp(x,y)logp(x,y)p(x)=x,yp(x,y)logp(y|x)=xp(x)(yp(y|x)logp(y|x))=xp(x)H(Y|x)=H(Y|X)

所以H(Y|X)=H(X,Y)H(X)=H(Y)I(X,Y)I(X,Y)=H(X)+H(Y)H(X,Y)

因为I(X,Y)=H(X)+H(Y)H(X,Y),所以从另一个角度也可以推出互信息的表达式。
I(X,Y)=H(X)+H(Y)H(X,Y)=xp(x)logp(x)yp(y)logp(y)+x,yp(x,y)logp(x,y)=(xyp(x,y)logp(x))(yxp(x,y)logp(y))+x,yp(x,y)logp(x,y)=x,yp(x,y)logp(x)x,yp(x,y)logp(y)+x,yp(x,y)logp(x,y)=x,yp(x,y)(logp(x,y)logp(x)logp(y))=x,yp(x,y)(logp(x,y)p(x)p(y))

Venn图

通过Venn图,可以方便我们记忆熵,联合熵,条件熵,互信息之间的关系。

详解熵、最大熵、联合熵和条件熵、相对熵以及互信息之间的关系
左边的圆表示随机变量X的熵,右边的圆表示随机变量Y的熵。左边的橙色部分表示随机变量Y给定的条件下随机变量X的条件熵。右边的绿色部分表示随机变量X给定的条件下随机变量Y的条件熵。两圆中间相交的部分表示随机变量XY的互信息。橙色部分、两圆相交的咖啡色部分以及绿色部分加在一起表示XY的联合熵。通过此图,各种熵之间的关系就很好记忆了。