seegongsik
人工智能

什么是损失函数

前面我们在点之间画过一条预测线。可这条线好不好,怎么知道?线紧跟着点走,就是好线;离点很远,就是坏线。与其凭感觉判断好坏,不如用一个数来量,并规定这个数越小线越好。衡量模型错得有多厉害的这个数,就叫损失。

01

一个点偏了多少

我们已经画好了一条预测线。点是真正的答案,线是模型的预测。挑一个点看看:在这个点的横向位置上,线预测的高度和点实际的高度可能不一样。
两者隔得有多远,模型就错了多少。先用眼睛看看这种偏差吧。

点一个点看看差
点 = 答案线 = 预测

点一个点。点(答案)和线(预测)之间的纵向偏差会显示出来。

每个点的偏差都不一样。有的点几乎贴在线上,有的离得远远的。离线近的点猜得准,离得远的点偏得多。
可光用眼睛看,很难知道整体错了多少。得把偏差变成数字。

02

把偏差量成距离

把偏差变成数字的办法很简单:直接量出点到线的纵向距离就行。这正是前面叫作残差的那个差。
距离长就是错得多,距离短就是错得少。点在线上方也好,下方也好,都一样是错,所以距离总是按正数来量。

点一个点量它的距离

点一个点。点到线的距离会用条量出来,长度以数字显示。

每个点的距离都成了数字:近的点数字小,远的点数字大。现在每个点错了多少,就看得清清楚楚了。
可点不止一两个。每个点各有一个数,就很难一眼看出整体错了多少。把这些数合成一个吧。

03

把偏差全加起来

要知道整体错了多少,就把每个点量出的距离一个不落地加起来。小偏差、大偏差,统统归到一起。这样,散开的数字就合成了一个数,这个数就是损失。
实际中还常常除以点的个数,取平均值。这样,十个点的数据和一千个点的数据,损失才能比较。另外,不直接把距离相加,而是平方后再加的做法也很常用,这叫均方误差,偏得远的点会被罚得更重。

损失0
依次点点把差加起来

依次点这些点。偏差一个个堆起来,加成一个叫损失的数。

散开的偏差合成了一个数,就是损失。现在评价模型就容易了:损失大,说明线和点偏得多;损失小,说明贴合得好。
分类这种回答群的问题,用的是另一种损失:给正确那一群的概率越低,损失就越大。不管量的是什么,要做的事都很清楚:把这个数变小。

04

目标是让损失变小

损失不是一个固定的数,线一动,它也跟着变。把线往点那边贴近,偏差变小,损失就小;离点越远,损失就越大。
所以,把线挪来挪去,找出损失最小的位置就行。那个位置上的线,就是最好的线。

损失240
用按钮挪线把损失减小

用上下按钮移动直线。偏差和损失一起变化,到了损失最小的位置会提示你。

每挪一次线,损失就忽高忽低。线和点贴得越好,数字越小,最小的位置就是最贴合的线。
从这里能明白一件要紧的事:找好模型,就等于让损失变小。机器学习里说的学习,正是不断减小损失的过程。

05

小结

归纳起来是这样:每个点上,预测和答案之间都有偏差,也就是纵向距离。把这些距离全加起来或取平均得到的一个数就是损失,它说明模型错得有多厉害。
损失越小,模型越好。挪动直线来减小损失,就是学习。

依次点要点回顾一下

依次点要点回顾一下。(每个点的偏差 → 量成距离 → 全加起来成损失 → 减小损失就是学习)

现在你知道损失是什么、为什么要减小它了。用一个数抓住模型错得有多厉害,是教模型的第一步。
可要减小损失,线该往哪边挪?这里只用两个按钮上下移动,实际的模型要调整的数却有几百万个。怎样找出损失减小的方向、一点点往下走,下一课讲梯度下降时会说明。

一句话总结损失就是用一个数来衡量模型错得有多厉害。每个点上,预测和答案之间都有偏差,也就是纵向距离;把这些距离全加起来,整体错了多少就合成了一个数。实际中常常除以点的个数取平均,或者用把距离平方后取平均的均方误差;分类则用给正确那一群的概率越低就越大的损失。损失大,说明线和点偏得多;损失小,说明贴合得好。所以,做出好模型就等于让损失变小,而不断减小损失的过程就是学习。
← 人工智能
如果有帮助,请支持我们