一文理解机器学习中的各种熵

本文的目录组织如下:

【1】自信息

【2】熵(香农熵)

【3】联合熵

【4】条件熵

【5】互信息(信息增益)

【6】 熵、联合熵、条件熵、互信息的关系

【7】交叉熵

【8】相对熵(KL散度)

【9】熵在机器学习中的应用(贝叶斯、决策树、分类)

1. 自信息:对事件不确定性的度量。

自信息公式

事件的不确定性越大(概率pi越小),自信息I(pi)越大。

比如买彩票,中彩票的自信息大,而不中彩票的自信息小。

2. 熵(香农熵):事件所有可能结果的自信息期望值。

香农熵公式

当事件所有可能的结果相同时,自信息等于香农熵。

比如掷骰子,p(xi) = 1/6,I(X) = -log(p(xi)) = -log(1/6) = log6 = H(x)。

3. 联合熵:(X,Y)在一起时的不确定性度量。

联合熵公式

联合熵性质:

大于每个独立的熵:

小于独立熵的和:

4. 条件熵:知道X的条件下,Y的信息量。

条件熵公式

从公式的推断过程,可以得到条件熵的一个性质:

5. 互信息(信息增益):知道X,给Y的信息量带来多少损失。

互信息(信息增益)

可以得到互信息的一个性质:

6. 熵、联合熵、条件熵、互信息的关系:

熵、联合熵、条件熵、互信息的关系图

举个例子:假设H(X)用一块糖来表示,Y代表一杯水,H(X|Y)也就是将这杯水倒在糖上,H(X)还剩多少,那么溶于水的那部分糖就是Y给H(X)带来的损失,即就是互信息。

这样,我们就可以理解决策树为什么要选取信息增益(互信息)最大的特征。因为信息增益是指由于特征A而使得数据集D不确定性减少的程度。信息增益越大,不确定性减少的程度越大,那么该特征的选取就有利于分类朝着确定性方向发展。

7. 交叉熵:衡量两个概率分布p和q对事件X的相似性。

交叉熵公式

在信息论中,这个量指的是:用「错误」的编码方式 q(而不是 p)去编码服从「正确」 分布q的事件,所需要的 bit 数。

实际上,有一个性质:H(p, q) >= H(p), 当q为真实分布p时取等号。这是因为用错误的分布q得到的平均编码长度H(p,q)大于根据真实分布p得到的平均编码长度H(p)(直观理解)。

交叉熵衡量两个概率分布p和q对事件X的相似性,按理来说,两分布越相似,交换熵越大。但这里的“相似性”是指如果两分布相同,H(p, q) = H(p),取最小值;而两分布不相似,H(p, q) > H(p),取值比 H(p) 大。所以,是反过来的,即两分布越相似,交换熵越小。

由于交叉熵衡量两个概率分布p和q的相似性,因此常常用于神经网络的损失函数。

交叉熵作为损失函数还有一个好处是使用sigmoid函数在梯度下降时能避免均方误差损失函数(MSE)学习速率降低的问题,因为使用MSE代价函数时在sigmoid输出饱和时学习速率(梯度)与sigmoid导数正相关,这时sigmoid导数趋于0,即很小,而使用交叉熵代价函数时学习速率与误差正相关,误差越大,学习速率越大,但与sigmoid导数无关,只被输出误差所控制。

8. 相对熵(KL散度):衡量两个概率分布p和q对事件X的不相似性。

相对熵(KL散度)

在交叉熵的例子中,我们把由q得到的平均编码长度比由p得到的平均编码长度多出来的bit数称为相对熵(KL散度),因此可以将熵、交叉熵、相对熵联系在一起:

交叉熵 = 熵 + 相对熵

相对熵(KL散度)性质:

由于KL散度衡量两个概率分布p和q对事件X的不相似性,因此两分布越不相似,KL散度值越大。

如果两分布相同,则KL散度值为0。KL散度非负且非对称。

KL散度可应用于生成式对抗网络GAN(衡量两个分布)。

注:熵、交叉熵和相对熵都是针对同一事件的,其中交叉熵和相对熵涉及两个概率分布。

9. 熵在机器学习中的应用

贝叶斯学习:

首先,上面描述的高斯分布的例子是很重要的,因为在机器学习应用中,高斯分布是一个很常见的建模选择。机器学习的目标就是减少熵。我们希望做一些预测,而且我们必须对自己的预测比较确定。而熵正好可以用来衡量这个置信度。在贝叶斯学习中,经常假设一个先验分布具有较宽广的概率密度函数,这反映了随机变量在观测之前的不确定性。当数据来了以后,熵会减小,并且让后验分布在最可能的参数值周围形成峰值。

决策树学习:

在决策树的学习算法中,一般包含了特征选择、决策树的生成与决策树的剪枝过程。决策树的特征选择在于选取对训练数据有分类能力的特征,而通常特征选择的准则是信息增益或信息增益比。

在李航的统计学习方法中,一般熵 H(Y) 与条件熵 H(Y|X) 之差可以称为互信息(Mutual Information),决策树学习中的信息增益等价于训练数据中类与特征的互信息。若给定训练数据集 D 和特征 A,经验熵 H(D) 表示对数据集 D 进行分类的不确定性。而经验条件熵 H(D|A) 表示在特征 A 给定的条件下对数据集 D 进行分类的不确定性。那么它们的差,即信息增益,就表示由于特征 A 而使得对数据集 D 的分类的不确定性减少的程度。显然,对于数据集 D 而言,信息增益依赖于特征,不同的特征往往具有不同的信息增益。信息增益大的特征具有更强的分类能力。

根据信息增益准则的特征选择方法是:对训练数据集(或子集)D,计算其每个特征的信息增益,并比较它们的大小,选择信息增益最大的特征。

因此在决策树学习中,熵被用来构建树。通过将数据集 S 根据可能的「最佳」属性分成一些子数据集,从根节点开始构建决策树,「最佳」属性也就是能够将得到的子数据集的熵最小化的属性。这个过程被递归地重复,直到没有更多的属性来分割。此过程被称为 ID3 算法,由此可见 ID3 算法的核心是在决策树各个结点上应用信息增益准则选择特征,递归地构建决策树。

分类:

不管是在二分类问题还是多分类问题中,交叉熵是 logistic 回归和神经网络中的标准损失函数。通常,p 是真实分布,q 是模型描述的分布。让我们来看一个二分类 logistic 回归中的一个例子。两个类别的标签分别是 0 和 1,logistic 模型给每一个输入赋予以下概率:q_(y=1) =y_hat,q_(y=0) = 1- y_hat。这个可以简写为 q ∈ {y_hat, 1 − y_hat}。尽管真实标签是精确的 0 和 1,但是这里还是写成 p ∈ {y, 1 − y},因此不要被这个表达方式搞混。在这个标记下,每个样本的真实值和估计分布之间的交叉熵如下:

当它被作为一个损失函数使用的时候,我们用的是 N 个样本的交叉熵均值:


作者:牛奶芝麻

链接:https://www.jianshu.com/p/7571d6ce1b1d

來源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文的目录组织如下: 【1】自信息【2】熵(香农熵)【3】联合熵【4】条件熵【5】互信息(信息增益)【6】 熵、联...
    牛奶芝麻阅读 3,129评论 0 7
  • 请听题:什么是熵?什么是交叉熵?什么是联合熵?什么是条件熵?什么是相对熵?它们的联系与区别是什么? 如果你感到回答...
    工程师milter阅读 12,076评论 5 57
  • 主要参考机器学习笔记十:各种熵总结 一、什么是熵 熵定义:随机变量的概率分布对应的 **信息量的平均值 ** 就叫...
    小碧小琳阅读 5,278评论 0 5
  • 熵通常被认为描述一个系统或者分布的不确定性,熵越大,系统越混乱,不确定性越大。机器学习与数据挖掘的算法中大量的应用...
    sylvainwang阅读 4,468评论 0 50
  • 时过境迁,用了两年多时间我终于走出过去的阴霾。 原来上帝给你关上一扇门就会给你开一扇窗。再一次为自...
    一心人的锦绣梦阅读 411评论 0 1