机器学习中相关信息度量的备忘录
自信息
自信息(self-information)用来衡量单一随机事件发生时所包含的信息量的多寡。
I(pi)=−log(pi)
香农熵
香农熵是随机事件X的所有可能结果的自信息期望值。
H(x)=Ex∼P[I(x)]=−∑i=1np(xi)I(xi)=−∑i=1np(xi)logb(p(xi))
互信息
互信息用来表示随机事件X和随机事件Y之间的相关性。
I(X,Y)=H(X)+H(Y)−H(X,Y)
直观的解释为,两个事件XY分开到两个事件同事出现的过程中,熵减小的量。将上式展开为:
I(X,Y)=∑x∑yp(x,y)logp(x,y)logp(x)logp(y)
条件熵
条件熵 H(Y|X) 表示在已知随机变量 X 的条件下随机变量 Y 的不确定性。
H(Y|X)=∑xp(x)H(Y|X=x)=−∑xp(x)∑yp(y|x)logp(y|x)=−∑x∑yp(x,y)logp(y|x)
条件熵H(Y|X)相当于联合熵减去X的熵,即:
H(Y|X)=H(X,Y)−H(X)
交叉熵
交叉熵是一个用来比较两个概率分布p和q的数学工具。
H(p,q)=Ep[−log(q)]=−∫xp(x)⋅log(q(x))dx
其中p为真实概率分布。
如果p(x)和q(x)同进退,即p(x)大的时候q(x)大,p(x)小的时候q(x)小,那么交叉熵就小。
KL散度
相对熵(relative entropy)又称为KL散度(Kullback-Leibler divergence),信息增益(information gain)。KL散度是两个概率分布P和Q差别的非对称度量。在贝叶斯推理中,就是用后验分布 q 来近似先验分布 p 的时候造成的信息损失。
DKL(p||q)=H(p,q)−H(p)
直观的解释:如果分布q能承载更多分布p的信息,则KL散度就小。
KL散度不对称
作为一个度量,KL散度能够很好的表征两个分布之间的相似程度。但它有一个很大的缺点是不对称性,即DKL(p||q)≠DKL(q||p)。
借助《Deep Learning》书中的例子:

现在要做一个参数估计,假设分布q是高斯分布,用分布q拟合分布p,可将目标函数设计为q∗=argminqDKL(p||q)=(−∫xp(x)⋅log(q(x))dx)−C,其中常量C表示为H(p),不影响目标函数。
图中的高斯分布q(x)(绿色虚线),根据前面介绍的交叉熵,应该跟p(x)(蓝色线)同进退,也就是完全拟合。奈何q(x)是一个高斯分布(爹妈生的不好),只能取一个中间值。
另一个列子:

还是高斯分布q拟合分布p,这次目标函数编程相反的KL散度q∗=argminqDKL(q||p)=(−∫xq(x)⋅log(p(x))dx)−C。同样的分析方式,可得最佳拟合如上图所示的绿线。
根据上面两个例子,可知KL散度的不对称性