什么是损失函数
前面我们在点之间画过一条预测线。可这条线好不好,怎么知道?线紧跟着点走,就是好线;离点很远,就是坏线。与其凭感觉判断好坏,不如用一个数来量,并规定这个数越小线越好。衡量模型错得有多厉害的这个数,就叫损失。
一个点偏了多少
我们已经画好了一条预测线。点是真正的答案,线是模型的预测。挑一个点看看:在这个点的横向位置上,线预测的高度和点实际的高度可能不一样。
两者隔得有多远,模型就错了多少。先用眼睛看看这种偏差吧。
点一个点。点(答案)和线(预测)之间的纵向偏差会显示出来。
每个点的偏差都不一样。有的点几乎贴在线上,有的离得远远的。离线近的点猜得准,离得远的点偏得多。
可光用眼睛看,很难知道整体错了多少。得把偏差变成数字。
把偏差量成距离
把偏差变成数字的办法很简单:直接量出点到线的纵向距离就行。这正是前面叫作残差的那个差。
距离长就是错得多,距离短就是错得少。点在线上方也好,下方也好,都一样是错,所以距离总是按正数来量。
点一个点。点到线的距离会用条量出来,长度以数字显示。
每个点的距离都成了数字:近的点数字小,远的点数字大。现在每个点错了多少,就看得清清楚楚了。
可点不止一两个。每个点各有一个数,就很难一眼看出整体错了多少。把这些数合成一个吧。
把偏差全加起来
要知道整体错了多少,就把每个点量出的距离一个不落地加起来。小偏差、大偏差,统统归到一起。这样,散开的数字就合成了一个数,这个数就是损失。
实际中还常常除以点的个数,取平均值。这样,十个点的数据和一千个点的数据,损失才能比较。另外,不直接把距离相加,而是平方后再加的做法也很常用,这叫均方误差,偏得远的点会被罚得更重。
依次点这些点。偏差一个个堆起来,加成一个叫损失的数。
散开的偏差合成了一个数,就是损失。现在评价模型就容易了:损失大,说明线和点偏得多;损失小,说明贴合得好。
分类这种回答群的问题,用的是另一种损失:给正确那一群的概率越低,损失就越大。不管量的是什么,要做的事都很清楚:把这个数变小。
目标是让损失变小
损失不是一个固定的数,线一动,它也跟着变。把线往点那边贴近,偏差变小,损失就小;离点越远,损失就越大。
所以,把线挪来挪去,找出损失最小的位置就行。那个位置上的线,就是最好的线。
用上下按钮移动直线。偏差和损失一起变化,到了损失最小的位置会提示你。
每挪一次线,损失就忽高忽低。线和点贴得越好,数字越小,最小的位置就是最贴合的线。
从这里能明白一件要紧的事:找好模型,就等于让损失变小。机器学习里说的学习,正是不断减小损失的过程。
小结
归纳起来是这样:每个点上,预测和答案之间都有偏差,也就是纵向距离。把这些距离全加起来或取平均得到的一个数就是损失,它说明模型错得有多厉害。
损失越小,模型越好。挪动直线来减小损失,就是学习。
依次点要点回顾一下。(每个点的偏差 → 量成距离 → 全加起来成损失 → 减小损失就是学习)
现在你知道损失是什么、为什么要减小它了。用一个数抓住模型错得有多厉害,是教模型的第一步。
可要减小损失,线该往哪边挪?这里只用两个按钮上下移动,实际的模型要调整的数却有几百万个。怎样找出损失减小的方向、一点点往下走,下一课讲梯度下降时会说明。