机器学习数学基础 120 章

条件数、病态问题与正则化

层级:B|建议先修:02-06、02-12、02-15、09-01

一个算法可能实现完全正确,却仍因问题本身对输入扰动极其敏感而得到不可靠结果。条件数衡量这种固有敏感性;稳定性衡量算法是否额外放大误差。

1. 条件良好与病态

考虑问题 y=f(x)y=f(x)。输入有小扰动 Δx\Delta x,输出变化 Δy\Delta y。若相对输出误差远大于相对输入误差,问题称为病态。

局部相对条件数可直观写为

κ(x)Δy/yΔx/x.\kappa(x) \approx \frac{\|\Delta y\|/\|y\|} {\|\Delta x\|/\|x\|}.

条件数大表示数据中的微小噪声、舍入误差或估计误差会被显著放大。

2. 标量函数的条件数

对可微标量函数 y=f(x)y=f(x),局部相对条件数为

κf(x)=xf(x)f(x)\kappa_f(x)=\left|\frac{xf'(x)}{f(x)}\right|

(当分母非零)。例如 f(x)=xnf(x)=x^n 的条件数为 n|n|,而接近根的位置求函数相对值可能变得病态。

3. 线性系统的条件数

对可逆矩阵 AA 的线性系统

Ax=b,A\mathbf x=\mathbf b,

矩阵范数对应的条件数为

κ(A)=AA1.\kappa(A)=\|A\|\|A^{-1}\|.

在 2-范数下,

κ2(A)=σmax(A)σmin(A).\kappa_2(A)=\frac{\sigma_{max}(A)}{\sigma_{min}(A)}.

AA 对称正定,则也等于最大与最小特征值之比。

4. 几何直觉

矩阵把单位球变成椭球。最长轴为 σmax\sigma_{max},最短轴为 σmin\sigma_{min}。若最短轴非常小,某些方向被几乎压扁,逆变换必须大幅放大该方向,连噪声也一起放大。

σmin=0\sigma_{min}=0 时矩阵奇异,条件数视为无穷。

5. 误差传播

只考虑右端项扰动 b+Δb\mathbf b+\Delta\mathbf b 时,常有界

Δxxκ(A)Δbb.\frac{\|\Delta\mathbf x\|}{\|\mathbf x\|} \lesssim \kappa(A) \frac{\|\Delta\mathbf b\|}{\|\mathbf b\|}.

这是一阶或上界意义的表达。条件数 10810^8 意味着输入相对误差可能被放大八个数量级,并非保证一定恰好放大这么多。

6. 正规方程会平方条件数

最小二乘若用正规方程

XTXβ^=XTy,X^TX\hat\beta=X^T y,

κ2(XTX)=κ2(X)2.\kappa_2(X^TX)=\kappa_2(X)^2.

因此本已不良的条件会更糟。数值上通常优先用 QR 或 SVD 求最小二乘,而不是显式形成并求解正规方程。

7. 特征尺度与共线性

设计矩阵病态的常见原因:

  • 特征量纲差异巨大;
  • 两列特征几乎线性相关;
  • 多项式高次项范围悬殊;
  • 样本少于维度或数据落在低维子空间。

表现包括系数对数据扰动剧烈变化、标准误巨大、梯度下降狭长振荡以及求解器警告。

8. 正则化改善条件

岭回归求解

(XTX+λI)β=XTy.(X^TX+\lambda I)\beta=X^Ty.

XTXX^TX 特征值为 λi\lambda_i,加正则后变为 λi+λ\lambda_i+\lambda,条件数改善为

λmax+λλmin+λ.\frac{\lambda_{max}+\lambda} {\lambda_{min}+\lambda}.

代价是引入偏差。正则化既控制统计方差,也常改善数值稳定性。

9. 截断 SVD

若小奇异值方向主要是噪声,可只保留大于阈值的奇异值:

X=UΣVT,Xk+=VkΣk1UkT.X=U\Sigma V^T, \qquad X_k^+=V_k\Sigma_k^{-1}U_k^T.

这抛弃无法可靠识别的方向,与主成分回归和低秩近似相联系。阈值是偏差—方差选择,而非纯粹数值细节。

10. 预条件

迭代求解 Ax=bA x=b 时,寻找易求逆的 MAM\approx A,改解

M1Ax=M1b.M^{-1}Ax=M^{-1}b.

M1AM^{-1}A 的谱更集中,迭代会更快。预条件不改变精确解,却改变算法看到的几何。

特征标准化也可视为优化问题的一种简单预条件。

11. 条件数与算法稳定性的区别

  • 条件数属于数学问题和输入点;
  • 稳定性属于求解算法;
  • 前向误差大致受“条件数 × 后向误差”控制。

对病态问题,再稳定的算法也无法从含噪数据恢复不存在的信息;应增加先验、正则化或收集更有辨识力的数据。

12. 机器学习联系

  • Hessian 条件数影响梯度下降收敛速度;
  • 多重共线性让线性模型系数不稳定;
  • 核矩阵近奇异需要正则化或低秩近似;
  • 协方差矩阵估计不良会影响 Mahalanobis 距离和高斯模型;
  • 深度网络中的归一化、初始化和自适应优化都在一定程度上改变优化几何。

13. 易错点

  1. 条件数大不说明代码一定错误,它说明问题对扰动敏感。
  2. 行列式接近 0 可提示奇异,但不适合作为一般数值条件判断;条件数更直接。
  3. 标准化改善尺度,不会消除真正的线性依赖。
  4. 正则化系数过大虽改善条件,却可能严重欠拟合。

常见问答

Q1:条件数多少算大?
没有脱离精度和误差容忍度的统一阈值。可粗看会损失多少有效数字,并结合数据噪声、浮点格式和任务误差预算判断。

Q2:矩阵可逆为何仍可能求解不可靠?
最小奇异值虽非零但非常小,逆矩阵沿相应方向会巨大放大扰动。

Q3:正则化是在修数学问题还是统计问题?
两者都是。它抑制不可辨识方向的方差,同时改善求解矩阵的谱。

Q4:为什么梯度下降在狭长椭圆等高线上走之字形?
Hessian 特征值差异大,各方向曲率尺度不一;满足陡峭方向稳定性的步长在平坦方向进展很慢。

练习

  1. 写出 2-范数矩阵条件数与奇异值的关系。
  2. 证明 κ2(XTX)=κ2(X)2\kappa_2(X^TX)=\kappa_2(X)^2(假设满列秩)。
  3. 解释岭正则为何能改善 XTXX^TX 的条件数。
  4. 区分问题病态和算法不稳定。

答案与提示

  1. σmax/σmin\sigma_{max}/\sigma_{min}
  2. XTXX^TX 的特征值是 XX 奇异值的平方,因此最大最小比也平方。
  3. 所有特征值都加 λ>0\lambda>0,特别是把接近 0 的最小特征值抬高。
  4. 前者指精确解对输入扰动敏感,后者指算法产生了远超问题固有敏感性的额外误差。