Lecture 29: Singular Value Decomposition

目录 · ← l26 · l28 →

Lecture 29: Singular Value Decomposition

内容要点总览(本讲地图)

                    SVD: A = U Sigma V^T
                            |
      +---------------------+---------------------+
      |                     |                     |
  定义与存在性          几何图像              计算机制
  (任意 m x n 都有)    (球 -> 椭球)       (A^T A -> V, sigma, u = Av/sigma)
      |                     |                     |
      +---------------------+---------------------+
                            |
      +---------------------+---------------------+
      |                     |                     |
  四子空间正交基       秩 1 展开与逼近         应用
  (C(A), N(A^T),       A = sum sigma_i u_i     (压缩, PCA, kappa,
   C(A^T), N(A),          v_i^T, Eckart-Young)   伪逆, 谱范数, det)
   Av_i = sigma_i u_i)         |                     |
      |                       |                     |
  课程顶点(讲次10大图      最佳 k 秩逼近        讲次 31, 33
   的最终答案)            误差 = sigma_{k+1}      的接口

阅读建议:几何直觉(第 2 节)→ 算法六步(第 3 节)→ 手算示例 1(务必自己动手算一遍)→ 四子空间图(第 4 节)→ 秩 1 展开。只要把示例 1 的每一步算穿,SVD 就再没有秘密。

三条”必须背下来”的式子(本讲的全部枢纽): \(A\mathbf v_i = \sigma_i\mathbf u_i,\qquad \sigma_i = \sqrt{\lambda_i(A^{\mathsf T}A)},\qquad A = \sum_{i=1}^{r}\sigma_i\mathbf u_i\mathbf v_i^{\mathsf T}.\) 第一条是几何(正交到正交、只伸缩),第二条是算法(怎么算出来),第三条是结构(怎么用、怎么逼近)。本讲余下所有内容都是这三条的展开与推论。

记号约定(全讲统一,请勿混用):$A$ 为 $m\times n$,$r = \mathrm{rank}(A)$;$\mathbf u_i\in\mathbb R^m$(长度 $m$,共 $m$ 个),$\mathbf v_i\in\mathbb R^n$(长度 $n$,共 $n$ 个);$\sigma_i$ 只有 $\min(m,n)$ 个,其中前 $r$ 个为正、按降序排列;$U$ 是 $m\times m$,$V$ 是 $n\times n$,$\Sigma$ 是 $m\times n$。$A^{\mathsf T}$ 表示转置。

概述

本讲是整个 18.06 的高潮。前面我们学过 $A = LU$(消元)、$A = QR$(正交化)、$A = S\Lambda S^{-1}$(对角化)。前三个分解都有前提:$A = S\Lambda S^{-1}$ 只对方阵、而且要有足够多的线性无关特征向量。本讲的 SVD(Singular Value Decomposition,奇异值分解) 把这一切统一起来:

任意 $m \times n$ 实矩阵 $A$(不限方阵、不限秩、不要求可对角化)都可以写成 \(A = U\Sigma V^{\mathsf T},\) 其中 $U$ 是 $m\times m$ 正交矩阵,$V$ 是 $n\times n$ 正交矩阵,$\Sigma$ 是 $m\times n$ 的”对角”矩阵,对角线上是 $\sigma_1 \ge \sigma_2 \ge \cdots \ge \sigma_{\min(m,n)} \ge 0$。

SVD 回答的问题是:任意一个线性变换,最本质地看,到底在做什么? 答案是三件事的空前简单的组合:换一组正交方向($V^{\mathsf T}$)→ 沿坐标轴拉伸($\Sigma$)→ 再换一组正交方向($U$)。它给出四个基本子空间(讲次 10 的”大图”)最完美的标准正交基,也是图像压缩、PCA、数据降维、数值稳定性分析的统一语言。

核心概念的几何直觉

奇异值分解 $A = U\Sigma V^{\mathsf T}$

  • 定义与目的:设 $A$ 是 $m\times n$ 实矩阵,$\mathrm{rank}(A) = r$。则存在正交矩阵 $U$($m\times m$)与 $V$($n\times n$),使 $A = U\Sigma V^{\mathsf T}$,其中 \(\Sigma = \begin{bmatrix} \sigma_1 & & & \\ & \sigma_2 & & \\ & & \ddots & \\ & & & \sigma_{\min(m,n)} \end{bmatrix}\ \ (\text{超出部分为 }0),\) 且 $\sigma_1 \ge \sigma_2 \ge \cdots \ge \sigma_r > 0$,$\sigma_{r+1} = \cdots = \sigma_{\min(m,n)} = 0$。
    • $U$ 的列向量 $\mathbf u_1,\dots,\mathbf u_m \in \mathbb R^m$ 叫左奇异向量(left singular vectors)
    • $V$ 的列向量 $\mathbf v_1,\dots,\mathbf v_n \in \mathbb R^n$ 叫右奇异向量(right singular vectors)
    • $\sigma_i$ 叫奇异值(singular values)

    等价地,把上式右乘 $V$(用 $V^{\mathsf T}V = I$)得到最本质的三条关系: \(A\mathbf v_i = \sigma_i \mathbf u_i \qquad (i = 1,\dots,r), \qquad A\mathbf v_i = \mathbf 0 \qquad (i > r).\) 这三条就是 SVD 的全部内容。它说的是:$A$ 把 $V$ 的一组正交方向,原样地、不扭曲地映成 $U$ 的一组正交方向,只做伸缩,伸缩倍数就是 $\sigma_i$。

  • 几何直觉(它在空间中是什么样子?):任何矩阵都”怕”一般的输入方向——给一个随机向量 $\mathbf x$,$A\mathbf x$ 的长度和方向都看不出规律。但每个矩阵都有一组特殊方向,沿着它们矩阵只做纯粹的拉伸,不做旋转。把这些方向找出来,矩阵就”变成”了对角矩阵。

  • 具体示例:取 $A = \begin{bmatrix} 3 & 0 \\ 4 & 5\end{bmatrix}$。它的 SVD 是 \(U = \frac{1}{\sqrt{10}}\begin{bmatrix} 1 & 3 \\ 3 & -1\end{bmatrix},\quad \Sigma = \begin{bmatrix} 3\sqrt 5 & 0 \\ 0 & \sqrt 5\end{bmatrix},\quad V = \frac{1}{\sqrt 2}\begin{bmatrix} 1 & 1 \\ 1 & -1\end{bmatrix}.\) 验算 $A\mathbf v_1 = \sigma_1\mathbf u_1$:$\mathbf v_1 = \frac{1}{\sqrt2}[1,1]^{\mathsf T}$,$A\mathbf v_1 = \frac{1}{\sqrt2}[3,9]^{\mathsf T} = \frac{3}{\sqrt2}[1,3]^{\mathsf T}$,而 $\sigma_1\mathbf u_1 = 3\sqrt5\cdot\frac{1}{\sqrt{10}}[1,3]^{\mathsf T} = \frac{3}{\sqrt2}[1,3]^{\mathsf T}$。两边完全一样。✓

几何图像:单位圆 → 椭圆

矩阵作为线性变换,最漂亮的刻画就是看它把单位球变成什么。SVD 说:单位球一定被变成一个椭球,而且椭球的半轴长恰好是奇异值半轴方向恰好是左奇异向量

   BEFORE: x-y 平面上的单位圆            AFTER: A 作用后的椭圆(u1-u2 平面)

            y                                     u2
            ↑                                      ↑
        .....|.....                            ....|....
      ..     |     ..                       ...    |    ...
     .       |       .                    ..       |       ..
    .        |        .        A         .         |         .
 ---+--------+--------+---> x   ===>   ---+---------+---------+---> u1
    .        |        .                  .         |         .
     .       |       .                    ..       |       ..
      ..     |     ..                       ...    |    ...
        .....|.....                            ....|....
            |                                      |
                                                    
   所有方向长度都是 1              半轴长 = sigma1(沿 u1 方向,最长)
                                    半轴长 = sigma2(沿 u2 方向,最短)
                                    圆上互相垂直的 v1, v2  -->  椭圆上互相垂直的 sigma1*u1, sigma2*u2

   对 A = [[3,0],[4,5]]:  sigma1*u1 = 3*sqrt(5) * (1/sqrt(10))[1,3] = (3/sqrt2)[1,3]
                          sigma2*u2 =   sqrt(5) * (1/sqrt(10))[3,-1] = (1/sqrt2)[3,-1]

把 $A = U\Sigma V^{\mathsf T}$ 读成”三步动作”

矩阵乘法从右往左作用(讲次 1、30 的观点:矩阵就是线性变换)。$A = U\Sigma V^{\mathsf T}$ 说,$A$ 这个变换可以拆成三个极简单的动作依次执行:

   输入 x  ----->  V^T x  ----->  Sigma (V^T x)  ----->  U (Sigma V^T x) = A x
             (1) 旋转/反射    (2) 沿坐标轴伸缩      (3) 旋转/反射

   (1) V^T 是正交矩阵: 把标准正交基 e1,e2 转到 v1,v2 —— 只转动,不拉伸,长度不变
   (2) Sigma 是对角矩阵: 第 i 个坐标乘 sigma_i —— 不转动,只按坐标轴拉伸
   (3) U 是正交矩阵: 把结果再从 "伸缩用坐标轴" 转到 u1,u2 方向 —— 又只转动

   关键点: (1) 我们主动选 v1,v2 作为"新坐标轴",使得 (2) 里 A 恰好只做对角拉伸。
           这组"让 A 变对角的坐标轴"就是右奇异向量,拉伸倍数就是奇异值。

   展开后的等价陈述(最本质的两条):
        A v_i = sigma_i u_i     (i = 1..r)     -- 一组正交方向映到另一组正交方向
        A v_i = 0              (i > r)         -- 零空间方向被压扁

   Sigma 的形状随 m, n 变化("对角"仅指非零元只出现在 (i,i) 位置):
        m = n:  [s1 0 ]        m > n:  [s1 0 ]       m < n:  [s1 0 0]
                [0 s2 ]                [0 s2 ]               [0 s2 0]
                                       [0  0 ]     (n-m 列零)
                                (m-n 行零)

关键结论:单位球 $\{\mathbf x : \vert \mathbf x\vert = 1\}$ 的像是一个椭球,其半轴长为 $\sigma_1,\dots,\sigma_r$,半轴方向为 $\mathbf u_1,\dots,\mathbf u_r$。$\sigma_1$ 就是 $A$ 能拉出的最长长度,也就是 $\max_{\vert \mathbf x\vert =1}\vert A\mathbf x\vert $ —— 这正是谱范数 $\vert A\vert _2$ 的定义(见”应用”一节)。

特征值 vs 奇异值:两种”特殊方向”

  • 特征值问的是:哪些方向方向不变,只有 $A\mathbf x = \lambda\mathbf x$?
    • 缺点:这样的方向可能一个都不存在(如实数域下的旋转矩阵 $\begin{bmatrix}0&-1\\1&0\end{bmatrix}$,特征值是 $\pm i$),而且非对称矩阵的特征向量一般不正交
  • 奇异值问的是:哪些方向被拉得最长?$A\mathbf v_i = \sigma_i\mathbf u_i$,输入方向 $\mathbf v_i$ 与输出方向 $\mathbf u_i$ 允许不同,代价是换来两个正交组。
    • 优点:总是存在,总是实数,非负,且 $\mathbf v_i$ 之间正交、$\mathbf u_i$ 之间正交。这就是 SVD 比对角化”强”的根本原因。

对比表格:

                    特征值分解 A = S Λ S^{-1}            奇异值分解 A = U Σ V^T
  适用矩阵          方阵,且可对角化(需 n 个无关特征向量)   任意 m x n 矩阵,无条件
  向量关系          A x = lambda x(输入=输出方向)        A v_i = sigma_i u_i(输入≠输出)
  正交性            S 一般不正交(除非 A 对称/正规)        U, V 一定正交
  数值/实数性       特征值可为负、可为复数                 奇异值一定非负实数
  存在性            可能失败(如 [[1,1],[0,1]] 缺特征向量) 永远不会失败

$\sigma_i$ 与 $A^{\mathsf T}A$、$AA^{\mathsf T}$ 的关系(这是全部计算的基础)

把 $A = U\Sigma V^{\mathsf T}$ 代入两个”Gram 矩阵”:

\[A^{\mathsf T}A = V\Sigma^{\mathsf T}U^{\mathsf T}U\Sigma V^{\mathsf T} = V(\Sigma^{\mathsf T}\Sigma)V^{\mathsf T},\qquad AA^{\mathsf T} = U(\Sigma\Sigma^{\mathsf T})U^{\mathsf T}.\]

注意 $\Sigma^{\mathsf T}\Sigma$ 是 $n\times n$ 对角矩阵,对角元是 $\sigma_1^2,\dots,\sigma_{\min}^2$ 后面补 0(若 $n > m$ 则补 $n-m$ 个 0);$\Sigma\Sigma^{\mathsf T}$ 是 $m\times m$ 对角矩阵,对角元是 $\sigma_1^2,\dots,\sigma_{\min}^2$ 后面补 0(若 $m > n$ 则补 $m-n$ 个 0)。于是:

  • $A^{\mathsf T}A$ 是 $n\times n$ 对称半正定矩阵(讲次 25),它可以正交对角化,而 $V$ 正是它的正交特征向量矩阵,对角矩阵 $\Sigma^{\mathsf T}\Sigma$ 的对角元是它的特征值: \(\boxed{\ \sigma_i = \sqrt{\lambda_i(A^{\mathsf T}A)},\qquad \mathbf v_i \text{ 是 } A^{\mathsf T}A \text{ 的单位特征向量}.\ }\) 因为 $A^{\mathsf T}A$ 半正定($\mathbf x^{\mathsf T}A^{\mathsf T}A\mathbf x = \vert A\mathbf x\vert ^2 \ge 0$),它的特征值 $\lambda_i \ge 0$,开方合法。
  • 同理 $AA^{\mathsf T}$ 是 $m\times m$ 对称半正定,$U$ 是它的正交特征向量矩阵,特征值同样是 $\sigma_i^2$: \(AA^{\mathsf T}\mathbf u_i = \sigma_i^2\mathbf u_i.\)
  • 两个矩阵的非零特征值完全一样,都是 $\sigma_1^2,\dots,\sigma_r^2$(各 $r$ 个),剩下的都是 $0$。因为 $\mathrm{rank}(A^{\mathsf T}A) = \mathrm{rank}(A) = \mathrm{rank}(AA^{\mathsf T})$(讲次 10 的”行秩 = 列秩”!)。这是行秩等于列秩的又一个独立证明
  • 若已知 $\mathbf v_i$ 与 $\sigma_i \ne 0$,则 \(\boxed{\ \mathbf u_i = \frac{A\mathbf v_i}{\sigma_i}.\ }\) 推导:$A\mathbf v_i = \sigma_i \mathbf u_i$,两边除以 $\sigma_i$。这个式子说明左奇异向量不必单独求,它自动就是 $A\mathbf v_i$ 归一化的结果。

SVD 不唯一:符号与重奇异值的自由度(做题必须知道)

$A = U\Sigma V^{\mathsf T}$ 中的 $U,\Sigma,V$ 不是唯一的

  • 符号自由:把某一对 $(\mathbf u_i,\mathbf v_i)$ 同时取负,乘积 $\sigma_i\mathbf u_i\mathbf v_i^{\mathsf T}$ 不变(两个负号相乘抵消),所以 $A$ 不变。因此”$\mathbf u_1$ 取哪个方向”没有绝对答案,只要和 $\mathbf v_1$ 配对一致就行。示例 2 里 $V = I$ 只是一种方便的选择。
  • 重奇异值自由:若 $\sigma_i = \sigma_{i+1}$,则对应的 $\mathbf v_i,\mathbf v_{i+1}$ 可以在它们张成的二维子空间里任意旋转,$\mathbf u_i,\mathbf u_{i+1}$ 同步旋转,$A$ 仍不变(示例 2 中 $\sigma_1 = \sigma_2 = \sqrt2$,$A^{\mathsf T}A = 2I$,任意标准正交基都行)。几何上:单位圆被映成,圆没有”最长半轴”,方向无从指定。
  • 零奇异值自由:$N(A)$ 与 $N(A^{\mathsf T})$ 的基可以任意选取(示例 2 的 $\mathbf u_3 = [0,0,1]^{\mathsf T}$ 只是最方便的那一个)。
  • 不变的量:奇异值本身 $\sigma_1,\dots,\sigma_r$ 唯一确定(它们由 $A$ 唯一决定,是 $A$ 的”指纹”);$C(A)$、$N(A)$ 等子空间也唯一确定(只是基不唯一)。所以判断题问”$\sigma_i$ 是多少”“秩是多少”总有唯一答案;问”$\mathbf u_1$ 是多少”必须接受符号/旋转的等价类。 答题时最好写出验证($U^{\mathsf T}U = I$、$U\Sigma V^{\mathsf T} = A$),而不纠结于”标准答案”长什么样。

SVD 与 QR:一个重要对比

QR(讲次 17)和 SVD 都给出正交基,但目标不同:

   A = Q R          Q 的列是 C(A) 的一组标准正交基(Gram-Schmidt 得到,依赖列的先后顺序)
                    R 是上三角,不是对角 —— 在 Q 的基下 A 仍然"耦合",没被对角化

   A = U Sigma V^T  U 的列是 C(A) 的"最优"标准正交基(按拉伸大小排序,即 u1 最重要)
                    V 的列是 C(A^T) 的标准正交基,与 U 逐对配对
                    Sigma 是对角 —— 在正确的两组基下 A 彻底对角化

   代价: QR 便宜(约 2mn^2 运算),SVD 贵得多;收获: SVD 给出谱信息(sigma_i)、正交两组基、最佳低秩逼近

计算步骤与手算演示

算法:$2\times 2$(以及一般 $m\times n$)的 SVD 六步法

  1. 计算 $A^{\mathsf T}A$($n\times n$ 对称半正定)。
  2. 求 $A^{\mathsf T}A$ 的特征值 $\lambda_1 \ge \lambda_2 \ge \cdots \ge \lambda_n \ge 0$。
    • $2\times2$ 用迹与行列式最快:$\lambda^2 - \mathrm{tr}(A^{\mathsf T}A)\lambda + \det(A^{\mathsf T}A) = 0$。
    • $3\times3$ 先试 $\det(A^{\mathsf T}A - \lambda I) = 0$,或先找一眼能看出的特征向量(如某行/列全零时标准基向量常常就是特征向量)。
    • 因为 $\mathrm{tr}(A^{\mathsf T}A) = \sum_{i,j}a_{ij}^2 = \vert A\vert _F^2$,所以全部特征值之和 = $\vert A\vert _F^2$,这是一条极好的自查式(示例 1:$45 + 5 = 50 = \vert A\vert _F^2$ ✓)。另一条自查:$\prod\lambda_i = \det(A^{\mathsf T}A) = (\det A)^2$(方阵)。
  3. 求对应的标准正交特征向量 $\mathbf v_1,\dots,\mathbf v_n$(不同特征值自动正交;重特征值内部用 Gram–Schmidt 挑一组正交的,自由度任意)。它们构成 $V$。
  4. 令 $\sigma_i = \sqrt{\lambda_i}$,按降序排列,填入 $\Sigma$($m\times n$ 形状,多余位置填 0)。
  5. 对每个 $\sigma_i \ne 0$,令 $\mathbf u_i = A\mathbf v_i/\sigma_i$(自动单位长、自动正交)。若 $r < m$,再补 $m - r$ 个与已有 $\mathbf u$ 正交的单位向量(一般取 $N(A^{\mathsf T})$ 的基,可用 Gram–Schmidt 或直接观察),凑满 $U$ 的 $m$ 列。
    • 补列的小技巧:若 $r < m$,往往能”看”出 $N(A^{\mathsf T})$ 的基(解 $A^{\mathsf T}\mathbf y = \mathbf 0$),再对它做 Gram–Schmidt(讲次 17)就得到正交补的基。
    • 同理,如果某些 $\lambda_i = 0$(即 $r < n$),$\mathbf v_{r+1},\dots,\mathbf v_n$ 本身就是 $N(A)$ 的标准正交基,不必另求。
  6. 拼装 $U$、$\Sigma$、$V$,并回代验证 $U\Sigma V^{\mathsf T} = A$。

【计算机制解说】为什么”求 $A^{\mathsf T}A$ 的特征向量”能给出 $V$? 因为 $A^{\mathsf T}A = V(\Sigma^{\mathsf T}\Sigma)V^{\mathsf T}$ 本身就是 $A^{\mathsf T}A$ 的正交对角化式。$A^{\mathsf T}A$ 是对称矩阵,谱定理(讲次 25)保证它一定能被正交对角化,且特征值全 $\ge 0$。对比之下,直接对 $A$ 求特征值会遇到”可能无实特征向量、特征向量不正交”的麻烦。SVD 把关于 $A$ 的困难问题,转化成了关于对称矩阵 $A^{\mathsf T}A$ 的容易问题 —— 这就是整个算法的灵魂。代价是”开了平方”,所以特征值 $\lambda_i$ 与奇异值 $\sigma_i$ 并不是同一个东西。

【计算机制解说(数值版)】理论上”$\sigma_i = \sqrt{\lambda_i(A^{\mathsf T}A)}$”是定义,但工业代码从不真的去算 $A^{\mathsf T}A$,原因是精度:$A^{\mathsf T}A$ 的条件数是 $A$ 的平方($\kappa(A^{\mathsf T}A) = \kappa(A)^2$),若 $A$ 本身已经病态,形成 $A^{\mathsf T}A$ 会把有效位数损失一半(如 $\sigma_3 = 0.01$ 时 $\lambda_3 = 10^{-4}$,小特征值会在浮点减法中被吞掉)。实用的 SVD 算法是 Golub–Kahan 双对角化:用两组 Householder 变换(讲次 17 的正交化思想)把 $A$ 化成双对角形,再对双对角矩阵做迭代对角化,全程只用正交变换(正交变换不放大误差,这是 SVD 数值上极稳健的根本原因)。本讲的”$A^{\mathsf T}A$ 路线”是理解路线——它把存在性和四子空间结构讲清楚了;而实际算 $U,\Sigma,V$ 有更好的算法。两者结论完全一致。


示例 1(主演示):$A = \begin{bmatrix} 3 & 0 \\ 4 & 5\end{bmatrix}$ 的完整 SVD

步骤 1:算 $A^{\mathsf T}A$。 \(A^{\mathsf T} = \begin{bmatrix} 3 & 4 \\ 0 & 5\end{bmatrix},\qquad A^{\mathsf T}A = \begin{bmatrix} 3 & 4 \\ 0 & 5\end{bmatrix}\begin{bmatrix} 3 & 0 \\ 4 & 5\end{bmatrix} = \begin{bmatrix} 3\cdot3 + 4\cdot4 & 3\cdot0 + 4\cdot5 \\ 0\cdot3 + 5\cdot4 & 0\cdot0 + 5\cdot5\end{bmatrix} = \begin{bmatrix} 25 & 20 \\ 20 & 25\end{bmatrix}.\)

步骤 2:求特征值。 $\mathrm{tr}(A^{\mathsf T}A) = 50$,$\det(A^{\mathsf T}A) = 25\cdot25 - 20\cdot20 = 625 - 400 = 225$。特征多项式 \(\lambda^2 - 50\lambda + 225 = 0.\) 因式分解:$45 + 5 = 50$,$45 \times 5 = 225$,故 \(\lambda^2 - 50\lambda + 225 = (\lambda - 45)(\lambda - 5) = 0 \quad\Longrightarrow\quad \lambda_1 = 45,\ \lambda_2 = 5.\) (如果看不出来,就用求根公式:$\lambda = \frac{50 \pm \sqrt{2500 - 900}}{2} = \frac{50\pm\sqrt{1600}}{2} = \frac{50\pm40}{2} = 45$ 或 $5$。)

步骤 3:求特征向量,得到 $V$。

  • 对 $\lambda_1 = 45$:$(A^{\mathsf T}A - 45I)\mathbf v = \begin{bmatrix} -20 & 20 \\ 20 & -20\end{bmatrix}\mathbf v = \mathbf 0 \Rightarrow v_1 = v_2$,取 $\mathbf v_1 = \frac{1}{\sqrt2}\begin{bmatrix}1\\1\end{bmatrix}$。
  • 对 $\lambda_2 = 5$:$\begin{bmatrix} 20 & 20 \\ 20 & 20\end{bmatrix}\mathbf v = \mathbf 0 \Rightarrow v_1 = -v_2$,取 $\mathbf v_2 = \frac{1}{\sqrt2}\begin{bmatrix}1\\-1\end{bmatrix}$。
  • 两者点积 $\frac{1}{2}(1 - 1) = 0$ ✓(对称矩阵不同特征值的特征向量自动正交,这里再确认一次)。

于是 \(V = \begin{bmatrix} \mathbf v_1 & \mathbf v_2\end{bmatrix} = \frac{1}{\sqrt2}\begin{bmatrix} 1 & 1 \\ 1 & -1\end{bmatrix},\qquad V^{\mathsf T}V = \frac12\begin{bmatrix}1&1\\1&-1\end{bmatrix}\begin{bmatrix}1&1\\1&-1\end{bmatrix} = \begin{bmatrix}1&0\\0&1\end{bmatrix}\ ✓\)

步骤 4:奇异值。 \(\sigma_1 = \sqrt{45} = \sqrt{9\cdot5} = 3\sqrt5 \approx 6.7082,\qquad \sigma_2 = \sqrt5 \approx 2.2361.\) \(\Sigma = \begin{bmatrix} 3\sqrt5 & 0 \\ 0 & \sqrt5\end{bmatrix}.\)

步骤 5:用 $\mathbf u_i = A\mathbf v_i/\sigma_i$ 求 $U$。 \(A\mathbf v_1 = \frac{1}{\sqrt2}\begin{bmatrix} 3 & 0 \\ 4 & 5\end{bmatrix}\begin{bmatrix}1\\1\end{bmatrix} = \frac{1}{\sqrt2}\begin{bmatrix}3\\9\end{bmatrix} = \frac{3}{\sqrt2}\begin{bmatrix}1\\3\end{bmatrix},\) \(\mathbf u_1 = \frac{A\mathbf v_1}{\sigma_1} = \frac{3/\sqrt2}{3\sqrt5}\begin{bmatrix}1\\3\end{bmatrix} = \frac{1}{\sqrt{2}\sqrt5}\begin{bmatrix}1\\3\end{bmatrix} = \frac{1}{\sqrt{10}}\begin{bmatrix}1\\3\end{bmatrix} \approx \begin{bmatrix}0.3162\\0.9487\end{bmatrix}.\) \(A\mathbf v_2 = \frac{1}{\sqrt2}\begin{bmatrix} 3 & 0 \\ 4 & 5\end{bmatrix}\begin{bmatrix}1\\-1\end{bmatrix} = \frac{1}{\sqrt2}\begin{bmatrix}3\\-1\end{bmatrix},\) \(\mathbf u_2 = \frac{A\mathbf v_2}{\sigma_2} = \frac{1/\sqrt2}{\sqrt5}\begin{bmatrix}3\\-1\end{bmatrix} = \frac{1}{\sqrt{10}}\begin{bmatrix}3\\-1\end{bmatrix} \approx \begin{bmatrix}0.9487\\-0.3162\end{bmatrix}.\)

步骤 6:组装并验证。 \(U = \frac{1}{\sqrt{10}}\begin{bmatrix} 1 & 3 \\ 3 & -1\end{bmatrix},\qquad \Sigma = \begin{bmatrix} 3\sqrt5 & 0 \\ 0 & \sqrt5\end{bmatrix},\qquad V = \frac{1}{\sqrt2}\begin{bmatrix} 1 & 1 \\ 1 & -1\end{bmatrix}.\)

先检查 $U$ 正交:列长 $\frac{1+9}{10} = 1$ ✓;点积 $\frac{3 - 3}{10} = 0$ ✓;$\det U = \frac{-1-9}{10} = -1$,是反射不是旋转(没关系,正交即可)。

验证 $U\Sigma V^{\mathsf T} = A$。中间量: \(U\Sigma = \frac{1}{\sqrt{10}}\begin{bmatrix} 1 & 3 \\ 3 & -1\end{bmatrix}\begin{bmatrix} 3\sqrt5 & 0 \\ 0 & \sqrt5\end{bmatrix} = \frac{1}{\sqrt{10}}\begin{bmatrix} 3\sqrt5 & 3\sqrt5 \\ 9\sqrt5 & -\sqrt5\end{bmatrix} = \frac{1}{\sqrt2}\begin{bmatrix} 3 & 3 \\ 9 & -1\end{bmatrix}\)

(用了 $\frac{3\sqrt5}{\sqrt{10}} = 3\sqrt{\frac{5}{10}} = \frac{3}{\sqrt2}$,$\frac{9\sqrt5}{\sqrt{10}} = \frac{9}{\sqrt2}$,$\frac{\sqrt5}{\sqrt{10}} = \frac{1}{\sqrt2}$。)

再乘 $V^{\mathsf T} = \frac{1}{\sqrt2}\begin{bmatrix}1&1\\1&-1\end{bmatrix}$: \((U\Sigma)V^{\mathsf T} = \frac{1}{2}\begin{bmatrix} 3 & 3 \\ 9 & -1\end{bmatrix}\begin{bmatrix}1&1\\1&-1\end{bmatrix} = \frac12\begin{bmatrix} 3+3 & 3-3 \\ 9-1 & 9+1\end{bmatrix} = \frac12\begin{bmatrix}6 & 0\\ 8 & 10\end{bmatrix} = \begin{bmatrix}3&0\\4&5\end{bmatrix} = A\ ✓\)

附带数值验证(全部一致)

用 $\sigma$ 算用 $A$ 直接算
$\vert A\vert _F^2$$\sigma_1^2+\sigma_2^2 = 45+5 = 50$$9+0+16+25 = 50$ ✓
$\lvert\det A\rvert$$\sigma_1\sigma_2 = 3\sqrt5\cdot\sqrt5 = 15$$\lvert 3\cdot5 - 0\cdot4\rvert = 15$ ✓
$\vert A\vert _2$$\sigma_1 = 3\sqrt5 \approx 6.7082$$\max_{\vert \mathbf x\vert =1}\vert A\mathbf x\vert $ ✓
条件数 $\kappa$$\sigma_1/\sigma_2 = 3\sqrt5/\sqrt5 = 3$

【计算机制解说】为什么 $\vert A\vert F^2 = \sum\sigma_i^2$ 和 $\lvert\det A\rvert = \prod\sigma_i$ 会自动成立? 因为正交矩阵不改变长度和体积!$\vert A\vert _F^2 = \vert U\Sigma V^{\mathsf T}\vert _F^2 = \vert \Sigma\vert _F^2 = \sum\sigma_i^2$(Frobenius 范数在乘正交矩阵下不变,讲次 14 的正交变换保长),而 $\det A = \det U\cdot\det\Sigma\cdot\det V^{\mathsf T} = (\pm1)\cdot\prod\sigma_i\cdot(\pm1)$,所以 $\lvert\det A\rvert = \prod{i=1}^{n}\sigma_i$(方阵情形)。换句话说:SVD 把 $A$ 的”总能量”和”体积放大率”干净地拆成了各个方向贡献的平方和与乘积,这正是讲次 20 行列式几何意义(体积)与 SVD 的接口。


示例 2(非方阵):$A = \begin{bmatrix} 1 & 1 \\ 1 & -1 \\ 0 & 0\end{bmatrix}$($3\times2$,秩 2)

这个例子的意义在于:$A$ 不是方阵,根本没有特征值可言,但 SVD 照样存在。

步骤 1: $A^{\mathsf T} = \begin{bmatrix} 1 & 1 & 0 \\ 1 & -1 & 0\end{bmatrix}$, \(A^{\mathsf T}A = \begin{bmatrix} 1 & 1 & 0 \\ 1 & -1 & 0\end{bmatrix}\begin{bmatrix} 1 & 1 \\ 1 & -1 \\ 0 & 0\end{bmatrix} = \begin{bmatrix} 1+1+0 & 1-1+0 \\ 1-1+0 & 1+1+0\end{bmatrix} = \begin{bmatrix} 2 & 0 \\ 0 & 2\end{bmatrix} = 2I.\)

步骤 2: 特征值 $\lambda_1 = \lambda_2 = 2$(重根,$A^{\mathsf T}A = 2I$ 已经是”对角”的)。

步骤 3: $A^{\mathsf T}A = 2I$ 有一个特点:任意一组标准正交向量都是它的特征向量(因为 $2I\mathbf v = 2\mathbf v$ 对一切 $\mathbf v$ 成立)。所以 $V$ 不唯一!最方便的选择就是标准基: \(\mathbf v_1 = \begin{bmatrix}1\\0\end{bmatrix},\qquad \mathbf v_2 = \begin{bmatrix}0\\1\end{bmatrix},\qquad V = I_2.\) (这就是”重奇异值 ⟹ 奇异向量不唯一”的典型:单位圆被 $A$ 映成一个,而不是椭圆,因为 $\sigma_1 = \sigma_2$。)

步骤 4: $\sigma_1 = \sigma_2 = \sqrt2 \approx 1.4142$。

步骤 5: \(\mathbf u_1 = \frac{A\mathbf v_1}{\sigma_1} = \frac{1}{\sqrt2}\begin{bmatrix}1\\1\\0\end{bmatrix} \approx \begin{bmatrix}0.7071\\0.7071\\0\end{bmatrix},\qquad \mathbf u_2 = \frac{A\mathbf v_2}{\sigma_2} = \frac{1}{\sqrt2}\begin{bmatrix}1\\-1\\0\end{bmatrix} \approx \begin{bmatrix}0.7071\\-0.7071\\0\end{bmatrix}.\) 点积 $\frac{1}{2}(1-1+0) = 0$ ✓。现在 $U$ 是 $3\times3$,还差第三列。它必须与 $\mathbf u_1,\mathbf u_2$ 都正交,且是单位向量。观察:$\mathbf u_1,\mathbf u_2$ 的第三分量都是 0,所以 $\mathbf u_3 = \begin{bmatrix}0\\0\\1\end{bmatrix}$ 天然满足 $\mathbf u_1^{\mathsf T}\mathbf u_3 = \mathbf u_2^{\mathsf T}\mathbf u_3 = 0$,长度 1 ✓。(它张成的正是 $N(A^{\mathsf T})$:$A^{\mathsf T}\mathbf u_3 = \begin{bmatrix}1&1&0\\1&-1&0\end{bmatrix}\begin{bmatrix}0\\0\\1\end{bmatrix} = \mathbf 0$ ✓)

\[\Sigma = \begin{bmatrix} \sqrt2 & 0 \\ 0 & \sqrt2 \\ 0 & 0\end{bmatrix}\ (3\times2).\]

步骤 6:验证。 $\mathbf u_3$ 那一行对应 $\Sigma$ 的第三行全 0,所以 $U\Sigma$ 的第三行是 0: \(U\Sigma = \begin{bmatrix} 1/\sqrt2 & 1/\sqrt2 & 0\\ 1/\sqrt2 & -1/\sqrt2 & 0\\ 0&0&1\end{bmatrix}\begin{bmatrix} \sqrt2 & 0 \\ 0 & \sqrt2 \\ 0 & 0\end{bmatrix} = \begin{bmatrix} 1 & 1 \\ 1 & -1 \\ 0 & 0\end{bmatrix}.\) 由于 $V = I$,$V^{\mathsf T} = I$,故 $U\Sigma V^{\mathsf T} = U\Sigma = A$ ✓。

结论:$\mathrm{rank}(A) = 2$,恰等于非零奇异值的个数(两个 $\sqrt2$);$m - r = 1$ 个零行对应 $N(A^{\mathsf T})$,$n - r = 0$ 个零列对应 $N(A) = \{\mathbf 0\}$。

【计算机制解说】为什么”非零奇异值的个数 = 秩”? 由 $A^{\mathsf T}A = V(\Sigma^{\mathsf T}\Sigma)V^{\mathsf T}$,$A^{\mathsf T}A$ 与 $\Sigma^{\mathsf T}\Sigma$ 相似(其实是正交相似),因此秩相同。$\Sigma^{\mathsf T}\Sigma$ 的非零元个数正好是 $\sigma_i \ne 0$ 的个数,而 $\mathrm{rank}(A^{\mathsf T}A) = \mathrm{rank}(A)$(因为 $A\mathbf x = \mathbf 0 \iff A^{\mathsf T}A\mathbf x = \mathbf 0$:一边显然,另一边由 $\vert A\mathbf x\vert ^2 = \mathbf x^{\mathsf T}A^{\mathsf T}A\mathbf x = 0$ 得到,见讲次 10、16)。所以 \(\boxed{\ \mathrm{rank}(A) = \#\{i : \sigma_i > 0\}.\ }\) 这是一个可以数值使用的秩定义:数值计算中”零”永远不精确,人们就看”有多少个 $\sigma_i$ 大于容差”,这比数主元个数稳定得多。


示例 3(警示例):$A = \begin{bmatrix} 0 & 2 \\ 0 & 0\end{bmatrix}$ —— 特征值全是 0,奇异值却是 2 和 0

\(A^{\mathsf T}A = \begin{bmatrix} 0 & 0 \\ 2 & 0\end{bmatrix}\begin{bmatrix} 0 & 2 \\ 0 & 0\end{bmatrix} = \begin{bmatrix} 0 & 0 \\ 0 & 4\end{bmatrix}.\) 特征值:$\lambda^2 - 4\lambda = \lambda(\lambda - 4) = 0 \Rightarrow \lambda_1 = 4,\ \lambda_2 = 0$。故 $\sigma_1 = 2,\ \sigma_2 = 0$。

  • $A$ 自己的特征值:$\det(A - \lambda I) = \lambda^2 = 0$,$\lambda_1 = \lambda_2 = 0$(重根,且 $A$ 只有一维特征向量 $\mathbf x = [1,0]^{\mathsf T}$,不可对角化,讲次 28 的缺陷矩阵)。
  • 如果以为”$\sigma_i = \lvert\lambda_i\rvert$”,就会得到 $\sigma_1 = \sigma_2 = 0$,从而误判 $\mathrm{rank}(A) = 0$。大错:$A \ne 0$,$\mathrm{rank}(A) = 1$,$\sigma_1 = 2$。

$\mathbf v_1 = [0,1]^{\mathsf T}$(对应 $\lambda_1 = 4$),$\mathbf u_1 = A\mathbf v_1/2 = [2,0]^{\mathsf T}/2 = [1,0]^{\mathsf T}$;$\mathbf u_2 = [0,1]^{\mathsf T}$。验证 $A = U\Sigma V^{\mathsf T}$:$\Sigma = \mathrm{diag}(2,0)$,$U = \begin{bmatrix}1&0\\0&1\end{bmatrix}$,$V = \begin{bmatrix}0&1\\1&0\end{bmatrix}$,$U\Sigma V^{\mathsf T} = \begin{bmatrix}2&0\\0&0\end{bmatrix}\begin{bmatrix}0&1\\1&0\end{bmatrix} = \begin{bmatrix}0&2\\0&0\end{bmatrix} = A$ ✓。

这个例子一条教训:奇异值衡量的是”拉伸能力“,特征值衡量的是”方向不变性“。$A$ 把 $[0,1]^{\mathsf T}$ 拉成 $[2,0]^{\mathsf T}$(长度 2),但它没有任何非零特征值。除非 $A$ 是对称(或更一般的正规)矩阵,$\sigma_i \ne \lvert\lambda_i\rvert$。


示例 4(对称情形对照):$A = \begin{bmatrix} 2 & 1 \\ 1 & 2\end{bmatrix}$

$A^{\mathsf T}A = \begin{bmatrix}5&4\\4&5\end{bmatrix}$,$\lambda^2 - 10\lambda + 9 = (\lambda-9)(\lambda-1) = 0$,故 $\sigma_1 = 3,\ \sigma_2 = 1$。而 $A$ 自己的特征值是 $3$ 和 $1$ —— 完全一样($\mathbf v_1 = \frac{1}{\sqrt2}[1,1]^{\mathsf T}$,$\mathbf u_1 = A\mathbf v_1/3 = \frac{1}{3\sqrt2}[3,3]^{\mathsf T} = \frac{1}{\sqrt2}[1,1]^{\mathsf T} = \mathbf v_1$)。

一般结论:$A$ 对称 ⟹ $A = Q\Lambda Q^{\mathsf T}$,所以 $\sigma_i = \lvert\lambda_i\rvert$,且 $\mathbf u_i = \pm\mathbf v_i$(差的只是符号,因为负特征值要求 $A\mathbf v_i = \lambda_i\mathbf v_i$ 而 $\sigma_i > 0$,$\mathbf u_i$ 要翻个号)。这就是为什么”$\sigma = \lvert\lambda\rvert$”只在对称/正规时成立。

矩阵分解的核心思想

本讲的主角分解就是 $A = U\Sigma V^{\mathsf T}$。把它和课程中的其他分解并排看:

分解形式适用条件揭示的结构
$A = LU$(讲次 2、4)下三角 × 上三角消元可行(需换行时 $PA = LU$)消元过程、主元
$A = QR$(讲次 17)正交 × 上三角列线性无关正交基、最小二乘
$A = S\Lambda S^{-1}$(讲次 22)特征向量 × 对角 × 逆方阵且可对角化特征值、$e^{At}$、稳定性
$A = Q\Lambda Q^{\mathsf T}$(讲次 25)正交 × 对角 × 正交对称矩阵主轴、正定性
$\boldsymbol{A = U\Sigma V^{\mathsf T}}$(本讲)正交 × 对角 × 正交任意矩阵,无条件奇异值、四子空间、秩、范数

SVD 的两大结构性成果

成果 1:四个基本子空间的最优标准正交基(本课程的顶点)

\(\mathbf u_1,\dots,\mathbf u_r \text{ 是 } C(A) \text{ 的标准正交基}\quad (C(A)\subseteq\mathbb R^m,\ \dim = r)\) \(\mathbf u_{r+1},\dots,\mathbf u_m \text{ 是 } N(A^{\mathsf T}) \text{ 的标准正交基}\quad (\dim = m - r)\) \(\mathbf v_1,\dots,\mathbf v_r \text{ 是 } C(A^{\mathsf T}) \text{ 的标准正交基}\quad (C(A^{\mathsf T})\subseteq\mathbb R^n,\ \dim = r)\) \(\mathbf v_{r+1},\dots,\mathbf v_n \text{ 是 } N(A) \text{ 的标准正交基}\quad (\dim = n - r)\)

                 A : R^n  --------------------------->  R^m
                       |                                   |
   v1 .. vr  (C(A^T), dim r)  ---- A ---->  u1 .. ur  (C(A), dim r)     A v_i = sigma_i u_i ,  sigma_i > 0
                       |                                   |
   v_{r+1}..vn (N(A), dim n-r) -- A ---->  0              A v_i = 0  (i > r)  零空间被压成原点
                       |                                   |
   R^n = C(A^T) (+) N(A) 正交直和          R^m = C(A) (+) N(A^T) 正交直和
                                            u_{r+1}..u_m 张成 N(A^T) (左零空间)
   V = [v1..vr | v_{r+1}..vn]  正交          U = [u1..ur | u_{r+1}..um]  正交

   维度账本:  r + (n - r) = n  ✓        r + (m - r) = m  ✓

这张图是讲次 10”大图”的最终版:那里我们只知道四个子空间的维数和”行空间 ⊥ 零空间、列空间 ⊥ 左零空间”;这里 SVD 把它们的标准正交基一次性全部给出,而且是”逐对配对”的——第 $i$ 对 $(\mathbf v_i,\mathbf u_i)$ 通过 $A\mathbf v_i = \sigma_i\mathbf u_i$ 精确联系。Strang 说这是”线性代数的顶点”,因为四个子空间 + 正交性 + 秩,被一个公式全部收进 $A = U\Sigma V^{\mathsf T}$。

用示例 1 逐条验证四子空间($A = \begin{bmatrix}3&0\\4&5\end{bmatrix}$,$r=2$,$m=n=2$)

因为 $m = n = r = 2$,此时没有”零空间”部分:$N(A) = \{\mathbf 0\}$,$N(A^{\mathsf T}) = \{\mathbf 0\}$,$C(A) = C(A^{\mathsf T}) = \mathbb R^2$。全部四个子空间”退化”为平凡情形,这本身是个好检查:

  • $C(A)$:$\mathbf u_1 \approx [0.3162, 0.9487]^{\mathsf T}$,$\mathbf u_2 \approx [0.9487, -0.3162]^{\mathsf T}$,两个正交单位向量,张成 $\mathbb R^2$ ✓($\det A = 15 \ne 0 \Rightarrow C(A) = \mathbb R^2$)。
  • $C(A^{\mathsf T})$:$\mathbf v_1 = \frac{1}{\sqrt2}[1,1]^{\mathsf T}$,$\mathbf v_2 = \frac{1}{\sqrt2}[1,-1]^{\mathsf T}$,张成 $\mathbb R^2$ ✓。
  • $A\mathbf v_1 = \sigma_1\mathbf u_1$(已在核心概念节验证);$A\mathbf v_2 = \sigma_2\mathbf u_2$:$A\mathbf v_2 = \frac{1}{\sqrt2}[3,-1]^{\mathsf T}$,$\sigma_2\mathbf u_2 = \sqrt5\cdot\frac{1}{\sqrt{10}}[3,-1]^{\mathsf T} = \frac{1}{\sqrt2}[3,-1]^{\mathsf T}$ ✓。
  • 附带:$C(A) = C(A^{\mathsf T})$ 只在对称矩阵时成立;一般矩阵两者是不同空间里的不同子空间(示例 2 里 $C(A)\subseteq\mathbb R^3$,$C(A^{\mathsf T})\subseteq\mathbb R^2$,维数都是 2 但向量完全不同)。

再看示例 2($3\times2$,$r=2$)就出现了非平凡的四个空间:

  • $C(A) = \mathrm{span}([1,1,0]^{\mathsf T},[1,-1,0]^{\mathsf T}) = xy$ 平面($\subseteq\mathbb R^3$),$\dim = 2$ ✓;
  • $N(A^{\mathsf T}) = \mathrm{span}([0,0,1]^{\mathsf T})$,$\dim = 3-2 = 1$ ✓,且 $[0,0,1]^{\mathsf T}\cdot[1,1,0]^{\mathsf T} = 0$ ⟹ 与 $C(A)$ 正交 ✓;
  • $C(A^{\mathsf T}) = \mathbb R^2$(两列 $[1,1]^{\mathsf T},[1,-1]^{\mathsf T}$ 无关),$\dim = 2$ ✓;
  • $N(A) = \{\mathbf 0\}$,$\dim = 2-2 = 0$ ✓。

正交直和分解有一个漂亮的推论:任意 $\mathbf x\in\mathbb R^n$ 可以唯一地写成 $\mathbf x = \mathbf x_{\text{row}} + \mathbf x_{\text{null}}$(行空间分量 + 零空间分量),因为 $\mathbb R^n = C(A^{\mathsf T})\oplus N(A)$ 且两者正交。于是 $A\mathbf x = A\mathbf x_{\text{row}}$:零空间分量在 $A$ 作用下完全消失。而按 $V$ 展开 $\mathbf x = \sum c_i\mathbf v_i$ 时,$A\mathbf x = \sum_{i\le r} c_i\sigma_i\mathbf u_i$ —— 前 $r$ 个系数被”加权搬过去”,后 $n-r$ 个系数直接丢弃。这就是 SVD 版本的”$A$ 究竟做了什么”的最清楚回答。

成果 2:秩 1 展开与低秩逼近

把 $A = U\Sigma V^{\mathsf T}$ 按列乘行展开($U$ 的第 $i$ 列 $\mathbf u_i$ 乘 $\Sigma$ 的第 $i$ 个对角元再乘 $V^{\mathsf T}$ 的第 $i$ 行 $\mathbf v_i^{\mathsf T}$): \(\boxed{\ A = \sum_{i=1}^{r}\sigma_i\,\mathbf u_i\mathbf v_i^{\mathsf T}.\ }\) 每一项 $\mathbf u_i\mathbf v_i^{\mathsf T}$ 是 $m\times n$ 的秩 1 矩阵(列空间是一维的,$\mathrm{span}(\mathbf u_i)$)。所以:

秩为 $r$ 的矩阵,恰好是 $r$ 个秩 1 矩阵之和。 这是讲次 11 的 $A = CR$($C$ 是 $r$ 个无关列,$R$ 是行阶梯形的非零行)的正交化精美版本——$A = CR$ 里的 $C,R$ 不唯一也不正交,SVD 把它们变成了 $\mathbf u_i$(正交)与 $\mathbf v_i^{\mathsf T}$(正交),并把”重要性”按 $\sigma_i$ 排序。

Eckart–Young 定理(最佳低秩逼近):设 \(A_k = \sum_{i=1}^{k}\sigma_i\,\mathbf u_i\mathbf v_i^{\mathsf T}\qquad (k < r).\) 则 $A_k$ 是所有秩 $\le k$ 的矩阵中离 $A$ 最近的一个,误差为 \(\vert A - A_k\vert _2 = \sigma_{k+1}\quad(\text{谱范数}),\qquad \vert A - A_k\vert _F^2 = \sum_{i=k+1}^{r}\sigma_i^2\quad(\text{Frobenius 范数}).\) 证明的核心正是上面”单位球 → 椭球”的几何:去掉最小的一些半轴,剩下的椭球与原来的椭球最多差 $\sigma_{k+1}$。注意 $A - A_k = \sum_{i>k}\sigma_i\mathbf u_i\mathbf v_i^{\mathsf T}$ 本身就是”去掉前 $k$ 项”的 SVD,它的最大奇异值就是 $\sigma_{k+1}$。

用示例 1 的 $A = \begin{bmatrix}3&0\\4&5\end{bmatrix}$ 算低秩逼近($k=1$)

\[A_1 = \sigma_1\mathbf u_1\mathbf v_1^{\mathsf T} = 3\sqrt5\cdot\frac{1}{\sqrt{10}}\begin{bmatrix}1\\3\end{bmatrix}\cdot\frac{1}{\sqrt2}\begin{bmatrix}1&1\end{bmatrix} = \frac{3\sqrt5}{\sqrt{20}}\begin{bmatrix}1&1\\3&3\end{bmatrix} = \frac{3\sqrt5}{2\sqrt5}\begin{bmatrix}1&1\\3&3\end{bmatrix} = \frac32\begin{bmatrix}1&1\\3&3\end{bmatrix} = \begin{bmatrix}1.5 & 1.5\\ 4.5 & 4.5\end{bmatrix}.\]

误差矩阵 \(A - A_1 = \begin{bmatrix}3-1.5 & 0-1.5\\ 4-4.5 & 5-4.5\end{bmatrix} = \begin{bmatrix}1.5 & -1.5\\ -0.5 & 0.5\end{bmatrix} = \sigma_2\mathbf u_2\mathbf v_2^{\mathsf T} = \frac12\begin{bmatrix}3&-3\\-1&1\end{bmatrix}.\)

  • $\vert A - A_1\vert _2 = \sigma_2 = \sqrt5 \approx 2.2361$ ✓
  • $\vert A - A_1\vert _F = \sqrt{1.5^2 + 1.5^2 + 0.5^2 + 0.5^2} = \sqrt{2.25+2.25+0.25+0.25} = \sqrt5 \approx 2.2361$ ✓(只剩一项,两个范数相等)
  • 相对误差 $= \vert A-A_1\vert _F/\vert A\vert _F = \sqrt5/\sqrt{50} = 1/\sqrt{10} \approx 0.3162$
  • 能量占比 $= \sigma_1^2/(\sigma_1^2+\sigma_2^2) = 45/50 = 90\%$

应用(四个,都带数字)

(1) 图像压缩。 一张灰度图像就是一个像素矩阵 $A$(如 $1000\times1000$)。存储 $A$ 需要 $10^6$ 个数;存 $A_k$ 只需要 $k$ 个 $\sigma$ + $k$ 个 $\mathbf u_i$(各 $m$ 个数)+ $k$ 个 $\mathbf v_i$(各 $n$ 个数),共 $k(m+n+1)$ 个数。$m=n=1000$、$k=50$ 时:$50\times2001 \approx 100{,}050$ 个数,只有原来的 10%,而画面几乎不变。原因是真实图像的奇异值衰减极快(大部分能量集中在头几十个 $\sigma$ 上,即 90% 或 99% 的能量)。 用示例 1 体会原理:4 个数的矩阵,保留 $k=1$ 只需存 $\sigma_1, \mathbf u_1, \mathbf v_1$ 共 $1+2+2 = 5$ 个数,对 $2\times2$ 反而”亏了”(小矩阵不该压缩),但同一个公式在 $m,n$ 很大时收益是压倒性的——因为 $k(m+n+1) \ll mn$。

(2) 数据降维 / PCA(主成分分析)。 把 $N$ 个样本、每个 $d$ 维的数据排成矩阵 $X$($N\times d$,每行一个样本),先中心化(每列减去均值)。对 $X$ 做 SVD:$X = U\Sigma V^{\mathsf T}$,则 $V$ 的列 $\mathbf v_1,\mathbf v_2,\dots$ 就是主方向——第一主方向 $\mathbf v_1$ 是数据投影后方差最大的方向(等价于协方差矩阵 $X^{\mathsf T}X/(N-1)$ 的最大特征向量,因为 $X^{\mathsf T}X = V\Sigma^2V^{\mathsf T}$)。第 $i$ 个主成分解释的方差比例为 \(\frac{\sigma_i^2}{\sum_j \sigma_j^2}.\) 用示例 1 的数字:若 $A$ 是(中心化后的)数据矩阵,第一主方向解释 $45/50 = 90\%$ 的方差,第二方向只剩 $10\%$ —— 于是可以只保留一维,把二维数据压成一条线上的坐标,损失仅 10% 的方差信息。

(3) 条件数 / 数值稳定性。 定义 $\kappa(A) = \sigma_1/\sigma_n$($n$ 为列数,零奇异值也计入;$A$ 奇异时 $\kappa = \infty$)。示例 1 的 $\kappa = 3\sqrt5/\sqrt5 = 3$,非常健康;示例 2 的 $\kappa = \sqrt2/\sqrt2 = 1$(条件数最小可能值)。若 $\sigma_n$ 极小(如 $\sigma_n = 10^{-8}$、$\sigma_1 = 1$),则 $\kappa = 10^8$,此时解 $A\mathbf x = \mathbf b$ 对 $\mathbf b$ 的微小扰动会放大约 $\kappa$ 倍,有效数字损失约 $\log_{10}\kappa = 8$ 位,数值上不可靠。$\sigma_{\min}$ 小 ⟺ 矩阵接近奇异——这比”$\det A$ 小”是更可靠的判据($\det$ 会被整体缩放污染:$10^{-6}I$ 的 $\det$ 是 $10^{-6n}$ 但条件数只有 1,完全不病态)。

(4) 伪逆与最小二乘(预告讲次 33)。 对 $A = U\Sigma V^{\mathsf T}$,定义 $\Sigma^{+}$ 为把每个非零 $\sigma_i$ 取倒数、其余保持 0,再转置形状: \(A^{+} = V\Sigma^{+}U^{\mathsf T}.\) $A^{+}$ 是 Moore–Penrose 伪逆:$A$ 可逆时 $A^{+} = A^{-1}$;$A$ 列满秩时 $A^{+} = (A^{\mathsf T}A)^{-1}A^{\mathsf T}$(最小二乘的解,讲次 16)。用示例 2 验算:$\Sigma^{+} = \begin{bmatrix}1/\sqrt2 & 0 & 0\\ 0&1/\sqrt2&0\end{bmatrix}$($2\times3$),$V = I$, \(A^{+} = \Sigma^{+}U^{\mathsf T} = \begin{bmatrix}1/2 & 1/2 & 0\\ 1/2 & -1/2 & 0\end{bmatrix},\qquad A^{+}A = \begin{bmatrix}1/2&1/2&0\\1/2&-1/2&0\end{bmatrix}\begin{bmatrix}1&1\\1&-1\\0&0\end{bmatrix} = \begin{bmatrix}1&0\\0&1\end{bmatrix} = I_2\ ✓\) 再试 Q1 的矩阵(秩 1,不可逆),$A^{+}A$ 会变成投影矩阵而不是 $I$ —— 这正是伪逆”把 $A$ 的零空间方向一律送回 0”的行为。

(5) 三个范数与行列式的统一公式(方阵 $n\times n$): \(\vert A\vert _2 = \sigma_1,\qquad \vert A\vert _F = \sqrt{\textstyle\sum_{i=1}^{n}\sigma_i^2},\qquad \lvert\det A\rvert = \prod_{i=1}^{n}\sigma_i.\) 用示例 1 全部核对:$\vert A\vert _2 = 3\sqrt5 \approx 6.7082$;$\vert A\vert _F = \sqrt{50}\approx7.0711$;$\lvert\det A\rvert = 15$。注意 $\vert A\vert _2 \le \vert A\vert _F \le \sqrt{n}\vert A\vert _2$:$6.7082 \le 7.0711 \le \sqrt2 \times 6.7082 = 9.4868$ ✓。 对 Q2 的 $\sigma = (10,1,0.01)$:$\vert A\vert _2 = 10$,$\vert A\vert _F = \sqrt{101.0001}\approx10.0499$,$\lvert\det A\rvert = 0.1$;两条不等式同样成立($10 \le 10.0499 \le \sqrt3\times 10 = 17.32$ ✓)。

(6)一个统一视角:SVD 是”条件数、能量、体积、秩”的统一度量工具

把上面的公式排在一起可以看出 SVD 的哲学:一个矩阵的所有”大小”性质,都能被 $\sigma_i$ 一个数列解释干净

   性质                        用 sigma 表达                用 A 直接表达(直觉)
   -----------------------    ------------------------    ------------------------------
   秩 rank(A)                 # { sigma_i > 0 }           主元个数(数值上不稳定)
   最大放大率 ||A||_2          sigma_1                     max ||Ax||  (||x|| = 1)
   总能量 ||A||_F^2           sum sigma_i^2               sum a_ij^2(逐个元素平方和)
   体积放大率 |det A|          prod sigma_i (方阵)         行列式(会互相抵消,见例 3!)
   条件数 kappa(A)            sigma_1 / sigma_n           没有任何干净的直接表达
   稳定性(逆的放大率)        1 / sigma_n                 (sigma_n -> 0 时爆炸)
   最佳 k 秩逼近误差            sigma_{k+1}                没有别的刻画(Eckart-Young)
   能量占比(PCA)             sigma_i^2 / sum sigma_j^2   协方差矩阵的特征值分解

注意最后一行”$\det A$ 会互相抵消”:示例 3 的 $A = \begin{bmatrix}0&2\\0&0\end{bmatrix}$,四个元素里有一个 2,$\det A = 0$,看起来”什么都没放大”;但 $\sigma_1 = 2$ —— 它明明把 $[0,1]^{\mathsf T}$ 拉成了长度 2 的向量。行列式只测”体积”,而一个压扁方向 + 一个拉长方向可以让体积仍为 0,放大却真实存在。SVD 把每个方向的放大率单独列出来,这才是完整信息。

(7)奇异值衰减图:为什么”压缩”在数学上必然可行

真实数据(图像、文本-词频矩阵、用户-评分矩阵)的奇异值几乎总是急剧衰减:前几个 $\sigma$ 吃掉绝大部分能量。画成图就是一条陡降的曲线:

   sigma_i
     |
  10 |*
     | *
   1 |  *
     |    *
  0.1|       *
     |            *
 0.01|                    *  *  *  *  *  *  *  *
     +-------------------------------------------------> i
      1  2  3  4  5  6  7  8  9 10 11 12 13 14 15

   示例 1 (A=[[3,0],[4,5]]): sigma = (6.708, 2.236)  -> 90% 能量在 sigma_1
   示例 Q1 (A=[[1,2],[0,0]]): sigma = (2.236, 0)      -> 100% 能量在 sigma_1(秩 1)
   Q2 的例子:                  sigma = (10, 1, 0.01)   -> 99% 能量在前两个

   "长尾"部分(小的 sigma_i)贡献的能量 sum_{i>k} sigma_i^2 很小,
   但它们占用的存储/自由度却和大 sigma 一样多 —— 于是删掉它们几乎不损失信息。

   能量占比判据(工程上常用):
       保留最小的 k 使得  sum_{i<=k} sigma_i^2 / sum_i sigma_i^2 >= 0.99
   示例 1: k=1 时 45/50 = 0.90(不够 99%),k=2 才是 1.00(精确重建)
   Q2 例:  k=2 时 (100+1)/101.0001 = 99.9999% >= 99%  -> 保留 2 维即可

(8)用 SVD 做”降噪”和”最小二乘”的直觉

  • 降噪:如果数据中”信号”集中在少数大奇异值、”噪声”散布在全部(含大量小)奇异值上,那么截断 SVD(用 $A_k$)就等于滤掉噪声。这是图像去噪、推荐系统(矩阵补全的基础)的共同机制。
  • 最小二乘:讲次 16 里 $A\mathbf x = \mathbf b$ 无解时我们解 $A^{\mathsf T}A\hat{\mathbf x} = A^{\mathsf T}\mathbf b$。用 SVD 展开可以看清解的组成: \(\hat{\mathbf x} = \sum_{i=1}^{r}\frac{\mathbf u_i^{\mathsf T}\mathbf b}{\sigma_i}\,\mathbf v_i,\qquad A\hat{\mathbf x} = \sum_{i=1}^{r}(\mathbf u_i^{\mathsf T}\mathbf b)\,\mathbf u_i,\) 即”把 $\mathbf b$ 投影到 $C(A)$(丢掉 $N(A^{\mathsf T})$ 分量),再沿每个 $\mathbf v_i$ 方向按 $1/\sigma_i$ 还原”。小 $\sigma_i$ 出现在分母 ⟹ 病态时误差被放大——这正是”需要正则化”和”伪逆要截断”的根源。用示例 2($\sigma_1=\sigma_2=\sqrt2$,$A$ 列满秩)取 $\mathbf b = [1,0,0]^{\mathsf T}$:$\mathbf u_1^{\mathsf T}\mathbf b = 1/\sqrt2$,$\mathbf u_2^{\mathsf T}\mathbf b = 1/\sqrt2$,故 $\hat{\mathbf x} = \frac{1/\sqrt2}{\sqrt2}[1,0]^{\mathsf T} + \frac{1/\sqrt2}{\sqrt2}[0,1]^{\mathsf T} = \frac12[1,1]^{\mathsf T}$,$A\hat{\mathbf x} = \frac12[2,0,0]^{\mathsf T} = [1,0,0]^{\mathsf T}$ —— 恰好等于 $\mathbf b$(因为 $\mathbf b\in C(A)$,误差为 0;$\mathbf b = [1,0,0]^{\mathsf T} = \frac{1}{\sqrt2}(\mathbf u_1+\mathbf u_2)$ 确实在列空间里)。

与其他讲次的关联

  • 讲次 10(四个基本子空间): SVD 是”大图”的最终答案。$\mathbf u_1..\mathbf u_r$ 给 $C(A)$,$\mathbf u_{r+1}..\mathbf u_m$ 给 $N(A^{\mathsf T})$,$\mathbf v_1..\mathbf v_r$ 给 $C(A^{\mathsf T})$,$\mathbf v_{r+1}..\mathbf v_n$ 给 $N(A)$,全部标准正交,维数 $r,\ m-r,\ r,\ n-r$ 一目了然。
  • 讲次 11($A = CR$ 与秩 1 之和): $A = \sum\sigma_i\mathbf u_i\mathbf v_i^{\mathsf T}$ 是 $A = CR$ 的正交化、排序化版本。
  • 讲次 14–17(正交、投影、最小二乘、QR): 正交矩阵保长($\vert U\mathbf x\vert = \vert \mathbf x\vert $)是 $\vert A\vert _F^2 = \sum\sigma_i^2$ 的根据;$AA^{+}$ 是到 $C(A)$ 的投影矩阵;$QR$ 分解可视为 SVD 的”廉价替代”($Q$ 类似 $U$,但对角部分不是对角)。
  • 讲次 18–20(行列式): $\lvert\det A\rvert = \prod\sigma_i$ 把”体积放大率”分解为各正交方向的放大率之积。
  • 讲次 22、28(对角化、Jordan 形): $A = S\Lambda S^{-1}$ 要求可对角化,Jordan 形是”补救”但失去了对角性和数值稳定性;SVD 用”两组正交基”换来了无条件存在,代价是 $\mathbf u_i \ne \mathbf v_i$、$\Sigma$ 只有对角元而非相似对角化。
  • 讲次 25(对称正定): $A^{\mathsf T}A$ 对称半正定 ⟹ 可正交对角化 ⟹ 得到 $V$ 与 $\Sigma^2$。这是 SVD 唯一依赖的存在性定理;正定情形($A^{\mathsf T}A$ 可逆)时所有 $\sigma_i > 0$。
  • 讲次 27(正定判别): 半正定检验 $\mathbf x^{\mathsf T}A^{\mathsf T}A\mathbf x = \vert A\mathbf x\vert ^2 \ge 0$ 把正定与零空间联系:$A^{\mathsf T}A$ 正定 $\iff N(A) = \{\mathbf 0\} \iff$ 列满秩 $\iff$ 全部 $\sigma_i > 0$。
  • 讲次 31(换基与图像压缩): $A = U\Sigma V^{\mathsf T}$ 正是”换输入基($V$)+换输出基($U$)“的完美示范:在正确的两组基下,任何线性变换都是对角矩阵 $\Sigma$。低秩逼近就是”在新基下丢掉不重要的坐标”。
  • 讲次 33(伪逆): $A^{+} = V\Sigma^{+}U^{\mathsf T}$ 一次性处理可逆 / 列满秩 / 秩亏 / 欠定四种情况,是最小二乘的统一解。

关键要点

  1. 任何矩阵都有 SVD:$A_{m\times n} = U_{m\times m}\Sigma_{m\times n}V^{\mathsf T}_{n\times n}$,只要求 $U,V$ 正交;$\sigma_1 \ge \cdots \ge \sigma_r > 0$,其余为 0,且 $r = \mathrm{rank}(A)$。
  2. 两条生成关系:$A\mathbf v_i = \sigma_i\mathbf u_i$($i \le r$)与 $A\mathbf v_i = \mathbf 0$($i > r$);反过来是 $A^{\mathsf T}\mathbf u_i = \sigma_i\mathbf v_i$ 与 $A^{\mathsf T}\mathbf u_i = 0$($i>r$)。
  3. 算法主线:$\sigma_i = \sqrt{\lambda_i(A^{\mathsf T}A)}$,$\mathbf v_i$ 是 $A^{\mathsf T}A$ 的单位特征向量,$\mathbf u_i = A\mathbf v_i/\sigma_i$($\sigma_i \ne 0$;$\sigma_i = 0$ 时 $\mathbf u_i$ 从 $N(A^{\mathsf T})$ 另补)。
  4. 几何主线:正交方向 → 正交方向,只伸缩;单位球 → 椭球,半轴 $= \sigma_i$、方向 $= \mathbf u_i$;$\vert A\vert _2 = \sigma_1$。
  5. 应用主线:$A = \sum\sigma_i\mathbf u_i\mathbf v_i^{\mathsf T}$;截断得最佳 $k$ 秩逼近,误差 $\sigma_{k+1}$(谱)与 $\sqrt{\sum_{i>k}\sigma_i^2}$(Frobenius);这就是图像压缩与 PCA 的全部数学。

常见误区与注意事项

  1. 把奇异值当成特征值的绝对值。 错。示例 3 的 $A = \begin{bmatrix}0&2\\0&0\end{bmatrix}$ 特征值全为 0,奇异值却是 $2, 0$。只有对称矩阵(更一般地,正规矩阵 $A^{\mathsf T}A = AA^{\mathsf T}$)才有 $\sigma_i = \lvert\lambda_i\rvert$。示例 4 验证了对称情形。
  2. 以为奇异值可能为负或为复数。 不可能。$\sigma_i = \sqrt{\lambda_i(A^{\mathsf T}A)}$,而 $A^{\mathsf T}A$ 半正定保证 $\lambda_i \ge 0$,开方取非负根。奇异值永远是非负实数,永远按降序写 $\sigma_1 \ge \sigma_2 \ge \cdots$(忘记排序会让 $\Sigma$、$U$、$V$ 的列对应关系全乱)。
  3. 以为 $U$ 和 $V$ 是同一个矩阵。 一般不是:示例 1 中 $U = \frac{1}{\sqrt{10}}\begin{bmatrix}1&3\\3&-1\end{bmatrix}$ 而 $V = \frac{1}{\sqrt2}\begin{bmatrix}1&1\\1&-1\end{bmatrix}$,完全不同。只有对称正定(或正规)矩阵才可能有 $\mathbf u_i = \pm\mathbf v_i$。另外注意 $U$ 定义在 $\mathbb R^m$、$V$ 定义在 $\mathbb R^n$,当 $m\ne n$ 时它们连尺寸都不同,谈不上相等(示例 2:$U$ 是 $3\times3$,$V$ 是 $2\times2$)。
  4. 以为 SVD 只对方阵有意义。 恰恰相反,非方阵时 SVD 才是不可替代的:非方阵根本没有特征值(示例 2),$m\ne n$ 时 $\Sigma$ 是长方形对角阵(多出的行或列全 0)。这正是 SVD 比对角化强大的地方。
  5. 在 $\sigma_i = 0$ 时用 $\mathbf u_i = A\mathbf v_i/\sigma_i$。 不能除以零。$\sigma_i = 0$ 意味着 $A\mathbf v_i = \mathbf 0$,此时 $\mathbf u_i$ 不由 $A$ 决定,必须从 $N(A^{\mathsf T})$ 里另找与已有 $\mathbf u$ 正交的单位向量补上(示例 2 补的 $\mathbf u_3 = [0,0,1]^{\mathsf T}$、Q1 补的 $\mathbf u_2$)。这也说明:零奇异值对应的奇异向量不唯一;重奇异值(如示例 2 的 $\sigma_1=\sigma_2=\sqrt2$)对应的也不唯一。
  6. 把”$\det A$ 小”当成”病态”。 病态的正确判据是条件数 $\kappa = \sigma_1/\sigma_n$($n$ = 列数,零奇异值照算;尺度无关),不是 $\det A$(尺度相关,且可被”压扁一个方向 + 拉长一个方向”互相抵消)。见”应用 (3)”与 Q1/Q2。
  7. 以为 $U\Sigma V^{\mathsf T}$ 的写法可以随意换位置。 顺序不能动:$\Sigma V^{\mathsf T}$、$U\Sigma$、$\Sigma U$ 都不等于 $A$。$U$ 作用在输出($\mathbb R^m$)一侧,$V^{\mathsf T}$ 作用在输入($\mathbb R^n$)一侧,维度账本是 $m\times m$、$m\times n$、$n\times n$,三者相乘才是 $m\times n$。若 $m\ne n$,写成 $A = U\Sigma U^{\mathsf T}$ 会直接维度不匹配(示例 2 就是 $3\times3$ 与 $2\times2$ 无法相乘)。
  8. 以为 $\mathrm{rank}(A) = $ 奇异值的个数。非零奇异值的个数。$m\times n$ 矩阵总共有 $\min(m,n)$ 个奇异值,其中 $n-r$ 个(在 $\Sigma^{\mathsf T}\Sigma$ 侧)或 $m-r$ 个(在 $\Sigma\Sigma^{\mathsf T}$ 侧)为 0。示例 2 有 2 个奇异值、全部非零 ⟹ 秩 2;Q1 有 2 个奇异值、1 个为 0 ⟹ 秩 1。

思考题(带答案)

Q1. 求 $A = \begin{bmatrix} 1 & 2 \\ 0 & 0\end{bmatrix}$ 的完整 SVD($U,\Sigma,V$),并指出 $\mathrm{rank}(A)$、$\kappa(A)$、$\vert A\vert _2$、$\vert A\vert _F$、$\lvert\det A\rvert$(若可逆);再写出 $A^{+}$ 并验证 $A^{+}A$ 是投影矩阵。

答案 **步骤 1:** $A^{\\mathsf T} = \\begin{bmatrix}1&0\\\\2&0\\end{bmatrix}$, $$A^{\mathsf T}A = \begin{bmatrix}1&0\\2&0\end{bmatrix}\begin{bmatrix}1&2\\0&0\end{bmatrix} = \begin{bmatrix}1&2\\2&4\end{bmatrix}.$$ $\\mathrm{tr} = 5$,$\\det = 1\\cdot4 - 2\\cdot2 = 0$,特征多项式 $\\lambda^2 - 5\\lambda = \\lambda(\\lambda - 5) = 0$,故 $\\lambda_1 = 5,\\ \\lambda_2 = 0$。 **步骤 2($V$):** 对 $\\lambda_1 = 5$:$\\begin{bmatrix}-4&2\\\\2&-4\\end{bmatrix}\\mathbf v = \\mathbf 0 \\Rightarrow 2v_1 = v_2$,取 $\\mathbf v_1 = \\frac{1}{\\sqrt5}\\begin{bmatrix}1\\\\2\\end{bmatrix}$。对 $\\lambda_2 = 0$:$\\begin{bmatrix}1&2\\\\2&4\\end{bmatrix}\\mathbf v = \\mathbf 0 \\Rightarrow v_1 + 2v_2 = 0$,取 $\\mathbf v_2 = \\frac{1}{\\sqrt5}\\begin{bmatrix}2\\\\-1\\end{bmatrix}$。点积 $\\frac{2-2}{5} = 0$ ✓。 **步骤 3($\\sigma$):** $\\sigma_1 = \\sqrt5 \\approx 2.2361$,$\\sigma_2 = 0$。$\\Sigma = \\begin{bmatrix}\\sqrt5 & 0\\\\ 0&0\\end{bmatrix}$。 **步骤 4($U$):** $\\mathbf u_1 = \\frac{A\\mathbf v_1}{\\sigma_1} = \\frac{1}{\\sqrt5}\\cdot\\frac{1}{\\sqrt5}\\begin{bmatrix}1&2\\\\0&0\\end{bmatrix}\\begin{bmatrix}1\\\\2\\end{bmatrix} = \\frac15\\begin{bmatrix}5\\\\0\\end{bmatrix} = \\begin{bmatrix}1\\\\0\\end{bmatrix}$。 $\\sigma_2 = 0$ **不能**用除法;需要与 $\\mathbf u_1 = [1,0]^{\\mathsf T}$ 正交的单位向量,取 $\\mathbf u_2 = \\begin{bmatrix}0\\\\1\\end{bmatrix}$(它张成 $N(A^{\\mathsf T}) = \\mathrm{span}([0,1]^{\\mathsf T})$:$A^{\\mathsf T}\\mathbf u_2 = \\begin{bmatrix}1&0\\\\2&0\\end{bmatrix}\\begin{bmatrix}0\\\\1\\end{bmatrix} = \\mathbf 0$ ✓)。 $$U = \begin{bmatrix}1&0\\0&1\end{bmatrix},\qquad \Sigma = \begin{bmatrix}\sqrt5&0\\0&0\end{bmatrix},\qquad V = \frac{1}{\sqrt5}\begin{bmatrix}1&2\\2&-1\end{bmatrix}.$$ **验证:** $U\\Sigma V^{\\mathsf T} = \\Sigma V^{\\mathsf T} = \\begin{bmatrix}\\sqrt5&0\\\\0&0\\end{bmatrix}\\cdot\\frac{1}{\\sqrt5}\\begin{bmatrix}1&2\\\\2&-1\\end{bmatrix} = \\begin{bmatrix}1&2\\\\0&0\\end{bmatrix} = A$ ✓ **各量:** - $\\mathrm{rank}(A) = 1$(非零奇异值只有 1 个)。 - $\\kappa(A)$:按标准定义 $\\kappa(A) = \\sigma_1/\\sigma_n = \\sqrt5/0 = \\infty$。**秩亏矩阵的条件数是无穷大**(这里 $\\sigma_2 = 0$,$A$ 奇异、完全病态)。注意不要误用 $\\sigma_1/\\sigma_r$($r$ 为非零奇异值个数)——那只是"秩 $r$ 意义上的"比值,本例为 $\\sqrt5/\\sqrt5 = 1$,会给出严重误导的"良态"假象。考试/应用中一律用 $\\sigma_1/\\sigma_n$($n$ 是**列数**,零奇异值也算进去)。 - $\\vert A\\vert _2 = \\sigma_1 = \\sqrt5 \\approx 2.2361$;$\\vert A\\vert _F = \\sqrt{\\sigma_1^2+\\sigma_2^2} = \\sqrt5 \\approx 2.2361$(秩 1 矩阵两个范数相等,与 $\\vert A\\vert _F = \\sqrt{1+4} = \\sqrt5$ 一致 ✓)。 - $\\det A = 0$,故 $\\lvert\\det A\\rvert = 0 = \\sigma_1\\sigma_2$ ✓(不可逆)。 **伪逆:** $\\Sigma^{+} = \\begin{bmatrix}1/\\sqrt5 & 0\\\\ 0&0\\end{bmatrix}$, $$A^{+} = V\Sigma^{+}U^{\mathsf T} = \frac{1}{\sqrt5}\begin{bmatrix}1&2\\2&-1\end{bmatrix}\begin{bmatrix}1/\sqrt5&0\\0&0\end{bmatrix} = \frac15\begin{bmatrix}1&0\\2&0\end{bmatrix}.$$ $$A^{+}A = \frac15\begin{bmatrix}1&0\\2&0\end{bmatrix}\begin{bmatrix}1&2\\0&0\end{bmatrix} = \frac15\begin{bmatrix}1&2\\2&4\end{bmatrix} = \begin{bmatrix}1/5 & 2/5\\ 2/5 & 4/5\end{bmatrix}.$$ 这是到 $C(A^{\\mathsf T}) = \\mathrm{span}([1,2]^{\\mathsf T})$ 的投影矩阵(幂等:$(A^{+}A)^2 = A^{+}A$,对称,迹 $= 1 = \\mathrm{rank}$;把 $[1,2]^{\\mathsf T}$ 保持不变,把与它正交的 $[2,-1]^{\\mathsf T}$ 投到 0)✓。**注意投影到的是行空间 $C(A^{\\mathsf T})$ 而不是列空间**:$A = \\begin{bmatrix}1&2\\\\0&0\\end{bmatrix}$ 的列空间只有 $[1,0]^{\\mathsf T}$ 方向,投影到列空间的是 $AA^{+} = \\begin{bmatrix}1&0\\\\0&0\\end{bmatrix}$。一般规律是 $A^{+}A$ 投影到 $C(A^{\\mathsf T})$(消灭 $N(A)$)、$AA^{+}$ 投影到 $C(A)$(消灭 $N(A^{\\mathsf T})$),二者不要混淆——这也正是讲次 33 伪逆"桥接四个子空间"的要点。

Q2. 某 $3\times3$ 矩阵 $A$ 的奇异值为 $\sigma_1 = 10,\ \sigma_2 = 1,\ \sigma_3 = 0.01$。求 $\mathrm{rank}(A)$、$\kappa(A)$、$\vert A\vert _2$、$\vert A\vert _F$、$\lvert\det A\rvert$,并说明”用 $\det A$ 判断病态”为什么不可靠。若把 $A$ 的所有元素乘以 $10^{6}$,哪些量会变?

答案 - **秩**:三个奇异值全部 $> 0$,故 $\\mathrm{rank}(A) = 3$,$A$ 可逆。 - **条件数**:$\\kappa(A) = \\sigma_1/\\sigma_3 = 10/0.01 = 1000$,比较病态(约损失 3 位有效数字)。 - **谱范数**:$\\vert A\\vert _2 = \\sigma_1 = 10$。 - **Frobenius 范数**:$\\vert A\\vert _F = \\sqrt{100 + 1 + 0.0001} = \\sqrt{101.0001} \\approx 10.0499$。 - **行列式**:$\\lvert\\det A\\rvert = \\prod\\sigma_i = 10\\times1\\times0.01 = 0.1$。 **为什么 $\\det$ 不可靠:** $\\det$ 随整体缩放剧烈变化,而条件数与缩放无关。若把 $A$ 换成 $10^{-6}A$,则 $\\det$ 变成 $10^{-18}\\times0.1 = 10^{-19}$("小得吓人"),但奇异值同步变成 $10^{-5}, 10^{-6}, 10^{-8}$,$\\kappa$ 仍然是 $10^{-5}/10^{-8} = 1000$,**完全不变**。反之,$A = 10^{-6}I_3$ 的 $\\det = 10^{-18}$ 却条件数为 $1$(完美良态)。所以病态看 $\\kappa = \\sigma_1/\\sigma_n$。 **缩放 $10^6$ 倍后:** 所有 $\\sigma_i$ 乘 $10^6$,于是 $\\mathrm{rank}$ **不变**(3)、$\\kappa$ **不变**(1000)、$\\vert A\\vert _2$ 与 $\\vert A\\vert _F$ 乘 $10^6$、$\\lvert\\det A\\rvert$ 乘 $10^{18}$。$U,V$ **完全不变**(只是 $\\Sigma$ 缩放)—— 这是 SVD 的尺度分离性质:方向信息在 $U,V$,大小信息在 $\\Sigma$。

Q3.(概念题) 为什么 SVD “对任意矩阵都存在”,而对角化 $A = S\Lambda S^{-1}$ 不行?请从”我们要求的东西”这个角度解释,并说明 SVD 为此付出了什么代价。再解释:为什么 $A^{\mathsf T}A$ 的非零特征值恰好是 $\sigma_i^2$(各 $r$ 个),这件事为什么又一次证明了”行秩 = 列秩”?

答案 **为什么对角化会失败:** $A = S\\Lambda S^{-1}$ 要求存在 $n$ 个**线性无关**的特征向量,即 $A\\mathbf x = \\lambda\\mathbf x$ 要有足够多的解。这有三个可能失败的原因: 1. **不是方阵**:$m\\ne n$ 时 $A\\mathbf x$ 与 $\\mathbf x$ 根本不在同一空间,写不出 $A\\mathbf x = \\lambda\\mathbf x$(示例 2 就是这样)。 2. **特征向量不够**:如 $A = \\begin{bmatrix}0&2\\\\0&0\\end{bmatrix}$(示例 3),特征值全 0 但只有一维特征空间(缺陷矩阵,讲次 28)。 3. **实特征值/特征向量不存在**:如旋转 $\\begin{bmatrix}0&-1\\\\1&0\\end{bmatrix}$,特征值 $\\pm i$。 根子在于:对角化**要求 $S$ 可逆**,而特征向量的存在性和无关性是"偶然的",取决于具体的 $A$。 **SVD 为什么永远成功:** SVD 换了要求——不再要求 $\\mathbf u_i = \\mathbf v_i$(同方向),而是允许**两个不同的正交组**,$A\\mathbf v_i = \\sigma_i\\mathbf u_i$。存在性不再依赖 $A$ 的性质,而依赖一个**永远成立**的定理:**$A^{\\mathsf T}A$ 是对称半正定矩阵,任何实对称矩阵都可以正交对角化(谱定理,讲次 25)**。$A^{\\mathsf T}A$ 是 $n\\times n$ 方阵、一定对称、一定半正定,所以一定能找到 $n$ 个标准正交特征向量 $\\mathbf v_i$ 和 $\\lambda_i \\ge 0$;定义 $\\sigma_i = \\sqrt{\\lambda_i}$,再用 $\\mathbf u_i = A\\mathbf v_i/\\sigma_i$ 造出正交组($\\mathbf u_i^{\\mathsf T}\\mathbf u_j = \\frac{\\mathbf v_i^{\\mathsf T}A^{\\mathsf T}A\\mathbf v_j}{\\sigma_i\\sigma_j} = \\frac{\\lambda_j \\mathbf v_i^{\\mathsf T}\\mathbf v_j}{\\sigma_i\\sigma_j} = 0$,$i\\ne j$),零的那些用 $N(A^{\\mathsf T})$ 补齐 —— 全程无一步可能失败。**把 $A$ 的问题变成 $A^{\\mathsf T}A$ 的问题,这就是 SVD 存在性的全部秘密。** **付出的代价:** - $\\mathbf u_i$ 与 $\\mathbf v_i$ 不同(失去"方向不变"的直观),$\\Sigma$ 与 $A$ **不是相似**关系($A = U\\Sigma V^{\\mathsf T}$,此时 $U\\ne V$,不能写成 $U\\Sigma U^{-1}$),所以**奇异值不是特征值**,$e^{At}$、稳定性判据这类必须用特征值的地方不能拿 $\\sigma_i$ 替代。 - $\\Sigma$ 中的数是非负的,符号信息被吸收进 $U$(示例 3 的正负号就是这样消失的)。 - 但换来的是:无条件存在、正交性、数值稳定($A^{\\mathsf T}A$ 对称,特征值问题有极好的算法;实际工业代码用的是 Golub–Kahan 双对角化,不显式计算 $A^{\\mathsf T}A$ 以避免损失精度)。 **为什么 $\\sigma_i^2$ 同时出现在 $A^{\\mathsf T}A$ 与 $AA^{\\mathsf T}$:** 由 $A^{\\mathsf T}A = V(\\Sigma^{\\mathsf T}\\Sigma)V^{\\mathsf T}$,$A^{\\mathsf T}A$ 的特征值就是 $\\Sigma^{\\mathsf T}\\Sigma$ 的对角元,即 $\\sigma_1^2,\\dots,\\sigma_r^2$ 和 $n-r$ 个 0;由 $AA^{\\mathsf T} = U(\\Sigma\\Sigma^{\\mathsf T})U^{\\mathsf T}$,$AA^{\\mathsf T}$ 的特征值是 $\\sigma_1^2,\\dots,\\sigma_r^2$ 和 $m-r$ 个 0。于是 $$\mathrm{rank}(A^{\mathsf T}A) = \#\{\sigma_i > 0\} = \mathrm{rank}(AA^{\mathsf T}).$$ 而 $A^{\\mathsf T}A\\mathbf x = \\mathbf 0 \\iff A\\mathbf x = \\mathbf 0$($\\Leftarrow$ 显然;$\\Rightarrow$ 由 $\\mathbf x^{\\mathsf T}A^{\\mathsf T}A\\mathbf x = \\vert A\\mathbf x\\vert ^2 = 0$),故 $\\mathrm{rank}(A^{\\mathsf T}A) = \\mathrm{rank}(A)$;同理 $\\mathrm{rank}(AA^{\\mathsf T}) = \\mathrm{rank}(A^{\\mathsf T})$。串起来:$\\mathrm{rank}(A) = \\mathrm{rank}(A^{\\mathsf T})$,**这正是"行秩 = 列秩"**。而由 $A^{\\mathsf T}A$ 的零空间维数:$n - r$ 个零奇异值 ⟺ $\\dim N(A) = n - r$,由 $AA^{\\mathsf T}$ 得 $\\dim N(A^{\\mathsf T}) = m - r$ —— 四个子空间的维数公式也一并重新导出。一个 SVD 就把讲次 10 的全部结论重新证明了一遍。 **用示例 2 核对这条链:** $A$ 是 $3\\times2$,$\\sigma_1 = \\sigma_2 = \\sqrt2$,$r = 2$。 - $A^{\\mathsf T}A$ 是 $2\\times2$,特征值 $2, 2$ ⟹ 两个 $\\sigma_i^2 = 2$,零特征值个数 $n - r = 0$; - $AA^{\\mathsf T}$ 是 $3\\times3$:$AA^{\\mathsf T} = \\begin{bmatrix}1&1&0\\\\1&-1&0\\\\0&0&0\\end{bmatrix}\\begin{bmatrix}1&1&0\\\\1&-1&0\\\\0&0&0\\end{bmatrix} = \\begin{bmatrix}2&0&0\\\\0&2&0\\\\0&0&0\\end{bmatrix}$(因为 $A^{\\mathsf T}$ 的列是 $A$ 的行,这里 $A$ 的三行是 $[1,1],[1,-1],[0,0]$,两两点积为 $2, 0, 0$),特征值是 $2, 2, 0$ ⟹ 非零特征值 $2,2$ ✓ 与 $A^{\\mathsf T}A$ 的完全相同,零特征值个数 $m - r = 1$ ✓; - $\\dim N(A) = 2 - 2 = 0$ ✓,$\\dim N(A^{\\mathsf T}) = 3 - 2 = 1$ ✓(正是 $\\mathrm{span}([0,0,1]^{\\mathsf T})$)。 - $\\mathrm{rank}(A) = 2 = \\mathrm{rank}(A^{\\mathsf T})$ ✓ —— 一个 $3\\times2$ 矩阵的行秩等于列秩,再次落实讲次 10。 **最后一点直观总结**:SVD 把"$A$ 是什么"这个问题的答案压缩成三个清单——**拉伸倍数($\\sigma_i$,唯一且排序)、输入方向($\\mathbf v_i$)、输出方向($\\mathbf u_i$)**。有了这三个清单,你就可以回答关于 $A$ 的一切结构性问题:秩、四子空间、范数、行列式、条件数、最佳低秩近似、伪逆。这就是为什么 Strang 把 SVD 放在课程最后作为顶点:它不是又一个分解,而是**整门课的统一语言**。