[ML]熵、KL散度、信息增益、互信息-学习笔记

Entrophy:

sum([p*log(1/p) for each p])

p:      1次实验的, x的发生的次数的期望是 p
1/p :   x发生1次, 期望要做的试验次数是 1/p

Example

  1. 硬币:

T: 1/2
H: 1/2

由霍夫曼编码,编码的期望长度最小是 1 bit

用熵来解释, T发生一次, 期望要做的试验次数是 2

log(2) = 1
1/2 * log(2) = 1/2

H也一样,于是就有:

1/2 + 1/2 = 1 (bit)
  1. 摸球

4个球 1个红球 2个绿球 1个黑球

红球的概率 1/4
绿球 2/4=1/2
黑球 1/4

1/4 * log(4) = 1/2
1/2 * 1 = 1/2
1/4 * 2 = 1/2

1/2 + 1/2 + 1/2 = 3/2 (bit)
期望的编码长度是 3/2, 同样和霍夫曼编码结果一样。

a, b 出现概率分别是 1/2, 熵是1, 所需要的比特位是1

1/p : 平均2个字符中会得到一个 a log(1/p):1个bit所代表的情况中平均能得到一个a
1/(1-p): 平均2个字符会得到一个 b log(1/(1-p)):1个bit所代表的情况中平均能得到一个b

需要bit的概率 = 
    出现一个a的概率 * 出现一个a的情况下需要多少bit +
    出现一个b的概率 * 出现一个b的情况下需要多少bit

相对熵 (KL散度)


wiki

KL散度是两个概率分布P和Q差别的非对称性的度量。 KL散度是用来 度量使用基于Q的编码来编码来自P的样本平均所需的额外的比特个数。 典型情况下,P表示数据的真实分布,Q表示数据的理论分布,模型分布,或P的近似分布。

D(Q||P)=∑Q(x)[log(1/P(x))] - ∑Q(x)[log[1/Q(x)]]
         =∑Q(x)log[Q(x)/P(x)]


∑Q(x)[log(1/P(x))] 表示使用原来的编码方式得到的比特数的期望

log(1/P(x)) 表示使用原来的编码方式,x出现1次的期望编码长度
Q(x) 表示现在x出现的概率

由于-log(u)是凸函数,因此有下面的不等式

DKL(Q||P) = -∑x∈XQ(x)log[P(x)/Q(x)] = E[-logP(x)/Q(x)] ≥ -logE[P(x)/Q(x)] = -log∑x∈XQ(x)P(x)/Q(x) = 0

即KL-divergence始终是大于等于0的。当且仅当两分布相同时,KL-divergence等于0。

举一个实际的例子吧:比如有四个类别,一个方法A得到四个类别的概率分别是0.1,0.2,0.3,0.4。另一种方法B(或者说是事实情况)是得到四个类别的概率分别是0.4,0.3,0.2,0.1,那么这两个分布的KL-Distance(A,B)=0.1*log(0.1/0.4)+0.2*log(0.2/0.3)+0.3*log(0.3/0.2)+0.4*log(0.4/0.1)

这个里面有正的,有负的,可以证明KL-Distance()>=0.
从上面可以看出, KL散度是不对称的。即KL-Distance(A,B)!=KL-Distance(B,A)
KL散度是不对称的,当然,如果希望把它变对称,

Ds(p1, p2) = [D(p1, p2) + D(p2, p1)] / 2 

KL散度是两个概率分布P和Q差别的非对称性的度量。 KL散度是用来 度量使用基于Q的编码来编码来自P的样本平均所需的额外的比特个数。 典型情况下,P表示数据的真实分布,Q表示数据的理论分布,模型分布,或P的近似分布。

条件熵

wiki

条件熵是信息论中信息熵的一种度量,它表示如果已经完全知道第二个随机变量 X 的前提下,随机变量 Y 的信息熵还有多少。也就是 基于 X 的 Y 的信息熵,用 H(Y|X) 表示。同其它的信息熵一样,条件熵也用比特、奈特等信息单位表示。

具体有针对一个确定的Xj 的条件熵, 如果是针对一个随机变量而言, 条件熵是针对所有Xj的条件熵的期望

《[ML]熵、KL散度、信息增益、互信息-学习笔记》

联合熵

wiki

《[ML]熵、KL散度、信息增益、互信息-学习笔记》

P(x,y) 是联合概率

信息

《[ML]熵、KL散度、信息增益、互信息-学习笔记》

由对数性质和全概率公式

《[ML]熵、KL散度、信息增益、互信息-学习笔记》

信息是通过条件熵的差计量的

掷一次骰子,由于六种结局(点)的出现概率相等,所以结局的不确定程度(熵)为log6 ,如果告诉你掷骰子的结局是单数或者双数,这显然是一个信息。这个信息消除了我们的一些不确定性。把消除的不确定性称为信息显然是妥当的。

《[ML]熵、KL散度、信息增益、互信息-学习笔记》

如果令公式中的y=x,H(x∣y)变成了H(x∣x),其含义当然是x已知时x的条件熵,可是x 已知时它自己当然没有不确定性了。所以H(x∣x)=0 。把它带入信息公式,得到

也就是说x 值已知时所带来的信息恰好等于原来的不确定性。或者说x。这正是在一些场合下把熵直接称为信息的原因。遗憾的是有些人没有理解这个认识过程,而引出了信息是熵或者信息是负的熵的概念混乱。

信息增益

熵降低的程度
信息是通过熵与条件熵的差计量的

互信息

http://zh.wikipedia.org/wiki/%E4%BA%92%E4%BF%A1%E6%81%AF

互信息(Mutual Information)是一有用的信息度量,它是指两个事件集合之间的相关性。两个事件X和Y的互信息定义为:

baike:
一般而言,信道中总是存在着噪声和干扰,信源发出消息x,通过信道后信宿只可能收到由于干扰作用引起的某种变形的y。信宿收到y后推测信源发出x的概率,这一过程可由后验概率p(x|y)来描述。相应地,信源发出x的概率p(x)称为先验概率。我们定义x的后验概率与先验概率比值的对数为y对x的互信息量,也称交互信息量(简称互信息)。

《[ML]熵、KL散度、信息增益、互信息-学习笔记》

其意义:由于事件A发生与事件B发生相关联而提供的信息量。

该方法通过计算词条和类别的互信息,词条和类别的互信息越大,词条越能代表该种类别。其中词条和类别的互信息通过公式,

《[ML]熵、KL散度、信息增益、互信息-学习笔记》

MI(T,C) = log( P(T|C)/P(T) )

MI(T,C) = H(C)-H(C|T)

熵 – 条件熵 , 这个和信息增益也有关系, 具体见 综合 部分.

其中P(T|C)是词条T在类别C中出现的概率,P(T)是词条T在整个训练集中出现的概率。

直观理解, 如果 T在整个训练集中出现的概率并不高,但是在类别C中出现的概率却很高, 那么就可以知道T可以很大程度上代表这个C, 分子类似于tf(但是包含了文档长度的考虑), 分母有点类似于IDF(但是又包含了各个文档中出现的term的个数,而不只是出没出现)。

用互信息的方法,在某个类别C中的出现概率高,而在其它类别中的出现概率低的词条T,将获得较高的词条和类别互信息,也就可能被选取为类别C的特征。

互信息是term的存在与否能给类别c的正确判断带来的信息量。

词条和类别的互信息体现了词条和类别的相关程度,互信息越大,词条和类别的相关程度也越大。得到词条和类别之间的相关程度后,选取一定比例的,排名靠前的词条作为最能代表此种类别的特征。

自信息

http://zh.wikipedia.org/wiki/%E8%87%AA%E4%BF%A1%E6%81%AF

自信息(英语:self-information),又译为信息本体,由克劳德·香农提出,用来衡量单一事件发生时所包含的信息量多寡。它的单位是bit,或是nats。

《[ML]熵、KL散度、信息增益、互信息-学习笔记》

特征选择

决策树:
特征t能产生的信息增益 = 熵 – t对应的条件熵

《[ML]熵、KL散度、信息增益、互信息-学习笔记》

Xj -> X, 这里j只有两种取值, 有 或者 没有, 也就对应了决策树的两个分叉。

选择信息增益最大的特征。

实际中特征t可能是一个连续值,我们需要选一个阈值,大于阈值的就等同于t出现, 小于阈值的就等同于t不出现,这个阈值也需要遍历所有的样本集中t的取值来确定。 同样还是两个分叉。 假设有n个特征,m个样本(最坏在每个特征处有m个值, 这样寻找一次最大的信息增益的复杂度是 O(mn) 还是挺大的)

如果有一个样本集是这样

    f1 f2 f3
c1   1  0  1
c2   0  1  0
c3   1  1  0

可以算c1 c2之间的相似度, 同样也可以算 f1, f2之间的相似度, 行和列而已, 实际中 c1 c2 c3不可能就一个样本

    f1 f2 f3
c1   1  0  1
c1   1  1  1
c2   0  1  0
c2   1  1  0
c3   1  1  0

这时候直接算列的相似度就不好算了, 用互信息就可以,互信息就像是把类别作为一个doc, 特征作为term, 的tf-idf模型, 比如f3就很能代表c1, 同样, 用信息增益也可以算。

综合

Wiki : Information gain in decision trees

In information theory and machine learning, information gain is a synonym for Kullback–Leibler divergence. However, in the context of decision trees, the term is sometimes used synonymously with mutual information, which is the expectation value of the Kullback–Leibler divergence of a conditional probability distribution.

In particular, the information gain about a random variable X obtained from an observation that a random variable A takes the value A=a is the Kullback-Leibler divergence DKL(p(x | a) || p(x | I)) of the prior distribution p(x | I) for x from the posterior distribution p(x | a) for x given a.

证明:

《[ML]熵、KL散度、信息增益、互信息-学习笔记》

http://www.cnblogs.com/xiedan/archive/2010/04/03/1703722.html
http://blog.sohu.com/people/f21996355!f/123258006.html

http://blog.sina.com.cn/s/blog_4d1f33470100sjuf.html
这篇文章提到互信息可以和 tf-idf 一样作为文档的关键词的权值

    原文作者:RioDream
    原文地址: https://segmentfault.com/a/1190000000641079
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞