线性代数 Cheat Sheet 7-4:奇异值分解
对角化定理有很多重要的应用,但并不是所有矩阵都有分解式 A=PDP−1,且 D 是对角的。但分解 A=QDP−1 对任意 m×n 矩阵 A 都有可能。这类特殊的分解称为奇异值分解。
奇异值分解基于一般的矩阵对角化性质,可以被长方形矩阵模仿:一个对称矩阵 A 的特征值的绝对值表示度量 A 拉长或压缩一个向量(特征向量)的成都。如果 Ax=λx,且 ‖x‖=1,那么
‖Ax‖=‖λx‖=|λ|‖x‖=|λ|
如果 λ1 是具有最大数值的特征值,那么对应的单位向量 v1 确定一个由 A 拉长影响最大的方向,也就是说,(1) 式表示 x=v1 时,Ax 的长度最大化,且 ‖Av1‖=|λ1|。这个对 v1 和 |λ1| 的概述对长方形的矩阵来说也是类似地,这将导致奇异值分解。
Contents [show]
1. 一个 m×n 矩阵的奇异值
令 A 是 m×n 矩阵,那么 ATA 是对称矩阵且可以正交对角化。令 {v1,⋯,vn} 是 Rn 的单位正交基且构成 ATA 的特征向量,λ1,⋯,λn 是 ATA 对应的特征值,那么对 1≤i≤n,
‖Av1‖2=(Av1)TAv1=vT1ATAv1=vT1(λ1v1)=λ1
所以,ATA 的所有特征值都非负。如果必要,通过重新编号,可以假设特征值的重新排列满足
λ1≥λ2≥⋯≥λn≥0
A 的奇异值是 ATA 的特征值的平方根,记为 σ1,⋯,σn,且它们用递减顺序排列,也就是对 1≤i≤n,σi=√λi。由 (2) 可知,A 的奇异值是向量 Av1,⋯Avn 的长度。
定理 9 假若 {v1,⋯,vn} 是包含 ATA 的特征向量的 Rn 上的单位正交基,重新整理使得对应的 ATA 的特征值满足 λ1≥λ2≥⋯≥λn≥0。假若 A 有 r 个非零奇异值,那么 {Av1,⋯,Avr} 是 ColA 的一个正交基,且 rankA=r。
2. 奇异值分解
矩阵 A 的分解涉及一个 m×n “对角”矩阵 Σ,其形式是
Σ=[D000]
其中,D 是一个 r×r 对角矩阵,且 r 不超过 m 和 n 中较小的那个。
定理 10(奇异值分解)设 A 是秩为 r 的 m×n 矩阵,那么存在一个类似 (3) 中的 m×n 矩阵 Σ,其中 D 的对角线元素是 A 的前 r 个奇异值,σ1≥σ2≥⋯≥σr>0,并且存在一个 m×m 正交矩阵 U 和一个 n×n 正交矩阵 V 使得 A=UΣVT。
任何分解 A=UΣVT 称为 A 的一个奇异值分解(或 SVD),其中 U 和 V 是正交矩阵,Σ 形如 (3) 式,D 具有正的对角线元素。矩阵 U 和 V 不是 A 惟一确定的,但 Σ 的对角线元素必须是 A 的奇异值。这样的一个分解中,U 的列称为 A 的左奇异向量,V 的列称为 A 的右奇异向量。
一个奇异值分解可分为三步进行。下面以 A=[4111487−2] 为例,求 A 的一个奇异值分解。
第一步,将 ATA 正交对角化。即求矩阵 ATA 的特征值及其对应的特征向量的单位正交集。这里
ATA=[801004010017014040140200]λ1=360,v1=[1/32/32/3]λ2=90,v2=[−2/3−1/32/3]λ3=0,v3=[2/3−2/31/3]
第二步,计算 V 和 Σ。将 ATA 的特征值按降序排列,使用对应特征向量的排列构造 P。在上面的结果中,λ1>λ2>λ3,构造
P=[v1v2v3]=[1/3−2/32/32/3−1/3−2/32/32/31/3]
特征值的平方根就是奇异值:σ1=√360=6√10,σ2=√90=3√10,σ3=0。其中非零奇异值是矩阵 D 的对角线元素。矩阵 Σ 与矩阵 A 的行列数相同,以矩阵 D 为其左上角,其他元素为 0。
D=[6√10003√10]Σ=[D0]=[6√100003√100]
第三步,构造 U。当矩阵 A 的秩为 r 时,矩阵 U 的前 r 列是从 Av1⋯Avr 计算得到的单位向量。这里 A 有两个非零奇异值,因此 rankA=2。根据式 (2),有 ‖Av1‖=σ1,‖Av2‖=σ2,于是
u1=1σ1Av1=16√10[186]=[3/√101/√10]u2=1σ2Av2=13√10[3−9]=[1/√10−3/√10]
留意到 {u1,u2} 已经是 R2 的一个基,因此构造 U 不需要另外的向量,U=[u1u2]。A 的奇异值分解是
A=[3√101√101√10−3√10][6√100003√100][1/3−2/32/32/3−1/3−2/32/32/31/3]
3. 奇异值分解的应用
奇异值分解常用于估计矩阵的秩。
当应用矩阵 A 的奇异值分解时,多数涉及方程 Ax=b 的数值计算要尽可能地可靠。两个正交矩阵 U 和 V 不影响向量的长度和两个向量的夹角(定理 7)。数值计算中的任何不稳定因素都与 Σ 有关。如果 A 的奇异值非常大或非常小,则舍入误差几乎不可避免,此时,知道 Σ 和 V 中的元素对分析误差特别有用。
如果 A 是一个 n×n 可逆矩阵,那么最大奇异值和最小奇异值的比率 σ1/σn 给出了矩阵 A 的条件数。条件数影响 Ax=b 的解对 A 元素变化(或误差)的敏感程度。
给定 m×n 矩阵 A 的一个奇异值分解,取 u1,⋯,um 是左奇异向量,v1,⋯,vm 是右奇异向量,且 σ1,⋯,σn 是奇异值,r 为 A 的秩。由定理 9,
{u1,⋯,um}
是 ColA 的一个单位正交基。由 6-1 定理 3,(ColA)⊥=NulAT,因此
{ur+1,⋯,um}
是 NulA 的一个正交基。
由于当 1≤i≤n 时 ‖Avi‖=σi,且 σi 是零的充分必要条件是 i>r,因此向量 vr+1,⋯,vn 生成一个维数为 n–r 的子空间 NulA。由秩定理可知,dimNulA=n–rank,从而说明
{vr+1,⋯,vn}
是 NulA 的一个单位正交基。
由 (4) 和 (5) 可知,空间 NulAT 的正交补是 ColA。将 A 和 AT 交换,有
(NulA)⊥=ColAT=RowA
因此,右 (6) 得
{v1,⋯,vr}
是 RowA 的一个单位正交基。
定理(可逆矩阵定理)设 A 为 m×n 矩阵,那么下述命题中的每一个都与 A 是可逆矩阵的命题等价。
u. (ColA)⊥={0}
v. (NulA)⊥=Rn
w. RowA=Rn
x. A 有 n 个非零的特征值。
当 Σ 包含零元素的行或列时,矩阵 A 具有更简洁的分解。利用上面建立的符号,取 r=rankA,将 U 和 V 矩阵分块称为第一块包含 r 列的子矩阵:
U=[UrUm−r],其中Ur=[u1⋯ur]V=[VrVn−r],其中Vr=[v1⋯vr]
那么 Ur 是 m×r,Vr 是 n×r。分块矩阵的乘法表明
A=[UrUm−r][D000][VTrVTn−r]=UrDVTr
矩阵 A 的这个分解称为 A 的简化的奇异值分解。由于 D 的对角线元素非零,因此 D 是可逆矩阵。下面的矩阵称为 A 的伪逆(也称穆尔-彭罗斯逆):
A+=VrD−1UTr