本文的目录组织如下:
【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 算法的核心是在决策树各个结点上应用信息增益准则选择特征,递归地构建决策树。
分类:
当它被作为一个损失函数使用的时候,我们用的是 N 个样本的交叉熵均值:
不管是在二分类问题还是多分类问题中,交叉熵是 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},因此不要被这个表达方式搞混。在这个标记下,每个样本的真实值和估计分布之间的交叉熵如下: