0%

【机器学习自学笔记1】信息熵

一直想记录一下机器学习的笔记,奈何水平不足,不过还是想挑战一下自己。话不多说,下面开始。

(entropy) 泛指某些物质系统状态的一种量度,某些物质系统状态可能出现的程度。亦被社会科学用以借喻人类社会某些状态的程度。

信息熵

信息熵的由来

信息熵这个词是C.E.Shannon(香农)从热力学中借用过来的。热力学中的热熵是表示分子状态混乱程度的物理量。香农用信息熵的概念来描述信源的不确定度。

信息熵是一种衡量信息不确定性的物理量,信息熵越大,信息越难以确定。

一个例子:抛一枚硬币,其为正的概率为 1/2,为负的概率为 1/2.

则此时抛硬币的结果有 2 种情况。

若抛 2 枚硬币,则有 (正, 正), (正, 负), (负, 正), (负, 负) 4 种情况。

...

若抛 n 枚硬币,则有 种情况。

注意到硬币的个数 (n) 与情况数 (m) 的关系: 这就是信息熵的计算公式。

对于事件 X,其拥有 m 个等概率的不确定情况,其信息熵为(单位:bit):

其中 p(x) 即表示对于每一种情况,其发生的概率。

概率不相等情况的信息熵

以上是等概率条件下的信息熵,但如果概率不相等,要怎么计算呢?

举一个例子:

情况 A B C
p 1/2 1/3 1/6

我们可以分别计算出每种情况的信息熵:

再根据每种情况的权重进行累加,得到总体的信息熵: 于是我们有信息熵的计算公式。

对于事件 X,情况数为 N ,其每一种情况 xi 的概率为 p(xi),其信息熵为: 注:一般我们用 2 作为信息熵的底数,而在 sklearn 中,其底数则默认为 e.

信息熵可以衡量事件的不确定性,熵越大,事件就越不确定,如抛硬币:

如果其为正、负的概率各为1/2,此时要猜中正负显然是困难的,其信息熵为: 但如果为正、负的概率分别为 9/10, 1/10 呢?

此时猜中正负显然简单许多,其信息熵为: 第二种情况的熵小于第一种情况,第二种情况的结果显然更容易确定。

交叉熵

交叉熵(Cross Entropy)是Shannon信息论中一个重要概念,主要用于度量两个概率分布间的差异性信息。

交叉熵是一种衡量两个概率分布间差异的度量,它在机器学习领域有着广泛的应用,比如对于真实结果 Y 与训练集得出的结果 ,二者之间的交叉熵: 是一种衡量训练准确程度的标志。

对于 P,Q 两种概率分布,交叉熵的计算公式为: 举一个例子,如果有一个训练集的真实结果 P = {1/4, 1/4, 1/4, 1/4}

而训练得到的预测结果 Q = {1/4, 1/8, 1/8, 1/2}

则其交叉熵为: 如果预测结果与真实结果完全相符呢?

即 Q = P = {1/4, 1/4, 1/4, 1/4} 注意到当两个概率分布相同时,交叉熵 = 信息熵。

同时得出另一个结论,交叉熵越小,两个概率分布就越相似。

相对熵

既然交叉熵可以衡量两个概率分布的相似程度,其最小值又等于信息熵,那为什么不令一个值 = 交叉熵 - 信息熵,其为 0 则表示两个概率分布完全相同呢?

这就是相对熵,又称 KL(Kullback-Leibler) 散度。

相对熵的计算公式为: 以上面的例子,P = {1/4, 1/4, 1/4, 1/4}, Q = {1/4, 1/8, 1/8, 1/2},其相对熵为: 注意到这个结果即为交叉熵 Ent(P,Q) - 信息熵 Ent(P) 的值。

若 P = Q = {1/4, 1/4, 1/4, 1/4} 当两个概率分布完全相同时,其条件熵 KL(P||Q) = 0.

条件熵

条件熵,即在给定条件下的不确定性,衡量一个概率分布对另一个概率分布的期望。

举一个例子:

颜色 是不是好瓜
青绿
青绿
青绿
深绿
深绿

若要求是不是好瓜 Y 关于颜色 X 的条件熵:

首先青绿有 3 个瓜,深绿有 2 个瓜,则 P{X=青绿} = 3/5, P{X=深绿} = 2/5.

则在 X=青绿 中,有 2 个是好瓜,1 个不是好瓜: 绿 在 X=深绿 中,有 1 个是好瓜,1 个不是好瓜: 绿 得: 绿绿绿绿

增益系数

所谓信息增益系数,即在获取信息前后熵的差值。

举一个例子:

做一道单项选择题,有ABCD四个选项。

此时由于什么都不知道,其每个选项的概率为1/4: 如果得知一条信息:选 C 的概率是 2/3:

此时 ABCD 的概率分别为 1/9, 1/9, 2/3, 1/9: 则这条信息的增益系数为:

基尼系数

基尼系数是衡量集合纯度的量,基尼系数越低,集合越纯(不确定性越低);基尼系数越高,集合越不纯(不确定性越高)。

基尼系数的计算公式: 比较信息熵的计算公式: 就会发现两者其实区别不大,只不过是把 log 去掉了而已。

对于上面抛硬币的例子:

如果正反的概率各为 1/2: 如果正反的概率分别为 9/10, 1/10: 后者小于前者,说明后者的纯度更高,不确定性更低。