线性回归
机器学习的第一个具体算法。选它开局的原因在于它是唯一能把每一步都算清的模型:目标函数、梯度、最优解的闭式表达、解不存在的条件,全都能写出来。后面所有模型都能拿它当参照系。「简单」是这个性质的结果,不是选它的理由。
模型形式
| 输入 | 输出 | 任务 |
|---|---|---|
| 连续值 | 连续值 | 回归 |
| 连续值 | 离散标签 | 加一层 sigmoid/softmax → 分类 |
它的另一重身份是神经网络的基本层。 一个线性层做的事就是「一次矩阵乘 + 加偏置」,而 Transformer 里绝大部分 FLOP 花在矩阵乘上(03-线性代数与 GEMM)。
最小二乘与正规方程
给定
求梯度:
令其为零,得正规方程(normal equation):
这个解在
| 情况 | 现象 | 处理 |
|---|---|---|
| 用伪逆 | ||
| 特征线性相关 | 多重共线性 | 去掉冗余列,或加正则(见下一节) |
代价:为什么 一大就不用它
| 步骤 | 复杂度 |
|---|---|
| 算 | |
| 求逆 / 分解 | |
| 合计 |
几何:解就是一次投影
把
最小化
这正是正规方程。所以最小二乘解就是
投影算子(帽子矩阵)是
它有两个可验证的性质:
- 幂等:
—— 投影两次等于一次 - 迹等于
: ,也就是模型的有效参数个数(自由度)
迹那条给出了残差平方和的期望:
最小二乘解就是
X 的 d 个列向量张成 R^m 里的一个子空间(列空间)
│
└─ Xw 必然落在这个子空间里
│
▼
┌──────────────────────────────────────────────────────────┐
│ 列空间(X 的所有可能线性组合) │
│ │
│ ● y(观察到的标签,一般不在列空间里) │
│ ╲ │
│ ╲ 残差 y − Xw │
│ ╲ ⊥ 列空间 │
│ ╲ │
│ ────────●───────────▶ │
│ Xw(列空间里离 y 最近的点) │
└──────────────────────────────────────────────────────────┘
残差与列空间正交 ⟹ X^T (y − Xw) = 0 —— 这正是正规方程。
投影算子是帽子矩阵 H = X (X^T X)^{-1} X^T,两个可验证的性质
幂等 H² = H 投影两次等于一次
迹等于 d tr(H) = d 即模型的有效参数个数(自由度)
└─ 迹那条给出残差平方和的期望:E[‖y − Xŵ‖²] = (m − d) σ²
—— 这就是回归里用 m − d 而不是 m 做分母(无偏估计)的来源概率解释:平方损失从哪来
最小二乘常被当作「就是这么定义的」,但它其实是一条假设的推论。
假设真实关系是线性的、噪声服从高斯:
则
最大化似然等价于最小化平方误差(第二项与
换噪声假设就换损失:假设噪声服从拉普拉斯分布,最大似然给出的是平均绝对误差(MAE)。这个对应关系在 04-概率、Softmax 与信息论 里还会以交叉熵的形式出现 —— 分类任务用交叉熵,对应的是把输出看成伯努利或多项分布。
高斯的假设是「轻尾」,对离群点不鲁棒
平方损失对残差是二次惩罚,一个大离群点能把整条回归线拽过去。数据里离群点明显时,MAE 或 Huber 损失更合适 —— 这是换损失函数,不是换优化器。
最小二乘不是「就是这么定义的」,它是一条假设的推论。
假设真实关系是线性的、噪声服从高斯
y = w^T x + ε, ε ~ N(0, σ²)
│
▼
y | x ~ N(w^T x, σ²)
│
▼
对数似然
log L(w) = −(1/2σ²) Σ (yᵢ − w^T xᵢ)² − (m/2) log(2πσ²)
└─ 与 w 无关,不影响最优解
│
▼
最大化似然 ⟺ 最小化平方误差
⟹ 「用 MSE」等于「假设噪声是高斯的」
换噪声假设就换损失
高斯(轻尾) ──▶ 平方损失(MSE)
拉普拉斯(重尾) ──▶ 平均绝对误差(MAE)
代价:高斯假设是「轻尾」,对离群点不鲁棒
平方损失对残差是二次惩罚,一个大离群点能把整条回归线拽过去。
└─ 数据里离群点明显时换 MAE 或 Huber ——
这是换损失函数,不是换优化器。梯度下降
| 变体 | 每步用的样本 | 特点 |
|---|---|---|
| 批梯度下降 | 全部 | 梯度精确,每步贵 |
| 随机梯度下降 | 1 个 | 每步极便宜,梯度噪声大 |
| 小批(mini-batch) | 实际标准;噪声有利于跳出局部极小,也匹配 GPU 的并行粒度 |
两个决定行为的量
一、学习率的上界由 Hessian 的最大特征值给出。 MSE 的 Hessian 是
二、收敛速度由条件数决定。 令
| 条件数 | 表现 |
|---|---|
| 各方向曲率接近,梯度直指最低点,收敛快 | |
| 某些方向陡、某些方向平,梯度来回震荡,收敛慢 |
这解释了特征标准化的必要性:各特征量纲差几个数量级时
这一切都建立在「梯度能算出来」上,而一般网络里靠的是反向传播(05-反向传播与梯度优化)。
梯度下降的行为由两个量决定。
一、学习率的上界由 Hessian 的最大特征值给出
MSE 的 Hessian 是 (1/m) X^T X,设其最大特征值为 λ_max
└─ η < 2 / λ_max 才保证收敛,超过就发散
二、收敛速度由条件数决定
κ = λ_max / λ_min
├─ κ ≈ 1 各方向曲率接近,梯度直指最低点,收敛快
└─ κ 很大 某些方向陡、某些方向平,梯度来回震荡,收敛慢
更新式:w ← w − η · (1/|B|) X_B^T (X_B w − y_B)
这解释了特征标准化的必要性
各特征量纲差几个数量级时 κ 会很大 ——
把一个特征从「米」换成「毫米」,对应的 λ 就变 10⁶ 倍,
学习率上界随之垮掉。
└─ 标准化不只是一个好习惯,它在改 Hessian 的条件数。
三种变体
批梯度下降 全部 m 个 梯度精确,每步贵
随机梯度下降 1 个 每步极便宜,梯度噪声大
小批 mini-batch B 个 实际标准:噪声有利于跳出局部极小,
也匹配 GPU 的并行粒度正则化:岭回归与 Lasso
| 方法 | 目标函数 | 效果 |
|---|---|---|
| 岭回归(Ridge) | 解为 | |
| Lasso | 部分权重精确为 0 → 自动特征选择 | |
| 弹性网(Elastic Net) | 两者混合 | 兼顾稀疏与稳定性 |
Lasso 为什么能置零、岭回归为什么不能,几何上最直观:L1 的约束区域是菱形,顶点落在坐标轴上;损失等高线与约束区域相切时,切点大概率落在顶点 —— 那里某个坐标恰好是 0。L2 的约束区域是圆,边界处处光滑,没有这样的特殊点。
另一条路径是看导数:
正则化项通常不正则化偏置
把
Lasso 能置零、岭回归不能 —— 几何上最直观。
Lasso(L1) 岭回归(L2)
约束区域是菱形 约束区域是圆
w₂ w₂
▲ ▲
│ ╲ │ ╭─────╮
│ ╲ ← 损失等高线 │ │ │
────┼──◆──────▶ w₁ ────┼──╱───────╲──▶ w₁
│ ╱ ◆ 落在坐标轴上 │ ╰─────╯
│╱ (某个坐标恰好是 0)
边界有顶点 ⟹ 切点大概率落在顶点 边界处处光滑,没有这样的特殊点
另一条路径:看导数
|w| 在 w = 0 处不可导,次梯度里包含 0
└─ 所以最优解可以停在原点
w² 虽然原点导数为 0,但把它拉回原点的力量也随 w → 0 一起消失
└─ 因此只会把权重压小
三种正则化
岭回归 Ridge J(w) + λ‖w‖₂²
└─ 解为 (X^T X + λI)^{-1} X^T y
λI 让矩阵一定可逆;权重整体收缩,但不为 0
Lasso J(w) + λ‖w‖₁
└─ 部分权重精确为 0 ⟹ 自动特征选择
弹性网 Elastic Net 两者混合,兼顾稀疏与稳定性
一条边界:正则化项通常不正则化偏置
把 b 一起惩罚,会在标签整体偏移时失效 ——
y 的均值很大时也强拉 b 到 0。常规做法是只惩罚权重。往哪里去
一、加一层非线性映射就是分类器。 线性输出接 sigmoid 得到 logistic 回归,接 softmax 得到多分类,损失从 MSE 换成交叉熵(04-概率、Softmax 与信息论)。改的只有「输出分布假设」,优化框架不变。
二、基函数展开就是非线性回归。 把
三、堆叠起来就是神经网络。 单个线性层的表达能力受限于「输出必须是输入的线性组合」;多层之间若不加非线性,复合仍是线性的 —— 这是必须要有激活函数的原因(12-FFN 与激活函数)。
相关
- 01-机器学习介绍 —— 参数与超参数的分界、P 怎么选、过拟合的判据;本篇是它的第一个可算例
- 03-线性代数与 GEMM —— 矩阵乘法的 shape、复杂度与它在硬件上的代价
- 04-概率、Softmax 与信息论 —— 从最大似然推损失函数、交叉熵与 KL
- 05-反向传播与梯度优化 —— 梯度怎么算、SGD / 动量 / Adam 的演进
- 12-FFN 与激活函数 —— 为什么要给线性层加非线性
参考
- https://hastie.su.domains/ElemStatLearn/
- https://www.microsoft.com/en-us/research/publication/pattern-recognition-machine-learning/
- https://doi.org/10.1111/j.2517-6161.1996.tb02080.x
- https://doi.org/10.1080/00401706.1970.10488634
YJ