第 3 章 线性代数 III:特征分解、SVD 与矩阵分解
第 3 章 线性代数 III:特征分解、SVD 与矩阵分解
前两章讲的都是"一个矩阵对向量做了什么",本章问一个更本质的问题:是否存在一组方向,
A在这组方向上只做伸缩、不改变方向? 答案是特征向量。沿着这条线索会自然得到对角化、谱定理、正定矩阵,最后推广到对任意长方形矩阵都成立的 SVD。SVD 是本章的重心:它同时给出了四个基本子空间的正交基、最优低秩近似(Eckart-Young 定理)、压缩率公式,以及 PCA 的全部代数推导。
学习目标
读完本章,你应当能够:
- 计算特征值与特征向量,写出特征多项式并说明其根与原矩阵的关系;
- 判定矩阵是否可对角化,并陈述谱定理(实对称矩阵必可正交对角化);
- 判定正定矩阵(特征值判据 / 顺序主子式判据),并解释正定性与二次函数凸性的关系;
- 从
AᵀA与AAᵀ的特征分解完整构造 SVD,说明U、Σ、V各列与四个基本子空间的对应关系; - 陈述并说明 Eckart-Young 定理,推导截断 SVD 的压缩率并完成数值计算;
- 推导 PCA 的两种等价提法(方差最大化 / 重构误差最小化),写出主成分选择依据;
- 实现基于
numpy的 SVD 压缩与 PCA。
前置知识检查
| 你需要知道 | 在哪一节补齐 |
|---|---|
| 子空间、维数、秩与零空间 | 第 1 章 1.1.4、1.3.1 |
Col(A) 与 N(Aᵀ) 正交、维数分别为 r 与 m−r | 第 1 章 1.3.2 |
内积、范数、正交矩阵 Q⁻¹ = Qᵀ | 第 2 章 2.1、2.3.1 |
| 最小二乘与投影 | 第 2 章 2.3.3 |
协方差矩阵维度 d×d | 第 1 章 1.5.1 |
| 凸函数的基本定义 | 本章 3.3.3 给出判据,完整展开见第 6 章 6.1 节 |
多元函数求导、∂(xᵀAx)/∂x = 2Ax(A 对称) | 本章 3.3.3 直接给出并解释 |
3.1 特征值与特征向量
3.1.1 几何直觉
对 n 阶方阵 A,若存在非零向量 v 和标量 λ 使 Av = λv,则称 λ 是 A 的特征值(eigenvalue),v 是对应的特征向量(eigenvector)。
几何含义:绝大多数向量被 A 作用后方向会改变,但特征向量的方向不变,只被拉伸或压缩 λ 倍。λ > 1 拉长,0 < λ < 1 压缩,λ = 0 直接压成零方向,λ < 0 反向拉长。换句话说,特征向量是"被 A 特殊对待的方向",λ 是那个方向上的增益。
注意 v ≠ 0 这个条件不能省:若允许 v = 0,任何 λ 都满足 A0 = λ0,特征值就失去了信息。也正因如此,特征向量总是按方向定义的——v 是特征向量则 cv 也是(c ≠ 0),所以谈论特征向量时关心的是一维子空间,即特征空间(eigenspace) E_λ = N(A − λI)。
3.1.2 特征多项式
把 Av = λv 移项得 (A − λI)v = 0。这是齐次方程组且要求非零解,由第 1 章 1.4.1 的等价条件,当且仅当 A − λI 不可逆:
| |
由代数基本定理,它在复数域上恰好有 n 个根(计重数),所以 n 阶矩阵有 n 个特征值(含重根与复根)。两条常用系数关系可用于验算:
| |
第二条立刻给出一个重要推论:det(A) = 0 等价于至少有一个特征值为 0,这正是第 1 章"可逆性十条等价条件"里的第 10 条。
手算示例:A = [2 1; 1 2]。
| |
v₁ᵀv₂ = 1 − 1 = 0:两个特征向量恰好正交。这不是巧合——A 是对称矩阵,见 3.2.3 节的谱定理。
3.1.3 特征值的两个工程含义
λ是"该方向上的增益"。在迭代x_{k+1} = Ax_k中,x_k = Σcᵢλᵢ^k vᵢ,绝对值最大的特征值(谱半径ρ(A) = max|λᵢ|)最终主导行为:ρ(A) < 1收敛到 0,ρ(A) > 1发散。梯度下降的收敛条件、Jacobi / Gauss-Seidel 迭代法的收敛判据都是这一条(第 5 章 5.4 节)。λ是 Hessian 的特征值时刻画曲率。若损失函数在某点的 Hessian 有特征值λᵢ,则沿对应特征方向的曲率就是λᵢ;病态(ill-conditioned)问题的特征是λ_max/λ_min很大,此时梯度下降在"陡"方向震荡、在"平"方向爬得极慢——这正是动量法与自适应学习率方法存在的理由(第 6 章 6.3、6.4 节)。第 1 章 1.3.4 节的"零空间方向"在此得到更精细的刻画:λ = 0的方向完全平坦,λ很小的方向近似平坦。
3.2 对角化与谱定理
3.2.1 相似变换与对角化
若存在可逆矩阵 P 使 P⁻¹AP = Λ(Λ 为对角阵),称 A 可对角化(diagonalizable),P⁻¹AP 与 A 相似。
为什么会想到这样做:对角矩阵的幂、指数、逆都是逐元素的:若 A = PΛP⁻¹,则 A^k = PΛ^k P⁻¹(中间所有 P⁻¹P 全部抵消)、e^A = Pe^ΛP⁻¹,计算极便宜。
对角化的充要条件:A 有 n 个线性无关的特征向量(此时取 P = [v₁ … vₙ]、Λ = diag(λ₁,…,λₙ),直接验证 AP = PΛ)。
| 情形 | 是否可对角化 | 说明 |
|---|---|---|
n 个特征值互不相同 | 一定可 | 不同特征值的特征向量必线性无关 |
有重根,但每个 λ 的几何重数 = 代数重数 | 可以 | 几何重数 = n − r(A − λI) |
| 有重根且几何重数 < 代数重数 | 不可以 | 缺特征向量,称为亏损矩阵 |
| 实对称矩阵 | 一定可以(且可正交对角化) | 谱定理 |
| 一般实矩阵 | 特征值可能是复数 | 如旋转矩阵 [0 −1; 1 0] 的特征值为 ±i |
亏损的典型例子是 A = [1 1; 0 1]:λ = 1 是二重根,但 A − I = [0 1; 0 0] 的秩为 1,几何重数 = 2 − 1 = 1 < 2,只有一个特征向量 [1,0]ᵀ,无法对角化。这类矩阵必须用 Jordan 标准型处理,工程上更常用 SVD(对任何矩阵都存在)。
3.2.2 为什么"实对称"这么特殊
实对称矩阵(Aᵀ = A)在本章反复出现,因为它有两条其他矩阵没有的好性质,各自只需三行就能证明。
性质一:特征值全为实数。 设 Av = λv、v ≠ 0。一方面 v̄ᵀ(Av) = λ(v̄ᵀv);另一方面用 A = Aᵀ = Āᵀ 与"标量的转置等于自身"得
| |
两式相等给出 (λ − λ̄)(v̄ᵀv) = 0。而 v̄ᵀv = Σ|vᵢ|² > 0,故 λ = λ̄,即 λ 为实数。
性质二:不同特征值的特征向量正交。 设 Av₁ = λ₁v₁、Av₂ = λ₂v₂ 且 λ₁ ≠ λ₂。用两种方式结合 v₁ᵀAv₂:(Av₁)ᵀv₂ = λ₁(v₁ᵀv₂)(先算 Av₁)、v₁ᵀ(Av₂) = λ₂(v₁ᵀv₂)(先算 Av₂)。但
| |
两式相等即 (λ₁ − λ₂)(v₁ᵀv₂) = 0,由 λ₁ ≠ λ₂ 得 v₁ᵀv₂ = 0。
重要
这两个证明的每一步都用到 Aᵀ = A,对称性是关键前提。非对称矩阵的特征值可以是复数,特征向量也不必正交。这就是"实对称矩阵必可正交对角化"的全部依据来源。
3.2.3 谱定理
定理(spectral theorem,实对称版本):设 A 是 n 阶实对称矩阵,则存在正交矩阵 Q(QᵀQ = I)使
| |
它的意义比"可以对角化"强得多:一般对角化得到的是 A = PΛP⁻¹,P 可以是任意可逆矩阵;谱定理保证 P 能取成正交矩阵,即 P⁻¹ = Pᵀ。为什么正交性如此重要:Q 正交意味着它保长度、保内积(第 2 章 2.3.1),所以 A = QΛQᵀ 可以读作"旋转 → 沿坐标轴伸缩 → 旋转回来";若 P 不正交,这个分解就不能解释成"旋转 + 伸缩",几何意义会丢失,数值上也会放大误差(第 2 章 2.4.2 节)。
推广形式(用于 SVD):对任意 A ∈ R^{m×n},AᵀA(n×n)与 AAᵀ(m×m)都是实对称且半正定的,因此都可用谱定理正交对角化——这一步是 SVD 的全部起点(见 3.4 节)。
3.2.4 相似变换下的不变量
A 与 P⁻¹AP 共享一系列性质,这些不变量在化简矩阵时非常有用:
| 不变量 | 理由 |
|---|---|
| 特征值(含重数) | det(P⁻¹AP − λI) = det(P⁻¹(A−λI)P) = det(A−λI) |
| 迹 | tr(P⁻¹AP) = tr(APP⁻¹) = tr(A)(迹的轮换性) |
| 行列式 | 由特征值不变 + det = Πλᵢ |
| 秩 | P、P⁻¹ 可逆,乘可逆矩阵不改变秩 |
| 正定性 | 见 3.3 节,由特征值不变推得 |
迹的轮换性 tr(ABC) = tr(BCA) 是高频工具,证明只需展开定义循环置换下标即得。它在推导 AᵀA 与 AAᵀ 有相同非零特征值时是关键一步(3.4.2 节)。
3.3 二次型与正定矩阵
3.3.1 二次型
二次型(quadratic form) 是关于 x 的二次齐次多项式,统一写成 f(x) = xᵀAx,其中 A 可取对称矩阵而不失一般性:因为 xᵀAx 的值只取决于 A 的对称部分 (A + Aᵀ)/2,反对称部分贡献 xᵀ((A−Aᵀ)/2)x = 0(用"标量的转置等于自身"可验证)。代入谱定理 A = QΛQᵀ,令 y = Qᵀx(把 x 换成特征向量坐标):
| |
这是理解二次型的核心一步:任何二次型在特征向量坐标系下都只是"带权重的平方和",权重就是特征值。所以二次型的几何形状完全由特征值的符号和大小决定。
3.3.2 正定的定义与判据
若对任意 x ≠ 0 都有 xᵀAx > 0,称对称矩阵 A 正定(positive definite),记 A ≻ 0;若 ≥ 0 则称半正定(A ⪰ 0)。由 f(x) = Σλᵢyᵢ² 且 y = Qᵀx 是可逆线性变换(x ≠ 0 ⟺ y ≠ 0),立刻得到特征值判据:
| |
顺序主子式判据(不需要求特征值,只需算行列式):记 Δ_k 为左上角 k×k 子矩阵的行列式(第 k 阶顺序主子式),则 A ≻ 0 ⟺ Δ₁ > 0, Δ₂ > 0, …, Δₙ > 0。
两个判据各有适用场景:低维手算用顺序主子式,理论推导用特征值(因为特征值直接对应"方向上的曲率")。验证示例:A = [2 1; 1 2],Δ₁ = 2 > 0、Δ₂ = 3 > 0 ⟹ 正定,与 3.1.2 节算出的特征值 1, 3 都为正一致。
三个必背的正定矩阵来源:
| 矩阵 | 结论 | 理由 |
|---|---|---|
AᵀA(A 列满秩) | 正定 | xᵀAᵀAx = ‖Ax‖² > 0(x ≠ 0 且 N(A) = {0}) |
AᵀA(A 任意) | 半正定 | 同上,但 x ∈ N(A) 时取等号 |
协方差矩阵 Σ | 半正定 | 它是 (A−Ā)ᵀ(A−Ā)/(n−1) 的形式;若各特征线性无关则正定 |
| 严格对角占优矩阵 | 若对称则正定 | Gershgorin 圆盘定理 |
AᵀA 的正定性是第 2 章投影矩阵 P = A(AᵀA)⁻¹Aᵀ 里 (AᵀA)⁻¹ 存在的原因,也是 SVD 能构造出来的基础。
3.3.3 正定性与凸性
考虑二次函数 f(x) = xᵀAx − 2bᵀx + c,它的梯度与 Hessian 为
| |
为什么 Hessian 正定就等价于凸(本章与第 6 章的接口,第 6 章 6.1 节展开):对任意两点 x、y,由二阶 Taylor 展开(A 对称时 ∂(xᵀAx)/∂x = 2Ax)可得
| |
右端正是凸函数的一阶定义(函数图像处处在其切线之上)。所以 A ≻ 0 ⟺ f 严格凸。
凸性的直接工程价值是局部最优即全局最优:令 ∇f = 0 得 Ax = b,解唯一且就是全局最小值点。线性回归的最小二乘目标 ‖Ax − b‖² 的 Hessian 是 2AᵀA,而 AᵀA 半正定,所以目标总是凸的——这是最小二乘不必担心局部极小的根本原因。逻辑回归的交叉熵损失也是凸的,而"MSE + Sigmoid"非凸(第 9 章 9.2.4 节),差别的根源就在 Hessian 是否正定。
警告
“所有元素为正”不等于正定。反例:A = [1 2; 2 1] 元素全正,但 Δ₂ = −3 < 0、特征值为 3 和 −1,不是正定矩阵。判定的正确入口是特征值符号或顺序主子式符号,不是元素符号;“对角元全正"同样只是必要不充分条件。
3.4 SVD:奇异值分解
3.4.1 为什么需要 SVD
实对称矩阵能正交对角化,但大多数矩阵既不对称、也不是方阵。SVD 解决的就是这个问题,而且它对任意 m×n 实矩阵都存在。
定理(SVD):任意 A ∈ R^{m×n}(r = r(A))可分解为 A = UΣVᵀ,其中 U 是 m×m 正交矩阵,V 是 n×n 正交矩阵,Σ 是 m×n 的"对角"矩阵,对角线元素 σ₁ ≥ σ₂ ≥ … ≥ σ_r > 0、σ_{r+1} = … = 0,称为奇异值(singular values)。约定降序排列后,Σ 就唯一确定了。
几何解释:A 作用在 n 维单位球上,得到的像是一个 m 维椭球,椭球的半轴长度恰好是 σᵢ,方向是 uᵢ。写成映射的语言就是
| |
所以任何线性映射都可以拆成"旋转 → 沿正交方向缩放 → 旋转"三步:它把"矩阵很复杂"消解为"两组正交方向 + 一组缩放因子”。
3.4.2 从 AᵀA 与 AAᵀ 的谱定理构造 SVD
SVD 的构造完全是"把谱定理用两次"。
第一步:对 AᵀA 用谱定理。 AᵀA 是对称半正定矩阵,所以存在正交矩阵 V 使
| |
定义 σᵢ = √λᵢ。由于 ‖Avᵢ‖² = vᵢᵀAᵀAvᵢ = vᵢᵀ(λᵢvᵢ) = λᵢ‖vᵢ‖² = λᵢ,所以 σᵢ = ‖Avᵢ‖。vᵢ 是 AᵀA 的特征向量,称为 A 的右奇异向量。
第二步:构造左奇异向量。 对 i ≤ r(即 λᵢ > 0),定义 uᵢ = Avᵢ / σᵢ。验证它标准正交:
| |
(i = j 时 λᵢ/σᵢ² = 1;i ≠ j 时 vᵢᵀvⱼ = 0。)对 i > r 有 Avᵢ = 0,需要另行扩充一组标准正交向量把这 m − r 个方向补齐——它们张成的正是 N(Aᵀ)。补完之后 U 是正交矩阵,且
| |
顺带得到的两个恒等式(它们说明 AᵀA 与 AAᵀ 的非零特征值完全相同):
| |
用迹的轮换性可以直接验证非零特征值相同:tr(AᵀA) = tr(AAᵀ) = Σσᵢ²。注意两个矩阵的大小不同(n×n 与 m×m),只是非零特征值相同——这正是"用小的那个算会更省"的依据:m ≫ n 时计算 AᵀA(n×n)远比 AAᵀ 便宜。
3.4.3 SVD 与四个基本子空间的一一对应
这是 SVD 最有价值的结构性结论:U 和 V 的列向量分别给出了四个基本子空间的标准正交基,一把全给了。
| 子空间 | 所在空间 | 维数 | 标准正交基 | 依据 |
|---|---|---|---|---|
列空间 Col(A) | R^m | r | {u₁, …, u_r} | Avᵢ = σᵢuᵢ ≠ 0,且这 r 个向量正交 |
左零空间 N(Aᵀ) | R^m | m−r | {u_{r+1}, …, u_m} | 构造时补齐的方向,满足 Aᵀuᵢ = 0 |
行空间 Col(Aᵀ) | R^n | r | {v₁, …, v_r} | AᵀAvᵢ = λᵢvᵢ ≠ 0,是 AᵀA 的非零特征空间 |
零空间 N(A) | R^n | n−r | {v_{r+1}, …, v_n} | Avᵢ = 0(对应 λᵢ = 0) |
| |
这张表把第 1 章的四子空间图彻底具体化了:第 1 章只说明"存在这样的分解",SVD 直接给出显式且标准正交的坐标。三条工程含义:
- 求零空间基不用消元,直接取
V的后n−r列(数值上更稳,因为正交)。 - 条件数
cond(A) = σ₁/σ_r,奇异值衰减速度决定问题有多病态;第 2 章 2.3.4 节"AᵀA把条件数平方"现在可精确表述为cond(AᵀA) = (σ₁/σ_r)²。 - 伪逆
A⁺ = VΣ⁺Uᵀ(Σ⁺是把Σ转置后把非零奇异值取倒数),它统一处理"长方形"“降秩"所有情形,是第 2 章(AᵀA)⁻¹Aᵀ的推广。
3.4.4 Eckart-Young 定理:截断 SVD 是最优低秩近似
截断 SVD:只保留前 k 个奇异值:
| |
注意 A_k 是外积之和的形式:每一项 σᵢuᵢvᵢᵀ 是一个 m×n 的秩 1 矩阵。把一个矩阵拆成若干个秩 1 矩阵按奇异值加权求和,这是 SVD 最常用的计算视角。
定理(Eckart-Young-Mirsky):对任意 m×n 矩阵 A 和任意 k,
| |
并且在所有秩不超过 k 的矩阵 B 中,A_k 同时使这两个误差达到最小:
| |
这个定理回答的问题是:如果只允许用秩 k 的矩阵去近似 A,最优选择是什么?答案是"把小的奇异值全部丢掉”。证明思路(秩约束下的最优性):设 B 的秩不超过 k,则 dim N(B) ≥ n − k。取 N(B) 与 span{v₁, …, v_{k+1}}(维数 k+1),两者维数之和 (n−k) + (k+1) = n + 1 > n,所以交集非平凡,存在非零 w 同时属于两者。把 w 用 v₁…v_{k+1} 展开,则
| |
第一个等号用了 Bw = 0;最后一步用了 Aw = Σ_{i≤k+1} σᵢ(vᵢᵀw)uᵢ,因而 ‖Aw‖ ≥ σ_{k+1}‖w‖。于是任何秩 k 矩阵的误差下界都是 σ_{k+1},而 A_k 恰好达到它,故最优;Frobenius 版本逐项累加同理。
提示
核心推论可直接背下来:误差等于被丢掉的那部分奇异值。“保留多少秩"因此有了定量答案:想让相对误差低于 ε,就保留到 σ_{k+1}/σ₁ < ε(谱范数口径)。这也解释了为什么奇异值谱"衰减快"的矩阵能被强力压缩:衰减快意味着丢掉尾部几乎不损失信息。
3.4.5 压缩率计算
存储 A_k 需要三块,合计 k(m + n + 1) 个数:
| 部分 | 形状 | 存储量 |
|---|---|---|
U_k | m×k | mk |
Σ_k(对角) | k | k |
V_kᵀ | k×n | kn |
| 合计 | k(m + n + 1) |
原矩阵需要 mn 个数,于是
| |
关键认知:存储量随秩 k 线性增长(正比于 k(m+n)),而不是原来的 mn——低秩压缩的本质就是把二次量 mn 换成线性量 k(m+n),所以只有 k 小于 m、n 的调和平均量级时才划算。
真题计算(1000×800,保留秩 k = 50):
| |
考场加速技巧:先估量级即可定位选项——k(m+n)/(mn) = 50/800 + 50/1000 = 0.1125,即保留约 11%、减少约 89%,与精确值只差 0.3 个百分点,不必纠结那个 +1。
3.4.6 代码实战
| |
运行结果会显示一个反直觉的现象:随机矩阵在 k = 200 时相对误差仍很大,存储占比却已超过 45%。原因是纯随机矩阵的奇异值谱几乎不衰减(第 4 章 4.4 节的 Marchenko-Pastur 分布),此时"低秩"假设根本不成立。真实数据矩阵(图像、词嵌入、注意力权重)的奇异值谱通常在前几十个就衰减到很小——这正是 LoRA、模型压缩、推荐系统隐语义模型(第 11 章 11.3 节)能工作的经验前提:能不能压缩,取决于奇异值衰减得多快,而不是矩阵有多大。
3.5 PCA 的代数推导
主成分分析(Principal Component Analysis, PCA) 的目标是把 d 维数据压到 k 维,同时尽可能保留信息。这里给出代数版本(等价于 SVD);统计视角(方差最大化与重构误差最小化的对偶)见第 11 章 11.1 节。
3.5.1 设定与中心化
设数据矩阵 A ∈ R^{n×d}:n 个样本、每个 d 维特征。第一步必须中心化(每一列减去该列均值),记中心化后为 Ã。理由:协方差刻画的是"围绕均值的波动”,不中心化的话第一主成分会被均值方向主导,得到的只是"数据整体在哪",而不是"数据往哪个方向散得最开"。协方差矩阵(第 1 章 1.5.1 节)为 Σ = (1/(n−1))ÃᵀÃ(d×d,对称半正定)。
3.5.2 从 SVD 得到主成分
对 Ã 做 SVD:Ã = UΣVᵀ。代入协方差定义:
| |
与谱定理 Σ = VΛVᵀ 对照,立即得到核心结论:
| |
第一条是整个 PCA 的判断依据所在:协方差矩阵的第 i 个特征值就等于数据在第 i 主成分方向上的方差。所以"保留多少维"可以量化:
| |
实践中取它达到 85% 或 95% 所需的最小 k。注意分母是全部 d 个特征值之和(即总方差 tr(Σ)),不是最大特征值。
3.5.3 两个等价提法
PCA 有两条看似不同的推导路径,它们的解完全相同,理解这点能避免把 PCA 当成"凭经验的技巧"。
提法一:方差最大化。 找一个单位方向 w(‖w‖ = 1),使投影得分的方差 wᵀΣw 最大:max_w wᵀΣw s.t. ‖w‖ = 1。用拉格朗日乘子 L = wᵀΣw − λ(wᵀw − 1),令 ∂L/∂w = 2Σw − 2λw = 0 得 Σw = λw。最优 w 就是 Σ 最大特征值对应的特征向量,最优值即该特征值;后续主成分在前面正交的约束下依次取第 2、3…… 大的特征向量。注意 ‖w‖ = 1 这个约束不能去掉:否则把 w 无限放大就能让方差无限大,问题无解。
提法二:重构误差最小化。 用 W ∈ R^{d×k}(WᵀW = I_k)把数据压到 k 维再还原:Ã ≈ ÃWWᵀ,最小化 ‖Ã − ÃWWᵀ‖_F²。由 Eckart-Young 定理(3.4.4),ÃWWᵀ 是秩 k 的最佳近似,其解正是取前 k 个右奇异向量。
两者等价的原因:总方差 ‖Ã‖_F² = Σσᵢ² 是定值,“保留的方差"与"重构误差"之和恒等于它。所以最大化前者就是最小化后者,从两端看是同一个解。
重要
三条实战易错点:其一,必须中心化,否则第一主成分捕捉的是均值;其二,特征向量必须单位化(模长恒为 1,携带不了信息量),能反映信息量的是特征值;其三,特征值越大越应保留,按 1/λ 加权会把最该丢弃的方向排到最前。
3.5.4 代码实战
| |
注意 np.linalg.svd 返回的 s 已按降序排列,不需要额外排序——这也是"约定 σ₁ ≥ σ₂ ≥ …“的实际好处。
本章小结
| 关键结论 | 一句话表述 | 常见错误 |
|---|---|---|
| 特征值 | Av = λv(v ≠ 0);det(A − λI) = 0;Σλᵢ = tr(A)、Πλᵢ = det(A) | 允许 v = 0;忘记重根要算重数 |
| 对角化 | 可对角化 ⟺ 有 n 个线性无关特征向量 | 以为有重根就一定不可对角化 |
| 谱定理 | 实对称矩阵必可 A = QΛQᵀ,Q 正交 | 以为任意可对角化矩阵都能取正交的 P |
| 正定判定 | 所有特征值 > 0,或所有顺序主子式 > 0 | 用"元素全为正"或"对角元为正"判定 |
| 正定与凸性 | A ≻ 0 使 f(x) = xᵀAx − 2bᵀx + c 严格凸,局部最优即全局最优 | 把非凸损失当成凸的来调度学习率 |
| SVD 构造 | σᵢ = √λᵢ(AᵀA),vᵢ 是 AᵀA 特征向量,uᵢ = Avᵢ/σᵢ | 忘记 i > r 时需补齐 U 的其余列 |
| SVD 与子空间 | {u₁…u_r}=列空间、{u_{r+1}…u_m}=左零空间、{v₁…v_r}=行空间、{v_{r+1}…v_n}=零空间 | 把列空间与行空间的基搞混 |
| Eckart-Young | 截断 SVD 是所有秩 k 矩阵中误差最小者,误差 = σ_{k+1} | 以为按其他准则(如按元素)丢弃更好 |
| 压缩率 | 存 k(m+n+1),减少比例 = 1 − k(m+n+1)/(mn) | 只算 U 和 Vᵀ 忘了 Σ 的 k 个数 |
| PCA 依据 | λᵢ = σᵢ²/(n−1) 即该方向方差;按累计贡献率达 85%/95% 取 k | 不中心化;用特征向量模长判断信息量 |
自测题
Q1(计算)设 A = [4 1; 1 4]。求特征值、特征向量,判断是否正定,写出谱分解 A = QΛQᵀ。
答案与解析
| |
v₁ᵀv₂ = (1 − 1)/2 = 0,正交,符合谱定理。两个特征值都大于 0(也可用 Δ₁ = 4 > 0、Δ₂ = 15 > 0 验证),故 A 正定。
注意 Q 的两列要按 Λ 中特征值的顺序摆放,这是最常见的错误来源。展开验证:QΛQᵀ 的第一行第一列 = (5+3)/2 = 4 ✓,第一行第二列 = (5−3)/2 = 1 ✓。
Q2(推导)设 A ∈ R^{m×n},证明 AᵀA 与 AAᵀ 的非零特征值完全相同。
答案与解析
设 λ > 0 是 AᵀA 的特征值,v ≠ 0 为对应特征向量:AᵀAv = λv。两边左乘 A 得 AAᵀ(Av) = λ(Av)。关键是要确认 Av ≠ 0:若 Av = 0,则 AᵀAv = 0,即 λv = 0,与 λ > 0、v ≠ 0 矛盾。所以 Av ≠ 0,且它是 AAᵀ 对应于同一个 λ 的特征向量。
于是 AᵀA 的正特征值集合 ⊆ AAᵀ 的正特征值集合;把 A 与 Aᵀ 的角色互换得反向包含,两者相等,证毕。
替代证法:用迹的轮换性算 tr((AᵀA)^k) = tr((AAᵀ)^k)(反复把 A 与 Aᵀ 轮换),所有幂的迹相同即所有非零特征值的幂和相同,由牛顿恒等式得非零特征值相同。
实际用途:当 m ≫ n 时 AᵀA 是 n×n 的小矩阵,而 AAᵀ 是 m×m 的大矩阵;算奇异值只需对小的那个做特征分解(np.linalg.svd 在 full_matrices=False 时正是这么做的)。它还说明 r(AᵀA) = r(AAᵀ) = r(A)。
Q3(计算)已知某 600×400 矩阵的全部奇异值满足 σᵢ = 100/i(i = 1, 2, …)。(a) 若保留秩 k = 20,存储减少多少比例?(b) 用谱范数口径,秩 20 的截断误差与相对误差(相对 σ₁)各是多少?
答案与解析
(a) 原存储 600 × 400 = 240,000。截断后 U(600×20) = 12,000、Vᵀ(20×400) = 8,000、Σ(20) = 20,合计 20,020:
| |
用近似公式核对:k(m+n)/(mn) = 20/400 + 20/600 = 0.0833,与精确值几乎一致。
(b) 由 Eckart-Young 定理,谱范数误差 ‖A − A₂₀‖₂ = σ₂₁ = 100/21 ≈ 4.762,相对误差 = σ₂₁/σ₁ = 1/21 ≈ 4.76%。
两个要点:其一,误差只取决于第一个被丢掉的奇异值 σ_{k+1},与保留了多少个无关;其二,σᵢ = 100/i 的衰减是 1/i(很慢),丢掉 21 号后仍有近 5% 的相对误差——若要求相对误差低于 1%,需 1/(k+1) < 0.01 即 k ≥ 100。这正是"奇异值衰减速度决定可压缩性"的定量体现:1/i 衰减要保留 100 维,而按 0.5^(i−1) 指数衰减时取 k = 7 就已到 0.5⁶ ≈ 1.6%。
Q4(辨析)以下四条关于 SVD 与 PCA 的说法,哪些正确?
A. U 的列向量都是 AAᵀ 的特征向量,且前 r 个张成列空间
B. PCA 中特征向量的模长表示该主成分保留的方差大小
C. 若 A 的奇异值为 [10, 1, 0.1, 0.01],则秩 1 近似已经保留了约 99% 的 Frobenius 能量
D. 截断 SVD 的 A_k 一定比原矩阵 A 的存储量小
答案与解析
A、C 正确。
A:由 AAᵀ = U(ΣΣᵀ)Uᵀ(3.4.2 节),U 的每一列都是 AAᵀ 的特征向量,对应特征值 σᵢ²(i ≤ r)或 0(i > r);前 r 个满足 Avᵢ = σᵢuᵢ ≠ 0,张成 Col(A)。
B:错。特征向量一律单位化,模长恒为 1,不携带任何信息量;能反映信息量的是特征值或累计贡献率。
C:Frobenius 能量按 σᵢ² 计,总能量 = 100 + 1 + 0.01 + 0.0001 = 101.0101,保留 σ₁² = 100,占比 ≈ 99.0% ✓。注意两种范数口径差别很大:用谱范数看 σ₂/σ₁ = 10%,远没有 1% 那么乐观——Frobenius 会把被丢弃的小分量平方后进一步压低。答题先看清题目用哪个范数。
D:错。压缩有效的条件是 k < mn/(m+n+1)。反例:A 是 100×100、k = 90,原存储 10,000,截断后 90 × 201 = 18,090,反而变大。所以"低秩必压缩"是错的,必须核对 k 与矩阵形状的关系。
Q5(实现)给定中心化后的数据矩阵 Ã ∈ R^{n×d},用 SVD 计算前 k 个主成分的累计贡献率,并与"先算 d×d 协方差矩阵再求特征值"的结果对比,说明两者为何一致。
答案与解析
| |
两者一致的原因(本题核心):由 3.5.2 节,Σ = (1/(n−1))ÃᵀÃ = V diag(σ₁², …)Vᵀ/(n−1),即协方差矩阵的特征值就是奇异值平方除以 n−1。累计贡献率的分子分母都带 1/(n−1) 因子,约掉后两种算法给出完全相同的结果。
工程上优先用 SVD 的两个理由:其一,d 很大时构造 d×d 协方差矩阵要 O(d²) 内存,而 SVD 可直接在 n×d 数据上做;其二,显式构造 AᵀA 会把条件数平方(第 2 章 2.3.4 节),病态数据下特征值会出现明显误差甚至负值——上面的 np.clip 就是给这类舍入负值打的补丁,SVD 路线不需要它。
与真题的关联
| 真题 | 考查角度 | 对应本章小节 |
|---|---|---|
【08-05 选择 Q6】1000×800 保留秩 50 的存储减少比例 | 存储量 k(m+n+1) 随秩线性增长;减少约 88.74% | 3.4.5 |
| 【09-02 选择 Q10】PCA 主成分数的选择依据 | 协方差矩阵特征值 = 该方向方差;按累计贡献率达 85%/95% 取 k | 3.5.2、3.5.3 |
【09-09 选择 Q2】A ∈ R^{n×d} 的协方差矩阵维度 | d×d,由特征数决定;与 n×n Gram 矩阵通过非零特征值联系 | 3.5.1(另见第 1 章 1.5.1) |
延伸阅读
- Gilbert Strang, Introduction to Linear Algebra, 第 5 版:第 6 章(特征值与特征向量)、第 7 章(SVD)——本章 3.4 节的构造顺序与 Strang 的讲法一致。
- Gene Golub & Charles Van Loan, Matrix Computations, 第 4 版:第 2.4 节(SVD 的存在性与唯一性)、第 8 章——想看奇异值的扰动界与数值算法时读这本。
- Lloyd N. Trefethen & David Bau, Numerical Linear Algebra:第 4~5 讲(SVD 的几何与代数)、第 31 讲(PCA)——对"单位球映成椭球"的几何解释最清楚;Eckart-Young 定理的原始论文见 Carl Eckart & Gale Young (1936), The approximation of one matrix by another of lower rank, Psychometrika,只有几页。