机器学习数学推导(五):线性回归

从代数(正规方程)、几何(正交投影)、概率(最大似然)三个角度完整推导线性回归,再延伸到 Ridge、Lasso、梯度下降与诊断方法,全部结论与 scikit-learn 互验。

引子: 1886 年,Francis Galton 在研究遗传时发现了一个奇怪的现象:特别高或特别矮的父母,他们的孩子身高往往会比父母更接近平均值。他把这种“向均值靠拢”的现象称为 regression,这个名字一直沿用至今。一个统计学上的小发现,最终演变成了机器学习中最重要的基础模型——并非因为线性回归本身有多强大,而是因为几乎所有其他算法(逻辑回归、神经网络、核方法等)本质上都是同一种思想的变体:在合适的空间里拟合一条直线。

本章将从代数、几何和概率三个独立视角推导线性回归,并展示它们殊途同归于同一个公式。随后,本文探讨当模型假设失效时会发生什么,以及 Ridge、Lasso 和稳健损失如何修复这些问题。

机器学习数学推导(五):线性回归 — 章节概览图


你将学到什么#

  1. 建模 —— 将模型写成矩阵形式,使数学推导简化为一行。
  2. 代数视角 —— 最小化二次函数,得到正规方程 $w^\* = (X^\top X)^{-1} X^\top y$
  3. 几何视角 —— 同一解可视为将 $y$ 正交投影到 $\operatorname{Col}(X)$ 上。
  4. 概率视角 —— 在高斯噪声假设下,最小二乘等价于最大似然估计。
  5. 正则化 —— Ridge(L2)提升系统稳定性,Lasso(L1)诱导稀疏性。
  6. 优化方法 —— 当 $X^\top X$ 过大无法求逆时,梯度下降成为替代方案。
  7. 诊断与改进 —— 针对残差、多重共线性、异常值等问题,提供相应对策。

建模:用矩阵形式表示线性回归#

问题陈述#

$$f(x) = w^\top x + b$$

使其预测尽可能接近观测目标(“接近”的含义稍后明确)。

$$\tilde x = \begin{pmatrix} x \\ 1 \end{pmatrix}, \qquad \tilde w = \begin{pmatrix} w \\ b \end{pmatrix}, \qquad f(x) = \tilde w^\top \tilde x.$$

此后我们省略波浪号,直接写作 $w^\top x$ ,并默认 $x$ 的最后一个分量为 1。

矩阵形式#

$$X = \begin{bmatrix} x_1^\top \\ x_2^\top \\ \vdots \\ x_m^\top \end{bmatrix} \in \mathbb{R}^{m \times (d+1)}, \qquad y = \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_m \end{bmatrix} \in \mathbb{R}^{m}.$$

此时所有预测构成的向量为 $\hat y = Xw$ 。我们的任务是选择 $w$ ,使 $\hat y$ 尽可能接近 $y$

视角一 · 代数:正规方程#

平方误差损失#

$$L(w) = \tfrac{1}{2}\,\|y - Xw\|_2^2 = \tfrac{1}{2}\,(y - Xw)^\top (y - Xw).$$

因子 $\tfrac{1}{2}$ 仅用于求导时消去系数 2,不影响优化结果。

下图直观展示了该损失的实际含义:对每个数据点到拟合直线的垂直距离进行平方后求和。

线性回归就是最小化竖直残差的平方和

求梯度#

$$L(w) = \tfrac{1}{2}\bigl(y^\top y - 2\,y^\top X w + w^\top X^\top X\,w\bigr).$$ $$\nabla_w L = -X^\top y + X^\top X\, w = X^\top (Xw - y).$$

正规方程#

$$\boxed{\,X^\top X\, w = X^\top y\,}.$$

这就是正规方程——之所以称为“正规”,是因为从几何角度看,它表明残差 $y - Xw$$X$ 的每一列都正交(垂直)。稍后本文从几何角度重新理解这一点。

$$w^\* = (X^\top X)^{-1} X^\top y.$$ $$v^\top X^\top X\, v = \|Xv\|_2^2 > 0,$$

即 Hessian 正定。因此,该凸二次函数在梯度为零处取得全局最小值。$\square$

何时 $X^\top X$ 不可逆?

  • 样本数少于特征数加一($m < d+1$ ),系统欠定;
  • $X$ 的列线性相关(完全多重共线性)。

这两种情况下,伪逆 $X^+$ 给出最小范数解:$w^\* = X^{+} y$ 。通过 SVD($X = U \Sigma V^\top$ )可计算 $X^+ = V \Sigma^+ U^\top$ ,其中 $\Sigma^+$ 对非零奇异值取倒数,零值保持不变。

算例:手算一个三点拟合#

$$X = \begin{bmatrix} 1 & 1 \\ 2 & 1 \\ 3 & 1 \end{bmatrix}, \qquad y = \begin{bmatrix} 2 \\ 2 \\ 4 \end{bmatrix}.$$ $$(X^\top X)^{-1} = \tfrac{1}{6}\begin{bmatrix} 3 & -6 \\ -6 & 14 \end{bmatrix}.$$

代入正规方程得 $w^\* = \tfrac{1}{6}(3\cdot 18 - 6\cdot 8,\ -6\cdot 18 + 14\cdot 8)^\top = \tfrac{1}{6}(6,\ 4)^\top = (1,\ 0.\overline{6})^\top$ 。也就是说斜率 1,截距 $\tfrac{2}{3}$ ,预测值是 $(1.67, 2.67, 3.67)$ ,残差 $(0.33, -0.67, 0.33)$

我刻意保留了一个非平凡截距,是想让初学者亲眼看到一件事:把 $X^\top \cdot \text{残差}$ 算一下——$1\cdot 0.33 + 2\cdot(-0.67) + 3\cdot 0.33 = 0$$1\cdot 0.33 + 1\cdot(-0.67) + 1\cdot 0.33 \approx 0$ 。两条都为零,对应"残差与 $X$ 的两列都正交"。这就是正规方程为什么叫正规的全部秘密——不是哪本课本的 jargon,而是真的写出来就能验证的几何事实。后面所有视角,说到底都是这一句"残差与列空间正交"的不同包装。

视角二 · 几何:正交投影#

同一答案,不同视角#

暂且抛开微积分。矩阵 $X$ 的列张成 $\mathbb{R}^m$ 中的一个子空间 $\operatorname{Col}(X)$ 。无论 $w$ 如何选取,预测向量 $\hat y = Xw$ 始终位于该子空间内。我们的目标是在 $\operatorname{Col}(X)$ 中找到离 $y$ 最近的点(欧氏距离意义下)。

$$X^\top (y - X w^\*) = 0 \quad\Longleftrightarrow\quad X^\top X\, w^\* = X^\top y.$$

这再次得到了正规方程——但这次完全未使用导数。

OLS 的本质:把 0 正交投影到 1 的列空间

图中同时展示了三件事:$X$ 的列张成的平面(蓝紫色)、目标向量 $y$ (漂浮于平面上方)、投影 $\hat y$ (位于平面上),以及垂直于平面的残差 $y - \hat y$直角即最优。

投影矩阵#

机器学习数学推导(五):线性回归 — 章节小结图

$$H = X(X^\top X)^{-1} X^\top, \qquad \hat y = H y.$$

它满足正交投影的两个关键性质:

  • 幂等性$H^2 = H$ (重复投影无额外效果);
  • 对称性$H^\top = H$ (保证投影正交)。

对应的残差生成器 $M = I - H$ 将向量投影到正交补空间,$My$ 即为残差向量。它满足 $MX = 0$ ,形式化表达了“残差与所有特征正交”这一事实。

反例:列空间外没有任何线性模型能救你#

初学者常以为"再加一个特征就能拟合得更好"是普适的。几何视角立刻给出反例:如果 $y$ 完全垂直于 $\operatorname{Col}(X)$ ,那么投影 $\hat y = 0$ ,无论你怎么调 $w$ ,预测都是零向量。

具体一点:取两条样本 $X = \begin{bmatrix} 1 \\ 1 \end{bmatrix}$ (一列特征,全 1),$y = \begin{bmatrix} 1 \\ -1 \end{bmatrix}$$\operatorname{Col}(X)$ 是过原点的对角线方向 $(1,1)^\top$ ,而 $y = (1,-1)^\top$ 恰好与之正交。算一遍:$X^\top y = 1\cdot 1 + 1\cdot (-1) = 0$ ,所以 $w^\* = 0$$\hat y = 0$ ,残差就是 $y$ 本身——OLS 给出最差的可能预测,但它仍是该列空间里的最优解

这个反例的意义是把"特征不够"和"模型不行"两件事拆开。最小二乘永远在做"列空间里最近",它对列空间之外的信号无能为力。想救它,要么扩列空间(加特征、加非线性变换),要么换损失(换似然、换正则)。光把同一个特征复制十遍——列空间不变,结果一字不变。这一点代数视角看不出来,几何视角一秒看穿。

视角三 · 概率:最大似然#

线性-高斯模型#

$$y_i = w^\top x_i + \epsilon_i, \qquad \epsilon_i \overset{\text{i.i.d.}}{\sim} \mathcal{N}(0, \sigma^2).$$

等价地,在给定 $x_i$ 下,$y_i$ 服从均值为 $w^\top x_i$ 、方差为 $\sigma^2$ 的高斯分布。

似然与对数似然#

$$p(y \mid X, w, \sigma^2) = \prod_{i=1}^{m} \frac{1}{\sqrt{2\pi}\,\sigma}\,\exp\!\left(-\frac{(y_i - w^\top x_i)^2}{2\sigma^2}\right).$$ $$\log p = -\frac{m}{2}\log(2\pi\sigma^2) - \frac{1}{2\sigma^2}\sum_{i=1}^{m}(y_i - w^\top x_i)^2.$$

固定 $\sigma^2$ 时,最大化 $\log p$ 等价于最小化残差平方和。因此:

定理 2: 在高斯噪声假设下,$w$ 的极大似然估计(MLE)恰好是 OLS 解:$\hat w_{\text{MLE}} = (X^\top X)^{-1} X^\top y$

$\sigma^2$ 求导可得 $\hat\sigma^2_{\text{MLE}} = \tfrac{1}{m}\|y - X\hat w\|_2^2$ (残差平方和的均值)。该估计有偏;无偏版本需除以 $m - d - 1$

贝叶斯视角:Ridge 的起源#

$$\sum_i (y_i - w^\top x_i)^2 + \frac{\sigma^2}{\tau^2}\|w\|_2^2.$$

这正是 Ridge 回归,其正则化强度为 $\lambda = \sigma^2 / \tau^2$ :先验越弱($\tau$ 越大),$\lambda$ 越小。

易错点:OLS 的"最优"是有限定语的#

很多人背完"OLS 是 BLUE(最佳线性无偏估计)“就觉得它放之四海皆准。这里其实有四个限定语全得满足才成立:线性模型成立、误差零均值、误差同方差、误差互不相关(Gauss–Markov 定理)。少一条结论就垮一条。

举一个经常出问题的场景:误差异方差——比如 $y_i$ 是某地区房价,残差方差随地段豪华度上升。继续用 OLS 当然会得到一组参数,但它已不是方差最小的无偏估计了。具体地,假设 $\operatorname{Var}(\epsilon_i) = \sigma^2 v_i$$v_i$ 已知,那么真正的 MLE / 最优估计是加权最小二乘(WLS):把每个样本的残差按 $1/v_i$ 加权后再做 OLS。OLS 没用这个权重,等于把方差大的样本和方差小的样本一视同仁,参数估计仍然无偏,但置信区间会算错(通常是低估),p 值随之失真。

更糟的是误差相关(比如时间序列里的自相关)。这时 OLS 的标准误公式直接报错值,做假设检验会得出"看起来显著但其实不"的结论。诊断办法是看残差的 Durbin–Watson 统计量或残差自相关函数;修办法是换 GLS 或加入 AR(1) 误差结构。MLE 等于 OLS 这个等价关系,只在标准的 i.i.d. 高斯里成立。 一旦噪声假设被破坏,光把 OLS 算下去拿到的不是"最优解 + 一点偏差”,而是"语义已经变了的另一件事"。

正则化:Ridge、Lasso 与 Elastic Net#

为何需要正则化?#

$$L_{\text{reg}}(w) = \tfrac{1}{2}\|y - Xw\|_2^2 + \lambda \cdot \mathcal{P}(w).$$

Ridge 回归(L2)#

$$\boxed{\;\hat w_{\text{Ridge}} = (X^\top X + \lambda I)^{-1} X^\top y.\;}$$

添加 $\lambda I$ 使 $X^\top X$ 的每个特征值增加 $\lambda$ ,故只要 $\lambda > 0$ ,矩阵恒可逆——即使原 $X^\top X$ 奇异。这正是“Ridge 稳定逆矩阵”的含义。

算例:Ridge 如何把共线性的爆炸压回去#

构造一个共线性数据集:$X = \begin{bmatrix} 1 & 1.001 \\ 1 & 0.999 \\ 1 & 1.000 \end{bmatrix}$ (两列几乎相同),$y = (2, 1, 1.5)^\top$ 。算 $X^\top X = \begin{bmatrix} 3 & 3 \\ 3 & 3.000002 \end{bmatrix}$ ,行列式约 $6\times 10^{-6}$接近奇异。OLS 解大致是 $w \approx (-249,\ 251)$ ——两个量级 250、符号相反,说明模型在"$w_1+w_2\approx 1.5$ “这个一维方向上完全没确定性,留下来的两个数字纯属数值噪声放大。

加上 Ridge $\lambda = 0.1$ ,新矩阵 $X^\top X + \lambda I = \begin{bmatrix} 3.1 & 3 \\ 3 & 3.1 \end{bmatrix}$ 行列式 $= 0.61$良态。代入闭式解,得到 $w_{\text{Ridge}} \approx (0.74,\ 0.74)$ ——两个分量被均匀分摊,幅度合理,预测和 OLS 几乎一样准($\hat y \approx (1.48,\ 1.48,\ 1.48)$ vs OLS 的 $(1.50,\ 1.50,\ 1.50)$ ),但参数稳定

$\lambda$ 调到 $1$$w_{\text{Ridge}} \approx (0.43,\ 0.43)$ ,更小但更稳;$\lambda=10$$w \approx (0.097,\ 0.097)$ ,几乎被压到零。这就是一条 Ridge 路径——$\lambda$ 越大,每个分量越小、越稳,但偏差也越大。没有"最佳 $\lambda$ ",只有给定数据集下交叉验证选出的最佳 $\lambda$ 这一节的数字让”$\lambda I$ 抬高每个特征值"从抽象命题变成可眼见的数值平稳化。

Lasso 回归(L1)#

$\mathcal{P}(w) = \|w\|_1$ 。由于绝对值在零点不可导,无闭式解,但问题仍为凸优化,可用坐标下降近端梯度高效求解。其突出特性是:

Lasso 能产生严格为零的系数,自动实现变量选择。

下图展示了系数路径——各 $w_j$$\lambda$ 从极小(左,等同 OLS)到极大(右,全归零)的变化:

系数路径:Ridge 平滑收缩,Lasso 直接归零

Ridge 中,系数渐近趋近于零但永不为零;Lasso 中,系数触及坐标轴后保持为零。这种“非零即零”的特性使其成为有效的特征选择器。

Lasso 稀疏性的几何解释#

将两种正则化改写为约束形式

  • Ridge:$\min \|y - Xw\|^2$ ,s.t. $\|w\|_2 \le t$
  • Lasso:$\min \|y - Xw\|^2$ ,s.t. $\|w\|_1 \le t$

损失等高线是以 $\hat w_{\text{OLS}}$ 为中心的椭圆,而约束区域形状迥异:

L1 vs L2 几何:菱形角点带来稀疏性

L2 圆盘边界光滑,椭圆通常在内部接触边界(两坐标均非零);L1 菱形在坐标轴上有尖角,倾斜椭圆几乎总先触碰尖角——从而产生稀疏解。维度越高,菱形尖角越多,Lasso 的稀疏性越强。

两个特征的具体反差:取一个二维玩具例子,$\hat w_{\text{OLS}} = (1.0,\ 0.3)$ 。约束半径 $t=0.8$ 时,

  • Ridge(约束 $w_1^2 + w_2^2 \le 0.64$ )的解大致为 $(0.76,\ 0.23)$ ——两个分量都被等比例压缩,没有归零;
  • Lasso(约束 $|w_1|+|w_2| \le 0.8$ )的解大致为 $(0.8,\ 0)$ ——$w_2$精确推到零

差异的根源是几何:Ridge 椭圆与圆相切的点几乎不可能落在坐标轴上(坐标轴只占球面零测度集),Lasso 椭圆与菱形相切则优先落在尖角(尖角是菱形的一维测度集,和椭圆的有限族相交概率很高)。因此当 $\hat w_{\text{OLS}}$ 的某些分量已经接近零时,Lasso 几乎一定会一脚把它们踩到零,Ridge 永远不会——这就是"L2 收缩、L1 选择"在数字上的本质差别。

Elastic Net#

$$\mathcal{P}_{\text{EN}}(w) = \alpha \|w\|_1 + \tfrac{1-\alpha}{2}\|w\|_2^2.$$

兼顾 L1 的稀疏性与 L2 的稳定性,尤其适用于高度相关特征组(此时 Lasso 可能随机选其一)。

优化:闭式解不现实时的替代方案#

计算 $(X^\top X)^{-1}$$\mathcal{O}(d^3)$ 时间和 $\mathcal{O}(d^2)$ 内存。当 $d = 10^6$ 时,这不可行,迭代法成为唯一选择。

批量梯度下降(BGD)#

$$w^{(t+1)} = w^{(t)} - \eta \cdot \frac{1}{m} X^\top (X w^{(t)} - y).$$ $$L(w^{(t)}) - L(w^\*) \le \left(\frac{\kappa - 1}{\kappa + 1}\right)^{2t} \bigl(L(w^{(0)}) - L(w^\*)\bigr),$$

其中 $\kappa = \lambda_{\max}(X^\top X) / \lambda_{\min}(X^\top X)$ 为条件数。$\kappa$ 越大,收敛越慢——故梯度下降前通常需标准化特征。

数值步长示例:取最简一维问题 $f(w) = \tfrac{1}{2}(w-3)^2$ ,最优解 $w^*=3$ ,二阶导 $L=1$ 。从 $w^{(0)}=0$ 出发,每步 $w^{(t+1)} = w^{(t)} - \eta \cdot (w^{(t)}-3)$

  • $\eta = 0.5$ (小步长):$w$ 序列为 $0 \to 1.5 \to 2.25 \to 2.625 \to 2.81 \to \dots$ ,平稳收敛但慢;
  • $\eta = 1$ (最优):$0 \to 3$一步到位——这正是 $\eta = 1/L$ 的特殊性;
  • $\eta = 1.5$$0 \to 4.5 \to 1.875 \to 3.56 \to 2.66 \to \dots$ ,在 3 两侧振荡但仍收敛;
  • $\eta = 2.5$$0 \to 7.5 \to -3.75 \to 13.13 \to \dots$发散——只要 $\eta > 2/L$ ,迭代爆炸。

切换到 2D 病态二次型 $f(w) = \tfrac{1}{2}(100 w_1^2 + w_2^2)$ (条件数 $\kappa=100$ ):要保证 $w_1$ 方向不发散,必须 $\eta < 2/100 = 0.02$ ;但这个步长对 $w_2$ 方向($L_2=1$ )又过小,每步只缩 $1-0.02=0.98$ 倍,需要约 230 步才能把 $w_2$ 误差缩小 100 倍。这就是"病态把所有人拖到最慢方向"的具体感受——也是为什么 Adam、动量、特征标准化在工程上不可少。

算例:三点 BGD 走五步#

把上面的理论再落到一个迷你回归上。三个点 $(1,2),(2,2),(3,4)$ ,无截距模型 $\hat y = wx$ ,损失 $L(w) = \tfrac{1}{2m}\sum (wx_i - y_i)^2$ ,梯度 $\nabla L = \tfrac{1}{m}\sum(wx_i - y_i)x_i$ 。设 $\eta = 0.1$ ,从 $w^{(0)} = 0$ 出发:

  • 第 0 步:$w=0$ ,残差 $(-2,-2,-4)$ ,梯度 $\tfrac{1}{3}(-2-4-12) = -6$$w^{(1)} = 0 - 0.1\cdot(-6) = 0.6$
  • 第 1 步:$w=0.6$ ,残差 $(-1.4,-0.8,-2.2)$ ,梯度 $\tfrac{1}{3}(-1.4 - 1.6 - 6.6) = -3.2$$w^{(2)} = 0.92$
  • 第 2 步:$w=0.92$ ,梯度 $\approx -1.71$$w^{(3)} \approx 1.09$
  • 第 3 步:$w^{(4)} \approx 1.18$
  • 第 4 步:$w^{(5)} \approx 1.23$ ,逼近闭式解 $w^* = \sum x_i y_i / \sum x_i^2 = 16/14 \approx 1.143$

注意几件事:每步残差大小都缩小约一半,对应"$\tfrac{1}{m}X^\top X$ 的最大特征值是 $14/3 \approx 4.67$$\eta\cdot 4.67 \approx 0.47$ ,每步收缩因子 $|1-0.47| = 0.53$ "。把 $\eta$ 改成 $0.5$$w^{(1)} = 3$$w^{(2)} \approx -2.3$$w^{(3)} \approx 7.4$ ——振幅在膨胀。临界值是 $\eta = 2/4.67 \approx 0.43$ ,超过这个数 BGD 就不再是优化算法、变成共振发生器了。这给出实务上的一句心法:步长不是超参数,是被海塞矩阵最大特征值死死压住的天花板——所谓"调 $\eta$ “在工程上就是确认自己稳稳地待在天花板下面。

随机梯度下降(SGD)#

$$w^{(t+1)} = w^{(t)} - \eta \cdot (w^{(t)\top} x_i - y_i)\, x_i.$$
  • 优点:单步 $\mathcal{O}(d)$ ,支持流式/在线学习;非凸问题中噪声有助于跳出局部极小。
  • 缺点:更新含噪声,需递减学习率(如 $\eta_t = \eta_0 / (1 + t)$ )以保证几乎必然收敛。

小批量梯度下降(Mini-batch GD)#

实用折中:对 $B \in [32, 512]$ 个样本的梯度取平均。兼顾向量化加速与 SGD 的方差缩减,是深度学习库的标准实现。

模型评估与诊断#

评价指标#

测试集预测 $\hat y_i$ 的常用指标:

  • MSE $= \frac{1}{n}\sum (y_i - \hat y_i)^2$ —— 对大误差平方惩罚;
  • RMSE $= \sqrt{\text{MSE}}$ —— 单位与 $y$ 一致;
  • MAE $= \frac{1}{n}\sum |y_i - \hat y_i|$ —— 对异常值更鲁棒;
  • $R^2$ $= 1 - \dfrac{\sum(y_i - \hat y_i)^2}{\sum(y_i - \bar y)^2}$ —— 解释方差比例。
$$R^2_{\text{adj}} = 1 - (1 - R^2)\,\frac{n - 1}{n - d - 1}.$$

易错点:高 $R^2$ 不等于好模型#

初学者常以为”$R^2 = 0.95$ 就是好模型"。一个经典反例:训练集 $n=10$ ,特征数 $d=9$ 。任何线性模型只要列满秩,OLS 都会把残差压到零,训练 $R^2 = 1.0$ 。但取出一组新数据测试 MSE 极差——参数完全在拟合噪声。$R^2$ 看的是"解释了多少训练集方差",而不是"模型有多准"。

再举一个真实场景:用上证指数过去 20 天的数据回归未来一天的涨跌,$R^2$ 可能高达 0.98——但只要把样本时间窗口往后挪一周再测,可能就掉到 0.05。$R^2$ 高在样本内,决策的是样本外。所以训练集 $R^2$ 、测试集 $R^2$ 、调整 $R^2$ 三者必须一起看:训练高、测试低 = 过拟合;训练低、测试也低 = 欠拟合或特征不足;调整 $R^2$$R^2$ 显著低 = 你加了一堆没用的特征。把这三件事和起来读,比单看一个数靠谱得多。

交叉验证:选择模型容量#

不存在绝对“最佳”的多项式阶数或 $\lambda$ 。交叉验证通过保留数据折来寻找泛化最优解:

5 折交叉验证揭示偏差-方差的最优点

训练误差随模型容量(更多多项式项、更小 $\lambda$ )单调下降,但 CV 误差呈 U 型:容量不足导致偏差主导(欠拟合),过高则方差主导(过拟合)。CV 曲线最低点即为所选模型。

多项式回归:偏差与方差的直观展示#

线性回归指“参数线性”,而非“输入线性”。添加多项式特征可在保持线性求解的同时拟合曲线,但有过拟合风险:

欠拟合、合适拟合与过拟合在正弦曲线上的表现

一阶模型过于僵硬,无法捕捉正弦波(高偏差);三阶多项式恰到好处;十五阶多项式虽穿过多数点,却在点间剧烈震荡——典型过拟合。注意训练 MSE 单调下降,但无法反映过拟合;唯有保留数据能揭示真相。

异常值敏感性与鲁棒替代方案#

平方损失的弱点在于:单个大残差异常值会以平方形式显著影响总损失,迫使模型迁就它。下图清晰展示了这一点:

OLS 被异常值拉偏,Huber 回归保持稳定

$$\rho_\delta(r) = \begin{cases} \tfrac{1}{2} r^2, & |r| \le \delta, \\ \delta\,(|r| - \tfrac{1}{2}\delta), & |r| > \delta. \end{cases}$$

Huber 拟合(绿色)几乎与真实线重合。其他选项(RANSAC、M-估计、分位数回归)也存在,但 Huber 是主力:处处可微、凸、鲁棒。

算例:一个异常值让 OLS 斜率减半#

把"异常值拉偏 OLS"具体化。有 11 个干净点 $(x_i, y_i) = (0,0),(1,1),(2,2),\dots,(10,10)$ ,真实关系 $y = x$ ,OLS 斜率正好是 1.0。

现在污染最后一个点:把 $(10,10)$ 改成 $(10,-20)$ (一个明显是录入错误的离群点)。重算 $\sum x_i = 55$$\sum y_i = 25$$\sum x_i y_i = 0\cdot 0 + 1\cdot 1 + 2\cdot 2 + \dots + 9\cdot 9 + 10\cdot(-20) = 285 - 200 = 85$$\sum x_i^2 = 385$ 。带截距 OLS 斜率公式 $\hat\beta_1 = \tfrac{n\sum xy - \sum x \sum y}{n\sum x^2 - (\sum x)^2} = \tfrac{11\cdot 85 - 55\cdot 25}{11\cdot 385 - 55^2} = \tfrac{935 - 1375}{4235 - 3025} = \tfrac{-440}{1210} \approx -0.36$斜率从 +1.0 直接翻成 -0.36——一个点把整条线的方向都改了。

换 Huber($\delta = 1.5$ )跑一遍,斜率约 0.92,截距 0.4,几乎不被那个点拖动。背后的机制很朴素:OLS 对残差 $-30$ 的惩罚是 $\tfrac{1}{2}\cdot 900 = 450$ ,对其他每个点的残差 $\sim 0.4$ 的惩罚才 $0.08$ ;900 比 0.08 大了一万倍,模型当然先伺候那个大家伙。Huber 把超过 $\delta$ 的部分换成线性,那个点的惩罚降到 $\delta\cdot |r| \approx 45$ ,量级降了 10 倍,相对权重就不再压倒群众了。OLS 不是不防异常值,是它的损失函数对异常值过度尊重——换损失就换世界观。

常见问题#

Q1:为何用平方损失而非绝对损失?#

损失可微?闭式解?对异常值鲁棒?隐含噪声分布
平方(L2)处处可微高斯
绝对值(L1)0 处不可微无(需线性规划)拉普拉斯
Huber处处可微混合

平方损失流行源于三点:(i) 光滑;(ii) 有闭式解;(iii) 对应最常见噪声模型(高斯)。需鲁棒性时选 Huber。

Q2:正规方程还是梯度下降?#

用正规方程当 $d \lesssim 10^4$$X^\top X$ 可存入内存——一步得精确解。
用梯度下降当 $d$ 很大、需在线更新,或使用非光滑惩罚(如 Lasso,无闭式解)。

Q3:为何 Ridge 总有解?#

$$ v^\top (X^\top X + \lambda I) v = \|Xv\|^2 + \lambda\|v\|^2 \ge \lambda\|v\|^2 > 0 \quad (v e 0). $$

即使 $Xv = 0$$\lambda\|v\|^2$ 项仍保证严格正定。几何上:Ridge 在数据无法确定的方向上偏好零。

Q4:如何选 $\lambda$#

交叉验证。几乎总是交叉验证。scikit-learn 的 RidgeCVLassoCV 一行代码搞定。先在 $[10^{-3}, 10^{3}]$ 对数均匀搜索,再细化。

Q5:为何标准化特征?#

两点原因:

  1. 改善条件数:不同量纲使 $X^\top X$ 病态($\kappa$ 巨大),拖慢梯度下降;
  2. 公平正则化$\|w\|_2^2$ 平等惩罚各坐标;毫米单位特征权重比米单位大 1000 倍,Ridge 会无理由压制前者。

StandardScaler:减训练均值,除训练标准差。

Q6:多重共线性有何影响?#

高度相关特征 $x_1 \approx x_2$ 使 $X^\top X$ 近奇异。症状:$\hat w_1, \hat w_2$ 标准误巨大、符号随微小扰动翻转,但预测 $\hat y = X\hat w$ 仍准确。

诊断:方差膨胀因子 $\text{VIF}_j = 1 / (1 - R_j^2)$$R_j^2$ 为用其他特征回归特征 $j$ 的结果)。经验规则:VIF $> 10$ 表示严重共线。
解决:Ridge 回归、删除冗余特征,或替换为 PCA 成分。

Q7:经典假设及违反对策?#

假设诊断违反时对策
关于 $w$ 的线性残差图无模式多项式特征、基展开、核方法
误差独立Durbin–Watson $\approx 2$自回归模型、广义最小二乘
同方差残差在 $\hat y$ 上均匀加权最小二乘、$y$ 取对数
误差正态Q–Q 图近对角线Box–Cox、广义线性模型、鲁棒损失

统计推断(p 值、置信区间)需全部假设;仅做预测时,正态性可放宽。

Q8:分类特征如何编码?#

切勿用整数编码(会引入虚假序关系)。应使用独热编码pd.get_dummiesOneHotEncoder)。对 $k$ 类别特征,生成 $k$ 个指示变量,并删除一个以避免共线性(drop='first')。

Q9:线性回归能否拟合非线性关系?#

可以——“线性”指参数线性,非输入线性。将 $x$ 替换为 $\phi(x)$ (多项式、对数、sin、ReLU 等),再在 $\phi$ 空间拟合线性模型。这正是核方法与神经网络的推广思路。

Q10:如何解读系数?#

标准化特征后,$\hat w_j$ 表示:其他特征固定时,$x_j$ 增加一标准差,$\hat y$ 平均变化 $\hat w_j$ 标准差。两大警示:

  • 共线性使单个 $\hat w_j$ 不稳定(即使预测准确)——勿孤立解读;
  • 相关非因果。回归系数仅为数据中的条件关联。因果推断需实验设计或专门识别策略。

代码验证#

本文所有图表均由 scripts/figures/ml-math-derivations/05-linear-regression.py 生成,并通过 scikit-learn 验证各结论(如图 1 手算斜率截距与 LinearRegression 结果一致,图 2 数值验证残差正交性)。该脚本为图表唯一来源,一行命令即可复现。

总结#

我们从三个独立视角推导线性回归,殊途同归:

  • 代数:最小化二次函数,令梯度为零,得 $w^\* = (X^\top X)^{-1} X^\top y$
  • 几何:将 $y$ 正交投影到 $\operatorname{Col}(X)$ ,残差正交条件即正规方程;
  • 概率:高斯噪声下 MLE 等价于最小二乘;高斯先验下 MAP 给出 Ridge。

随后解决了 OLS 三大缺陷:共线性不稳定(Ridge)、无特征选择(Lasso)、异常值敏感(Huber)。优化工具箱(BGD/SGD/mini-batch)应对大规模问题,交叉验证则指导模型容量选择。

下一章预告: 本文推广至分类问题——输出空间变为离散。Sigmoid 函数、交叉熵损失、决策边界的几何意义,均可从“二元输出的线性-高斯模型应如何构建?”这一问题自然导出。

下一步#

线性回归把连续输出和高斯噪声捆在一起,给了我一个干净的"线性 + MLE = 最小二乘"等式。但现实中很多任务的输出根本不是连续的——是 0/1、是类别、是点击与否。强行把分类问题塞进高斯似然,会得到一个不会校准、决策边界违反直觉的怪东西。

下一章我换一个似然——伯努利。一旦把似然从高斯换成伯努利,整条推导链会自动给我三个新东西:sigmoid(因为伯努利的自然参数空间是 logit)、交叉熵(因为对数伯努利似然就长这样)、线性决策边界(因为对数几率是线性的)。这就是逻辑回归。它的几何还是线性的,统计的灵魂却完全不同。理解这种"换一个似然就换一整套算法"的视角,比死记 sigmoid 公式重要得多——它是后续所有广义线性模型、所有指数族泛化的共同模板。

参考文献#

  • Hastie, T., Tibshirani, R., & Friedman, J. (2009). The Elements of Statistical Learning (2nd ed.). Springer.
  • Bishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer.
  • Murphy, K. P. (2012). Machine Learning: A Probabilistic Perspective. MIT Press.
  • James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An Introduction to Statistical Learning. Springer.
  • Tibshirani, R. (1996). Regression shrinkage and selection via the Lasso. JRSS-B, 58(1), 267–288.
  • Hoerl, A. E., & Kennard, R. W. (1970). Ridge regression: biased estimation for nonorthogonal problems. Technometrics, 12(1), 55–67.
  • Zou, H., & Hastie, T. (2005). Regularization and variable selection via the elastic net. JRSS-B, 67(2), 301–320.
  • Huber, P. J. (1964). Robust estimation of a location parameter. Annals of Math. Stat., 35(1), 73–101.
  • 李航 (2012). 统计学习方法. 清华大学出版社.
  • 周志华 (2016). 机器学习. 清华大学出版社.
本系列

机器学习数学推导 20 篇

  1. 01 机器学习数学推导(一):绪论与数学基础
  2. 02 机器学习数学推导(二):线性代数与矩阵论
  3. 03 机器学习数学推导(三):概率论与统计推断
  4. 04 机器学习数学推导(四):凸优化理论
  5. 05 机器学习数学推导(五):线性回归 当前
  6. 06 机器学习数学推导(六):逻辑回归与分类
  7. 07 机器学习数学推导(七):决策树
  8. 08 机器学习数学推导(八):支持向量机
  9. 09 机器学习数学推导(九):朴素贝叶斯
  10. 10 机器学习数学推导(十):半朴素贝叶斯与贝叶斯网络
  11. 11 机器学习数学推导(十一):集成学习
  12. 12 机器学习数学推导(十二):XGBoost 与 LightGBM
  13. 13 机器学习数学推导(十三):EM 算法与 GMM
  14. 14 机器学习数学推导(十四):变分推断与变分 EM
  15. 15 机器学习数学推导(十五):隐马尔可夫模型
  16. 16 机器学习数学推导(十六):条件随机场
  17. 17 机器学习数学推导(十七):降维与主成分分析
  18. 18 机器学习数学推导(十八):聚类算法
  19. 19 机器学习数学推导(十九):神经网络与反向传播
  20. 20 机器学习数学推导(二十):正则化与模型选择

读有所得?

GitHub 关注我 → 新文周更

GitHub