2. 线性代数基础回顾

奇异值分解并不是凭空出现的技巧,它建立在若干线性代数概念之上:向量空间给出“数据住在哪里”,内积与范数给出“如何度量相似与大小”,正交投影给出“如何用低维子空间逼近原数据”,矩阵分解则给出“如何把复杂变换拆成简单变换的乘积”。本节把这些概念串成一条可操作的线索,为后续理解 SVD 的几何意义和低秩近似打下基础。

向量空间:数据的容器与线性组合

向量空间是对一组向量做加法和数乘后仍封闭的集合。对机器学习与数据分析而言,最常用的是实数空间 R^n:一个样本可以看作 n 维列向量,一个数据集可以看作若干列向量组成的矩阵。向量空间的核心操作是线性组合:给定向量 v₁, v₂, …, v_k 和系数 c₁, …, c_k,组合 c₁v₁ + … + c_kv_k 仍在该空间中。

一组向量若存在不全为零的系数使其线性组合为零向量,则称它们线性相关;否则线性无关。线性无关向量组所能张成的最大集合构成基,基中向量的个数就是子空间的维数。这个“维数”概念直接对应后续低秩近似中的“秩”:矩阵的秩就是其列空间(或行空间)的维数,也就是数据中真正独立的方向数。

内积与范数:度量角度和长度

在 R^n 中,两个列向量 x 与 y 的标准内积定义为 ⟨x, y⟩ = xᵀy = Σᵢ xᵢyᵢ。内积刻画方向关系:当内积为零时两向量正交;内积越大,方向越一致。由内积诱导的 2-范数为 ‖x‖₂ = √(xᵀx),即欧氏长度。更一般地,p-范数定义为 ‖x‖ₚ = (Σᵢ |xᵢ|ᵖ)^(1/p),常用的还有 1-范数(绝对值之和)和 ∞-范数(最大绝对值)。

矩阵也有范数。Frobenius 范数 ‖A‖_F = √(Σᵢⱼ aᵢⱼ²) 把所有元素当作一个长向量来度量整体能量;谱范数 ‖A‖₂ 则是 A 的最大奇异值,衡量矩阵对向量长度的最大放大倍数。低秩近似中常用 Frobenius 范数衡量“近似误差有多大”,用谱范数衡量“最坏方向上的误差”。

正交投影:用低维子空间逼近数据

设 u 是单位向量(‖u‖₂ = 1),向量 x 在 u 方向上的正交投影为 proj_u(x) = (uᵀx)u。其中 uᵀx 是投影长度(带符号),u 给出方向。若有一组标准正交基 u₁, …, u_k(两两正交且长度为 1),则 x 在由它们张成的子空间上的投影为 Σᵢ (uᵢᵀx)uᵢ。

投影的残差 x − proj(x) 与子空间正交,这正是“最小二乘”和“最佳逼近”的几何来源:在给定子空间内,投影点是距离 x 最近的点。把这一思想推广到矩阵:若用一组标准正交向量 u₁, …, u_k 去逼近矩阵 A 的列空间,则每个列向量都向该子空间投影,误差由被丢弃方向上的分量决定。SVD 给出的正是这样一组“按重要性排序”的正交方向。

矩阵分解初步:把变换拆成可解释的步骤

矩阵分解是把一个矩阵写成若干结构更简单矩阵的乘积。常见分解包括:LU 分解(高斯消元)、QR 分解(正交基与上三角)、特征分解(方阵对角化)以及 SVD(任意矩阵)。以 QR 分解为例,A = QR,其中 Q 的列是标准正交基,R 是上三角矩阵,它把“构造正交基”的过程显式记录下来。特征分解 A = QΛQ⁻¹ 则要求 A 是方阵且可对角化,特征值可能为负或复数,方向不一定正交。

SVD 可以看作特征分解的“通用版本”:对任意 m×n 矩阵 A,有 A = UΣVᵀ,其中 U、V 的列分别是左、右奇异向量,均为标准正交基,Σ 为对角矩阵且对角元(奇异值)非负并按降序排列。与特征分解相比,SVD 不要求方阵、不要求可对角化,且两组基都正交,因此数值上更稳定,也更适合做降维与压缩。

从基础概念到奇异值分解的概念链路 向量空间 Rⁿ 线性组合 · 张成 · 基 维数 = 独立方向数 内积与范数 ⟨x,y⟩ = xᵀy ‖x‖₂ · ‖A‖_F · ‖A‖₂ 正交投影 proj_u(x) = (uᵀx)u 残差正交 · 最佳逼近 内积定义角度与相似度,范数定义长度与误差,投影把“逼近”变成可计算的几何操作 三者共同支撑“用低维正交方向表示数据”的思想 矩阵分解初步 A = LU(消元) A = QR(正交基 + 上三角) A = QΛQ⁻¹(方阵特征分解) 限制:方阵、可对角化、特征值可为负/复 奇异值分解 A = UΣVᵀ U、V 列均为标准正交基 Σ 对角元 σ₁ ≥ σ₂ ≥ … ≥ 0 适用于任意 m×n 矩阵 按奇异值截断 → 低秩近似 推广 秩 = 独立方向数;截断奇异值 = 保留最重要的正交方向,用 Frobenius 范数衡量近似误差

把概念落到一次可复现的小计算

下面用一个具体例子把上述概念串起来。设矩阵

A = [[3, 0],
     [4, 5]]

先看列空间与秩:两列 (3,4)ᵀ 与 (0,5)ᵀ 线性无关,因此 rank(A) = 2,列空间就是整个 R²。计算 Frobenius 范数:‖A‖_F = √(9 + 0 + 16 + 25) = √50 ≈ 7.071。再算 AᵀA:

AᵀA = [[3,4],[0,5]] · [[3,0],[4,5]]
    = [[25, 20],
       [20, 25]]

其特征值为 λ₁ = 45、λ₂ = 5,对应特征向量 (1,1)ᵀ/√2 与 (1,−1)ᵀ/√2。于是奇异值为 σ₁ = √45 ≈ 6.708、σ₂ = √5 ≈ 2.236,右奇异向量即上述两个单位特征向量。左奇异向量可由 uᵢ = Avᵢ/σᵢ 得到:u₁ ≈ (0.316, 0.949)ᵀ,u₂ ≈ (0.949, −0.316)ᵀ。验证 σ₁² + σ₂² = 45 + 5 = 50 = ‖A‖_F²,这与“奇异值平方和等于 Frobenius 范数平方”一致。

若只保留最大奇异值做秩 1 近似,则 A₁ = σ₁u₁v₁ᵀ,误差的 Frobenius 范数为 √(σ₂²) = σ₂ ≈ 2.236。这个误差不是随意估计,而是被丢弃奇异值的平方和开根号,这正是后续低秩近似误差公式的原型。通过这个例子可以看到:内积与范数负责度量,投影负责逼近,SVD 负责给出最优的正交方向组合。

做手算练习时,优先计算 AᵀA 或 AAᵀ 的特征分解来获得奇异值与一侧奇异向量,再用 uᵢ = Avᵢ/σᵢ 补全另一侧;注意对零奇异值不要做除法,对应方向需另行处理。
特征分解与 SVD 不可混用:特征值可能为负或复数,特征向量不一定正交;而奇异值非负、两侧奇异向量均为标准正交基。判断一个矩阵能否直接特征分解,要先确认它是方阵且可对角化。

本节的概念链条可以概括为:向量空间提供数据所在的空间与维数概念;内积与范数提供角度、长度和误差的度量工具;正交投影提供“在低维子空间中找最近点”的几何方法;矩阵分解把这些工具组织成可计算的分解形式,而 SVD 是其中对任意矩阵都适用、且两侧基都正交的通用分解。理解这条链路后,后续讨论奇异值的排序意义、截断误差和低秩近似时,就不会停留在公式记忆层面。