社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

白话机器学习 | 损失函数

图灵人工智能 • 2 月前 • 67 次点击  
点击上方“图灵人工智能”,选择“星标”公众号

您想知道的人工智能干货,第一时间送达

                         
图片

版权声明

 转自闪客,版权属于原作者,用于学术分享,如有侵权留言删除 

闪客:哟小宇,准时准点来啦,还记得上次《白话机器学习 | 找规律》我们聊到哪了么?

小宇:当然记得,我们要用一条线来拟合一堆点,上次说可以用每个点到这条线的偏离距离的总和来表示点与线的"贴合程度",这个数越小越好。然后你就给我来了个损失函数公式让我破防了。

图片

闪客:哈哈没错,上次是我讲累了所以直接给你来了个公式把你吓了回去,那今天我们就专门来聊聊这个"损失函数"到底是个啥东西,为什么叫它"损失"。

小宇:是因为算出来的数特别让人"损失信心"吗?

闪客:哈哈哈,这个脑洞不错,但其实它的损失更像是"我们和完美结果之间的差距"。差距越大,损失就越大,差距越小,损失就越小。

小宇:哇,这个解释好理解!

闪客:来,我们先从直观的定义开始。假设某个点的真实值是 y,而我们的预测值是 ŷ 。你觉得两者的误差可以怎么表示?

图片

小宇:很简单呀,直接用 y−ŷ 不就行了?

闪客:不错!这叫"误差"或"偏差"。但问题来了,你觉得要是我们把所有点的误差加起来,有啥问题?

小宇:嗯~正的误差和负的误差会互相抵消,最终看起来像没什么偏差?

闪客:没错,像刚刚的那几个 XY 的点,如果按这种算法来评估,就有可能找到一种驴唇不对马嘴的预测,但它的损失却是 0! 

图片

小宇:哈哈,确实离了大谱了,那可咋办呢?

闪客:为了不让误差"藏着掖着",我们可以给它取个绝对值,这样正负误差都成了正的:

图片

小宇:哦,这样挺公平的呀。诶等等,这又有个新的数学公式,你得解释解释。

闪客:额,你是没上过初中么?这个符号就是求和符号,表示把所有的 y - ŷ 的值都累加起来。比如把等差数列写成求和符号的形式就是这样。

图片

小宇:哦懂了,这好像确实是初中就学过的,嘿嘿。

闪客:回过头来看,这样确实很公平,但有个小问题,就是绝对值有"尖点",数学优化的时候不太友好,计算起来跟被卡在牙缝里一样麻烦。

小宇:嗯确实,做题的时候其实最讨厌碰到绝对值符号,还得分段讨论,有一种情况没想全就要扣分,最头疼了。

闪客:所以我们更喜欢"平方误差",就是把误差平方后再加起来:

图片

小宇:哇!这的确是个绝妙的办法呀,平方之后,正负误差都成正的!而且大的误差更显眼,就像班里成绩特别差的同学会被老师特别关照一样。

闪客:哈哈哈,没错!我们再平均一下,去掉样本数量大小因素的影响,这就叫"均方误差"(Mean Squared Error, MSE),看起来是不是又简单又合理?

图片

小宇:嗯,这次终于没有突然甩出高大上的东西,我的信心回来了一点。

闪客:好了,找到了损失函数,还记得我们要干啥不?

小宇:记得,让损失函数最小!

闪客:不错,这时候我们得把 ŷ 表示出来,我们可以假设预测的直线的方程是 y = wx + b,像下面这样。

图片

不过我们可以先简化一点,认为这条直线穿过原点,这样就可以少个 b。

图片

这个时候带入 MSE 中,就是

图片

我们想要计算的就是,w 为多少的时候,这个损失函数的值最小。

小宇:完了完了,我已经头疼了,这里咋这么多字母,我已经晕了。

闪客:别急,这些字母里其实只有 w 是未知的,其他的都是已知数。我们举个简单的例子就明白了了。我们先不看上面那个复杂的例子,假设 x=[1,2,3,4] y=[1,2,3,4] 这样傻子都能看出来规律对吧,我们就用这个来举例。

图片

小宇:哈哈这个简单,不用算也知道就是 y = x

闪客:没错,我们就用这个算一下,把这里的 x 和 y 的值都代入到刚刚的损失函数中。

图片

接下来就是一个标准的求函数 L 的极小值点的过程,这种苦力活我怎么可能自己做呢,交给 AI 吧。

图片

小宇:哈哈,你可真懒,不过这过程解释得真细致呀,要让你讲肯定不能这么有耐心。我再补个图吧,刚刚 w = 1 就表示预测直线的方程是 y = x,就像这样,确实损失最小呢!

图片

闪客:没错,实际上刚刚的

图片

画成图就是个抛物线,寻找最小值点就是寻找抛物线的最低点。

图片

小宇:原来如此!诶?那如果回到最初,我们不简化预测函数的直线方程,直接是 y = wx + b 呢?这要怎么办?

闪客:一样的,这样最终代入到损失函数后,就是关于 w 和 b 两个未知变量的函数,求极值点如果画成图的话,就不再是抛物线了,而是三维坐标中的曲面。

图片

小宇:原来如此!不过求二次方程的极值已经是我数学水平的极限了,这上升到三维想都不敢想呀,更何况如果是四维五维可咋整?

闪客:没错,理论上也是可以求出来的,但这样一步到位求出最小值会随着维度变高、函数形式变复杂而越来越困难,更何况有的时候还没法一步到位求出全局的最优解。

图片
图片

小宇:我的天呐,那该怎么办呀?

闪客:今天的知识点够密集啦,等下次来的时候我给你讲一个叫梯度下降的办法,不但可以简化问题的求解难度,而且还非常适合使用计算机来计算。

小宇:嗯今天确实已经够头大啦,期待下次哟!

闪客:是不是都听饿了,我听说楼下新开了家麻辣烫,一块去吃个饭吧。

小宇:哦今天思考得有点头疼,我回去休息一下,下次吧~

闪客:哦~


图片图片


文章精选:

1.杨立昆:靠文本训练LLM,不可能实现人类水平AI(演讲实录)
2.2024图灵奖颁给强化学习两位奠基人!ChatGPT、DeepSeek背后功臣戴上迟来的冠冕
3.诺奖得主、人工智能教父辛顿学术讲座:图灵相信的是另一种AI、反向传播比人脑效果好,开源模型将给世界带来致命危险
4.图灵奖得主LeCun痛批硅谷傲慢病!圈内爆火长文:DeepSeek R1-Zero比R1更重要,成AGI破局关键
5.图灵奖得主、AI 教父 Bengio:OpenAI 不会分享超级智能,而是会用它来搞垮其他人的经济
6.不用求人,DeepSeek扮演国家自然科学基金审评专家,为申请书初稿提出专业改进意见,快速提升内容质量
7.图灵奖得主Bengio预言o1无法抵达AGI!Nature权威解读AI智能惊人进化,终极边界就在眼前
8.赶紧放弃强化学习?!图灵奖得主、Meta 首席 AI 科学家杨立昆喊话:当前推理方式会“作弊”,卷大模型没有意义!
9.图灵奖得主杨立昆:大语言模型缺乏对物理世界的理解和推理能力,无法实现人类水平智能
10.图灵奖得主杰弗里·辛顿:从小语言到大语言,人工智能究竟如何理解人类?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/180923
 
67 次点击