巷子深处的老面馆里有一台“万能整形机”:一团画着标准圆的生面团放进去,先被第一块转盘转到一个角度,再被两块压板沿横竖方向各压一遍,最后被第二块转盘转到另一个角度,出来就是一个歪着头的漂亮椭圆面团。店老板的独门秘籍是——世界上任何一种“把圆变成椭圆”的复杂变形,都能拆成“转一下、压一下、再转一下”这三步。奇异值分解(SVD)就是数学版的整形机说明书:它告诉我们,任意一个矩阵(一台变形机)都能拆成“旋转 × 拉伸 × 旋转”三个简单变换的乘积。更妙的是,拉伸的刻度(奇异值)从大到小排列,前几个就决定了变形的大致轮廓——这正是它能压缩图片、预测评分、给数据降维的秘密。读完这篇,你会亲手翻开这本说明书,看懂 SVD 的每一个旋钮。

岗位关联

SVD 是数据科学的地基:图像压缩、推荐系统的隐因子模型、PCA 特征降维,背后都是同一台“旋转—拉伸—旋转”机器。掌握它,你就读懂了 AI 里一大半矩阵运算的底层逻辑。

目录
  1. 可视化演示
  2. 几何直觉:旋转·拉伸·旋转
  3. 数学定义:A = UΣVᵀ
  4. 存在性与唯一性
  5. SVD 与特征分解的关系
  6. 截断 SVD 与低秩近似
  7. 三大应用:压缩、推荐与降维
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示系统处理流水线、实时性能指标曲线及多方案对比分析,包含数据流转、吞吐延迟监控与方案评估。

本节配有交互动效(进入视口后自动加载,约 3KB)。

系统可视化 处理流程:输入→处理→模型→输出 性能监控:实时指标 P=L×T

几何直觉:旋转·拉伸·旋转

想象整形车间里那台机器:第一块转盘负责把面团转到“合适的角度”,两块压板分别沿横、竖两个方向挤压面团,第二块转盘再把压好的形状转到“最终的角度”。数学里,一个矩阵 A 对空间中所有点的作用,正像一台这样的“变形机”——它把一个图形整体拉扯、扭转成另一个图形。问题来了:机器的说明书被撕了,我们怎么看穿它内部“转了多少度、压了多少倍”?

SVD 的答案简洁得令人惊叹:任意矩阵 A 都等价于“旋转 × 拉伸 × 旋转”三种简单变换的复合。两个旋转由正交矩阵承担——正交变换不改变向量的长度和夹角,只是把图形整体转动;中间的拉伸由对角矩阵承担,对角元素就是沿各主轴方向的拉伸倍数。几何上最直观的推论是:单位圆经过任意一个矩阵作用后,一定变成一个椭圆。椭圆的长短半轴方向就是“奇异向量”方向,长短半轴的长度就是“奇异值”。

所以,SVD 就是找回这台整形机三个旋钮刻度的说明书:先转到哪个角度(V),每个方向压多少(Σ),最后再转到哪个角度(U)。拿到这本说明书,你就握住了整个线性代数变形世界的“地形图”。

Avi=σiui\displaystyle A\mathbf{v}_i = \sigma_i \mathbf{u}_i
这个式子是 SVD 的“细胞级”描述:矩阵 A 把某个特殊方向 v_i 送出去,恰好落在另一个特殊方向 u_i 上,只是被拉长了 σ_i 倍。
  1. 右奇异向量 $\mathbf{v}_i$这是输入空间里的一个“标准方向”,好比面团上提前画好的刻度线,SVD 会挑出一组互相垂直的方向作为 v_i。
    vi∈Rn,V=[v1,v2,…,vn]\displaystyle \mathbf{v}_i \in \mathbb{R}^{n}, \quad V = [\mathbf{v}_1, \mathbf{v}_2, \dots, \mathbf{v}_n]
  2. 矩阵作用 $A\mathbf{v}_i$整形机这个“复杂变形”作用在 v_i 上,结果不会乱跑,而是恰好落在另一个标准方向 u_i 上,只是被拉长或压短了。
    A:Rn→Rm\displaystyle A: \mathbb{R}^{n} \to \mathbb{R}^{m}
  3. 奇异值 $\sigma_i$这个非负数就是压板的刻度,表示该方向的放大倍数;σ 越大,这个方向对最终形状的“贡献”越大。
    σ1≥σ2≥⋯≥0\displaystyle \sigma_1 \ge \sigma_2 \ge \dots \ge 0
  4. 左奇异向量 $\mathbf{u}_i$输出空间里与 v_i 一一对应的标准方向,构成“输入—输出”配对。
    ui=Aviσi\displaystyle \mathbf{u}_i = \frac{A\mathbf{v}_i}{\sigma_i}

数学定义:A = UΣVᵀ

现在把整形机的配方写成正式卡片。第一张卡记录第二块转盘的最终朝向,叫 U;第二张卡记录压板的刻度,叫 Σ;第三张卡记录第一块转盘的起始朝向,叫 V。把三张卡片按“先 V 再 Σ 再 U”的顺序贴在一起,就能复原整台机器的完整动作。

对任意一个 m×n 的矩阵 A(注意:不要求方阵,长方形也可以),SVD 都把它分解成三个因子的乘积:

习惯上,奇异值总是按大小降序排列(σ₁ ≥ σ₂ ≥ … ≥ 0),就像菜谱把最重要的配料写在最前面。有了这份三卡片配方,任何一台“变形机”都不再是黑箱,而是三个可单独检查、单独调节的简单零件。

Am×n=Um×m Σm×n Vn×nT\displaystyle A_{m\times n} = U_{m\times m}\,\Sigma_{m\times n}\,V_{n\times n}^{T}
公式右边是三个“简单零件”的拼装:U 和 V 是正交矩阵(只管旋转),Σ 是对角矩阵(只管拉伸)。
  1. 形状约定A 是 m×n 的任意矩形矩阵,三个因子按尺寸相乘后恰好还原成 m×n。
    Am×n=Um×m Σm×n Vn×nT\displaystyle A_{m \times n} = U_{m \times m}\,\Sigma_{m \times n}\,V_{n \times n}^{T}
  2. U 是左因子m×m 正交矩阵,列向量 u_i 两两垂直且长度为 1,即 UᵀU = I;它对应第三块“转盘”的最终朝向。
    UTU=Im\displaystyle U^{T}U = I_m
  3. Σ 是中间因子m×n 的“对角”矩阵,只有主对角线有值——这些值就是奇异值,按从大到小的顺序排队。
    Σ=diag(σ1,σ2,…,σmin⁡(m,n))\displaystyle \Sigma = \mathrm{diag}(\sigma_1, \sigma_2, \dots, \sigma_{\min(m,n)})
  4. Vᵀ 是右因子n×n 正交矩阵 V 的转置,V 的列 v_i 对应第一块“转盘”的起始朝向。
    VTV=In\displaystyle V^{T}V = I_n

存在性与唯一性

你拿着三张配方卡去找车间主任求证:是不是随便一团面都能进这台机器?主任拍着胸脯保证:任何面团都能整形,而且压板的刻度是唯一的。这就是 SVD 的存在性与唯一性定理——它保证我们永远不会“整不了形”,也永远不用担心“压板刻度”有歧义。

存在性的证明思路是“亲手造一台出来”。先看伴随矩阵 AᵀA——你可以把它理解为整形机的“影子账本”,记录这台机器对每个方向能量的放大情况。AᵀA 恰好是对称半正定矩阵,而对称矩阵一定有完整的正交特征基,于是我们可以先把它对角化:

关于唯一性:奇异值是唯一的(降序排列后逐个确定),但 U 和 V 并不唯一——你可以同时给某一列 uᵢ 和 vᵢ 翻个符号,等式依然成立;遇到重复的奇异值时,对应子空间甚至还能整体“转个身”。另外,矩阵的秩恰好等于非零奇异值的个数,这是判断矩阵“真实维度”的最可靠方法。就像同一块面团可以“先右转再左转”用两种配方整出同样的形状,但“压了多少”这份刻度表永远只有一份答案——这正是 SVD 能作为可靠地基的原因。

ATA=V ΣTΣ VT\displaystyle A^{T}A = V\,\Sigma^{T}\Sigma\,V^{T}
这一步是关键跳板:AᵀA 的特征分解自动给出 V 和奇异值的平方,再反推出 U。
  1. 构造对称矩阵AᵀA 是 n×n 的对称半正定矩阵,一定有正交特征基,具备“被拆解”的资格。
    ATA∈Rn×n\displaystyle A^{T}A \in \mathbb{R}^{n \times n}
  2. 正交对角化令 AᵀA 的特征分解为 VΛVᵀ,其中对角元全部 ≥ 0,把它们记作 σᵢ²。
    ATA=V diag(σ12,σ22,…,σn2) VT\displaystyle A^{T}A = V\,\mathrm{diag}(\sigma_1^2, \sigma_2^2, \dots, \sigma_n^2)\,V^{T}
  3. 反解左奇异向量对每个 σᵢ > 0,令 uᵢ = Avᵢ / σᵢ,可以验证这些 uᵢ 之间相互正交且长度为 1。
    ui=Aviσi  ⇒  UTU=Im\displaystyle \mathbf{u}_i = \frac{A\mathbf{v}_i}{\sigma_i} \;\Rightarrow\; U^{T}U = I_m
  4. 补全与验证若 uᵢ 凑不满 m 个,就用任意正交向量补齐成完整的 U;代回计算即可验证 A = UΣVᵀ 对任意矩阵都成立。
    U=[u1,u2,…,um]\displaystyle U = [\mathbf{u}_1, \mathbf{u}_2, \dots, \mathbf{u}_m]

SVD 与特征分解的关系

如果你以前学过特征分解 A = QΛQᵀ,可能会疑惑:这不也是“转—拉—转”吗?区别恰恰在“面团的形状”上。特征分解要求矩阵必须是方方正正的方块,而且还得“可对角化”;而 SVD 对任何形状的矩阵都来者不拒。可以这样记:特征分解是“限定款整形机”,SVD 是“全地形整形机”。

当矩阵恰好是对称的(A = Aᵀ,好比一块方方正正、纹理对称的豆腐),两台机器就统一了:特征分解给出 A = QΛQᵀ,而 SVD 中两个转盘可以共用同一个 Q,奇异值与特征值之间只差一个绝对值号。

所以当你面对一个“来路不明”的矩阵时,先别急着求特征值——特征分解随时可能“罢工”(矩阵不可对角化就完蛋了),但 SVD 永远不会。把 SVD 记成“全能版特征分解”,把特征分解记成“对称世界里的 SVD 特例”,两者的定位就再也不会混淆了。

A=VΣVT,σi=∣λi∣(A=AT)\displaystyle A = V \Sigma V^{T}, \qquad \sigma_i = |\lambda_i| \quad (A = A^{T})
对称矩阵的奇异值就是其特征值的绝对值;若再要求半正定,则 SVD 与特征分解完全一致。
  1. 对称矩阵可正交对角化A = Aᵀ 时,存在正交矩阵 Q 和实对角矩阵 Λ。
    A=QΛQT,Λ=diag(λ1,λ2,…,λn)\displaystyle A = Q\Lambda Q^{T}, \quad \Lambda = \mathrm{diag}(\lambda_1, \lambda_2, \dots, \lambda_n)
  2. 奇异值取绝对值因为 σᵢ² = λᵢ²,所以 σᵢ = |λᵢ|;特征值允许是负数,而奇异值永远非负。
    σi=λi2=∣λi∣\displaystyle \sigma_i = \sqrt{\lambda_i^2} = |\lambda_i|
  3. 半正定则完全等同若 A 半正定,λᵢ ≥ 0,此时 SVD 的三个因子与特征分解完全相同。
    A=QΣQT,Σ=Λ\displaystyle A = Q\Sigma Q^{T}, \quad \Sigma = \Lambda
  4. 一般矩阵无此特权非对称矩阵可能不可对角化,甚至特征值为复数,但 SVD 对它们依然成立。
    A=UΣVT  恒成立\displaystyle A = U\Sigma V^{T} \;\text{恒成立}

截断 SVD 与低秩近似

整形机有个“省时模式”:如果压板 1 把面团拉得很长、压板 2 只是轻轻碰一下,那赶时间时只按大压板,成品看起来也几乎一样。数学上对应一个惊人的事实——保留最大的前 k 个奇异值,就能抓住矩阵的大部分信息。把其余的奇异值直接丢弃,得到的矩阵叫截断 SVD:

这个“省时模式”为什么靠谱?因为有一条著名的 Eckart-Young 定理 保驾护航——在所有秩不超过 k 的矩阵中,A_k 是对 A 误差最小的近似:

实操中常用“能量占比”决定 k 取多大:保留前 k 个奇异值的能量占比为 (σ₁²+…+σₖ²)/(σ₁²+…+σᵣ²),一般选到 90% 或 95% 即可。而存储量从 mn 锐减到 k(m+n+1):矩阵越大、奇异值衰减越快,压缩比越惊人。用几笔画出轮廓,就不必描上千根汗毛——删掉微小奇异值等于删掉机器的细微划痕,留下的才是决定形状的主干。

Ak=∑i=1kσiuiviT=UkΣkVkT\displaystyle A_k = \sum_{i=1}^{k} \sigma_i \mathbf{u}_i \mathbf{v}_i^{T} = U_k \Sigma_k V_k^{T}
截断误差恰好等于“被丢弃奇异值的平方和”。奇异值衰减越快,丢掉的部分越小,近似就越准。
  1. F 范数把所有元素的平方求和再开方,用来衡量两个矩阵整体的“距离”。
    ∥A∥F=∑i=1m∑j=1naij2\displaystyle \left\|A\right\|_F = \sqrt{\sum_{i=1}^{m}\sum_{j=1}^{n} a_{ij}^2}
  2. 误差等于丢弃能量截断丢掉的信息量,正好是后面 r−k 个奇异值的平方和。
    ∑i=k+1rσi2\displaystyle \sum_{i=k+1}^{r} \sigma_i^2
  3. 最优性声明在全部秩 ≤ k 的矩阵里,A_k 把这个误差压到最小——这就是 Eckart-Young 定理的核心。
    Ak=arg⁡min⁡rank(B)≤k∥A−B∥F\displaystyle A_k = \arg\min_{\mathrm{rank}(B) \le k} \left\|A - B\right\|_F

三大应用:压缩、推荐与降维

整形机在三个车间同时开工:照相馆、超市和实验室。照相馆用它压缩照片、超市用它预测顾客喜好、实验室用它提取数据主干。三份生意共用同一台“旋转—拉伸—旋转”机器,这就是 SVD 在数据科学中的统治力。

车间一:图像压缩。 一张灰度图在计算机里就是一个 m×n 的矩阵。直接存储要 mn 个数;截断 SVD 只需保存 U_k(m×k)、σ_k(k 个)和 V_kᵀ(k×n),共 k(m+n+1) 个数。一张 1024×1024 的照片,k 取 50 时存储量只有原来的约 1/10,肉眼几乎看不出差别——因为自然图像的奇异值衰减极快,大信息量集中在前几个“大压板”上。

车间二:推荐系统。 把“用户—物品”评分表看成一个矩阵,SVD 将它分解成“用户潜在因子”U_kΣ_k 与“物品潜在因子”V_kᵀ。这两个低维因子分别概括了用户的偏好模式和物品的属性模式,二者点积就能预测用户没评过的物品分数。主流的矩阵分解型推荐算法(如 Funk SVD)正是沿着这条思路演化而来。

车间三:PCA 降维。 主成分分析的本质就是“对中心化数据做 SVD”:

三个车间,一台机器。以后你做 AI 时只要遇到“矩阵太大、评分太稀疏、特征太密”这三类烦恼,先别慌——想想这台“旋转—拉伸—旋转”的整形机,它总能帮你先压出主干、抖掉噪声。

X~=UΣVT,X~V=UΣ\displaystyle \tilde{X} = U\Sigma V^{T}, \qquad \tilde{X}V = U\Sigma
右奇异向量 V 的列就是主成分方向,投影得分恰为 UΣ,每个主成分的方差就是对应的 σᵢ²。
  1. 中心化数据X 是“样本数 × 特征数”矩阵,先让每列减去自己的均值,消除量纲偏移。
    X~=X−Xˉ\displaystyle \tilde{X} = X - \bar{X}
  2. 对中心化矩阵做 SVD得到三个因子,其中 V 的列就是数据变化最剧烈的主方向。
    X~=UΣVT\displaystyle \tilde{X} = U\Sigma V^{T}
  3. 投影得主成分右乘 V 把数据投到主方向上,得到主成分得分矩阵,恰等于 UΣ。
    X~V=UΣ\displaystyle \tilde{X}V = U\Sigma
  4. 方差解释率第 j 个主成分的方差就是 σⱼ²,能量占比刻画降维后保留了百分之多少的信息。
    var(PCj)=σj2∑iσi2\displaystyle \mathrm{var}\left(\mathrm{PC}_j\right) = \frac{\sigma_j^2}{\sum_{i} \sigma_i^2}

AI 应用场景

图像压缩与加速传输

阶段:数据预处理与存储优化

解决的问题:深度学习训练集动辄几十 GB 图片,存储和传输成本极高。传统做法是直接缩小分辨率,无差别地丢掉细节;SVD 则按“能量导向”压缩——先分解,再只保留最大的 k 个奇异值重建,通过调节 k 在画质与体积之间自由滑动。

具体案例:医疗影像团队对 512×512 的 CT 切片做截断 SVD(k=30),重建后医生几乎看不出差别,存储量降为原来的约 12%,远程会诊传输时间缩短近 90%。

推荐系统的隐因子建模

阶段:特征建模与模型训练

解决的问题:用户评分矩阵 90% 以上是缺失值,直接算相似度噪声极大。SVD 的变体(Funk SVD、SVD++)把矩阵分解为“用户隐因子”与“物品隐因子”的低维乘积,用点积预测缺失评分,把稀疏矩阵问题转化为低秩拟合问题。

具体案例:Netflix 大奖赛的经典方案——把用户—电影评分矩阵分解为 k≈20 的隐因子模型,预测误差比全局均值基线下降 15% 以上,直接催生了现代推荐系统的标准范式。

PCA 特征降维

阶段:特征工程与数据降维

解决的问题:高维特征(如 1000 维像素)会带来维度灾难和过拟合。PCA 对中心化数据做 SVD,取右奇异向量作为投影方向,用奇异值能量占比自动决定保留多少维。

具体案例:人脸识别 pipeline 中,把 4096 维像素特征降到 100 维主成分后再训练分类器,准确率几乎不降,训练速度却提升了约 10 倍。

Python 演示

python30 行
import numpy as npfrom numpy.linalg import svd  def compress_image(gray, s, U, Vt, k):    """用截断SVD压缩灰度图, 返回重建图像与压缩率"""    U_k = U[:, :k]    s_k = s[:k]    Vt_k = Vt[:k, :]    approx = (U_k * s_k) @ Vt_k    stored = U_k.size + s_k.size + Vt_k.size    return approx, stored / gray.size  def main():    rng = np.random.default_rng(42)    rows, cols = np.mgrid[0:200, 0:200]    gray = 128 + 60 * np.cos(rows / 25.0) + 40 * np.sin(cols / 30.0)    gray = gray + rng.normal(0, 8, gray.shape)    U, s, Vt = svd(gray, full_matrices=False)    total_energy = np.sum(s ** 2)    for k in (5, 20, 50):        approx, ratio = compress_image(gray, s, U, Vt, k)        mse = np.mean((gray - approx) ** 2)        energy = np.sum(s[:k] ** 2) / total_energy        print(f"k={k:>3d} 压缩率={ratio:5.1%} MSE={mse:6.2f} 能量占比={energy:5.1%}")  if __name__ == "__main__":    main()
目的:对一张合成灰度图像做截断 SVD,观察保留不同数量奇异值时压缩率、重建误差与能量占比的变化规律。
  1. U, s, Vt = svd(gray, full_matrices=False)用“经济模式”做 SVD,避免生成巨大的零块,节省一半内存
  2. gray = 128 + 60 * np.cos(rows / 25.0) + 40 * np.sin(cols / 30.0)构造一块光滑渐变图,奇异值衰减快,便于观察低秩近似的效果
  3. U_k = U[:, :k]截断:只取前 k 个左奇异向量,其余列直接丢弃
  4. approx = (U_k * s_k) @ Vt_k重建图像:利用 NumPy 广播把每个奇异值乘到对应列上,再与右奇异向量矩阵相乘
  5. stored = U_k.size + s_k.size + Vt_k.size压缩后的存储量:三段有效数据相加,远比原图像 mn 小
  6. energy = np.sum(s[:k] ** 2) / total_energy能量占比:用奇异值平方和衡量保留了原矩阵多少信息

常见误区

误区“我学过 A=QΛQᵀ 的分解,这不就是 SVD 换个名字吗?反正都是把一个方阵拆成三个矩阵相乘。”

正解两者有本质区别:特征分解只对“可对角化的方阵”成立,特征值可以是负数甚至复数,矩阵不可对角化时就彻底失效;而 SVD 对任意形状的 m×n 矩阵都成立,奇异值永远非负有序。可以把 SVD 理解成“特征分解的超级加强版”——它把特征分解能做的事推广到了所有矩阵上。

为何常见:两者形式太像(都是三个矩阵相乘、都含正交矩阵和对角矩阵),且当 A 是对称半正定矩阵时两者完全一致,初学者很容易以偏概全。

误区“奇异值是矩阵的特征值吧?反正都是对角线上的数,数值应该一样。”

正解奇异值是 AᵀA(或 AAᵀ)的特征值开平方,而不是 A 的特征值。即使 A 是方阵,两者也可能完全不同,例如 A=[[0,1],[0,0]] 的特征值全是 0,奇异值却是 1 和 0。只有对称半正定时奇异值才恰好等于特征值。

为何常见:SVD 的 Σ 和特征分解的 Λ 长得一模一样,都是对角矩阵,“对角线上的数就是特征值”的惯性思维太强。

误区“想压缩矩阵,把里面数值小的元素直接改成 0 不就行了?跟截断 SVD 效果差不多。”

正解完全不是一回事。直接清零小元素是按“元素坐标”去噪,矩阵的秩几乎不变,信息是零散分布的;截断 SVD 是按“方向的重要性”去噪,用整个秩-k 矩阵在最小二乘意义下逼近原矩阵,而且有 Eckart-Young 定理保证它在所有秩-k 矩阵中误差最小。

为何常见:人们习惯认为“数值小 = 不重要”,把矩阵元素的大小与奇异值代表的方向重要性混为一谈。

误区“矩阵分解嘛,像 LU 分解一样,U、Σ、V 都是唯一的,谁算都一样。”

正解唯一的是降序排列的奇异值;U 和 V 不唯一——任意一列可以同时翻符号,遇到重复奇异值时对应子空间甚至能整体旋转。所以不同库(NumPy、MATLAB)算出的 U/V 可能不同,但重建出的 A 完全一致。

为何常见:教材常强调“奇异值唯一”,读者容易把“奇异值唯一”误扩成“整个分解唯一”;数值计算中 U/V 的表现看起来稳定,掩盖了符号与退化自由度。

面试题

Q1. 任意矩阵 A(m×n)的奇异值分解形式是?

单选题 · easy

  • A.A = UΣV^T← 正确答案
  • B.A = UΛU^T
  • C.A = QΛQ^T
  • D.A = LDL^T

答案:A。A=UΣVᵀ 是 SVD 的标准形式,U、V 为正交矩阵,Σ 为对角矩阵。UΛUᵀ 与 QΛQᵀ 是特征分解(要求方阵可对角化),LDLᵀ 是 Cholesky 类分解(要求正定),都不普适。

Q2. SVD 中的奇异值描述的是?

单选题 · easy

  • A.矩阵的旋转角度
  • B.主轴的拉伸倍数← 正确答案
  • C.矩阵的行列式
  • D.矩阵的迹大小

答案:B。奇异值就是整形机压板的刻度,表示沿各主方向被拉伸或压缩的倍数。旋转角度由 U、V 决定;行列式是压缩前后体积之比,迹是特征值之和,都与奇异值的“拉伸量”定位不同。

Q3. 矩阵 A 的非零奇异值个数等于?

单选题 · mid

  • A.矩阵的列数
  • B.矩阵的行数
  • C.非零奇异值数← 正确答案
  • D.特征值的个数

答案:C。非零奇异值的个数恰好等于矩阵的秩 rank(A),这是 SVD 最可靠的“测维”手段。列数、行数只是形状维度;特征值个数只在方阵中有意义,且不可对角化时会“名存实亡”。

Q4. 右奇异向量 V 的列是哪个矩阵的特征向量?

单选题 · mid

  • A.A A^T 的特征向量
  • B.A^T A 的特征向量← 正确答案
  • C.A + A^T 的特征向量
  • D.A - A^T 的特征向量

答案:B。由 AᵀA = VΣᵀΣVᵀ 可知,V 的列是 AᵀA 的特征向量。对应地,AAᵀ 的特征向量构成 U 的列。A±Aᵀ 是构造出的对称矩阵,与奇异向量没有直接关系。

Q5. 截断 SVD 在所有秩-k 矩阵中近似误差最小的依据是?

单选题 · mid

  • A.柯西收敛性准则
  • B.最优低秩近似定理← 正确答案
  • C.拉格朗日乘子法
  • D.达朗贝尔判别法

答案:B。这就是 Eckart-Young(最优低秩近似)定理:在 Frobenius 范数下,截断 SVD 是所有秩不超过 k 的矩阵中误差最小的近似。拉格朗日乘子法是求解约束优化的工具,柯西准则和达朗贝尔判别法属于级数收敛性,与本问题无关。

Q6. 关于奇异值与矩阵谱范数的关系,正确的是?

单选题 · hard

  • A.最大奇异值等于谱范数← 正确答案
  • B.最小奇异值等于谱范数
  • C.奇异值之和等于谱范数
  • D.奇异值之积等于谱范数

答案:A。谱范数(向量作用的最大放大倍数)恰好等于最大奇异值 σ₁。最小奇异值衡量的是最小放大倍数;奇异值之和是核范数;奇异值之积的绝对值等于行列式。三者都不是谱范数。

Q7. 下列哪个不是 SVD 的典型应用?

单选题 · easy

  • A.图像数据压缩
  • B.推荐系统建模
  • C.哈希碰撞检测← 正确答案
  • D.主成分分析

答案:C。哈希碰撞检测属于密码学与数据结构领域,与矩阵分解无关。图像压缩、推荐系统的矩阵分解模型、PCA 降维都是 SVD 的经典落地场景。

Q8. 关于奇异值分解,下列说法正确的有?

多选题 · mid

  • A.任意实矩阵都有 SVD← 正确答案
  • B.奇异值一定为非负数← 正确答案
  • C.只有方阵能做 SVD
  • D.秩等于非零奇异值数← 正确答案

答案:ABD。SVD 对任意形状的实矩阵都成立(A 对);奇异值作为“拉伸倍数”必然非负(B 对);秩 = 非零奇异值个数(D 对)。C 错,长方形矩阵同样能做 SVD,这正是它的普适之处。

Q9. 关于 SVD 与特征分解的关系,正确的有?

多选题 · hard

  • A.A^TA 的特征向量是 V← 正确答案
  • B.AA^T 的特征向量是 U← 正确答案
  • C.对称阵奇异值取特征值绝对值← 正确答案
  • D.所有矩阵都可以特征分解

答案:ABC。由 AᵀA=VΣᵀΣVᵀ、AAᵀ=UΣΣᵀUᵀ 知 A、B 对;对称矩阵时 σᵢ=|λᵢ|,C 对。D 错:不可对角化的矩阵(如 Jordan 块)没有完整的特征分解,但 SVD 依然存在。

Q10. 关于截断 SVD 与低秩近似,正确的有?

多选题 · hard

  • A.截断 SVD 得到秩 k 矩阵← 正确答案
  • B.弗罗贝尼乌斯范数下最优← 正确答案
  • C.截断后存储量显著下降← 正确答案
  • D.奇异值衰减越慢压缩越好

答案:ABC。截断 SVD 只保留 k 个秩 1 零件,和严格为 k 个非零奇异值,故秩 ≤ k(A 对);Eckart-Young 定理保证 F 范数下最优(B 对);存储量由 mn 变为 k(m+n+1)(C 对)。D 反了:奇异值衰减越快,说明信息越集中在前几个方向,压缩效果才越好。