公司法
当前位置: 首页 法律大全

机器学习损失函数求解(详解机器学习损失函数之交叉熵)

时间:2023-06-08 作者: 小编 阅读量: 2 栏目名: 法律大全

今天这篇文章和大家聊聊机器学习领域的熵。对于一个事件来说,它可能的结果可能不止一种。原因很简单,因为我们希望测量我们训练出来的模型和实际数据的差别,相对熵的目的就是为了评估和验证模型学习的效果。也就是说相对熵是用来衡量两个概率分布的差值的,我们用这个差值来衡量模型预测结果与真实数据的差距。交叉熵通过上面一系列证明,我们可以确定,KL散度可以反映两个概率分布的距离情况。

今天这篇文章和大家聊聊机器学习领域的

我在看paper的时候发现对于交叉熵的理解又有些遗忘,复习了一下之后,又有了一些新的认识。故写下本文和大家分享。

熵这个概念应用非常广泛,我个人认为比较经典的一个应用是在热力学当中,反应一个系统的混乱程度。根据热力学第二定律,一个孤立系统的熵不会减少。比如一盒乒乓球,如果把盒子掀翻了,乒乓球散出来,它的熵增加了。如果要将熵减小,那么必须要对这个系统做功,也就是说需要有外力来将散落的乒乓球放回盒子里,否则乒乓球的分布只会越来越散乱。

开创了信息论的香农大佬灵光一闪,既然自然界微观宏观的问题都有熵,那么信息应该也有。于是他开创性地将熵这个概念引入信息论领域,和热力学的概念类似,信息论当中的熵指的是信息量的混乱程度,也可以理解成信息量的大小。

信息量

举个简单的例子,以下两个句子,哪一个句子的信息量更大呢?

  1. 我今天没中
  2. 我今天中了

从文本上来看,这两句话的字数一致,描述的事件也基本一致,但是显然第二句话的信息量要比第一句大得多,原因也很简单,因为中的概率要比不中低得多。

相信大家也都明白了,一个信息传递的事件发生的概率越低,它的信息量越大。我们用对数函数来量化一个事件的信息量:

因为一个事件发生的概率取值范围在0到1之间,所以log(p(X))的范围是负无穷到0,我们加一个负号将它变成正值。画成函数大概是下面这个样子:

信息熵

我们上面的公式定义的是信息量,但是这里有一个问题,我们定义的只是事件X的一种结果的信息量。对于一个事件来说,它可能的结果可能不止一种。我们希望定义整个事件的信息量,其实也很好办,我们算下整个事件信息量的期望即可,这个期望就是信息熵。

期望的公式我们应该都还记得:

我们套入信息量的公式可以得到信息熵H(x):

相对熵(KL散度)

在我们介绍相对熵之前,我们先试着思考一个问题,我们为什么需要相对熵这么一个概念呢?

原因很简单,因为我们希望测量我们训练出来的模型和实际数据的差别,相对熵的目的就是为了评估和验证模型学习的效果。也就是说相对熵是用来衡量两个概率分布的差值的,我们用这个差值来衡量模型预测结果与真实数据的差距。明白了这点之后,我们来看相对熵的定义:

如果把 {x} 看成是一个事件的所有结果,那 x_i可以理解成一个事件的一个结果。那么所有的

P(x_i)和Q(x_i)就可以看成是两个关于事件X的概率分布。

P(x_i)样本真实的分布,我们可以求到。而 Q(x_i)是我们模型产出的分布。KL散度越小,表示这两个分布越接近,说明模型的效果越好。

光看上面的KL散度公式可能会云里雾里,不明白为什么能反应P和Q两个分布的相似度。因为这个公式少了两个限制条件:

对于单个 P(x_i)来说,当然Q(x_i)越大 P(x_i)log(P(x_i) / Q(x_i))越小。但由于所有的Q(x_i)的和是1,当前的i取的值大了,其他的i取的值就要小。

我们先来直观地感受一下,再来证明。

我们假设 x_i只有0和1两个取值,也就是一个事件只有发生或者不发生。我们再假设

P(x=0)=P(x=1)=0.5,我们画一下

P(x_i)log(P(x_i) / Q(x_i))的图像:

和我们预料的一样,函数随着 Q(x_i)的递增而递减。但是这只是一个x的取值,别忘了,我们相对熵计算的是整个分布,那我们加上另一个x的取值会发生什么呢?

从函数图像上,我们很容易看出,当Q(x)=0.5的时候,KL散度取最小值,最小值为0。我们对上面的公式做一个变形:

这个式子左边

其实就是-H(X),对于一个确定的事件X来说,它的信息熵是确定的,也就是说

H(X)是一个常数,P(x_i)也是常数。log函数是一个凹函数,-log是凸函数。我们把

P(x_i)当成常数的话,可以看出

是一个凸函数。

凸函数有一个jensen不等式:

也即:变量期望的函数值大于变量函数值的期望,有点绕口令,看不明白没关系,可以通过下图直观感受:

我们利用这个不等式试着证明:

首先,我们对原式进行变形:

然后我们利用不等式:

所以KL散度是一个非负值,但是为什么当P和Q相等时,能取到最小值呢?我们单独拿出右边

我们令

我们探索C(P, P) - C(P, Q)的正负性来判断P和Q的关系。

因为log(x)是凸函数,所以我们利用jensen不等式,可以得到:

我们带入

所以 C(P, P) - C(P, Q) <= 0, 即 C(P, P) <= C(P, Q),当且仅当 P=Q 时等号成立。

交叉熵

通过上面一系列证明,我们可以确定,KL散度可以反映两个概率分布的距离情况。由于P是样本已知的分布,所以我们可以用KL散度反映Q这个模型产出的结果与P的距离。距离越近,往往说明模型的拟合效果越好,能力越强。

我们把上面定义的C(P, Q)带入KL散度的定义,会发现:

对于一个确定的样本集来说,P(x_i)是定值,所以我们可以抛开左边

不用管它,单纯来看右边。右边我们刚刚定义的C(P, Q)其实就是交叉熵。

说白了,交叉熵就是KL散度去除掉了一个固定的定值的结果。KL散度能够反映P和Q分布的相似程度,同样交叉熵也可以,而且交叉熵的计算相比KL散度来说要更为精简一些。

如果我们只考虑二分类的场景,那么C(P, Q) = -P(x=0)log(Q(x=0)) - P(x=1)log(Q(x=1))

由于P(x=0)结果已知,并且:

P(x=0)P(x=1)=1, Q(x=0)Q(x=1)=1。我们令 P(x=0) = y, Q(x=0)=y_hat

所以上式可以变形为:

这个式子就是我们在机器学习书上最常见到的二分类问题的交叉熵的公式在信息论上的解释,我们经常使用,但是很少会有资料会将整个来龙去脉完整的推导一遍。对于我们算法学习者而言,我个人觉得只有将其中的细节深挖一遍,才能真正获得提升,才能做到知其然,并且知其所以然。理解了这些,我们在面试的时候才能真正做到游刃有余。

当然,到这里其实还没有结束。仍然存在一个问题,可以反映模型与真实分布距离的公式很多,为什么我们训练模型的时候单单选择了交叉熵呢,其他的公式不行吗?为什么呢?

分析

我们来实际看个例子就明白了,假设我们对模型:

选择MSE(均方差)作为损失函数。假设对于某个样本x=2,y=0,

θ_0=2, θ_1 = 1 那么θX=4,此时 σ(θX) = 0.98

此时

我们对它求关于θ的偏导:

所以如果我们通过梯度下降来学习的话,

这个式子看起来很正常,但是隐藏了一个问题,就是我们这样计算出来的梯度实在是太小了。通过梯度下降去训练模型需要消耗大量的时间才能收敛。

如果我们将损失函数换成交叉熵呢?

我们回顾一下交叉熵求梯度之后的公式:

我们带入上面具体的值,可以算出来如果使用交叉上来训练,我们算出来的梯度为1.96,要比上面算出来的0.04大了太多了。显然这样训练模型的收敛速度会快很多,这也是为什么我们训练分类模型采用交叉熵作为损失函数的原因。

究其原因是因为如果我们使用MSE来训练模型的话,在求梯度的过程当中免不了对sigmoid函数求导。而正是因为sigmoid的导数值非常小,才导致了我们梯度下降的速度如此缓慢。那么为什么sigmoid函数的导数这么小呢?我们来看下它的图像就知道了:

观察一下上面这个图像,可以发现当x的绝对值大于4的时候,也就是图像当中距离原点距离大于4的两侧,函数图像就变得非常平缓。而导数反应函数图像的切线的斜率,显然这些区域的斜率都非常小,而一开始参数稍微设置不合理,很容易落到这些区间里。那么通过梯度下降来迭代自然就会变得非常缓慢。

所以无论是机器学习还是深度学习,我们一般都会少会对sigmoid函数进行梯度下降。在之前逻辑回归的文章当中,我们通过极大似然推导出了交叉熵的公式,今天我们则是利用了信息论的知识推导了交叉熵的来龙去脉。两种思路的出发点和思路不同,但是得到的结果却是同样的。关于这点数学之美当中给出了解释,因为信息论是更高维度的理论,它反映的其实是信息领域最本质的法则。就好像物理学当中公式千千万,都必须要遵守能量守恒、物质守恒一样。机器学习也好,深度学习也罢,无非是信息领域的种种应用,自然也逃不脱信息论的框架。不知道看到这里,你有没有一点豁然开朗和一点震撼的感觉呢?

今天的文章就到这里,公式比较多,但推导过程并不难,希望大家不要被吓住,能冷静看懂。如果觉得有所收获,请顺手点个关注或转发吧,你们的支持是我最大的动力。

    推荐阅读
  • 怎样烧红烧肉(家常红烧肉的做法)

    怎样烧红烧肉原料:精品五花肉、炖肉料包、葱、冰糖、茶叶。五花肉切条放入凉水中撇去血沫。焯水定型;捞出后晾凉切一样大的方块。锅中放少许油倒入白砂糖炒糖色。糖色的气泡由大变小迅速关火,倒入开水。加少许绍酒,加开水烧,熟得快,加入茶叶水,可以去腥味。改回炒锅大火,放冰糖,使汁粘稠即可出锅,香葱段点缀。

  • 2022杭州径山茶圣节时间、地点、活动一览

    最终集齐所有铜币的游客可至“大宋钱庄”兑换神秘礼物。今来茶韵生活01、陆羽说论坛为进一步挖掘径山茶宴有关历史文化,本届茶圣节特邀请茶学专家交流讨论如何更好保护和传承国家非物质文化遗产。为打造文化传播年,第二十一届中国茶圣节以春迎、夏凉、秋韵、冬福四大主题贯穿全年。

  • 《重生之门》给罗队发短信的人身份

    但是通过前文,不难推测应该是庄文杰发给罗队的短信,只是没有暴露自己的身份。罗坚来到青檀假日酒店排查,没有发现任何异常,庄文杰和许正清乔装改扮随后赶来,他们一出现就被人盯上,庄文杰和许正清来到地下停车场,庄文杰巧妙引开那些人,混进游客中进入酒店。这件事情把十二年前的洛神案串联起来了。

  • 爱情名著哪个好看(随侃名著佳作第6期)

    言下之意,他主动向周晓白提出分手。钟跃民成为一个军人,上了战场,并且是在战斗中受伤,被送到战地医疗帐篷内救治。而周晓白和钟跃民在时隔十多年后的相遇一刻,也是被编剧以及导演,安排得相当的特别,并不是那种悲情欲绝又或者是感动无比的相遇时刻。

  • 板栗可以保存多久 板栗怎么能保存时间长

    如果是晒干的板栗可以存放3-4个月,生板栗在常温下合理贮存可以存放1-2个月,煮熟的栗子大概可以放一周,熟板栗放冰箱冷冻能保存30天左右,熟板栗放冰箱冷藏保存可以存放5天。

  • 贾宝玉与红楼梦的关系(贾宝玉的春梦到底在暗示什么)

    贾宝玉与红楼梦的关系?要知道,贾琏这个人极其好色,而且好的就是熟女,那么从这个曲折的描述中,我们可以推断出,秦可卿应该是那种熟女中的极品。这个问题在书中得不到直接的答案,因为在后面的文章中,秦可卿一共只出现三个镜头:介绍弟弟秦钟与贾宝玉相见,秦可卿病后王熙凤带贾宝玉去探病,秦可卿临死前在梦里向王熙凤交代后事。

  • 简单又好看的剪纸适合儿童(孩子能学会的幼儿简单剪纸教程)

    接下来我们就一起去研究一下吧!简单又好看的剪纸适合儿童幼儿园的孩子经常要做各种各样的手工,通过做手工,提高孩子的审美能力,锻炼孩子的动手能力,培养孩子的专注力和耐心,让孩子更聪明。用蓝天白云绿色的草地,太阳、小兔子和小蘑菇,可以贴出一幅画,也可以用这个画面编出一个小故事,带孩子度过愉快的亲子时光。欢迎关注,学习更多幼儿小手工。

  • 摩尔庄园钓鲤鱼的最佳方法(摩尔庄园钓鲤鱼的有什么最佳方法)

    以下内容希望对你有帮助!摩尔庄园钓鲤鱼的最佳方法工具/原料:华为手机、安卓系统、摩尔庄园游戏。进入游戏后操纵游戏角色进行移动了。去商店购买钓鱼的诱饵。来到池塘边进行的钓鱼。等待的水面出现波动即可钓到鲤鱼了。

  • 国外的懒人产品(歪国产品咖在用哪些可爱的小工具)

    quotes=trueUsabilityHub我通常使用UsabilityHub来帮助确定设计方案。

  • 一年四季水果时间表(一年四季的时令水果是什么)

    3月(春季):枇杷、红香蕉、樱桃、杨桃、番荔枝、青枣、甘果蔗、草莓、番石榴、牛奶蕉、柑桔、观赏南瓜、果桑、鹤首瓜。12月(冬季):樱桃、番茄、红香蕉、鸡蛋果、木瓜、草莓、百香果、杨桃、无花果、番石榴、牛奶蕉、鹤首瓜、观赏南瓜、果蔗、台湾青枣、黑提子、人心果、柠檬、菠萝、油梨、柑橘、橙子。