当前位置: 首页 > news >正文

奇异值分解(Singular Value Decomposition, SVD)详解——从特征值到奇异值

奇异值分解(Singular Value Decomposition, SVD)

1. 动机:从特征值分解到奇异值分解

我们知道,对于一个方阵 A∈Rn×nA \in \mathbb{R}^{n \times n}ARn×n,特征值分解寻找一组特殊的向量 v\mathbf{v}v,使得 AAAv\mathbf{v}v 的作用仅仅是进行缩放,即 Av=λvA\mathbf{v} = \lambda\mathbf{v}Av=λv。这个强大的工具仅限于方阵。

SVD 的目标是将这一概念推广到任意形状的矩阵 A∈Rm×nA \in \mathbb{R}^{m \times n}ARm×n。它寻找两组标准正交基(一组在定义域 Rn\mathbb{R}^nRn,另一组在值域 Rm\mathbb{R}^mRm),使得矩阵 AAA 能将第一组基向量映射为第二组基向量的非负倍数。

2. 核心构造:利用对称矩阵的特征值

对于任意矩阵 A∈Rm×nA \in \mathbb{R}^{m \times n}ARm×n,我们无法直接求其特征值。但是,我们可以构造两个特殊的对称半正定方阵

  • ATA∈Rn×nA^{\mathsf{T}}A \in \mathbb{R}^{n \times n}ATARn×n
  • AAT∈Rm×mAA^{\mathsf{T}} \in \mathbb{R}^{m \times m}AATRm×m

这两个矩阵是SVD理论的基石,因为:

  1. 它们是对称的,因此保证存在一组标准正交的特征向量

  2. 它们是半正定的,因此它们的特征值均为非负实数

    证明:设 v\mathbf{v}vATAA^{\mathsf{T}}AATA 的一个特征向量,对应特征值为 λ\lambdaλ。则:
    ∥Av∥22=(Av)T(Av)=vTATAv=vT(λv)=λvTv=λ∥v∥22∥Av∥22=(Av)T(Av)=vTATAv=vT(λv)=λvTv=λ∥v∥22 \|A\mathbf{v}\|_2^2 = (A\mathbf{v})^{\mathsf{T}}(A\mathbf{v}) = \mathbf{v}^{\mathsf{T}}A^{\mathsf{T}}A\mathbf{v} = \mathbf{v}^{\mathsf{T}}(\lambda\mathbf{v}) = \lambda \mathbf{v}^{\mathsf{T}}\mathbf{v} = \lambda \|\mathbf{v}\|_2^2\|A\mathbf{v}\|_2^2 = (A\mathbf{v})^{\mathsf{T}}(A\mathbf{v}) = \mathbf{v}^{\mathsf{T}}A^{\mathsf{T}}A\mathbf{v} = \mathbf{v}^{\mathsf{T}}(\lambda\mathbf{v}) = \lambda \mathbf{v}^{\mathsf{T}}\mathbf{v} = \lambda \|\mathbf{v}\|_2^2Av22=(Av)T(Av)=vTATAv=vT(λv)=λvTv=λv22Av22=(Av)T(Av)=vTATAv=vT(λv)=λvTv=λv22
    因为 ∥Av∥22≥0\|A\mathbf{v}\|_2^2 \ge 0Av220∥v∥22>0\|\mathbf{v}\|_2^2 > 0v22>0,所以 λ≥0\lambda \ge 0λ0

3. SVD的数学推导与构造

步骤 1:定义奇异值与右奇异向量 (V)
  1. 考虑 n×nn \times nn×n 的对称半正定矩阵 ATAA^{\mathsf{T}}AATA。根据谱定理,它有 nnn 个非负实特征值,记为 λ1≥λ2≥⋯≥λn≥0\lambda_1 \ge \lambda_2 \ge \dots \ge \lambda_n \ge 0λ1λ2λn0
  2. 定义矩阵 AAA奇异值 (Singular Values) 为这些特征值的平方根:
    σi=λi,i=1,…,n\sigma_i = \sqrt{\lambda_i}, \quad i=1, \dots, nσi=λi,i=1,,n
  3. ATAA^{\mathsf{T}}AATA 对应于这些特征值的 nnn 个特征向量构成 Rn\mathbb{R}^nRn 的一组标准正交基 {v1,v2,…,vn}\{\mathbf{v}_1, \mathbf{v}_2, \dots, \mathbf{v}_n\}{v1,v2,,vn}。这些向量被称为矩阵 AAA右奇异向量 (Right Singular Vectors)
  4. 我们将这些右奇异向量作为列,构成一个 n×nn \times nn×n正交矩阵 VVV
    V=[v1,v2,…,V=[v1,v2,…,vn] V = [\mathbf{v}_1, \mathbf{v}_2, \dots,V = [\mathbf{v}_1, \mathbf{v}_2, \dots, \mathbf{v}_n]V=[v1,v2,,V=[v1,v2,,vn]
    它满足 VTV=InV^{\mathsf{T}}V = I_nVTV=In
步骤 2:构造左奇异向量 (U)
  1. 设矩阵 AAA 的秩为 rrr。可以证明,秩 rrr 等于非零奇异值的个数。因此,σ1≥⋯≥σr>0\sigma_1 \ge \dots \ge \sigma_r > 0σ1σr>0,且 σr+1=⋯=σn=0\sigma_{r+1} = \dots = \sigma_n = 0σr+1==σn=0
  2. 对于前 rrr 个非零奇异值所对应的右奇异向量 vi\mathbf{v}_ivi (i=1,…,ri=1, \dots, ri=1,,r),我们定义一组新的向量 ui∈Rm\mathbf{u}_i \in \mathbb{R}^muiRm
    ui=1σiAvi,ui=1σiAvi,i=1,…,r \mathbf{u}_i = \frac{1}{\sigma_i} A \mathbf{v}_i,\mathbf{u}_i = \frac{1}{\sigma_i} A \mathbf{v}_i, \quad i=1, \dots, rui=σi1Avi,ui=σi1Avi,i=1,,r
  3. 可以证明这组向量 {u1,…,ur}\{\mathbf{u}_1, \dots, \mathbf{u}_r\}{u1,,ur} 是标准正交的。
    • 正交性证明:对于 i≠ji \neq ji=j
      uiTuj=(1σiAvi)T(1σjAvj)=1σiσjviT(ATA)vj=1σiσjviT(λjvj)=λjσiσj(viTvj)uiTuj=(1σiAvi)T(1σjAvj)=1σiσjviT(ATA)vj=1σiσjviT(λjvj)=λjσiσj(viTvj)=0 \mathbf{u}_i^{\mathsf{T}}\mathbf{u}_j = \left(\frac{1}{\sigma_i} A \mathbf{v}_i\right)^{\mathsf{T}}\left(\frac{1}{\sigma_j} A \mathbf{v}_j\right) = \frac{1}{\sigma_i\sigma_j}\mathbf{v}_i^{\mathsf{T}}(A^{\mathsf{T}}A)\mathbf{v}_j = \frac{1}{\sigma_i\sigma_j}\mathbf{v}_i^{\mathsf{T}}(\lambda_j\mathbf{v}_j) = \frac{\lambda_j}{\sigma_i\sigma_j}(\mathbf{v}_i^{\mathsf{T}}\mathbf{v}_j)\mathbf{u}_i^{\mathsf{T}}\mathbf{u}_j = \left(\frac{1}{\sigma_i} A \mathbf{v}_i\right)^{\mathsf{T}}\left(\frac{1}{\sigma_j} A \mathbf{v}_j\right) = \frac{1}{\sigma_i\sigma_j}\mathbf{v}_i^{\mathsf{T}}(A^{\mathsf{T}}A)\mathbf{v}_j = \frac{1}{\sigma_i\sigma_j}\mathbf{v}_i^{\mathsf{T}}(\lambda_j\mathbf{v}_j) = \frac{\lambda_j}{\sigma_i\sigma_j}(\mathbf{v}_i^{\mathsf{T}}\mathbf{v}_j) = 0uiTuj=(σi1Avi)T(σj1Avj)=σiσj1viT(ATA)vj=σiσj1viT(λjvj)=σiσjλj(viTvj)uiTuj=(σi1Avi)T(σj1Avj)=σiσj1viT(ATA)vj=σiσj1viT(λjvj)=σiσjλj(viTvj)=0
    • 单位长度证明∥ui∥22=uiTui=1σi2∥Avi∥22=1λiλi=1\|\mathbf{u}_i\|_2^2 = \mathbf{u}_i^{\mathsf{T}}\mathbf{u}_i = \frac{1}{\sigma_i^2}\|A\mathbf{v}_i\|_2^2 = \frac{1}{\lambda_i}\lambda_i = 1ui22=uiTui=σi21Avi22=λi1λi=1
  4. rrr 个向量构成了 Col(A)\text{Col}(A)Col(A)AAA 的列空间)的一组标准正交基。我们可以通过Gram-Schmidt等方法,将这组基扩充为整个 Rm\mathbb{R}^mRm 空间的一组标准正交基 {u1,…,um}\{\mathbf{u}_1, \dots, \mathbf{u}_m\}{u1,,um}。这些向量被称为矩阵 AAA左奇异向量 (Left Singular Vectors)
  5. 我们将这些左奇异向量作为列,构成一个 m×mm \times mm×m正交矩阵 UUU
    U=[u1,uU=[u1,u2,…,um] U = [\mathbf{u}_1, \mathbf{u}_U = [\mathbf{u}_1, \mathbf{u}_2, \dots, \mathbf{u}_m]U=[u1,uU=[u1,u2,,um]
    它满足 UTU=ImU^{\mathsf{T}}U = I_mUTU=Im。同时,这些 ui\mathbf{u}_iui 恰好是矩阵 AATAA^{\mathsf{T}}AAT 的特征向量。
步骤 3:组建SVD

由步骤2的定义,我们有 Avi=σiuiA\mathbf{v}_i = \sigma_i \mathbf{u}_iAvi=σiui 对于 i=1,…,ri=1, \dots, ri=1,,r 成立。
对于 i>ri > ri>r,奇异值 σi=0\sigma_i=0σi=0,此时 ∥Avi∥22=λi=0\|A\mathbf{v}_i\|_2^2 = \lambda_i = 0Avi22=λi=0,这意味着 Avi=0A\mathbf{v}_i = \mathbf{0}Avi=0。因此,关系式 Avi=σiuiA\mathbf{v}_i = \sigma_i \mathbf{u}_iAvi=σiui 对所有 i=1,…,ni=1, \dots, ni=1,,n 均成立。

将此关系写成矩阵形式:
AV=A[v1,…,vn]=[Av1,…,Avn]=[σ1u1,…,σrur,0,…,AV=A[v1,…,vn]=[Av1,…,Avn]=[σ1u1,…,σrur,0,…,0] A V = A[\mathbf{v}_1, \dots, \mathbf{v}_n] = [A\mathbf{v}_1, \dots, A\mathbf{v}_n] = [\sigma_1\mathbf{u}_1, \dots, \sigma_r\mathbf{u}_r, \mathbf{0}, \dots,A V = A[\mathbf{v}_1, \dots, \mathbf{v}_n] = [A\mathbf{v}_1, \dots, A\mathbf{v}_n] = [\sigma_1\mathbf{u}_1, \dots, \sigma_r\mathbf{u}_r, \mathbf{0}, \dots, \mathbf{0}]AV=A[v1,,vn]=[Av1,,Avn]=[σ1u1,,σrur,0,,AV=A[v1,,vn]=[Av1,,Avn]=[σ1u1,,σrur,0,,0]
另一方面,我们构造一个 m×nm \times nm×n 的对角矩阵 Σ\SigmaΣ,其对角线元素为奇异值:
Σ=(σ1σ2⋱σr0⋱)m×n \Sigma = \begin{pmatrix} \sigma_1 & & & & \\ & \sigma_2 & & & \\ & & \ddots & & \\ & & & \sigma_r & \\ & & & & 0 & \\ & & & & & \ddots \end{pmatrix}_{m \times n} Σ=σ1σ2σr0m×n计算 UΣU\SigmaUΣUΣ=[u1,…,um]Σ=[σ1u1,…,σrur,0,…,0] U\Sigma = [\mathbf{u}_1, \dots, \mathbf{u}_m] \Sigma = [\sigma_1\mathbf{u}_1, \dots, \sigma_r\mathbf{u}_r, \mathbf{0}, \dots, \mathbf{0}] UΣ=[u1,,um]Σ=[σ1u1,,σrur,0,,0]
因此,我们得到 AV=UΣAV = U\SigmaAV=UΣ。由于 VVV 是正交矩阵,V−1=VTV^{-1} = V^{\mathsf{T}}V1=VT,两边右乘 VTV^{\mathsf{T}}VT 得到最终因此,我们得到 AV=UΣAV = U\SigmaAV=UΣ。由于 VVV 是正交矩阵,V−1=VTV^{-1} = V^{\mathsf{T}}V1=VT,两边右乘 VTV^{\mathsf{T}}VT 得到最终的SVD形式:A=UΣVT A = U \Sigma V^{\mathsf{T}} A=UΣVT

4. SVD定理的完整陈述

定理 (奇异值分解):对于任意矩阵 A∈Rm×nA \in \mathbb{R}^{m \times n}ARm×n,其秩为 rrr,必存在两个正交矩阵 U∈Rm×mU \in \mathbb{R}^{m \times m}URm×mV∈Rn×nV \in \mathbb{R}^{n \times n}VRn×n,以及一个 m×nm \times nm×n 的对角矩阵 Σ\SigmaΣ,使得:
A=UΣVTA = U \Sigma V^{\mathsf{T}}A=UΣVT
其中矩阵 Σ\SigmaΣ 的对角线元素 σ1≥σ2≥⋯≥σr>0\sigma_1 \ge \sigma_2 \ge \dots \ge \sigma_r > 0σ1σ2σr>0σi=0\sigma_i=0σi=0 对于 i>ri>ri>r,被称为 AAA奇异值UUU 的列向量 ui\mathbf{u}_iui 称为左奇异向量VVV 的列向量 vi\mathbf{v}_ivi 称为右奇异向量

5. 几何意义

SVD的几何意义是:任意线性变换 A:Rn→RmA: \mathbb{R}^n \to \mathbb{R}^mA:RnRm 都可以被分解为三步操作:

  1. 一个旋转或反射 (VTV^{\mathsf{T}}VT),将 Rn\mathbb{R}^nRn 中的标准正交基旋转到右奇异向量基 {vi}\{\mathbf{v}_i\}{vi}
  2. 一个缩放 (Σ\SigmaΣ),沿着新的坐标轴方向,将分量进行 σi\sigma_iσi 倍的缩放,并将维度从 nnn 调整到 mmm
  3. 另一个旋转或反射 (UUU),将 Rm\mathbb{R}^mRm 中的坐标轴旋转到左奇异向量基 {ui}\{\mathbf{u}_i\}{ui}

本质上,SVD表明任何线性变换都会将 Rn\mathbb{R}^nRn 中的一个单位球体,映射为 Rm\mathbb{R}^mRm 中的一个椭球体(可能是退化的)。右奇异向量 vi\mathbf{v}_ivi 是球体上的正交轴,左奇异向量 ui\mathbf{u}_iui 是椭球体的主轴方向,而奇异值 σi\sigma_iσi 则是对应主轴的半轴长度。

http://www.dtcms.com/a/415599.html

相关文章:

  • 免费网站安全检测网络游戏名字大全
  • [冀信2025]雄
  • 住建部城乡建设网站中国核工业第二二建设有限公司地址
  • 卓手机建网站查询网站旗下域名
  • DevEco Studio 预览器的使用
  • jar包Tls检验问题处理
  • 网站总体设计方案优秀企业网站的特点
  • PyTorch 实现 CIFAR10 图像分类知识点总结
  • 商城维护工作内容网站建设wordpress 插件站
  • 做网站要的图片斗鱼刚做淘客没有网站
  • vite项目 查看代码编译过程的插件vite-plugin-inspect
  • C语言指针的概念
  • 做购物比价的网站有哪些做图片赚钱的网站
  • 一定要建设好网站才能备案吗中铁建设集团官网登录
  • 免备案自助建站网站天元建设集团有限公司企业号
  • inet_ntoa 函数深度解析
  • 四川省城乡建设厅官方网站附近模板木方市场
  • 网站创建的基本流程做外贸如何建立网站平台
  • 【前端知识】关于Web Components兼容性问题的探索
  • Shimmy - 隐私优先的 Ollama 替代方案
  • 桥东企业做网站跑腿网站建设
  • 用虚拟主机做网站wordpress多城市子站
  • Java 黑马程序员学习笔记(进阶篇14)
  • 网站开发的理解制作网站软件网站
  • 长沙网页网站制作网站建设常用的工具
  • 上海装修网站建设深圳安全教育平台
  • 房子装修报价清单表湖北seo网站多少钱
  • 列举网站开发常用的工具免费软件有哪些
  • jsp网站开发环境配置直播网站开发需要多少钱
  • Ingress:轻松拿捏集群流量管理