
机器学习数学推导(五):线性回归
从代数(正规方程)、几何(正交投影)、概率(最大似然)三个角度完整推导线性回归,再延伸到 Ridge、Lasso、梯度下降与诊断方法,全部结论与 scikit-learn 互验。
引子: 1886 年,Francis Galton 在研究遗传时发现了一个奇怪的现象:特别高或特别矮的父母,他们的孩子身高往往会比父母更接近平均值。他把这种“向均值靠拢”的现象称为 regression,这个名字一直沿用至今。一个统计学上的小发现,最终演变成了机器学习中最重要的基础模型——并非因为线性回归本身有多强大,而是因为几乎所有其他算法(逻辑回归、神经网络、核方法等)本质上都是同一种思想的变体:在合适的空间里拟合一条直线。
本章将从代数、几何和概率三个独立视角推导线性回归,并展示它们殊途同归于同一个公式。随后,本文探讨当模型假设失效时会发生什么,以及 Ridge、Lasso 和稳健损失如何修复这些问题。

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

图中同时展示了三件事:$X$ 的列张成的平面(蓝紫色)、目标向量 $y$ (漂浮于平面上方)、投影 $\hat y$ (位于平面上),以及垂直于平面的残差 $y - \hat 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 中,系数触及坐标轴后保持为零。这种“非零即零”的特性使其成为有效的特征选择器。
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}}$ 为中心的椭圆,而约束区域形状迥异:

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$ 不等于好模型#
初学者常以为”$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$ 。交叉验证通过保留数据折来寻找泛化最优解:

训练误差随模型容量(更多多项式项、更小 $\lambda$ )单调下降,但 CV 误差呈 U 型:容量不足导致偏差主导(欠拟合),过高则方差主导(过拟合)。CV 曲线最低点即为所选模型。
多项式回归:偏差与方差的直观展示#
线性回归指“参数线性”,而非“输入线性”。添加多项式特征可在保持线性求解的同时拟合曲线,但有过拟合风险:

一阶模型过于僵硬,无法捕捉正弦波(高偏差);三阶多项式恰到好处;十五阶多项式虽穿过多数点,却在点间剧烈震荡——典型过拟合。注意训练 MSE 单调下降,但无法反映过拟合;唯有保留数据能揭示真相。
异常值敏感性与鲁棒替代方案#
平方损失的弱点在于:单个大残差异常值会以平方形式显著影响总损失,迫使模型迁就它。下图清晰展示了这一点:

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 的 RidgeCV 和 LassoCV 一行代码搞定。先在 $[10^{-3}, 10^{3}]$
对数均匀搜索,再细化。
Q5:为何标准化特征?#
两点原因:
- 改善条件数:不同量纲使 $X^\top X$ 病态($\kappa$ 巨大),拖慢梯度下降;
- 公平正则化:$\|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_dummies 或 OneHotEncoder)。对 $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 篇
- 01 机器学习数学推导(一):绪论与数学基础
- 02 机器学习数学推导(二):线性代数与矩阵论
- 03 机器学习数学推导(三):概率论与统计推断
- 04 机器学习数学推导(四):凸优化理论
- 05 机器学习数学推导(五):线性回归 当前
- 06 机器学习数学推导(六):逻辑回归与分类
- 07 机器学习数学推导(七):决策树
- 08 机器学习数学推导(八):支持向量机
- 09 机器学习数学推导(九):朴素贝叶斯
- 10 机器学习数学推导(十):半朴素贝叶斯与贝叶斯网络
- 11 机器学习数学推导(十一):集成学习
- 12 机器学习数学推导(十二):XGBoost 与 LightGBM
- 13 机器学习数学推导(十三):EM 算法与 GMM
- 14 机器学习数学推导(十四):变分推断与变分 EM
- 15 机器学习数学推导(十五):隐马尔可夫模型
- 16 机器学习数学推导(十六):条件随机场
- 17 机器学习数学推导(十七):降维与主成分分析
- 18 机器学习数学推导(十八):聚类算法
- 19 机器学习数学推导(十九):神经网络与反向传播
- 20 机器学习数学推导(二十):正则化与模型选择