【机器学习】基本损失函数
参考:
基本损失函数
任务:衡量人脑与神经网络在判断一张图片是不是猫这个问题上的差异。
是人工打上的一个标签,
0
代表不是猫,1
代表是猫。是神经网络输出一个概率,表示这个图片是猫的概率。
是神经网络的参数,由参数得到一个 。
1、最小二乘法
在上述问题中,最简单的方式就是直接比较人脑与神经网络的区别。
如果两个值相差的越小,就可以很直观的理解为这两个模型越相似。
对于一张图片人打上的标签是 ,而神经网络跑出的结果是 ,直接把他们相减,就是他们之间的相差有多大。
因为绝对值函数在零点可能会存在不可导的情况,因此我们对其平方,让他处处可到。
这是对于一张图片,刻画的差异程度,所有图片的差异程度加在一起,就可以量化人脑与神经网络在该问题上的差异。
当这一个值最小的时候,我们就可以认定人脑与神经网络这两个模型的差异最小。
从这个式子我们也可以看出为什么这个方法叫做最小二乘法
。
2、极大似然估计法
极大似然就是概率的反向应用。
2.1、似然值
我们知道在抛硬币问题中,硬币正面朝上,或者硬币反面朝上的概率都是0.5
。理想情况下,抛 10
次硬币获得的结果应该是 5
次朝上,5
次朝下。但实际情况却是各种情况都可能出现。
这是我们从理论去思考实践,如果我们已知抛出的硬币的情况,然后考虑概率模型是什么,这就是似然的过程。
如下图所示,抛 10
次硬币,正面朝上 7
次,反面朝上 3
次,左边三种概率模型都有可能得到。
但是这三种模型是不平等的,哪一种模型更有可能是该事件的模型呢?当事件,以及模型都确定时,我们是可以计算的。左边的式子中 表示的是某种确定的概率分布(如抛一次硬币,正面朝上的概率是 ,反面朝上的概率是 )。表示的是抛了 次硬币,每次的情况。
整个左边表示的是在 这种概率分布下,发生抛 次抛出 这样的结果发生的可能性。
真实的事件已经发生,我们假设它有很多的模型,在一个概率模型下,发生当前事件的可能性,就是这个概率模型的似然值。
下图就列举了,抛 枚硬币,发生的事件为 次为正, 次为负,对应 3
种概率模型的似然值。
虽然我们可能永远都不知道准确的概率模型是什么,但是我们选似然值最高的模型,它也就最可能是准确的模型。这就是极大似然估计法。
极大似然估计法,适用于已知事件发生的结果,去反推事件原本的模型是什么。
2.2、神经网络与人脑似然
现在回到判断一个图片是不是猫这个问题上。
在抛硬币的问题中 表示抛硬币最终得到的结果,在图像识别问题中 就表示人打的标签(0
就不是猫, 1
就是猫)。
在抛硬币问题中 表示概率模型,在图像识别问题中 表示网络的参数,我们可以认为一组 可以确定一个描述图片是否为猫的概率模型。网络参数可以得到一个输出,表示神经网络认为图片是猫的概率。
其中 ,且
那么上式就可以化为
计算到这里其实就可以结束了,这里我们人为的加上 log
化乘为加
最终,最大化似然值,相当于最小化负对数似然:
3、交叉熵
3.1、信息量
在一种情况下能减少不确定性的任何事物都可称为信息。
信息量可以用来用来衡量一个事件发生的惊奇程度。
对于事件,我们用一个离散型随机变量来描述 ,其概率密度函数为 。如果一个事件发生的可能性越小,但它却发生了,是不是就可以理解为这个事件带给我们的惊奇程度非常大。
所以当 很小时,信息量应该会很大,再来理解信息量定义的公式:
由于 ,所以需要有一个符号,使得 。
3.2、熵
熵是随机变量不确定度的度量。如果熵比较大,表示整个状态越难以预测,愈加的混乱。
注意:
- 信息量描述的是一个事件( 的某一个取值),比如抛一次硬币结果为正面
- 而熵描述的是一个系统,一个随机变量( 的所有取值),比如抛硬币这件事情。
在信息量的基础上,如何理解熵的定义呢?
如果简单的将随机变量的所有事件对应的信息量相加,定义得到的结果为熵,有没有问题呢?
比如一个二元事件
x=1 | x=0 |
---|---|
p(x=1) = 0.99 | p(x=0)=0.01 |
计算得到熵的结果为
再考虑另一个二元事件
x=1 | x=0 |
---|---|
p(x=1) = 0.5 | p(x=0)=0.5 |
计算得到熵的结果为
从直观的感受来说,上面事件整体带给我们的不确定性是非常小的,但是计算出来的熵的值却比下面要大。
这个时候我们再来看熵的定义式子:
在之前的基础上多乘了一个概率本身,可以理解为单个事件的信息量,对于整个事件熵贡献的权重。
规定 ,因为加上 概率的项,不改变其熵的值。
可以理解为信息量 的期望值
3.3、相对熵
相对熵是两个随机分布之间的距离的度量。在统计学中,它对应的是似然比的对数期望。
相对熵 度量当真实分布为 而假定分布为 时的无效性。
KL散度是用来度量使用基于Q的分布来编码服从P的分布的样本所需的额外的平均比特数
两个概率密度函数为 和 之间的相对熵或 距离 定义为:
可以证明,相对熵总是非负的,且当 时为零。
可以发现,由于 表示的是真实的分布,那么他的熵是不变的,也就是推导最后的 是不变的。我们如果想要使得两个随机分布之间的距离最小化,也就是使得 最小化。这个式子称为交叉熵。
3.4、交叉熵
给定两个概率分布 , 相当于 的交叉熵定义为:
再回到我们最开始的问题中:
对应 表示真实的概率分布,而 就表示估计的概率分布,我们用交叉熵来度量,真实的情况与估计的情况的偏差是多少。对于一张图片来说其交叉熵为
因为 只有 两种情况,对于整个数据集的 张图片,总的交叉熵就为:
__EOF__
本文链接:https://www.cnblogs.com/hoppz/p/18145417.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)