线性代数 Cheat Sheet 7-4:奇异值分解

  对角化定理有很多重要的应用,但并不是所有矩阵都有分解式 A=PDP1,且 D 是对角的。但分解 A=QDP1 对任意 m×n 矩阵 A 都有可能。这类特殊的分解称为奇异值分解。

  奇异值分解基于一般的矩阵对角化性质,可以被长方形矩阵模仿:一个对称矩阵 A 的特征值的绝对值表示度量 A 拉长或压缩一个向量(特征向量)的成都。如果 Ax=λx,且 x=1,那么

Ax=λx=|λ|x=|λ|

如果 λ1 是具有最大数值的特征值,那么对应的单位向量 v1 确定一个由 A 拉长影响最大的方向,也就是说,(1) 式表示 x=v1 时,Ax 的长度最大化,且 Av1=|λ1|。这个对 v1|λ1| 的概述对长方形的矩阵来说也是类似地,这将导致奇异值分解。

1. 一个 m×n 矩阵的奇异值

  令 Am×n 矩阵,那么 ATA 是对称矩阵且可以正交对角化。令 {v1,,vn}Rn 的单位正交基且构成 ATA 的特征向量,λ1,,λnATA 对应的特征值,那么对 1in

Av12=(Av1)TAv1=vT1ATAv1=vT1(λ1v1)=λ1

所以,ATA 的所有特征值都非负。如果必要,通过重新编号,可以假设特征值的重新排列满足

λ1λ2λn0

A奇异值ATA 的特征值的平方根,记为 σ1,,σn,且它们用递减顺序排列,也就是对 1inσi=λi。由 (2) 可知,A 的奇异值是向量 Av1,Avn 的长度。

  定理 9 假若 {v1,,vn} 是包含 ATA 的特征向量的 Rn 上的单位正交基,重新整理使得对应的 ATA 的特征值满足 λ1λ2λn0。假若 Ar 个非零奇异值,那么 {Av1,,Avr}ColA 的一个正交基,且 rankA=r

2. 奇异值分解

  矩阵 A 的分解涉及一个 m×n “对角”矩阵 Σ,其形式是

Σ=[D000]

其中,D 是一个 r×r 对角矩阵,且 r 不超过 mn 中较小的那个。

  定理 10(奇异值分解)设 A 是秩为 rm×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),其中 UV 是正交矩阵,Σ 形如 (3) 式,D 具有正的对角线元素。矩阵 UV 不是 A 惟一确定的,但 Σ 的对角线元素必须是 A 的奇异值。这样的一个分解中,U 的列称为 A左奇异向量V 的列称为 A右奇异向量

  一个奇异值分解可分为三步进行。下面以 A=[41114872] 为例,求 A 的一个奇异值分解。

  第一步,将 ATA 正交对角化。即求矩阵 ATA 的特征值及其对应的特征向量的单位正交集。这里

ATA=[801004010017014040140200]λ1=360,v1=[1/32/32/3]λ2=90,v2=[2/31/32/3]λ3=0,v3=[2/32/31/3]

  第二步,计算 VΣ。将 ATA 的特征值按降序排列,使用对应特征向量的排列构造 P。在上面的结果中,λ1>λ2>λ3,构造

P=[v1v2v3]=[1/32/32/32/31/32/32/32/31/3]

特征值的平方根就是奇异值:σ1=360=610σ2=90=310σ3=0。其中非零奇异值是矩阵 D 的对角线元素。矩阵 Σ 与矩阵 A 的行列数相同,以矩阵 D 为其左上角,其他元素为 0

D=[61000310]Σ=[D0]=[6100003100]

  第三步,构造 U。当矩阵 A 的秩为 r 时,矩阵 U 的前 r 列是从 Av1Avr 计算得到的单位向量。这里 A 有两个非零奇异值,因此 rankA=2。根据式 (2),有 Av1=σ1Av2=σ2,于是

u1=1σ1Av1=1610[186]=[3/101/10]u2=1σ2Av2=1310[39]=[1/103/10]

留意到 {u1,u2} 已经是 R2 的一个基,因此构造 U 不需要另外的向量,U=[u1u2]A 的奇异值分解是

A=[310110110310][6100003100][1/32/32/32/31/32/32/32/31/3]

3. 奇异值分解的应用

  奇异值分解常用于估计矩阵的秩。

  当应用矩阵 A 的奇异值分解时,多数涉及方程 Ax=b 的数值计算要尽可能地可靠。两个正交矩阵 UV 不影响向量的长度和两个向量的夹角(定理 7)。数值计算中的任何不稳定因素都与 Σ 有关。如果 A 的奇异值非常大或非常小,则舍入误差几乎不可避免,此时,知道 ΣV 中的元素对分析误差特别有用。

  如果 A 是一个 n×n 可逆矩阵,那么最大奇异值和最小奇异值的比率 σ1/σn 给出了矩阵 A条件数。条件数影响 Ax=b 的解对 A 元素变化(或误差)的敏感程度。

  给定 m×n 矩阵 A 的一个奇异值分解,取 u1,,um 是左奇异向量,v1,,vm 是右奇异向量,且 σ1,,σn 是奇异值,rA 的秩。由定理 9,

{u1,,um}

ColA 的一个单位正交基。由 6-1 定理 3(ColA)=NulAT,因此

{ur+1,,um}

NulA 的一个正交基。

  由于当 1inAvi=σi,且 σi 是零的充分必要条件是 i>r,因此向量 vr+1,,vn 生成一个维数为 nr 的子空间 NulA。由秩定理可知,dimNulA=nrank,从而说明

{vr+1,,vn}

NulA 的一个单位正交基。

  由 (4)(5) 可知,空间 NulAT 的正交补是 ColA。将 AAT 交换,有

(NulA)=ColAT=RowA

因此,右 (6)

{v1,,vr}

RowA 的一个单位正交基。

  定理(可逆矩阵定理)设 Am×n 矩阵,那么下述命题中的每一个都与 A 是可逆矩阵的命题等价。
u. (ColA)={0}
v. (NulA)=Rn
w. RowA=Rn
x. An 个非零的特征值。

  当 Σ 包含零元素的行或列时,矩阵 A 具有更简洁的分解。利用上面建立的符号,取 r=rankA,将 UV 矩阵分块称为第一块包含 r 列的子矩阵:

U=[UrUmr],Ur=[u1ur]V=[VrVnr],Vr=[v1vr]

那么 Urm×rVrn×r。分块矩阵的乘法表明

A=[UrUmr][D000][VTrVTnr]=UrDVTr

矩阵 A 的这个分解称为 A简化的奇异值分解。由于 D 的对角线元素非零,因此 D 是可逆矩阵。下面的矩阵称为 A伪逆(也称穆尔-彭罗斯逆):

A+=VrD1UTr