序言:
在讲述一件事情的时候,有的人会讲的很清晰,有的则会是一塌糊涂,如果我们用数学的方式怎样的描述上面的一件事,怎样用数字来衡量。此时我们就引入的熵的概念,讲的明白,就是说讲的有条理把事情安排的妥当有序,此时的熵是小的,如果是一塌糊涂很混乱,不知所云,熵越就大。在机器学习中熵是表征随机变量分布的混乱程度,分布越混乱,则熵就越大。熵在物理学上是表征物质状态的参量之一,也是体系混乱程度的度量。了解熵的一个主要目的就是使无序的事情,经过努力变得有序。要掌握熵,首先引入自信息也叫信息量。
信息量:
如果一件事情发生的概率很低,那么它的信息量就很大;反之,如果一件事情的概率很高,它的信息量就很低。举个例子:今年巴西队打进了世界杯,和今年男足打进了世界杯,那个信息量大!简而言之,发生概率小的事件信息量大,发生概率小的,信息量反而小。因此信息量可以定义如下:
Note:
1:自信息的值和事件的发生概率成倒数的关系
2:自信息不是负值,最小为0
3:自信息满足可加性。
单个的信息熵表示的含义是有限的,当要表示整体信息量的时候就要把所有可能的结果和概率都算上,那就是信息熵来表示的含义了。
信息熵 information entropy:
信息熵是信息量的数学期望。通常用来描述整个随机分布所带来的信息量平均值,更具统计特性。定义如下:
熵越小表示越“纯”,决策树算法在进行特征选择时其中标准之一就是选择使得通过该特征分类以后的类的熵最小。信息熵用来表示描述某一时间所需要的最少比特位,如果小数,则向上取整。
举个例子,抛硬币:正面出现的概率为0.5,反面出现的概率也为0.5。H=0.3 表示最少用1个bit位既可以表示此事件。
概率论中当涉及到两个随机变量的时候,有联合分布和条件分布的概念在信息论中也有相对应的联合熵和条件熵这么一说!
条件熵:
在 X 给定的条件下,Y 的条件概率分布的熵对 X 的数学期望。具体的定义为:
理解条件熵可以使用决策树进行特征选择的例子:我们期望选择的特征要能将数据的标签尽可能分得比较“纯”一些,特征将数据的标签分得“纯”,则熵就小,信息增益就大。之后会介绍用互信息(信息增益)来具体的选则。
详细的例子见:
马尚先生:AI 机器学习-决策树 (ID3 、C45 、CART)
互信息:
根据信息熵和条件熵定义可计算信息熵与条件熵之差
因此
交叉熵 cross entropy:
在信息论中,交叉熵是表示两个概率分布p and q, 其中p表示真实分布,q表示非真实分布,在相同的一组事件中,其中,用非真实分布q来表示某个事件发生所需要的平均比特数。我们一步步来理解上面抽象的概念:
按照真实分布p来衡量识别一个样本所需要的编码长度的期望为:
如果非真实分布q来表示来自真实分布p的平均编码长度,则应该是:
此式子即为交叉熵的数学定义。
相对熵:
又称为KL散度,若对同一个随机变量X有两个单独的概率分布P(X)和Q(X),使用KL散度来衡量这两个分布的差异。差异越大这相对熵越大,差异越小相对熵越小。
将其变形为:
公式的第一部分为固定的值,所以在机器学习中常用第二部分交叉熵来表示机器预测值和实际值之间的差别,用作Loss函数。
1)在特征工程中,可以用来衡量两个随机变量之间的相似度
2)语言模型中(NLP),由于真实的分布p是未知的,在语言模型中,模型是通过训练集得到的,交叉熵就是衡量这个模型在测试集上的正确率。其计算方式如下
交叉熵在分类问题中的应用:
由于交叉熵是衡量两个分布之间的相似度,在逻辑回归中,首先数据集真实的分布是p,通过逻辑回归模型预测出来的结果对应的分布是q,此时交叉熵在这里就是衡量预测结果q与真实结果p之间的差异程度,称之为交叉熵损失函数。具体如下:
假设,对应两分类的逻辑回归模型logistic regression来说,它的结果有两个0或者1,在给定预测向量x,通过logistics regression回归函数g(z)=1/(1+e-z),真实结果y=1,对应预测结果y'=g(wx);真实结果y=0,对应预测结果y'=1-g(wx);以上就是通过g(wx)和1-g(wx)来描述原数据集0-1分布。根据交叉熵的定义可知:
上面是针对测试集一个样本得到的交叉熵,若测试集中有N个样本,对应交叉熵损失函数表示方式为:
总结:
以上的介绍主要的目的就是掌握交叉熵的定义和应用,应为在以后的机器学习中损失函数(Loss Function)无处不在,只不过形式不同罢了,了解思想,万变不离其宗。其实在学习具体工程的过程中,在了解了概念的基础上,遇到具体领域问题的时候再的回顾学习,是一种最快速的学习和巩固方式。