今天给各位分享交叉熵信息熵的知识,其中也会对交叉熵定义进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
信息量是通过概率来定义的:如果一件事情的概率很低,那么它的信息量就很大;反之,如果一件事情的概率很高,它的信息量就很低。简而言之,概率小的事件信息量大,因此信息量可以定义如下:
下面解释为什么要取倒数再去对数。
(1)先取倒数: 这件事表示:“信息量”和“概率”呈反比;
(2)在取对数: 取对数是为了将区间 映射到 。
再总结一下:
信息熵是信息量的数学期望。理解了信息量,信息熵的定义式便不难理解。定义如下:
条件熵的定义为:在 给定的条件下, 的条件概率分布的熵对 的数学期望。
条件熵一定要记住下面的这个定义式,其它的式子都可以由信息熵和条件熵的定义式得出。
理解条件熵可以使用决策树进行特征选择的例子:我们期望选择的特征要能将数据的标签尽可能分得比较“纯”一些,特征将数据的标签分得“纯”,则熵就小,信息增益就大。
因为 ,条件熵可以变形成如下:
说明:有些教材直接把最后一步
定义成条件熵,其实是一个意思,我个人觉得
这种定义式更好理解,而这个定义式可以参考李航《统计学习方法》P61 ,并不难记忆,其实条件熵就是“被特征分割以后的信息熵的加权平均”。
两个变量 和 的联合熵的表达式:
根据信息熵、条件熵的定义式,可以计算信息熵与条件熵之差:
同理
因此:
定义互信息:
即:
互信息也被称为信息增益。用下面这张图很容易明白他们的关系。
信息熵:左边的椭圆代表 ,右边的椭圆代表 。
互信息(信息增益):是信息熵的交集,即中间重合的部分就是 。
联合熵:是信息熵的并集,两个椭圆的并就是 。
条件熵:是差集。左边的椭圆去掉重合部分就是 ,右边的椭圆去掉重合部分就是 。
还可以看出:
;
;
;
;
。
相对熵又称 KL 散度,如果我们对于同一个随机变量 有两个单独的概率分布 和 ,使用 KL 散度(Kullback-Leibler (KL) divergence)来衡量这两个分布的差异。差异越大则相对熵越大,差异越小则相对熵越小。
计算公式如下:
如何记忆:如果用 来描述样本,那么就非常完美(因为 认为是真实的情况)。而用 来描述样本,虽然可以大致描述,但是不是那么的完美,信息量不足,需要额外的一些“信息增量”才能达到和 一样完美的描述。如果我们的 通过反复训练,也能完美的描述样本,那么就不再需要额外的“信息增量”, 等价于 。 即 和 的分布完全一致的时候,KL 散度的值等于 。
我是这样记忆交叉熵的定义的,通过逻辑回归的损失函数记忆交叉熵。 认为是类标,是独热编码(也可以认为是概率分布),而 认为是逻辑回归预测的概率分布。
结论:KL 散度 = 交叉熵 - 熵 。这一点从相对熵的定义式就可以导出。
这里
就是交叉熵的定义式。
1、一文搞懂交叉熵在机器学习中的使用,透彻理解交叉熵背后的直觉
地址:
2、机器学习各种熵:从入门到全面掌握
地址:
3、信息增益(互信息)非负性证明
地址:
4、如何通俗的解释交叉熵与相对熵?
地址:
5、相对熵(KL散度)
地址:
6、KL(kullback-Leibler-devergence)散度(相对熵)非负性
地址:
7、简单的交叉熵,你真的懂了吗?
(本节完)
又称为“香农熵”或“信息熵”,是一个随机变量不确定性(信息量)的度量,也可理解为随机变量在信息系统中的编码长度。对于离散型随机变量 ,其信息熵可定义为: 在 熵正则化 中,主要思想是利用信息熵衡量模型的Class Overlap(分类重合度)。熵越大,类别间重合度越大,模型分类的随机性越强,分类效果越差。因此,目标函数中引入信息熵作为一个正则项: 最大化目标函数,即 熵最小化 。
又称为“信息散度”或“KL散度”,是两个概率分布间差异的非对称性度量,即这两个分布间的“距离”,等价于两个概率分布的信息熵的差值。对于离散型随机变量 的两个不同概率分布 和 , 对 的相对熵可定义为: 假设一个概率分布为真实分布,另一个为理论(拟合)分布,相对熵表示使用理论分布拟合真实分布时产生的信息损耗。
两个概率分布 和 ,其中 表示真实分布, 表示非真实分布,在相同的一组事件中,用非真实分布 来表示某个事件发生所需要的平均比特数,即用分布 表示目标分布 的困难程度: 可以注意到, 当目标分布 固定不变时, 为常量,因此最小化交叉熵 等价于最小化这两个分布的相对熵 ,即让模型训练得到的分布尽可能地接近真实分布。
表示一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不确定性(缩减的信息量)。对于两个随机变量 和 ,设 的先验概率为 ,后验概率为 ,则定义 的后验概率与先验概率比值的对数为 对 的互信息量: 最小化互信息,即最小化随机变量的不确定性。设这两个随机变量的联合分布为 ,边缘分布为 和 ,展开可得, 即互信息是联合分布与边缘分布的相对熵。
信息熵
一条信息的信息量和它的不确定性有关系,对于不知道不了解的事情,所需要的信息量更大。
对于大概率发生的事情的信息量较小,而越小概率的事情发生的信息量越大。比如太阳从东方升起,概率大信息量小。
对于两个独立事件同时发生的概率为p(x,y)=p(x)p(y),而同时发生时获得的信息量应该等于各自发生时获取的信息之和,I(x,y)=I(x)+I(y) 。
由此可见,I(x)一定与p(x)的对数有关。
因此有
从公式可得,随机变量的取值个数越多,信息熵就越大。
当随机分布为均匀分布时,熵最大。
交叉熵
关于样本集的两个概率分布p(x)和q(x),其中p(x)是真实分布,q(x)是非真实分布。如果用非真实分布q(x)来表示来自真实分布p(x)的平均编码长度,则称之为交叉熵。
其中x表示事件,p(x)表示事件发生的概率。
信息熵具有以下性质:单调性,即发生概率越高的事件,其所携带的信息熵越低。极端案例就是“太阳从东方升起”,因为为确定事件,所以不携带任何信息量。从信息论的角度,认为这句话没有消除任何不确定性。非负性,即信息熵不能为负。这个很好理解,因为负的信息,即你得知了某个信息后,却增加了不确定性是不合逻辑的。累加性,即多随机事件同时发生存在的总不确定性的量度是可以表示为各事件不确定性的量度的和。信息熵是用来衡量信源不确定性的。信息熵越大,信源越具不确定性,信源越复杂。
通过公式可以看出,q分布与p分布越接近,KL散度越小,相对熵越小。
什么是交叉熵?和信息熵有什么关系?为什么它可以用作分类的损失函数?二分类的交叉熵怎么表示?
在分类任务中,你可能已经用过交叉熵来作为损失函数,并且好奇为什么要使用自然对数?二分类的交叉熵和普通的交叉熵有没有什么本质的不同?读完这篇文章,希望你会有所收获。
交叉熵,由“交叉”和”熵”组成,我们先来理解熵,再来理解什么是交叉。
所以,首先我们来复习下熵。更多熵的内容见上篇博客
无论是离散还是连续状态下,我们都是计算 负对数概率 的 期望 ,作为某事件 x 的理论上的最我码长度。
所以可以写成期望的形式:
x~P 表示计算P概率分布下的期望。
也可以写成H的这种形式。
总结一下,熵告诉了我们某事件在给定概率分布的情况下,理论上最我码长度。
也就是我们一旦知道了某事件的概率分布,我们就可以计算它的熵。
但是如果我们不知道该事件的概率分布,那么无法计算熵,那怎么办?我们是不是就得对熵做一个估计。
但是,熵的估计意味着什么?他的准确度怎么衡量?
为了回答这些问题,我们自然而然的引出了交叉熵。
还是以东京的天气预报为例子。但是我们不知道天气及具体的概率分布。为了便于讨论,假设我们观察了一段时间的天气,可以找出其概率分布。
起初我们不知道东京天气的概率分布,我们用Q来估计它,并用它来计算发送天气信息到纽约的最小平均编码长度。
利用估计的概率分布Q,那么估计的熵:
加入估计的Q越接近真实的分布,那么上面的估计也就越能到达最小的编码长度。
但是呢,熵的估计公式中包含两种不确定性。
如x~Q所示,我们使用估计的概率分布Q来计算期望,与实际概率分P计算出的期望不同。这是第一种不确定性。
此外,我们估计最我码长度为-log Q,我们根据估计的概率分布Q计算。因此,它不会100%准确,这是第二种不确定性。
由于估计概率分布Q影响期望和编码长度的估计,那么估计的熵可很大程度上也是不正确的。
碰巧的话,估计熵可以接近真实熵,因为Q影响期望的计算和编码长度估计。
所以,估计熵的真实熵之间的比较并不意味着什么。
和香农一样,我们关心的是怎么把编码长度变得尽可能的小。所以我们应该比较我们计算出的编码长度和理论上的最我码长度的大小。
如果在观察东京的天气一段时间后,我们可以获得实际的概率分布P,那么就可以利用概率分布P和天气报告期间使用的 实际编码长度 (基于Q)来计算实际的 平均编码长度 。
我们称其为:P和Q之间的交叉熵,和熵的公式进行比较。
我们将苹果与苹果进行比较,因为我们使用相同的真实分布来对计算期望。 在此我们比较理论上最我码长度和天气报告中使用的实际编码长度。
简而言之,我们正在交叉检查编码长度,这就是“交叉”在交叉熵中的含义。
通常,交叉熵如下表示:
H(P, Q) 表示利用概率分布P和基于Q的编码长度来计算期望. H(P, Q) 和 H(Q, P) 一般结果不相同,除非Q=P。在这种情况下交叉熵就成了熵本身: H(P, Q) = H(P, P) = H(P) 。
这一点很微妙但很重要。 为了计算期望,我们应该使用真实概率分布P, 对于编码长度,我们应该使用Q来编码消息。
由于熵是 理论 最小平均编码长度,因此交叉熵高于或等于熵但不小于熵。
换句话说,如果我们的估计是完美的,则Q = P,因此H(P,Q)= H(P)。 否则,H(P,Q) H(P)。
到目前为止,我们搞清楚了熵和交叉熵之间的关系。 接下来,我们讨论下为什么交叉熵可以作为分类的损失函数。
例子:动物5分类问题,且每个图片值包含一种动物。
每幅图片都用one-hot的形式来编码。
对于第一幅图(小狗):
对于第一幅图(狐狸):
计算下每个图的熵,其都为0,也就意味着没有不确定性。
换句话说,one-hot编码的标签,以100%的确定下告诉我们图片中动物是什么。第一幅图不会出现90%是狗。10%的情况是狐狸的这种状况。它一直是狗,不会出现什么意外。
现在,我们有个模型来对这些图片进行分类。当我们对模型的训练程度不够时,对第一幅图片(狗)分类可能会出现如下的情况:
也就是目前的模型告诉我们这个图:40%-dog, 30%- fox, 5% - horse, 5%-eagle ,20% - squirre.看起来不是特别的准确来告诉我们到底是什么动物。
相反,标签为我们提供了第一张图像的动物类别的精确分布。 它告诉我们这是一只100%确定的狗。
所以,这么模型的预测能力怎么样?我们计算一下交叉熵。
假设模型由训练了一会,对第一幅图的输出为:
计算交叉熵,比之前的小了许多。
交叉熵将模型的预测和正式分布下对应的标签进行比较。 随着预测的越来越准确,交叉熵的值越来越小 。如果预测完美,那么交叉熵变为0。所以交叉熵能够作为分类模型的损失函数。
在机器学习中,我们经常以自然对数为底而不是以2为底的对数,其中原因之一是 便于计算微分 。
对对数的基的变化只是会引起幅度上的变化。在分类问题中,我们用交叉熵作为损失函数,相对于具体的值更关心的关注其变小的趋势。
纳特,是信息论中 熵 的单位之一。以自然对数为底而不是以2为底的对数,以2位底称为比特(bit)。
1纳特相当于1.44比特。
怎么理解1纳特?所以以 1/e 的概率的事件的信息量。1比特就是以1/2概率的时间的信息量。
但是以e为底解释起来没有像以2为底那么直观。比如我们对某个信息用1 bit编码,那么就降低了50%的可能性。如果用e来做相同的解释的话,并不是很好的去理解,这就是为什么常常用以 2为底 去对 信息熵 的概念做解释。然而,机器学习中偏爱自然对数是因为便于计酸。
情景:猫狗分类
关于交叉熵信息熵和交叉熵定义的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件至举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签: #交叉熵信息熵
相关文章