机器学习数学推导(二):线性代数与矩阵论
机器学习的语言是线性代数。本文从第一性原理推导向量空间、特征值分解、SVD 与矩阵求导——ML 优化所需的全部工具。
这一章为什么写、和别处有什么不同
如果你上过一门标准的线性代数课,本文里的对象你大多见过。但本文不是那门课。 它是「机器学习视角下的线性代数」——梯度下降、PCA、神经网络训练、读论文时真正会反复用到的那六七个想法。
具体来说,本章想做三件事:
- 给矩阵建立几何直觉:旋转、拉伸、投影、压扁。
- 把四个真正常用的分解讲清楚——谱分解、SVD、QR、Cholesky——并告诉你什么时候用哪一个。
- 把矩阵求导讲到能在草稿纸上推出任何神经网络梯度的程度。
我们刻意略过行简化、按余子式展开的行列式、以及向量空间的抽象证明。如果需要那些内容,文末参考文献给出了标准教材。这里,每一个概念最终都会落到一张图,或一行 NumPy 上。
先修要求: 矩阵乘法、转置、行列式的概念、偏导数。
1. 向量空间、子空间、秩——几何核心
先把八条公理放一边。机器学习里真正用得上的心智模型是:
向量空间是一张过原点的、无限延伸的「平片」。子空间是套在它里面的、更小的过原点的平片。
$\mathbb{R}^2$ 中过原点的一条直线是 1 维子空间;$\mathbb{R}^3$ 中过原点的一个平面是 2 维子空间。关键的两个字是「过原点」——一旦平片被平移开,加法和数乘就不再封闭了。

1.1 张成、线性无关、基——一口气讲完
挑几个向量 $v_1, \ldots, v_k$。它们所有线性组合 $\sum \alpha_i v_i$ 的集合叫做张成 (span)——它总是一个子空间。
它们线性无关当且仅当谁都不在其他人的张成里,等价于:
$$\alpha_1 v_1 + \cdots + \alpha_k v_k = 0 \;\implies\; \alpha_1 = \cdots = \alpha_k = 0. \tag{1}$$基 = 线性无关的张成集;基的大小就是子空间的维数。

图就是全部故事:无关的向量围出非退化的平行四边形(面积大于零,确实张成 2 维);相关的向量躺在一条直线上,平行四边形塌掉。
1.2 矩阵 就是 线性映射
每一个矩阵 $A \in \mathbb{R}^{m \times n}$ 等同于一个线性映射 $T : \mathbb{R}^n \to \mathbb{R}^m$,反之亦然。两者之间只有一条对照:
$A$ 的第 $j$ 列就是 $T(e_j)$——第 $j$ 个标准基向量被映到的位置。
所以当你看到神经网络一层里的权重矩阵 $W \in \mathbb{R}^{h \times d}$,本质上就是一个函数:「输入 $d$ 维,输出 $h$ 维」;$W$ 的每一列告诉你某个输入特征对输出贡献什么。
1.3 秩与四个基本子空间
对秩为 $r$ 的 $m \times n$ 矩阵 $A$:
| 子空间 | 定义 | 处于 | 维数 | 直观含义 |
|---|---|---|---|---|
| 列空间 $\text{Col}(A)$ | $\{Ax : x \in \mathbb{R}^n\}$ | $\mathbb{R}^m$ | $r$ | 输出能到达哪里 |
| 零空间 $\text{Null}(A)$ | $\{x : A x = 0\}$ | $\mathbb{R}^n$ | $n-r$ | 哪些输入被压扁掉 |
| 行空间 $\text{Row}(A)$ | $\text{Col}(A^\top)$ | $\mathbb{R}^n$ | $r$ | $A$「真正看到」的输入 |
| 左零空间 | $\{y : A^\top y = 0\}$ | $\mathbb{R}^m$ | $m-r$ | 哪些输出永远到不了 |
正交性(基本定理)。 $\text{Null}(A) \perp \text{Row}(A)$。
证明。 若 $Ax = 0$,行空间中任一向量形如 $w = A^\top z$,则 $\langle x, w\rangle = z^\top (Ax) = 0$。$\square$
所以 $\mathbb{R}^n$ 被劈成两块正交的子空间:行空间($A$ 在这里干活)和零空间($A$ 在这里抹掉信息)。只要模型的参数比方程多——这在现代 ML 里几乎总是成立——零空间就非平凡,就有许多不同的参数向量给出完全相同的预测。
2. 范数与内积——几何层
内积 $\langle \cdot, \cdot\rangle$ 给你「夹角」;范数 $\|\cdot\|$ 给你「长度」。$\mathbb{R}^n$ 上的标准内积是 $\langle x, y\rangle = x^\top y$,诱导出 $\|x\|_2 = \sqrt{x^\top x}$。
正则化里的常用主力是 $\ell_p$ 范数族:
| 范数 | 公式 | 单位球 | ML 用途 |
|---|---|---|---|
| $\ell_1$ | $\sum_i | x_i | $ |
| $\ell_2$ | $\sqrt{\sum_i x_i^2}$ | 圆 / 球 | Ridge、权重衰减 |
| $\ell_\infty$ | $\max_i | x_i | $ |
2.1 Cauchy-Schwarz 与余弦
定理(Cauchy-Schwarz)。 $|\langle u, v\rangle| \le \|u\| \cdot \|v\|$,等号成立当且仅当 $u, v$ 共线。
证明。 二次式 $\|u + tv\|^2 = \|u\|^2 + 2t\langle u, v\rangle + t^2\|v\|^2$ 对所有 $t$ 都非负,故判别式 $\le 0$。$\square$
两边除以 $\|u\|\|v\|$ 就得到夹角余弦 $\cos\theta = \langle u, v\rangle / (\|u\|\|v\|)$,并自然解释了为什么它落在 $[-1, 1]$ 之间。检索系统中的 cosine similarity、注意力机制、对比学习——背后都是这条不等式。
2.2 真正会用到的矩阵范数
| 范数 | 公式 | 衡量什么 |
|---|---|---|
| Frobenius $\|A\|_F$ | $\sqrt{\sum_{ij} a_{ij}^2}$ | 把 $A$ 当向量后的「欧氏长度」 |
| 谱范数 $\|A\|_2$ | $\sigma_1(A)$ | 在所有单位输入上能产生的最大拉伸 |
| 核范数 $\|A\|_*$ | $\sum_i \sigma_i(A)$ | $\text{rank}(A)$ 的凸替代 |
谱范数是 Lipschitz 分析的正确选择(例如 GAN 中的 spectral normalization);核范数是低秩矩阵补全(Netflix 那一类问题)真正最小化的目标。
3. 特征值分解——「能在变换中保留方向的那些向量」
3.1 定义和直觉
非零向量 $v$ 是 $A \in \mathbb{R}^{n \times n}$ 的特征向量,对应特征值 $\lambda$,当且仅当:
$$Av = \lambda v. \tag{2}$$几何上:$A$ 一般会把输入旋转一下,但沿特征向量方向 $A$ 只是把它放大或缩小。特征向量的方向在变换中得以保留。

特征值满足特征多项式 $\det(A - \lambda I) = 0$。两条免费等式:
- $\sum_i \lambda_i = \operatorname{tr}(A)$
- $\prod_i \lambda_i = \det(A)$
3.2 谱定理(每天都会用到的那一条)
定理。 若 $A$ 是实对称矩阵($A = A^\top$),则:
- 所有特征值都是实数;
- 不同特征值对应的特征向量正交;
- $A$ 可被正交对角化:$A = Q \Lambda Q^\top$,其中 $Q^\top Q = I$,$\Lambda$ 对角。
证明思路(特征值是实的)。 取 $Av = \lambda v$,$v \neq 0$。用两种方式计算 $\bar v^\top A v$,并利用 $A = A^\top$,得 $\lambda = \bar\lambda$。$\square$
写成秩 1 形式:
$$A = \sum_{i=1}^n \lambda_i\, q_i q_i^\top. \tag{3}$$仔细看这个式子——$A$ 字面上就是一组沿正交方向的投影,按特征值加权求和。这就是 ML 里看待对称矩阵的标准镜头:协方差矩阵、Gram 矩阵、Hessian、图 Laplacian——全部如此。
3.3 正定与半正定矩阵
对称矩阵 $A$ 被称为正定($A \succ 0$),当对所有 $x \neq 0$,$x^\top A x > 0$。等价表述是:所有特征值都为正。把 $> 0$ 改为 $\ge 0$ 就是半正定($A \succeq 0$)。

几何含义:$\{x : x^\top A x = 1\}$ 是一个椭球,主轴沿特征向量方向,半轴长为 $1/\sqrt{\lambda_i}$。一旦某个特征值变负,就成了双曲面(鞍面),没有最小值。这就是凸优化坚持要求 Hessian 正定的原因。
正定矩阵在 ML 中无处不在:
- 协方差 $\Sigma = \mathbb{E}[(x - \mu)(x - \mu)^\top]$ 总是半正定。
- Gram 矩阵 $X^\top X$ 半正定;当 $X$ 列无关时正定。
- 核函数必须半正定(Mercer 定理),否则你无法在任何特征空间里复现它。
- 凸损失的 Hessian 半正定;严格凸 ⇔ 正定。
4. 奇异值分解 (SVD)——通用分解
4.1 定理
定理 (SVD)。 任意 $A \in \mathbb{R}^{m \times n}$(秩 $r$)可分解为:
$$A = U \Sigma V^\top, \tag{4}$$其中 $U \in \mathbb{R}^{m \times m}$、$V \in \mathbb{R}^{n \times n}$ 都是正交矩阵,$\Sigma$ 对角,奇异值 $\sigma_1 \ge \cdots \ge \sigma_r > 0$(之后是 0)。
为什么 SVD 总存在。 $A^\top A$ 是对称半正定矩阵,谱定理给出标准正交特征基 $V$,特征值为 $\sigma_i^2$。对 $\sigma_i > 0$ 定义 $u_i = A v_i / \sigma_i$,再补全成正交基 $U$。则 $A v_i = \sigma_i u_i$,即 $AV = U\Sigma$,即 $A = U\Sigma V^\top$。$\square$
4.2 几何图景:旋转、缩放、再旋转

任意线性映射都可以分成三步:
- $V^\top$:把输入旋转一下,使其主轴对齐坐标轴;
- $\Sigma$:沿每根坐标轴按 $\sigma_i$ 拉伸(这是唯一非刚性的一步);
- $U$:把结果旋到输出空间。
这是线性代数中最干净的心智模型:任何矩阵都是「旋转 → 沿坐标轴拉伸 → 再旋转」。
4.3 没有满秩会怎样:可视化
某个 $\sigma_i = 0$ 时,那个方向上的输入就被消灭了。输出椭球塌缩为更低维的形状:

秩 1 矩阵 $A = u v^\top$ 把整个 $\mathbb{R}^n$ 都映到单一直线 $\text{span}(u)$ 上。所有与 $v$ 正交的向量都进入零空间,被映为零。这恰恰是低秩逼近能压缩数据的本质。
4.4 Eckart-Young 定理:最佳低秩逼近
定理 (Eckart-Young)。 在 Frobenius 与谱范数意义下,$A$ 的最佳秩 $k$ 逼近为:
$$A_k = \sum_{i=1}^k \sigma_i u_i v_i^\top, \tag{5}$$误差为 $\|A - A_k\|_F = \sqrt{\sum_{i>k} \sigma_i^2}$,$\|A - A_k\|_2 = \sigma_{k+1}$。
这是 PCA 的数学引擎。把数据矩阵 $X$ 中心化、做 SVD:前 $k$ 个右奇异向量就是主成分方向,奇异值平方除以 $n$ 就是各方向上的方差。它同样是你听说过的所有低秩技术的核心:图像压缩、潜在语义分析、推荐系统、LoRA。
4.5 伪逆与条件数
Moore-Penrose 伪逆用 SVD 算:$A^+ = V \Sigma^+ U^\top$,其中 $\Sigma^+$ 把非零奇异值取倒数。这样 $x^\star = A^+ b$ 就是 $Ax = b$ 的最小范数最小二乘解——也正是 numpy.linalg.lstsq 返回的东西。
条件数 $\kappa(A) = \sigma_1 / \sigma_r$ 衡量 $A$ 把相对扰动放大多少倍。粗略来说,$\kappa(A) \approx 10^k$ 时,解 $Ax = b$ 会丢约 $k$ 位精度。任何最小二乘拟合都该先看一眼条件数。
4.6 特征分解 vs SVD
| 特征分解 | SVD | |
|---|---|---|
| 适用矩阵 | 方阵 | 任意 $m \times n$ |
| 形式 | $A = P \Lambda P^{-1}$ | $A = U \Sigma V^\top$ |
| 是否总存在 | 仅当可对角化 | 总存在 |
| 「值」 | 可能复数 | 非负实数 |
| 左右因子互逆? | 不一定 | 一定($U, V$ 正交) |
对对称半正定矩阵,二者重合($U = V = Q$,$\Sigma = \Lambda$)。其他情况首选 SVD——稳定、通用、对长方矩阵也有效。
5. 矩阵求导——优化的引擎
这是大部分 ML 读者最希望本文给出的清爽参考。我们用分子布局:导数的形状跟着输出走(标量对向量的梯度是列向量,与输入同型)。

5.1 每天必用的四条公式
| # | $f$ | $\nabla f$ | 备注 |
|---|---|---|---|
| 1 | $a^\top x$ | $a$ | 线性项 |
| 2 | $x^\top A x$ | $(A + A^\top) x$ | $A$ 对称时 $= 2Ax$ |
| 3 | $\|A x - b\|_2^2$ | $2 A^\top (A x - b)$ | 最小二乘 |
| 4 | $\ln \det X$ | $X^{-\top}$ | log-det,高斯 MLE 必用 |
公式 (2) 的证明。 $f = \sum_{i,j} A_{ij} x_i x_j$,则 $\partial f / \partial x_k = \sum_j A_{kj} x_j + \sum_i A_{ik} x_i = [(A + A^\top) x]_k$。$\square$
公式 (3) 的证明。 链式法则:$\nabla_x \tfrac12 \|Ax - b\|^2 = A^\top (Ax - b)$。乘以 2 把 ML 论文里习惯丢掉的那个 $\tfrac12$ 吸收掉。最优解是正规方程 $A^\top A x = A^\top b$。
5.2 链式法则与反向传播
定理(链式法则)。 若 $L: \mathbb{R}^n \to \mathbb{R}$ 写成 $L(x) = f(g(x))$,$g: \mathbb{R}^n \to \mathbb{R}^m$,则:
$$\nabla_x L = J_g^\top \cdot \nabla_g f, \tag{6}$$$J_g$ 是 $g$ 的 $m \times n$ 雅可比矩阵。
这个公式就是反向传播。神经网络中一层 $z = Wx + b$,$a = \sigma(z)$,下游损失 $L$:
$$\delta := \frac{\partial L}{\partial a} \odot \sigma'(z), \quad \frac{\partial L}{\partial W} = \delta\, x^\top, \quad \frac{\partial L}{\partial b} = \delta. \tag{7}$$整套算法就这么多——PyTorch 的 autograd 引擎所做的,就是把 (6) 跑在一张计算图上。
5.3 用有限差分自检
每次推导出梯度,都该顺手做一次数值检验:
$$\hat g_i = \frac{f(x + \varepsilon e_i) - f(x - \varepsilon e_i)}{2 \varepsilon}.$$取 $\varepsilon = 10^{-5}$,与解析梯度的相对误差应在 $10^{-6}$ 量级。下面 7 节的代码就是这么做的。
6. 数值分解——选哪一个、什么时候用
6.1 QR 解最小二乘
任意列满秩 $A$ 都可分解为 $A = QR$,$Q$ 列正交、$R$ 上三角。求 $\min_x \|Ax - b\|$ 时,先算 $Q^\top b$,再回代 $Rx = Q^\top b$。
为什么 QR 优于正规方程。 正规方程要算 $A^\top A$,其条件数变成 $\kappa(A)^2$。$\kappa(A) = 10^4$ 时就是 $10^8$——你的精度预算被平方了。QR 直接作用于 $A$,条件数仍是 $\kappa(A)$。
6.2 Cholesky 解正定方程
正定 $A$ 存在 Cholesky 分解 $A = LL^\top$,$L$ 下三角且对角元为正。代价 $O(n^3 / 3)$,是 LU 的一半。解 $Ax = b$ 就是两次三角回代。这是高斯过程推断、核方法、任何带正定 Hessian 的二次规划的主力工具。
6.3 决策表
| 场景 | 用 |
|---|---|
| 对称矩阵(协方差、Hessian) | 谱分解 |
| 任意矩阵;要诚实的秩、PCA、伪逆 | SVD |
| 长瘦最小二乘 $\min \|Ax - b\|$ | QR |
| 正定线性方程组 $Ax = b$ | Cholesky |
| 检测秩亏 / 监控数值健康 | 通过 SVD 看 $\kappa(A)$ |
7. 代码:把所有结论都跑一遍
| |
输出里值得留意三件事:Eckart-Young 的实际误差与理论值在机器精度内吻合;即便在条件数温和的情形下,QR 也比正规方程精确一到两个数量级;解析梯度与有限差分的差距在 $10^{-9}$ 量级。
8. Q&A——常见疑问
Q1. 什么时候应该用正规方程? 当 $\kappa(A) < 10^3$ 左右——比如规模小、特征尺度均匀的问题。一旦病态严重,就用 QR 或 SVD。条件数被平方真的会吃掉精度。
Q2. 为什么 $\ell_1$ 会产生稀疏解? $\ell_1$ 单位球的尖角恰好长在坐标轴上。一般的优化等值线先碰到这些尖角,而尖角处某些坐标为零。光滑的 $\ell_2$ 球没有尖角,最优解通常落在远离坐标轴的地方。
Q3. SVD 和 PCA 是不是一回事? 是的,只是记账方式不同。设中心化数据 $X \in \mathbb{R}^{n \times d}$:
- 走协方差路线:$\Sigma = \tfrac{1}{n} X^\top X$,前 $k$ 个特征向量就是主方向;
- 走 SVD 路线:$X = U \Sigma V^\top$,$V$ 的列就是主方向,$\sigma_i^2 / n$ 就是各方向解释方差。 对高维数据($d \gg n$),SVD 路线明显更便宜,因为根本不用把 $d \times d$ 的协方差矩阵实例化出来。
Q4. 为什么对称矩阵的特征值如此特殊? 它们是实数(可以排序),并且特征向量构成正交基。这种正交性使得任意向量都能写成 $\sum \langle v, q_i\rangle q_i$——是对 $A$ 行为最干净的坐标系。ML 里的 Hessian、协方差、Gram、Laplacian 全是对称矩阵,所以这件事天天用得上。
Q5. 「秩」的实际操作含义是什么? 秩衡量的是 $A$ 保留了多少输入信息。秩 $r$ 的 $\mathbb{R}^{m \times n}$ 矩阵把 $(n - r)$ 维子空间(其零空间)整体抹掉,输出落在 $r$ 维子空间(其列空间)里。在 ML 中,这正是自动编码器的瓶颈维度、矩阵补全的秩、嵌入向量的潜在维度。
总结
| 工具 | 关键公式 | 何时使用 |
|---|---|---|
| 谱定理 | $A = Q \Lambda Q^\top$ | 对称矩阵:协方差、Hessian |
| SVD | $A = U \Sigma V^\top$ | 任意矩阵:PCA、伪逆、低秩逼近 |
| QR | $A = QR$ | 病态最小二乘 |
| Cholesky | $A = LL^\top$ | 正定线性方程组(高斯 MLE、GP) |
| 二次型梯度 | $\nabla (x^\top A x) = 2Ax$ | 任何二次目标 |
| 链式法则 | $\nabla_x L = J_g^\top \nabla_g f$ | 一行公式概括反向传播 |
参考文献
- Strang, G. (2023). Introduction to Linear Algebra (6th ed.). Wellesley-Cambridge Press.
- Trefethen, L. N. & Bau III, D. (1997). Numerical Linear Algebra. SIAM.——稳定性问题写得最干净。
- Golub, G. H. & Van Loan, C. F. (2013). Matrix Computations (4th ed.). Johns Hopkins University Press.——算法圣经。
- Petersen, K. B. & Pedersen, M. S. (2012). The Matrix Cookbook. Technical University of Denmark.——大家都在查的梯度速查表。
- Eckart, C. & Young, G. (1936). The approximation of one matrix by another of lower rank. Psychometrika, 1(3), 211-218.
- Boyd, S. & Vandenberghe, L. (2018). Introduction to Applied Linear Algebra. Cambridge University Press.——以数据为中心的优秀配套读物。
系列导航
| 篇 | 主题 | 链接 |
|---|---|---|
| 1 | 绪论与数学基础 | <– 上一篇 |
| 2 | 线性代数与矩阵论 | 当前位置 |
| 3 | 概率论与统计推断 | 下一篇 –> |
| 4 | 凸优化理论 | 前往 –> |
| 5 | 线性回归 | 前往 –> |