损失函数
给模型的表现打一个分,分数越低越好。
给直线打分
两条直线,哪条更好?凭眼睛看,常常说不清。我们需要一个数字来打分,这个数字叫做损失:模型错得越多,损失越大。计算损失的规则叫损失函数。
最常用的打分方法是这样的:每个点的残差(红色虚线)先平方,图里就是那些浅红色的正方形;再把所有正方形的面积取平均。这个数叫做均方误差。
训练数据模型曲线
残差y = 0.30·x − 0.20
均方误差 0.174
拖动滑块,看正方形和下面的“均方误差”一起变化:
直线离点远正方形又大又多,均方误差很大。
直线贴近点正方形都缩小了,均方误差变小。
为什么要平方残差有正有负,直接相加会互相抵消;平方之后都是正数,而且错得多的点被罚得更重。
有了损失函数,“训练模型”就变成了一件很明确的事:调整参数,让损失尽量小。
均方误差和其他选择
对 个数据点,模型 的均方误差(MSE)是:
另一种常见的选择是平均绝对误差(MAE),不平方,只取绝对值:
训练数据模型曲线
残差y = 0.30·x − 0.20
均方误差 0.174
两者的区别:MSE 对大误差特别敏感,一个离群点就能把损失拉高很多;MAE 对每个点一视同仁,更“抗干扰”。MSE 的好处是处处光滑、容易求导,所以“梯度下降”最常和它搭配。
对线性回归,把 代入,MSE 就成了 和 的二次函数,图像是一个碗。找最优直线,就是找这个碗的碗底。