奇异值分解
奇异值分解是通用于任意矩阵的基本分解工具,揭示矩阵结构,广泛应用于降维、最小二乘与数值计算中。
1. 奇异值分解的背景
在前面的章节中,我们利用
对角化定理 (如A=PDP−1) 可以将复杂矩阵运算简化为对角矩阵运算。然而,并非所有矩阵都能通过这种方式分解,尤其是对于非方阵。 而本节要介绍的
奇异值分解 (Singular Value Decomposition, SVD) 则突破了非方阵的限制,它适用于任何矩阵。
SVD 之所以能处理非方阵,关键在于它利用了矩阵
A 的转置与其自身的乘积
ATA 的可正交对角化性质。对于
ATA 有如下性质:
对任意
m×n 矩阵
A ,矩阵
ATA 是
n×n 的对称矩阵( 因为
(ATA)T=ATA )。
对任意非零向量
x ,有:
xT(ATA)x=(Ax)T(Ax)=∥Ax∥2≥0 因此
ATA 是半正定矩阵。
存在正交矩阵
D 使得:
ATA=PDPT,D=λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λn 由于
ATA 是半正定矩阵,所以
λi≥0 。
2. SVD 的基本概念与几何意义
例1:给定矩阵
A=[4811714−2] ,线性变化
x↦Ax 将三维空间中的单位球面
{x:∥x∥=1} 映射到二维平面上的一个椭圆。请找到一个单位向量
x ,使得
∥Ax∥ 最大化;并计算此时的最大长度
∥Ax∥ 。
问题转化:
最大化 ∥Ax∥2 由于平方函数在非负区间单调递增,最大化
∥Ax∥ 等价于最大化
∥Ax∥2 :
∥Ax∥2=(Ax)T(Ax)=xT(ATA)x 因此,问题转化为在约束条件
∥x∥=1 下,最大化二次型
xT(ATA)x 。
计算 ATA :
ATA=4111487−2[4811714−2]=801004010017014040140200 求解 ATA 的特征值与单位特征向量:
解
det(ATA−λI)=0 ,得到特征值:
λ1=360,λ2=90,λ3=0 对应的单位特征向量:
λ1λ2λ3=360,=90,=0,v1v2v3=1/32/32/3=−2/3−1/32/3=2/3−2/31/3 确定最大化 ∥Ax∥ 的向量:
根据二次型极值定理,最大特征值
λ1=360 对应的单位特征向量
v1 使得
xT(ATA)x 达到最大值。因此,当
x=v1 时,
∥Ax∥2=360,即:
∥Ax∥max=360=610 验证结果:
计算
Av1 :
Av1=[4811714−2]1/32/32/3=[186] 验证其长度:
∥Av1∥=182+62=360=610
我们计算得到 x=[1/32/32/3]T 时,∥Ax∥取得最大值 610 。
3. 奇异值的定义与性质
设
A 是
m×n 实矩阵,
ATA 的特征值为
λ1,λ2,⋯,λn (按降序排列且非负)。矩阵
A 的奇异值定义为:
σi=λi(1≤i≤n) 并满足:
σ1≥σ2⋯≥σn≥0 例2:给定
A=[4811714−2] ,已知
ATA 的特征值为
λ1=360, λ2=90, λ3=0 。请计算矩阵
A 的奇异值,验证奇异值的几何意义。
计算奇异值
奇异值为
ATA 特征值的平方根,利用例
1 中计算得到的特征值,可得奇异值为:
σ1=360=610,σ2=90=310,σ3=0 非零奇异值的数量(
2 个)对应矩阵
A 的秩。
验证几何意义
计算Av1和 Av2 :
例
1 中计算得到
v1=[1/31/31/3]T ,那么
Av1:
Av1=[4811714−2]1/31/31/3=[186] 长度为:
∥Av1=182+62∥=360=610=σ1 v2=[−2/3−1/32/3]T,计算
Av2:
Av2=[4811714−2]−2/3−1/32/3=[3−9] 长度为:
∥Av2∥=32+(−9)2=90=310=σ2
验证正交性:
计算
Av1 和
Av2 的内积:
Av1⋅Av2=18⋅3+6⋅(−9)=0 说明
Av1 与
Av2 正交。
定理 9
正交基与列空间的关系
设
{v1,⋯,vn} 是
Rn 的一个正交基,由
ATA 的特征向量组成,且对应的特征值满足
λ1≥⋯≥λn 。假设
A 有
r 个非零奇异值,则
{Av1,⋯,Avr} 是
A 的列空间
(ColA)的一个正交基,且
A 的秩为
r 。
证明 {Av1,⋯,Avn} 是正交集合
对于任意
i=j ,计算
(Avi)T(Avj) :
(Avi)T(Avj)=viTATAvj=viT(λjvj)=λj(viTvj) 由于
{v1,⋯,vn} 是正交基,
viTvj=0 (i=j),因此:
(Avi)(Avj)=0 这表明
{Av1,⋯,Avn} 是一个正交集合。
确定非零向量 {Av1,⋯,Avn}
根据奇异值的定义,∥Avi∥=σi=λi。
由于 A 有 r 个非零奇异值,所以 σi>0 当且仅当 1≤i≤r 。
因此,Avi=0当且仅当 1≤i≤r ,而 Avr+1,⋯,Avn 均为零向量。
证明 {Av1,⋯,Avn} 是ColA的基
对于任意y∈ColA,存在 x∈Rn 使得 y=Ax 。
将
x 表示为正交基的线性组合:
x=c1v1+⋯+cnvn 计算
y=Ax :
y=A(c1v1+⋯+cnvn)=c1Av1+⋯+crAvr+cr+1Avr+1+⋯+cnAvn 由于
Avr+1=⋯=Avn=0 ,上式可简化为:
y=c1Av1+⋯+crAvr 这表明 y 属于 {Av1,⋯,Avn} 的生成空间,因此 {Av1,⋯,Avn} 是 Col A 的基。
确定 A 的秩
由于 {Av1,⋯,Avn} 是 Col A 的正交基,且线性无关,所以 Col A 的维度为 r 。
因此,A 的秩为 r 。
4. 奇异值分解的构造方法
定理 10
奇异值分解
设
A 是一个秩为
r 的
m×n 矩阵。则存在一个
m×n 的矩阵
Σ :
Σ=[D000] 其中
D 的对角线元素是
A 的前
r 个奇异值
σ1≥σ2≥⋯≥σr>0 ,并且存在一个
m×m 的正交矩阵
U 和一个
n×n 的正交矩阵
V 使得:
A=UΣVT 任何形如 A=UΣVT 的分解,被称为 A 的奇异值分解 (SVD) 。 其中 U 和 V 是正交矩阵,Σ 中的对角矩阵 D 的对角线元素为正。矩阵 U 和 V 不是由 A 唯一确定的,但Σ的对角线元素必然是 A 的奇异值。在这种分解中,U 的列称为 A 的左奇异向量,v 的列称为 A 的右奇异向量。
构造右奇异向量矩阵 V
计算 ATA :
对任意 m×n 矩阵 A ,矩阵 ATA 是 n×n 的对称半正定矩阵。
正交对角化 :
由谱定理,
ATA可正交对角化为:
ATA=PDPT,D=λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λn 其中
λi≥0 ,且
P=[v1v2⋯vn] 是正交矩阵,
vi是
ATA的单位正交特征向量。
定义奇异值:
取非零特征值的平方根作为奇异值:
σi=λi(i=1,2,⋯,r),r=rank(A)
构造左奇异向量矩阵 U
生成非零奇异值对应的 ui :
对每个非零奇异值
σi ,定义:
ui=σi1Avi(i=1,2,⋯,r) 由
∥Avi∥=σi ,可知
ui 是单位向量。
验证正交性:
对于
i=j ,有:
uiTuj=σiσj1viTATAvj=σiσjλjviTvj=0 因此
{u1,⋯,ur} 是正交单位向量集。
扩展至完整正交基:
若
m>r ,通过
Gram-Schmidt 正交化将
{u1,⋯,ur}扩展为
Rm 的正交基
{u1,⋯,um} ,构成正交矩阵
U 。
构造奇异值矩阵 Σ
定义
m×n 矩阵
Σ 为:
Σ=[D000],D=λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λn 其中非零奇异值按降序排列,其余位置填充零。
验证分解 A=UΣVT
计算 AV :
由
Avi=σiui (i≤r) 和
Avi=0 (i>r) ,可得:
AV=[σ1u1⋯σrur0⋯0] 组合分解式:
由于
UΣ 的列结构为
[σ1u1⋯σrur0⋯0],且
VT 是正交矩阵,因此:
UΣVT=UΣ(VT)=AVVT=A
唯一性说明
奇异值的唯一性:
Σ 的对角元素(奇异值)由
ATA 的特征值唯一确定,因此是唯一的。
矩阵 U 和 V 的非唯一性:
若存在多个正交基满足条件(例如特征值重复时),
U 和
V 的列向量可能有不同选择,但需保证
UΣVT=A 。
5. 奇异值分解的计算示例
例3:求A=[4811714−2]的一个奇异值分解。
ATA 的特征值与特征向量已在例
1 中求得:
λ1λ2λ3=360,=90,=0,v1v2v3=1/32/32/3=−2/3−1/32/3=2/3−2/31/3
将特征向量按特征值降序排列,构造
V :
V=[v1v2v3]=1/32/32/3−2/3−1/32/32/3−2/31/3 计算奇异值:
σ1=λ1=610,σ2=λ2=310,σ3=λ3=0 构造对角矩阵
Σ :
Σ=[6100031000] 注意:
Σ 的大小与
A 相同,非零奇异值位于左上角。
计算
u1 和
u2 :
u1u2=σ11Av1=σ21Av2=6101[186]=3101[3−9]=[3/101/10]=[1/10−3/10] 由于
A 是
2×3 矩阵,
U 只需包含
u1 和
u2 :
U=[u1u2]=[3/101/101/10−3/10]
A=UΣVT=[3/101/101/10−3/10][6100031000]1/3−2/32/32/3−1/3−2/32/32/31/3T 例4:求 A=1−22−12−2 的一个奇异值分解。
计算
ATA :
ATA=[1−1−222−2]1−22−12−2=[99−99] 求特征值以及特征向量:
λ1λ2=18,=0,v1v2=[1/2−1/2]=[1/21/2]
构造
V :
V=[v1v2]=[1/2−1/21/21/2] 计算奇异值:
σ1=18=32,σ2=0 构造对角矩阵
Σ :
Σ=3200000
计算 u1
由于矩阵
A 只有一个非零奇异值(秩为
1 ),因此
U 的有效列向量只有一个
u1 ,即:
u1=σ11Av1=1/3−2/32/3 而
U 是一个
3×3 的正交矩阵。为了构造完整的
U ,我们需要拓展
{u1} 为
R3 的标准正交基。这意味着需要找到两个与
u1 正交的向量
u2 和
u3 ,使得
U=[u1u2u3] 是一个正交矩阵。
构造与 u1 正交的向量
与
u1 正交的条件是:
u1Tw=0⇒31w1−32w2+32=0 化简得到:
w1−2w2+2w3=0 选择两个线性无法的解向量:
w1=210,w2=−201 利用
Gram-Schmidt 方法正交化
w1 和
w2 :
u2=2/51/50,u3=−2/454/455/45
最终得到矩阵 U U=1/3−2/32/32/51/50−2/454/455/45
A=UΣVT=1/3−2/32/32/51/50−2/454/455/453200000[1/21/2−1/21/2] 6. 奇异值分解的应用
6.1 条件数
背景:在数值计算中,尤其是在求解线性方程 Ax=b 的过程中,计算结果容易受到输入误差和舍入误差的放大影响,从而导致解的不稳定性。这就需要一个指标来“量化”矩阵 A 的“稳定性”或“敏感性”——条件数 ( condition number ) 由此而来。
定义
条件数
对于任意一个实矩阵
A∈R 其条件数(基于 2-范数)定义为:
κ2(A)=σmin(A)σmax(A) 其中:
σmax(A):A 的最大奇异值;
σmin(A):A 的最小奇异值;
若 A 非满秩( 即存在奇异值为 0 ),则 κ2(A)=∞ 。
条件数的几何意义:条件数衡量矩阵对空间的拉伸扭曲程度,几何上条件数越大,单位球越被拉成长扁椭球,意味着解对扰动越敏感,数值越不稳定。总之,条件数越大,解对误差越敏感。
为什么用奇异值定义条件数:奇异值描述了矩阵 A 如何将单位球变形成椭球,其半轴长度正是奇异值。最大与最小奇异值之比(即条件数)刻画了变换的“扁平程度”,反映了解对误差的敏感性。SVD 分解中的两个正交矩阵 U 和 V 不改变长度与角度,不影响稳定性,因此所有的不稳定性都集中体现在奇异值上。这使得用奇异值定义条件数,既有几何直观性,又能准确反映数值风险的来源。
A 的列空间的正交基( ColA) :通过奇异值分解
A=UΣVT ,我们知道前
r 个左奇异向量
u1, ⋯, ur 对应非零奇异值。根据定理
9 ,它们所张成的子空间正是
A 的列空间
( ColA) :
Col(A)=span{u1,...,ur} 这意味着,任何
A 的列线性组合所构成的向量,都可以由这组向量组合生成。
AT的零空间的正交基 (NullAT) :由于
(NullAT) 是
Col(A) 的正交补空间(即与列空间正交的所有向量),即:
(Col A)⊥=Nul(AT)。因此奇异值分解中剩下的左奇异向量
ur+1, ⋯um就构成了
(NullAT) 的正交基:
Nul(AT)=span{ur+1,...,um} 这些向量与
A 的列方向正交,代表
A 无法映射到的方向。
零空间的正交基 (NullA): 从右奇异向量出发,对于那些对应奇异值为
0 的
vr+1, ⋯vn ,有:
Avi=0当i>r 所以这些向量属于
A 的零空间(即被
A 映射为
0 的向量)。因此:
Nul(A)=span{vr+1,...,vn} 它们是零空间的一个正交基(因为
V 是正交矩阵,其列互相正交)。
行空间的正交基 (RowA) :
A 的行空间等价于
A 的转置的列空间,也就是:
Row(A)=Col(AT)=(Nul(A))⊥ 因此,与非零奇异值对应的右奇异向量
v1, ⋯vr 就构成了行空间的正交基:
Row(A)=span{v1,...,vr}
定理
可逆矩阵定理
设
A 是一个
n×n 的方阵。以下命题等价于 “
A 是可逆矩阵” 这一命题:
(ColA)⊥={0}列空间的正交补仅包含零向量
(NullA)⊥=Rn零空间的正交补为整个 Rn
RowA=Rn 行空间等于整个 Rn
A 有 n 个非零奇异值,即 A 的所有奇异值均不为 0
7. 进阶内容:简化 SVD 与伪逆
7.1 简化奇异值分解的形式
当矩阵
A 的秩为
r ,其奇异值分解中的矩阵
Σ (即
Σ=diag(σ1,...,σr,0,...,0))包含大量零行或零列时,可以只保留非零部分,构造更
紧凑的分解形式:
A=UrDVrT 其中:
Ur:取 A 左奇异向量的前 r 列,维度是 m×r
D: r×r 对角矩阵,包含前 r 个非零奇异值;
Vr:右奇异向量的前 r 列,维度是 n×r ;
这个分解形式称为
简化奇异值分解 ( Reduced SVD ) ,它不仅能够保留矩阵的核心结构信息,还大大降低了计算复杂度与存储开销,特别适用于那些秩远小于维度的矩阵,如图像压缩与特征提取等实际应用场景。
7.2 伪逆的定义公式
在实际问题中,许多矩阵不可逆或维数不匹配,导致方程
Ax=b 无法直接求解。这时我们需要一种广义的“逆”来处理这些
欠定或超定线性方程组。伪逆
( pseudoinverse,也称为 Moore-Penrose 逆 ) 正是为此而引入的,它可以通过简化
SVD 直接构造如下:
A+=VrD−1UrT D−1:非零奇异值构成的对角矩阵 D 的逆;
UrT:左奇异向量子矩阵的转置;
Vr:右奇异向量子矩阵。
伪逆尤其适用于无解情况下的最小二乘逼近问题。它为无法直接求逆的矩阵提供了一种稳定、通用的“广义逆”,在数据拟合、信号处理和机器学习等领域具有重要意义。
7.3 用伪逆求解最小二乘问题
例8:设线性方程组 Ax=b 没有精确解。其中 A 是一个 m×n 的矩阵,它可能是超定的(即 m>n )或不可逆;b∈Rm。请使用 SVD 分解和伪逆来求出使得 ∥Ax−b∥ 最小的二乘解 x^ 。
将
A 的伪逆公式代入最小二乘解的公式:
x=A+b=VrD−1UrTb 将其代入原方程左边
Ax^ ,得到:
Ax^=AA+b=(UrDVrT)(VrD−1UrTb) 由于
VrVT=Ir ,这是因为
Vr 是正交矩阵的一部分,列向量两两正交且单位化,因此有:
Ax^=UrDD−1UrTb=UrUrTb 矩阵 Ur 的列向量组成了 A 的列空间 Col(A) 的一个正交基;
矩阵 Ur 恰好是将任意向量 b 投影到 Col(A) 上的正交投影矩阵;
因此:
Ax^=UrUrTb=b^ 其中
b^ 是向量
b 在
Col(A) 上的正交投影。