Skip to content
清晨的一缕阳光
返回

机器学习速成·线性回归(2/4):线性回归的损失函数——从距离到 MSE / MAE 的选择

机器学习速成·线性回归(2/4):损失函数——从距离到 MSE / MAE 的选择

本文参考 Google 机器学习速成课程 - 线性回归:损失函数(Loss) 模块撰写,承接上篇《线性回归》,重点讲清”损失”是什么、有哪些类型、以及训练时该怎么选。


一、什么是损失(Loss)?

损失(Loss)是一种数值指标,用来描述模型”预测值”与”实际标签”之间的偏差程度。

可以把损失直观地理解为:图上每个数据点到模型之间拉出的”箭头”,箭头越长,说明该点的预测误差越大。


二、损失距离:只在乎”多远”,不在乎”方向”

在统计学和机器学习里,损失衡量的是预测值与实际值的差异,更准确地说,是两者之间的距离——与方向无关

举个例子:模型预测值为 2,实际值为 5:

2 - 5 = -3   ← 我们并不关心这个负号
距离 = 3      ← 我们关心的是数值距离

因此,所有计算损失的方法都必须移除符号。最常见的两种方式:

  1. 取绝对值|实际值 − 预测值|
  2. 取平方(实际值 − 预测值)²

这两条思路,恰好演化出后面几类主流损失函数。


三、五种主要损失类型

在线性回归中,有五种主要损失,它们的关系是逐层深入的——从”绝对/平方”两条路,各自衍生出”求和/平均/开根”三种变体:

损失类型定义公式
L₁ 损失预测值与实际值的差,取绝对值后求和Σ|实际值 − 预测值|
MAE(平均绝对误差)一组 N 个示例的 平均 L₁ 损失(1/N) · Σ|实际值 − 预测值|
L₂ 损失预测值与实际值的差,平方后求和Σ(实际值 − 预测值)²
MSE(均方误差)一组 N 个示例的 平均 L₂ 损失(1/N) · Σ(实际值 − 预测值)²
RMSE(均方根误差)MSE 的平方根√((1/N) · Σ(实际值 − 预测值)²)

看到规律了吗?

L₁损失 ──求平均──► MAE        (一条"绝对"路线)
L₂损失 ──求平均──► MSE ──开根──► RMSE   (一条"平方"路线)

3.1 L₁ 与 L₂ 的根本差异:那个”平方”

L₁ 与 L₂(或 MAE/RMSE 与 MSE)的功能差异,完全源自”平方”

简单说:平方 = “按下葫芦浮起瓢”,大的误差被放大、小的误差被缩小。 这也决定了它们在处理高误差点时表现截然不同。

3.2 MAE vs RMSE:可解释性与离群敏感度

建议:同时处理多个示例时,无论 MAE、MSE 还是 RMSE,都应该对所有示例的损失求平均


四、损失计算示例(动手算一次)

回到上篇的汽车油耗模型:

模型:y′ = 34 + (−4.6)·x₁
其中 权重 w₁ = −4.6,偏差 b = 34

现在有一辆 2,370 磅的汽车(用千磅表示 = 2.37):

计算结果
预测34 + (−4.6) × 2.3723.1
实际标签(label)24
L₂ 损失(24 − 23.1)²0.81

这一单个数据点的 L₂ 损失就是 0.81

L₂损失 = (实际值 − 预测值)²
       = (24 − 23.1)²
       = 0.9²
       = 0.81

五、如何选择损失函数:关键看”离群值”怎么处理

损失函数不是随便挑的,最重要的一条决策依据是:你希望模型如何对待离群值(Outlier)

5.1 什么是离群值?

离群点常见于两种情况:

  1. 超出特征范围的样本:汽车重量通常 20005000 磅、油耗 850 英里。一辆 8000 磅的车,或每加仑跑 100 英里的车,就属于离群点。
  2. 相对模型的预测而言偏差过大:一辆 3000 磅的车本身很常见,但如果它的油耗是 40 英里/加仑,而模型预测这样重的车只能约 20 英里,那么对模型来说它就是个离群点。

5.2 MSE vs MAE 对离群值的不同反应

行为模型倾向
MSE对离群值惩罚极高(平方放大)更贴近离群点,但离大多数点较远
MAE对离群值惩罚平缓更远离离群点,但离大多数点较近

原因:平方损失会把”偏差 2 个单位”惩罚成”偏差 1 个单位”的 4 倍,所以 MSE 会拼尽全力去迁就那个”巨大的错误”,从而牺牲大多数点的拟合。

5.3 选择指南

选择 MSE(或 RMSE):

选择 MAE:

实践中,最终选择还取决于具体业务问题的错误成本——哪种类型的误差代价更高,就优先压制哪种。


六、检查理解:一个直观的对比

有两条线性模型拟合同一批数据。不精确地看,MSE 较高的是右侧模型

结论:“少而大”的错误(右侧)在平方下反而比”多而小”的错误(左侧)损失更高 —— 这正是平方损失”放大离群值”的直观证明。


七、关键术语速查


总结

核心要点关键结论
损失是什么预测与实际标签的距离,训练目标就是最小化它
距离不考虑方向用绝对值或平方移除符号
两条路线绝对路线→L₁→MAE;平方路线→L₂→MSE→RMSE
平方的威力放大误差:大误差被加重、小误差被缩小
选 MSE想严惩大误差、认为离群值重要
选 MAE有显著离群值不想被过度影响、要更可解释

一句话:损失是”预测偏了多远”的尺子,最小化损失就是训练的全部目的;而选哪把尺子,关键看你要不要为那几个”失控的离群值”付出额外的代价。


分享这篇文章到:

上一篇文章
机器学习速成·线性回归(3/4):梯度下降——如何找到最优的权重和偏差
下一篇文章
机器学习速成·线性回归(1/4):线性回归——从方程、参数到多特征模型