Logo

奇异值分解

1. 奇异值分解的背景

在前面的章节中,我们利用对角化定理 (A=PDP1) ~(\text{如}\mathbf{A} = \mathbf{P}\mathbf{D}\mathbf{P}^{-1})~可以将复杂矩阵运算简化为对角矩阵运算。然而,并非所有矩阵都能通过这种方式分解,尤其是对于非方阵。 而本节要介绍的奇异值分解 (Singular ~(\textbf{Singular }Value Decomposition, SVD) \textbf{Value Decomposition,~SVD})~则突破了非方阵的限制,它适用于任何矩阵。
SVD \textbf{SVD}~之所以能处理非方阵,关键在于它利用了矩阵 A ~\mathbf{A}~的转置与其自身的乘积 ATA ~\mathbf{A}^T\mathbf{A}~的可正交对角化性质。对于 ATA ~\mathbf{A}^T\mathbf{A}~有如下性质:

对任意 m×n ~m\times n~矩阵 A ~\mathbf{A}~,矩阵 ATA ~\mathbf{A}^T\mathbf{A}~ n×n ~n\times n~的对称矩阵( 因为 (ATA)T=ATA ~(\mathbf{A}^T\mathbf{A})^T = \mathbf{A}^T\mathbf{A}~)。

对任意非零向量 x ~\mathbf{x}~,有:
xT(ATA)x=(Ax)T(Ax)=Ax20\mathbf{x}^T(\mathbf{A}^T\mathbf{A})\mathbf{x} = (\mathbf{A}\mathbf{x})^T(\mathbf{A}\mathbf{x}) = \|\mathbf{A}\mathbf{x}\|^2 \geq 0
因此 ATA ~\mathbf{A}^T\mathbf{A}~是半正定矩阵。

存在正交矩阵 D ~\mathbf{D}~使得:
ATA=PDPT,D=[λ1000λ2000λn]\mathbf{A}^T\mathbf{A} = \mathbf{P}\mathbf{D}\mathbf{P}^T, \quad \mathbf{D} = \begin{bmatrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_n \end{bmatrix}
由于 ATA ~\mathbf{A}^T\mathbf{A}~是半正定矩阵,所以 λi0 ~\lambda_i \geq 0~

2. SVD \text{SVD}~的基本概念与几何意义

1\mathbf{1}:给定矩阵 A=[41114872] ~\mathbf{A} = \begin{bmatrix}4 & 11 & 14 \\ 8 & 7 & -2\end{bmatrix}~,线性变化 xAx ~\mathbf{x} \mapsto \mathbf{A}\mathbf{x}~将三维空间中的单位球面 {x:x=1} ~\{\mathbf{x}: \|\mathbf{x}\| = 1\}~映射到二维平面上的一个椭圆。请找到一个单位向量 x ~\mathbf{x}~,使得 Ax ~\|\mathbf{A}\mathbf{x}\|~最大化;并计算此时的最大长度 Ax ~\|\mathbf{A}\mathbf{x}\|~

  1. 问题转化最大化 Ax2 ~\|\mathbf{A}\mathbf{x}\|^2~
    由于平方函数在非负区间单调递增,最大化 Ax ~\|\mathbf{A}\mathbf{x}\|~等价于最大化 Ax2 ~\|\mathbf{A}\mathbf{x}\|^2~
     Ax2=(Ax)T(Ax)=xT(ATA)x ~\|\mathbf{A}\mathbf{x}\|^2 = (\mathbf{A}\mathbf{x})^T(\mathbf{A}\mathbf{x}) = \mathbf{x}^T(\mathbf{A}^T\mathbf{A})\mathbf{x}~
    因此,问题转化为在约束条件 x=1 ~\|\mathbf{x}\| = 1~下,最大化二次型 xT(ATA)x ~\mathbf{x}^T(\mathbf{A}^T\mathbf{A})\mathbf{x}~
  2. 计算 ATA ~\mathbf{A}^T\mathbf{A}~
    ATA=[48117142][41114872]=[801004010017014040140200]\mathbf{A}^T \mathbf{A} = \begin{bmatrix} 4 & 8 \\ 11 & 7 \\ 14 & -2 \end{bmatrix} \begin{bmatrix} 4 & 11 & 14 \\ 8 & 7 & -2 \end{bmatrix} = \begin{bmatrix} 80 & 100 & 40 \\ 100 & 170 & 140 \\ 40 & 140 & 200 \end{bmatrix}
  3. 求解 ATA ~\mathbf{A}^T\mathbf{A}~的特征值与单位特征向量
     det(ATAλI)=0 ~\det(\mathbf{A}^T\mathbf{A} - \lambda\mathbf{I}) = 0~,得到特征值:
    λ1=360,λ2=90,λ3=0\lambda_1 = 360, \quad \lambda_2 = 90, \quad \lambda_3 = 0
    对应的单位特征向量:
    λ1=360,v1=[1/32/32/3]λ2=90,v2=[2/31/32/3]λ3=0,v3=[2/32/31/3]\begin{align*} \lambda_1 &= 360, \quad &\mathbf{v}_1 &= \begin{bmatrix}1/3 \\ 2/3 \\ 2/3\end{bmatrix} \\[4ex] \lambda_2 &= 90, \quad &\mathbf{v}_2 &= \begin{bmatrix}-2/3 \\ -1/3 \\ 2/3\end{bmatrix} \\[4ex] \lambda_3 &= 0, \quad &\mathbf{v}_3 &= \begin{bmatrix}2/3 \\ -2/3 \\ 1/3\end{bmatrix} \end{align*}
  4. 确定最大化 Ax ~\|\mathbf{A}\mathbf{x}\|~的向量
    根据二次型极值定理,最大特征值 λ1=360 ~\lambda_1 = 360~对应的单位特征向量 v1 ~\mathbf{v}_1~使得 xT(ATA)x ~\mathbf{x}^T(\mathbf{A}^T\mathbf{A})\mathbf{x}~达到最大值。因此,当 x=v1 ~\mathbf{x}=\mathbf{v}_1~时,Ax2=360\|\mathbf{A}\mathbf{x}\|^2 = 360,即:
    Axmax=360=610\|\mathbf{A}\mathbf{x}\|_{max} = \sqrt{360} = 6\sqrt{10}
  5. 验证结果
    计算 Av1 ~\mathbf{A}\mathbf{v}_1~
    Av1=[41114872][1/32/32/3]=[186]\mathbf{A}\mathbf{v}_1 = \begin{bmatrix}4 & 11 & 14 \\ 8 & 7 & -2\end{bmatrix} \begin{bmatrix}1/3 \\ 2/3 \\ 2/3\end{bmatrix} = \begin{bmatrix}18 \\ 6\end{bmatrix}
    验证其长度:
    Av1=182+62=360=610\|\mathbf{A}\mathbf{v}_1\| = \sqrt{18^2 + 6^2} = \sqrt{360} = 6\sqrt{10}

我们计算得到 x=[1/32/32/3]T ~\mathbf{x} = \begin{bmatrix}1/3 & 2/3 & 2/3\end{bmatrix}^T~时,Ax\|\mathbf{A}\mathbf{x}\|取得最大值 610 ~6\sqrt{10}~

3. 奇异值的定义与性质

 A ~\mathbf{A}~ m×n ~m\times n~实矩阵,ATA \mathbf{A}^T\mathbf{A}~的特征值为 λ1,λ2,,λn ~\lambda_1,\lambda_2,\cdots,\lambda_n~(按降序排列且非负)。矩阵 A ~\mathbf{A}~的奇异值定义为:
σi=λi(1in)\sigma _ { i } = \sqrt { \lambda _ { i } } \quad ( 1 \leq i \leq n )
并满足:
σ1σ2σn0\sigma_1 \geq \sigma_2 \cdots \geq \sigma_n \geq 0
2\mathbf{2}:给定 A=[41114872] ~\mathbf{A} = \begin{bmatrix}4 & 11 & 14 \\ 8 & 7 & -2\end{bmatrix}~,已知 ATA ~\mathbf{A}^T\mathbf{A}~的特征值为 λ1=360, λ2=90, λ3=0 ~\lambda_1 = 360,~\lambda_2 = 90,~\lambda_3 = 0~。请计算矩阵 A ~\mathbf{A}~的奇异值,验证奇异值的几何意义。

  1. 计算奇异值

    奇异值为 ATA ~\mathbf{A}^T\mathbf{A}~特征值的平方根,利用例 1 ~1~中计算得到的特征值,可得奇异值为:
    σ1=360=610,σ2=90=310,σ3=0\sigma_1 = \sqrt{360} = 6\sqrt{10},\quad \sigma_2 = \sqrt{90} = 3\sqrt{10},\quad \sigma_3 = 0
    非零奇异值的数量( 2 ~2~个)对应矩阵 A ~\mathbf{A}~的秩。
  2. 验证几何意义

    • 计算Av1\mathbf{A}\mathbf{v}_1 Av2 ~\mathbf{A}\mathbf{v}_2~
      •  1 ~1~中计算得到 v1=[1/31/31/3]T ~\mathbf{v}_1 = \begin{bmatrix}1/3 & 1/3 & 1/3\end{bmatrix}^T~,那么Av1\mathbf{A}\mathbf{v}_1
        Av1=[41114872][1/31/31/3]=[186]\mathbf{A}\mathbf{v}_1 = \begin{bmatrix} 4 & 11 & 14 \\ 8 & 7 & -2 \end{bmatrix} \begin{bmatrix} 1/3 \\ 1/3 \\ 1/3 \end{bmatrix} = \begin{bmatrix} 18 \\ 6 \end{bmatrix}
        长度为:
        Av1=182+62=360=610=σ1\|\mathbf{A}\mathbf{v}_1 = \sqrt{18^2 + 6^2}\| = \sqrt{360} = 6\sqrt{10} = \sigma_1
      • v2=[2/31/32/3]T\mathbf{v}_2 = \begin{bmatrix}-2/3 & -1/3 & 2/3\end{bmatrix}^T,计算Av2\mathbf{A}\mathbf{v}_2
        Av2=[41114872][2/31/32/3]=[39]\mathbf{A}\mathbf{v}_2 = \begin{bmatrix} 4 & 11 & 14 \\ 8 & 7 & -2 \end{bmatrix} \begin{bmatrix} -2/3 \\ -1/3 \\ 2/3 \end{bmatrix} = \begin{bmatrix} 3 \\ -9 \end{bmatrix}
        长度为:
        Av2=32+(9)2=90=310=σ2\|\mathbf{A}\mathbf{v}_2\| = \sqrt{3^2 + (-9)^2} = \sqrt{90} = 3\sqrt{10} = \sigma_2
    • 验证正交性
      计算 Av1 ~\mathbf{A}\mathbf{v}_1~ Av2 ~\mathbf{A}\mathbf{v}_2~的内积:
      Av1Av2=183+6(9)=0\mathbf{A}\mathbf{v}_1\cdot \mathbf{A}\mathbf{v}_2 = 18\cdot 3 + 6\cdot(-9) = 0
      说明 Av1 ~\mathbf{A}\mathbf{v}_1~ Av2 ~\mathbf{A}\mathbf{v}_2~正交。

  1. 证明 {Av1,,Avn} ~\{\mathbf{A}\mathbf{v}_1, \cdots, \mathbf{A}\mathbf{v}_n\}~是正交集合

    对于任意 ij ~i \neq j~,计算 (Avi)T(Avj) ~(\mathbf{A}\mathbf{v}_i)^T(\mathbf{A}\mathbf{v}_j)~
    (Avi)T(Avj)=viTATAvj=viT(λjvj)=λj(viTvj)(\mathbf{A}\mathbf{v}_i)^T(\mathbf{A}\mathbf{v}_j) = \mathbf{v}_i^T\mathbf{A}^T\mathbf{A}\mathbf{v}_j = \mathbf{v}_i^T(\lambda_j \mathbf{v}_j) = \lambda_j(\mathbf{v}_i^T \mathbf{v}_j)
    由于 {v1,,vn} ~\{\mathbf{v}_1, \cdots, \mathbf{v}_n\}~是正交基,viTvj=0 (ij)\mathbf{v}_i^T\mathbf{v}_j = 0~(i \neq j),因此:
    (Avi)(Avj)=0(\mathbf{A}\mathbf{v}_i)(\mathbf{A}\mathbf{v}_j) = 0
    这表明 {Av1,,Avn} ~\{\mathbf{A}\mathbf{v}_1, \cdots, \mathbf{A}\mathbf{v}_n\}~是一个正交集合。
  2. 确定非零向量 {Av1,,Avn} ~\{\mathbf{A}\mathbf{v}_1, \cdots, \mathbf{A}\mathbf{v}_n\}~

    • 根据奇异值的定义,Avi=σi=λi\|\mathbf{A}\mathbf{v}_i\| = \sigma_i = \sqrt{\lambda_i}

    • 由于 A ~\mathbf{A}~ r ~r~个非零奇异值,所以 σi>0 ~\sigma_i > 0~当且仅当 1ir ~1 \leq i \leq r~

    • 因此,Avi0\mathbf{A}\mathbf{v}_i \neq 0当且仅当 1ir ~1 \leq i \leq r~,而 Avr+1,,Avn ~\mathbf{A}\mathbf{v}_{r+1}, \cdots, \mathbf{A}\mathbf{v}_n~均为零向量。

  3. 证明 {Av1,,Avn} ~\{\mathbf{A}\mathbf{v}_1, \cdots, \mathbf{A}\mathbf{v}_n\}~ColA\text{Col}\mathbf{A}的基

    • 对于任意yColA\mathbf{y} \in \text{Col}\mathbf{A},存在 xRn ~\mathbf{x} \in \mathbb{R}^n~使得 y=Ax ~\mathbf{y} = \mathbf{A}\mathbf{x}~

    •  x ~\mathbf{x}~表示为正交基的线性组合:
      x=c1v1++cnvn\mathbf{x} = c_1\mathbf{v}_1 + \cdots + c_n\mathbf{v}_n
    • 计算 y=Ax ~\mathbf{y} = \mathbf{A}\mathbf{x}~
      y=A(c1v1++cnvn)=c1Av1++crAvr+cr+1Avr+1++cnAvn\begin{align*}\mathbf{y} &= \mathbf{A}(c_1\mathbf{v}_1 + \cdots + c_n\mathbf{v}_n)\\[2ex] &= c_1\mathbf{A}\mathbf{v}_1 + \cdots + c_r\mathbf{A}\mathbf{v}_r + c_{r+1}\mathbf{A}\mathbf{v}_{r+1} + \cdots + c_n\mathbf{A}\mathbf{v}_n\end{align*}
    • 由于 Avr+1==Avn=0 ~\mathbf{A}\mathbf{v}_{r+1} = \cdots = \mathbf{A}\mathbf{v}_n = 0~,上式可简化为:
      y=c1Av1++crAvr\mathbf{y} = c_1\mathbf{A}\mathbf{v}_1 + \cdots + c_r\mathbf{A}\mathbf{v}_r
    • 这表明 y ~\mathbf{y}~属于 {Av1,,Avn} ~\{\mathbf{A}\mathbf{v}_1, \cdots, \mathbf{A}\mathbf{v}_n\}~的生成空间,因此 {Av1,,Avn} ~\{\mathbf{A}\mathbf{v}_1, \cdots, \mathbf{A}\mathbf{v}_n\}~ Col A ~\text{Col}~\mathbf{A}~的基。

  4. 确定 A ~\mathbf{A}~的秩

    • 由于 {Av1,,Avn} ~\{\mathbf{A}\mathbf{v}_1, \cdots, \mathbf{A}\mathbf{v}_n\}~ Col A ~\text{Col}~\mathbf{A}~的正交基,且线性无关,所以 Col A ~\text{Col}~\mathbf{A}~的维度为 r ~r~

    • 因此,A \mathbf{A}~的秩为 r ~r~

4. 奇异值分解的构造方法

任何形如 A=UΣVT ~\mathbf{A} = \mathbf{U}\mathbf{\Sigma}\mathbf{V}^T~的分解,被称为 A ~\mathbf{A}~的奇异值分解 (SVD) ~(\text{SVD})~。 其中 U ~\mathbf{U}~ V ~\mathbf{V}~是正交矩阵,Σ \Sigma~中的对角矩阵 D ~\mathbf{D}~的对角线元素为正。矩阵 U ~\mathbf{U}~ V ~\mathbf{V}~不是由 A ~\mathbf{A}~唯一确定的,但Σ\Sigma的对角线元素必然是 A ~\mathbf{A}~的奇异值。在这种分解中,U \mathbf{U}~的列称为 A ~\mathbf{A}~的左奇异向量,v \mathbf{v}~的列称为 A ~\mathbf{A}~的右奇异向量。

  1. 构造右奇异向量矩阵 V ~\mathbf{V}~

    • 计算 ATA ~\mathbf{A}^T\mathbf{A}~
      对任意 m×n ~m\times n~矩阵 A ~\mathbf{A}~,矩阵 ATA ~\mathbf{A}^T\mathbf{A}~ n×n ~n\times n~的对称半正定矩阵。

    • 正交对角化
      由谱定理,ATA\mathbf{A}^T\mathbf{A}可正交对角化为:
      ATA=PDPT,D=[λ1000λ2000λn]\mathbf{A}^T\mathbf{A} = \mathbf{P}\mathbf{D}\mathbf{P}^T,\quad \mathbf{D} = \begin{bmatrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_n \end{bmatrix}
      其中 λi0 ~\lambda_i \geq 0~,且 P=[v1v2vn] ~\mathbf{P} = \begin{bmatrix}\mathbf{v}_1 & \mathbf{v}_2 & \cdots & \mathbf{v}_n\end{bmatrix}~是正交矩阵,vi\mathbf{v}_iATA\mathbf{A}^T\mathbf{A}的单位正交特征向量。
    • 定义奇异值
      取非零特征值的平方根作为奇异值:
      σi=λi(i=1,2,,r),r=rank(A)\sigma_i = \sqrt{\lambda_i}\quad (i = 1,2,\cdots,r),\quad r = \text{rank}(\mathbf{A})
  2. 构造左奇异向量矩阵 U ~\mathbf{U}~

    • 生成非零奇异值对应的 ui ~\mathbf{u}_i~
      对每个非零奇异值 σi ~\sigma_i~,定义:
      ui=1σiAvi(i=1,2,,r)\mathbf{u}_i = \frac{1}{\sigma_i}\mathbf{A}\mathbf{v}_i\quad (i=1,2,\cdots, r)
       Avi=σi ~\|\mathbf{A}\mathbf{v}_i\|=\sigma_i~,可知 ui ~\mathbf{u}_i~是单位向量。
    • 验证正交性
      对于 ij ~i \neq j~,有:
      uiTuj=1σiσjviTATAvj=λjσiσjviTvj=0\mathbf{u}_i^T \mathbf{u}_j = \frac{1}{\sigma_i \sigma_j} \mathbf{v}_i^T \mathbf{A}^T \mathbf{A} \mathbf{v}_j = \frac{\lambda_j}{\sigma_i \sigma_j} \mathbf{v}_i^T \mathbf{v}_j = 0
      因此 {u1,,ur} ~\{\mathbf{u}_1, \cdots, \mathbf{u}_r \}~是正交单位向量集。
    • 扩展至完整正交基
       m>r ~m > r~,通过 Gram-Schmidt ~\text{Gram-Schmidt}~正交化将{u1,,ur}\{\mathbf{u}_1, \cdots, \mathbf{u}_r\}扩展为 Rm ~\mathbb{R^m}~的正交基 {u1,,um} ~\{\mathbf{u}_1,\cdots,\mathbf{u}_m\}~,构成正交矩阵 U ~\mathbf{U}~
  3. 构造奇异值矩阵 Σ ~\mathbf{\Sigma}~

    定义 m×n ~m\times n~矩阵 Σ ~\mathbf{\Sigma}~为:
    Σ=[D000],D=[λ1000λ2000λn]\mathbf{\Sigma} = \begin{bmatrix}\mathbf{D} & 0 \\ 0 & 0\end{bmatrix}, \quad \mathbf{D} = \begin{bmatrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_n \end{bmatrix}
    其中非零奇异值按降序排列,其余位置填充零。
  4. 验证分解 A=UΣVT ~\mathbf{A} = \mathbf{U}\mathbf{\Sigma}\mathbf{V}^T~

    • 计算 AV ~\mathbf{A}\mathbf{V}~
       Avi=σiui (ir) ~\mathbf{A}\mathbf{v}_i = \sigma_i\mathbf{u}_i~(i \leq r)~ Avi=0 (i>r) ~\mathbf{A}\mathbf{v}_i = 0~(i > r)~,可得:
      AV=[σ1u1σrur00]\mathbf{A}\mathbf{V} = \begin{bmatrix}\sigma_1\mathbf{u}_1 & \cdots & \sigma_r\mathbf{u}_r & 0 & \cdots & 0\end{bmatrix}
    • 组合分解式
      由于 UΣ ~\mathbf{U}\mathbf{\Sigma}~的列结构为[σ1u1σrur00]\begin{bmatrix}\sigma_1\mathbf{u}_1 & \cdots & \sigma_r\mathbf{u}_r & 0 & \cdots & 0\end{bmatrix},且 VT ~\mathbf{V}^T~是正交矩阵,因此:
      UΣVT=UΣ(VT)=AVVT=A\mathbf{U} \mathbf{\Sigma} \mathbf{V}^T = \mathbf{U} \mathbf{\Sigma} \left( \mathbf{V}^T \right) = \mathbf{A} \mathbf{V} \mathbf{V}^T = \mathbf{A}
  5. 唯一性说明

    • 奇异值的唯一性
      Σ \mathbf{\Sigma}~的对角元素(奇异值)由 ATA ~\mathbf{A}^T\mathbf{A}~的特征值唯一确定,因此是唯一的。
    • 矩阵 U ~\mathbf{U}~ V ~\mathbf{V}~的非唯一性
      若存在多个正交基满足条件(例如特征值重复时),U \mathbf{U}~ V ~\mathbf{V}~的列向量可能有不同选择,但需保证 UΣVT=A ~\mathbf{U}\mathbf{\Sigma}\mathbf{V}^T = \mathbf{A}~

5. 奇异值分解的计算示例

3\mathbf{3}:求A=[41114872]\mathbf{A} = \begin{bmatrix}4 & 11 & 14 \\ 8 & 7 & -2\end{bmatrix}的一个奇异值分解。

  • ATA \mathbf{A}^T\mathbf{A}~的特征值与特征向量已在例 1 ~1~中求得:
    λ1=360,v1=[1/32/32/3]λ2=90,v2=[2/31/32/3]λ3=0,v3=[2/32/31/3]\begin{align*} \lambda_1 &= 360, \quad &\mathbf{v}_1 &= \begin{bmatrix}1/3 \\ 2/3 \\ 2/3\end{bmatrix} \\[4ex] \lambda_2 &= 90, \quad &\mathbf{v}_2 &= \begin{bmatrix}-2/3 \\ -1/3 \\ 2/3\end{bmatrix} \\[4ex] \lambda_3 &= 0, \quad &\mathbf{v}_3 &= \begin{bmatrix}2/3 \\ -2/3 \\ 1/3\end{bmatrix} \end{align*}

  • 将特征向量按特征值降序排列,构造 V ~\mathbf{V}~
    V=[v1v2v3]=[1/32/32/32/31/32/32/32/31/3]\mathbf{V} = \begin{bmatrix}\mathbf{v}_1 & \mathbf{v}_2 & \mathbf{v}_3 \end{bmatrix} = \begin{bmatrix} 1/3 & -2/3 & 2/3 \\ 2/3 & -1/3 & -2/3 \\ 2/3 & 2/3 & 1/3 \end{bmatrix}
  • 计算奇异值:
    σ1=λ1=610,σ2=λ2=310,σ3=λ3=0\sigma_1 = \sqrt{\lambda_1} = 6\sqrt{10},\quad \sigma_2 = \sqrt{\lambda_2} = 3\sqrt{10},\quad \sigma_3 = \sqrt{\lambda_3} = 0
  • 构造对角矩阵 Σ ~\mathbf{\Sigma}~
    Σ=[6100003100]\mathbf{\Sigma} = \begin{bmatrix}6\sqrt{10} & 0 & 0 \\ 0 & 3\sqrt{10} & 0\end{bmatrix}
    注意:Σ \mathbf{\Sigma}~的大小与 A ~\mathbf{A}~相同,非零奇异值位于左上角。

  • 计算 u1 ~\mathbf{u}_1~ u2 ~\mathbf{u}_2~
    u1=1σ1Av1=1610[186]=[3/101/10]u2=1σ2Av2=1310[39]=[1/103/10]\begin{align*} \mathbf{u}_1 &= \frac{1}{\sigma_1}\mathbf{A}\mathbf{v}_1 &= \frac{1}{6\sqrt{10}}\begin{bmatrix}18 \\ 6 \end{bmatrix} &= \begin{bmatrix}3/\sqrt{10} \\ 1/\sqrt{10}\end{bmatrix} \\[4ex] \mathbf{u}_2 &= \frac{1}{\sigma_2}\mathbf{A}\mathbf{v}_2 &= \frac{1}{3\sqrt{10}}\begin{bmatrix}3 \\ -9 \end{bmatrix} &= \begin{bmatrix}1/\sqrt{10} \\ -3/\sqrt{10}\end{bmatrix} \end{align*}
  • 由于 A ~\mathbf{A}~ 2×3 ~2\times 3~矩阵,U \mathbf{U}~只需包含 u1 ~\mathbf{u}_1~ u2 ~\mathbf{u}_2~
    U=[u1u2]=[3/101/101/103/10]\mathbf{U} = \begin{bmatrix}\mathbf{u}_1 & \mathbf{u}_2\end{bmatrix} = \begin{bmatrix} 3/\sqrt{10} & 1/\sqrt{10} \\ 1/\sqrt{10} & -3/\sqrt{10} \end{bmatrix}

A=UΣVT=[3/101/101/103/10][6100003100][1/32/32/32/31/32/32/32/31/3]T\mathbf{A} = \mathbf{U} \mathbf{\Sigma} \mathbf{V}^T = \begin{bmatrix} 3/\sqrt{10} & 1/\sqrt{10} \\ 1/\sqrt{10} & -3/\sqrt{10} \end{bmatrix} \begin{bmatrix} 6\sqrt{10} & 0 & 0 \\ 0 & 3\sqrt{10} & 0 \end{bmatrix} \begin{bmatrix} 1/3 & 2/3 & 2/3 \\ -2/3 & -1/3 & 2/3 \\ 2/3 & -2/3 & 1/3 \end{bmatrix}^T

4\mathbf{4}:求 A=[112222] ~\mathbf{A} = \begin{bmatrix}1 & -1 \\ -2 & 2 \\ 2 & -2\end{bmatrix}~的一个奇异值分解。

  • 计算ATA \mathbf{A}^T\mathbf{A}~
    ATA=[122122][112222]=[9999]\mathbf{A}^T \mathbf{A} = \begin{bmatrix} 1 & -2 & 2 \\ -1 & 2 & -2 \end{bmatrix} \begin{bmatrix} 1 & -1 \\ -2 & 2 \\ 2 & -2 \end{bmatrix} = \begin{bmatrix} 9 & -9 \\ 9 & 9 \end{bmatrix}
  • 求特征值以及特征向量:
    λ1=18,v1=[1/21/2]λ2=0,v2=[1/21/2]\begin{align*} \lambda_1 &= 18, & \mathbf{v}_1 &= \begin{bmatrix} 1/\sqrt{2} \\ -1/\sqrt{2} \end{bmatrix} \\[3ex] \lambda_2 &= 0, & \mathbf{v}_2 &= \begin{bmatrix} 1/\sqrt{2} \\ 1/\sqrt{2} \end{bmatrix} \end{align*}

  • 构造 V ~\mathbf{V}~
    V=[v1v2]=[1/21/21/21/2]\mathbf{V} = \begin{bmatrix}\mathbf{v}_1 & \mathbf{v}_2\end{bmatrix} = \begin{bmatrix} 1/\sqrt{2} & 1/\sqrt{2} \\ -1/\sqrt{2} & 1/\sqrt{2} \end{bmatrix}
  • 计算奇异值:
    σ1=18=32,σ2=0\sigma_1 = \sqrt{18} = 3\sqrt{2},\quad \sigma_2 = 0
  • 构造对角矩阵 Σ ~\mathbf{\Sigma}~
    Σ=[3200000]\mathbf{\Sigma} = \begin{bmatrix}3\sqrt{2} & 0 \\ 0 & 0 \\ 0 & 0 \end{bmatrix}

  • 计算 u1 ~\mathbf{u}_1~

    由于矩阵 A ~\mathbf{A}~只有一个非零奇异值(秩为 1 ~1~),因此 U ~\mathbf{U}~的有效列向量只有一个 u1 ~\mathbf{u}_1~,即:
    u1=1σ1Av1=[1/32/32/3]\mathbf{u}_1 = \frac{1}{\sigma_1}\mathbf{A}\mathbf{v}_1 = \begin{bmatrix}1/3 \\ -2/3 \\ 2/3\end{bmatrix}
     U ~\mathbf{U}~是一个 3×3 ~3\times 3~的正交矩阵。为了构造完整的 U ~\mathbf{U}~,我们需要拓展 {u1} ~\{\mathbf{u}_1\}~ R3 ~\mathbb{R^3}~的标准正交基。这意味着需要找到两个与 u1 ~\mathbf{u}_1~正交的向量 u2 ~\mathbf{u}_2~ u3 ~\mathbf{u}_3~,使得 U=[u1u2u3] ~\mathbf{U} = \begin{bmatrix}\mathbf{u}_1 & \mathbf{u}_2 & \mathbf{u}_3\end{bmatrix}~是一个正交矩阵。
  • 构造与 u1 ~\mathbf{u}_1~正交的向量

    •  u1 ~\mathbf{u}_1~正交的条件是:
      u1Tw=013w123w2+23=0\mathbf{u}_1^T\mathbf{w} = 0\quad \Rightarrow \frac{1}{3}w_1 - \frac{2}{3}w_2 + \frac{2}{3} = 0
    • 化简得到:
      w12w2+2w3=0w_1 - 2w_2 + 2w_3 = 0
    • 选择两个线性无法的解向量:
      w1=[210],w2=[201]\mathbf{w}_1 = \begin{bmatrix}2 \\ 1 \\ 0\end{bmatrix},\quad \mathbf{w}_2 = \begin{bmatrix}-2 \\ 0 \\ 1\end{bmatrix}
    • 利用 Gram-Schmidt ~\text{Gram-Schmidt}~方法正交化 w1 ~\mathbf{w}_1~ w2 ~\mathbf{w}_2~
      u2=[2/51/50],u3=[2/454/455/45]\mathbf{u}_2 = \begin{bmatrix} 2/\sqrt{5} \\ 1/\sqrt{5} \\ 0 \end{bmatrix},\quad \mathbf{u}_3 = \begin{bmatrix} -2/\sqrt{45}\\ 4/\sqrt{45} \\ 5/\sqrt{45} \end{bmatrix}
  • 最终得到矩阵 U ~\mathbf{U}~
    U=[1/32/52/452/31/54/452/305/45]\mathbf{U} = \begin{bmatrix} 1/3 & 2/\sqrt{5} & -2/\sqrt{45} \\ -2/3 & 1/\sqrt{5} & 4/\sqrt{45} \\ 2/3 & 0 & 5/\sqrt{45} \end{bmatrix}

A=UΣVT=[1/32/52/452/31/54/452/305/45][3200000][1/21/21/21/2]A = U \Sigma V^T = \begin{bmatrix} 1/3 & 2/\sqrt{5} & -2/\sqrt{45} \\ -2/3 & 1/\sqrt{5} & 4/\sqrt{45} \\ 2/3 & 0 & 5/\sqrt{45} \end{bmatrix} \begin{bmatrix} 3\sqrt{2} & 0 \\ 0 & 0 \\ 0 & 0 \end{bmatrix} \begin{bmatrix} 1/\sqrt{2} & -1/\sqrt{2} \\ 1/\sqrt{2} & 1/\sqrt{2} \end{bmatrix}

6. 奇异值分解的应用

6.1 条件数

背景:在数值计算中,尤其是在求解线性方程 Ax=b ~\mathbf{A}\mathbf{x}=\mathbf{b}~的过程中,计算结果容易受到输入误差和舍入误差的放大影响,从而导致解的不稳定性。这就需要一个指标来“量化”矩阵 A ~\mathbf{A}~的“稳定性”或“敏感性”——条件数 ( condition number ) ~(~\textbf{condition number}~)~由此而来。

条件数的几何意义:条件数衡量矩阵对空间的拉伸扭曲程度,几何上条件数越大,单位球越被拉成长扁椭球,意味着解对扰动越敏感,数值越不稳定。总之,条件数越大,解对误差越敏感

为什么用奇异值定义条件数:奇异值描述了矩阵 A ~\mathbf{A}~如何将单位球变形成椭球,其半轴长度正是奇异值。最大与最小奇异值之比(即条件数)刻画了变换的“扁平程度”,反映了解对误差的敏感性。SVD \text{SVD}~分解中的两个正交矩阵 U ~\mathbf{U}~ V ~\mathbf{V}~不改变长度与角度,不影响稳定性,因此所有的不稳定性都集中体现在奇异值上。这使得用奇异值定义条件数,既有几何直观性,又能准确反映数值风险的来源。

6.2 利用奇异值分解提取子空间正交基

  • A \mathbf{A}~的列空间的正交基( ColA) (~\text{Col}\mathbf{A})~:通过奇异值分解 A=UΣVT ~\mathbf{A} = \mathbf{U}\mathbf{\Sigma}\mathbf{V}^T~,我们知道前 r ~r~个左奇异向量 u1, , ur ~\mathbf{u}_1,~\cdots,~\mathbf{u}_r~对应非零奇异值。根据定理 9 ~9~,它们所张成的子空间正是 A ~\mathbf{A}~的列空间( ColA) (~\text{Col}\mathbf{A})~
    Col(A)=span{u1,...,ur}\text{Col}(\mathbf{A}) = \text{span}\{\mathbf{u}_1, ..., \mathbf{u}_r\}
    这意味着,任何 A ~\mathbf{A}~的列线性组合所构成的向量,都可以由这组向量组合生成。
  • AT\mathbf{A}^T的零空间的正交基 (NullAT) ~(\text{Null}\mathbf{A}^T)~:由于 (NullAT) ~(\text{Null}\mathbf{A}^T)~ Col(A) ~\text{Col}(\mathbf{A})~的正交补空间(即与列空间正交的所有向量),即:(Col A)=Nul(AT)(\text{Col } A)^\perp = \text{Nul}(A^T)。因此奇异值分解中剩下的左奇异向量ur+1, um\mathbf{u}_{r+1},~\cdots \mathbf{u}_m就构成了 (NullAT) ~(\text{Null}\mathbf{A}^T)~的正交基:
    Nul(AT)=span{ur+1,...,um}\text{Nul}(A^T) = \text{span}\{\mathbf{u}_{r+1}, ..., \mathbf{u}_m\}
    这些向量与 A ~\mathbf{A}~的列方向正交,代表 A ~\mathbf{A}~无法映射到的方向。
  • 零空间的正交基 (NullA)~(\text{Null}\mathbf{A}): 从右奇异向量出发,对于那些对应奇异值为 0 ~0~ vr+1, vn ~\mathbf{v}_{r+1},~\cdots \mathbf{v}_n~,有:
    Avi=0i>r\mathbf{A}\mathbf{v}_i = 0 \quad \small{当 } i > r
    所以这些向量属于 A ~\mathbf{A}~的零空间(即被 A ~\mathbf{A}~映射为 0 ~\mathbf{0}~的向量)。因此:
    Nul(A)=span{vr+1,...,vn}\text{Nul}(\mathbf{A}) = \text{span}\{v_{r+1}, ..., v_n\}
    它们是零空间的一个正交基(因为 V ~\mathbf{V}~是正交矩阵,其列互相正交)。
  • 行空间的正交基 (RowA) ~(\text{Row}\mathbf{A})~A \mathbf{A}~的行空间等价于 A ~\mathbf{A}~的转置的列空间,也就是:
    Row(A)=Col(AT)=(Nul(A))\text{Row}(A) = \text{Col}(A^T) = (\text{Nul}(A))^\perp
    因此,与非零奇异值对应的右奇异向量 v1, vr ~\mathbf{v}_1,~\cdots \mathbf{v}_r~就构成了行空间的正交基:
    Row(A)=span{v1,...,vr}\text{Row}(A) = \text{span}\{v_1, ..., v_r\}

7. 进阶内容:简化 SVD ~\text{SVD}~与伪逆

7.1 简化奇异值分解的形式

当矩阵 A ~\mathbf{A}~的秩为 r ~r~,其奇异值分解中的矩阵 Σ ~\mathbf{\Sigma}~(即Σ=diag(σ1,...,σr,0,...,0)\Sigma = \text{diag}(\sigma_1, ..., \sigma_r, 0, ..., 0))包含大量零行或零列时,可以只保留非零部分,构造更紧凑的分解形式
A=UrDVrT\mathbf{A} = \mathbf{U}_r \mathbf{D} \mathbf{V}_r^T
其中:
  • Ur\mathbf{U}_r:取 A ~\mathbf{A}~左奇异向量的前 r ~r~列,维度是 m×r ~m\times r~

  • D\mathbf{D} r×r ~r\times r~对角矩阵,包含前 r ~r~个非零奇异值;

  • Vr\mathbf{V}_r:右奇异向量的前 r ~r~列,维度是 n×r ~n\times r~

这个分解形式称为简化奇异值分解 ( Reduced SVD ) ~(~\textbf{Reduced SVD}~)~,它不仅能够保留矩阵的核心结构信息,还大大降低了计算复杂度与存储开销,特别适用于那些秩远小于维度的矩阵,如图像压缩与特征提取等实际应用场景。

7.2 伪逆的定义公式

在实际问题中,许多矩阵不可逆或维数不匹配,导致方程 Ax=b ~\mathbf{A}\mathbf{x} = \mathbf{b}~无法直接求解。这时我们需要一种广义的“逆”来处理这些欠定或超定线性方程组。伪逆 ( pseudoinverse,也称为~(~\textbf{pseudoinverse},\text{也称为} Moore-Penrose  ) ~\textbf{Moore-Penrose}~\textbf{逆}~)~正是为此而引入的,它可以通过简化 SVD ~\text{SVD}~直接构造如下:
A+=VrD1UrT\mathbf{A}^+ = \mathbf{V}_r \mathbf{D}^{-1} \mathbf{U}_r^T
  • D1\mathbf{D}^{-1}:非零奇异值构成的对角矩阵 D ~\mathbf{D}~的逆;

  • UrT\mathbf{U}_r^{T}:左奇异向量子矩阵的转置;

  • Vr\mathbf{V}_r:右奇异向量子矩阵。

伪逆尤其适用于无解情况下的最小二乘逼近问题。它为无法直接求逆的矩阵提供了一种稳定、通用的“广义逆”,在数据拟合、信号处理和机器学习等领域具有重要意义。

7.3 用伪逆求解最小二乘问题

8\mathbf{8}:设线性方程组 Ax=b ~\mathbf{A}\mathbf{x} = \mathbf{b}~没有精确解。其中 A ~\mathbf{A}~是一个 m×n ~m\times n~的矩阵,它可能是超定的(即 m>n ~m > n~)或不可逆;bRm\mathbf{b} \in \mathbb{R}^m。请使用 SVD ~\text{SVD}~分解和伪逆来求出使得 Axb ~\|\mathbf{A}\mathbf{x} - \mathbf{b}\|~最小的二乘解 x^ ~\hat{\mathbf{x}}~

 A ~\mathbf{A}~的伪逆公式代入最小二乘解的公式:
x=A+b=VrD1UrTb\mathbf{x} = \mathbf{A}^+ \mathbf{b} = \mathbf{V}_r \mathbf{D}^{-1} \mathbf{U}_r^T \mathbf{b}

将其代入原方程左边 Ax^ ~\mathbf{A}\hat{\mathbf{x}}~,得到:
Ax^=AA+b=(UrDVrT)(VrD1UrTb)\mathbf{A}\hat{\mathbf{x}} = \mathbf{A}\mathbf{A}^+ \mathbf{b} = (\mathbf{U}_r \mathbf{D} \mathbf{V}_r^T)(\mathbf{V}_r \mathbf{D}^{-1} \mathbf{U}_r^T \mathbf{b})
由于 VrVT=Ir ~\mathbf{V}_r\mathbf{V}^T = \mathbf{I}_r~,这是因为 Vr ~\mathbf{V}_r~是正交矩阵的一部分,列向量两两正交且单位化,因此有:
Ax^=UrDD1UrTb=UrUrTb\mathbf{A}\hat{\mathbf{x}} = \mathbf{U}_r \mathbf{D} \mathbf{D}^{-1} \mathbf{U}_r^T \mathbf{b} = \mathbf{U}_r \mathbf{U}_r^T \mathbf{b}

  • 矩阵 Ur ~\mathbf{U}_r~的列向量组成了 A ~\mathbf{A}~的列空间 Col(A) ~\text{Col}(\mathbf{A})~的一个正交基;

  • 矩阵 Ur ~\mathbf{U}_r~恰好是将任意向量 b ~\mathbf{b}~投影到 Col(A) ~\text{Col}(\mathbf{A})~上的正交投影矩阵;

  • 因此:
    Ax^=UrUrTb=b^\mathbf{A}\hat{\mathbf{x}} = \mathbf{U}_r \mathbf{U}_r^T \mathbf{b} = \hat{\mathbf{b}}
    其中 b^ ~\hat{\mathbf{b}}~是向量 b ~\mathbf{b}~ Col(A) ~\text{Col}(\mathbf{A})~上的正交投影。