解开“交叉熵”的神秘面纱

导言

什么是交叉熵?和信息熵有什么关系?为什么它可以用作分类的损失函数?二分类的交叉熵怎么表示?

在分类任务中,你可能已经用过交叉熵来作为损失函数,并且好奇为什么要使用自然对数?二分类的交叉熵和普通的交叉熵有没有什么本质的不同?读完这篇文章,希望你会有所收获。

交叉熵,由“交叉”和”熵”组成,我们先来理解熵,再来理解什么是交叉。

所以,首先我们来复习下熵。更多熵的内容见上篇博客 https://www.jianshu.com/p/ad05ed6db0a6

大纲:

  • 熵的复习
  • 熵的估计
  • 交叉熵 ≥ 熵
  • 交叉熵作为损失函数
  • 纳特 vs. 比特
  • 二分类的交叉熵
  • 总结

熵的复习

  • 信息熵
    • 提出:香农
    • 作用:计算无损编码下的最小平均编码长度
    • 离散状态下:(求和)


    • 连续转态下:(积分)


无论是离散还是连续状态下,我们都是计算负对数概率期望,作为某事件 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的形式来编码。


我们把one-hot 编码视为每幅图的概率分布,下来来看几个例子。

对于第一幅图(小狗):



对于第一幅图(狐狸):



以此类推。

计算下每个图的熵,其都为0,也就意味着没有不确定性。


换句话说,one-hot编码的标签,以100%的确定下告诉我们图片中动物是什么。第一幅图不会出现90%是狗。10%的情况是狐狸的这种状况。它一直是狗,不会出现什么意外。

现在,我们有个模型来对这些图片进行分类。当我们对模型的训练程度不够时,对第一幅图片(狗)分类可能会出现如下的情况:



也就是目前的模型告诉我们这个图:40%-dog, 30%- fox, 5% - horse, 5%-eagle ,20% - squirre.看起来不是特别的准确来告诉我们到底是什么动物。

相反,标签为我们提供了第一张图像的动物类别的精确分布。 它告诉我们这是一只100%确定的狗。



所以,这么模型的预测能力怎么样?我们计算一下交叉熵。



比标签对应的0熵,高了许多,但是还看不出来直观的意义。所以我们再来看看另外一个交叉熵作为比较。

假设模型由训练了一会,对第一幅图的输出为:



计算交叉熵,比之前的小了许多。


交叉熵将模型的预测和正式分布下对应的标签进行比较。随着预测的越来越准确,交叉熵的值越来越小。如果预测完美,那么交叉熵变为0。所以交叉熵能够作为分类模型的损失函数。


Nats vs. Bits(纳特和比特)

在机器学习中,我们经常以自然对数为底而不是以2为底的对数,其中原因之一是便于计算微分

对对数的基的变化只是会引起幅度上的变化。在分类问题中,我们用交叉熵作为损失函数,相对于具体的值更关心的关注其变小的趋势。


纳特,是信息论中的单位之一。以自然对数为底而不是以2为底的对数,以2位底称为比特(bit)。

1纳特相当于1.44比特。

怎么理解1纳特?所以以1/e的概率的事件的信息量。1比特就是以1/2概率的时间的信息量。

但是以e为底解释起来没有像以2为底那么直观。比如我们对某个信息用1 bit编码,那么就降低了50%的可能性。如果用e来做相同的解释的话,并不是很好的去理解,这就是为什么常常用以2为底去对信息熵的概念做解释。然而,机器学习中偏爱自然对数是因为便于计酸。


二分类中的交叉熵

情景:猫狗分类

推导过程
二分类交叉熵公式

总结

  • 某随机过程的概率分布已知,那么就很容易计算出它的信息熵
  • 若概率分布不知,用估计的概率分布去计算“熵”,这个熵和真实的熵怎么比较?两个概率分布之间的相似度怎么计算
  • 预测完美时,交叉熵等于信息熵。
  • 交叉熵随着预测的完美程度而降低,所以可以作为分类的损失函数
  • 信息熵的度量。1比特和1纳特的信息量怎么解释?比特和纳特各自有什么优势?在机器学习中为什么要以自然对数为底呢?

参考:

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351

推荐阅读更多精彩内容