互信息(Mutual Information)是衡量随机变量之间相互依赖程度的度量。
它的形象化解释是,假如明天下雨是个随机事件,假如今晚有晚霞同样是个随机事件,那么这两个随机事件互相依赖的程度是
当
我们已知
“今晚有晚霞“情况下,"明天下雨"带来的不确定性
与 不知道
”今晚有晚霞“情况下,”明天下雨“带来的不确定性
之差。
另一种直观的解释
作者:朱元
链接:
https://www.zhihu.com/question/24059517/answer/26750918
来源:知乎
原来我对X有些不确定(不确定性为H(X)),告诉我Y后我对X不确定性变为H(X|Y), 这个不确定性的减少量就是X,Y之间的互信息I(X;Y)=H(X)-H(X|Y)。
更直观的意义可以理解为,当你完整的学到Y的所有知识的时候,你对X的知识的增长量就是I(X;Y)。(相信我,每当你学到任何关于X的知识,都其实只是Y。没有人可以做到把一个学科彻底的(信息的完整性),完全正确的(信息传递过程中混入的噪声)学习)。
假设存在一个随机变量
,和另外一个随机变量
,那么它们的互信息是
是
的信息熵,
是已知
情况下,Y带来的信息熵(条件熵)。
直观理解是,我们知道存在两个随机事件
,其中一个随机事件
给我们带来了一些不确定性
,我们想衡量
之间的关系。那么,如果
存在关联,当
已知时,
给我们的不确定性会变化,这个变化值就是
的信息熵减去当已知
时,
的条件熵,就是互信息。
从概率角度,互信息是由随机变量
的联合概率分布
和边缘概率分布
得出。
互信息和信息熵的关系是,
通常我们使用的最大化互信息条件,就是最大化两个随机事件的相关性。
在数据集里,就是最大化两个数据集合所拟合出的概率分布的相关性。
当两个随机变量相同时,互信息最大,如下:
在机器学习中,理想情况下,当互信息最大,可以认为从数据集中拟合出来的随机变量的概率分布与真实分布相同。
到这里,应该足够大家日常理解使用了,以下是性质,应用和变形,几乎都是数学。
1.非负性(证明来自Jeson 不等式)
\2. 对称性
\3. 与条件熵和联合熵的关系
\4. 与K-L散度的关系
是
对
的K-L散度里,对随机变量
的期望。
通信中,信道容量是最大互信息
k-means, 互信息被用作优化目标
隐马尔可夫模型训练,可以采用最大互信息(MMI)标准。
RNA结构,可以从多序列比对预测RNA二级结构。
互信息已被用作机器学习中的特征选择和特征变换的标准。它可用于表征变量的相关性和冗余性,例如最小冗余特征选择。
相互信息用于确定数据集的两个不同聚类的相似性。
单词的互信息通常用作语料库语言学中搭配计算的重要函数。
医学成像中,互信息可以用于进行图像配准。
时间序列分析中,可以用于相位同步的检测
互信息用于学习贝叶斯网络/动态贝叶斯网络的结构,这被认为可以解释随机变量之间的因果关系。
决策树学习中,是一种loss function。
1.条件互信息
或者简化写作,
2. 方向信息(Directed Information)
假设两个随机过程
,方向互信息:
3.与相关系数的关系
互信息其中包含所有独立性(线性和非线性),不像correlation coefficients measures一样只包含线性。
当随机变量
的联合概率分布服从二元正态分布时,有以下性质
是相关系数,
证明如下:
[1] (大部分) Mutual Information,
https://en.wikipedia.org/wiki/Mutual_information
[2] David J. C. MacKay. Information Theory, Inference, and Learning Algorithms.Cambridge: Cambridge University Press, 2003.
[3] Cover T M, Thomas J A. Elements of information theory[M]. John Wiley & Sons, 2012.