SVD--奇异值分解详细推导与证明

1什么是奇异值

A A A m × n m \times n m×n 矩阵, 那么 A T A A^{\mathrm{T}} A ATA 是对称矩阵且可以正交对角化. 令 { v 1 , ⋯   , v n } \left\{\boldsymbol{v}_1, \cdots, \boldsymbol{v}_n\right\} {v1,,vn} R n \mathbb{R}^n Rn 的单位正交基且构成 A T A A^{\mathrm{T}} A ATA 的特征向量, λ 1 , ⋯   , λ n \lambda_1, \cdots, \lambda_n λ1,,λn A T A A^{\mathrm{T}} A ATA 对应的特征值,那么对 1 ⩽ i ⩽ n 1 \leqslant i \leqslant n 1in,
∥ A v i ∥ 2 = ( A v i ) T A v i = v i ⊤ A ⊤ A v i = v i ⊤ ( λ i v i )  由于  v i  是  A ⊤ A  的特征向量  = λ i  由于  v i  是单位向量  \begin{array}{rlrl} \left\|A \boldsymbol{v}_i\right\|^2 & =\left(A \boldsymbol{v}_i\right)^{\mathrm{T}} A v_i=\boldsymbol{v}_i^{\mathrm{\top}} A^{\top} A \boldsymbol{v}_i \\ & =\boldsymbol{v}_i^{\top}\left(\lambda_i \boldsymbol{v}_i\right) & & \text { 由于 } \boldsymbol{v}_i \text { 是 } A^{\top} A \text { 的特征向量 } \\ & =\lambda_i & & \text { 由于 } \boldsymbol{v}_i \text { 是单位向量 } \end{array} Avi2=(Avi)TAvi=viAAvi=vi(λivi)=λi 由于 vi  AA 的特征向量  由于 vi 是单位向量 

所以, A T A A^{\mathrm{T}} A ATA 的所有特征值都非负. 如果必要, 通过重新编号, 可以假设特征值的重新排列满足
λ 1 ⩾ λ 2 ⩾ ⋯ ⩾ λ n ⩾ 0 \lambda_1 \geqslant \lambda_2 \geqslant \cdots \geqslant \lambda_n \geqslant 0 λ1λ2λn0
A A A 的奇异值是 A T A A^{\mathrm{T}} A ATA 的特征值的平方根, 记为 σ 1 , ⋯   , σ n \sigma_1, \cdots, \sigma_n σ1,,σn, 且它们用递减顺序排列, 也就是对 1 ⩽ i ⩽ n , σ i = λ i 1 \leqslant i \leqslant n, \quad \sigma_i=\sqrt{\lambda_i} 1in,σi=λi . 由(2)可知, A A A 的奇异值是向量 A v 1 , ⋯   , A v n A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_n Av1,,Avn 的长度.

2讨论 { A v 1 , ⋯   , A v r } \left\{A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_r\right\} {Av1,,Avr}

{ v 1 , ⋯   , v n } \left\{v_1, \cdots, v_n\right\} {v1,,vn} 是包含 A T A A^{\mathrm{T}} A ATA 的特征向量的 R n \mathbb{R}^n Rn 上的单位正交基, 重新整理使得对应的 A ⊤ A A^{\top} A AA 的特征值满足 λ 1 ⩾ ⋯ ⩾ λ n \lambda_1 \geqslant \cdots \geqslant \lambda_n λ1λn. 假若 A A A r r r 个非零奇异值, 那么 { A v 1 , ⋯   , A v r } \left\{A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_r\right\} {Av1,,Avr} Col ⁡ A \operatorname{Col} A ColA 的一个正交基, 且 rank A = r A=r A=r.
证明: 由于当 i ≠ j i \neq j i=j 时, v i v_i vi λ j v j \lambda_j v_j λjvj 正交, 所以
( A v i ) T ( A v j ) = v i T A T A v j = v i T ( λ j v j ) = 0 \left(A \boldsymbol{v}_i\right)^{\mathrm{T}}\left(A \boldsymbol{v}_j\right)=\boldsymbol{v}_i^{\mathrm{T}} A^{\mathrm{T}} A \boldsymbol{v}_j=\boldsymbol{v}_i^{\mathrm{T}}\left(\lambda_j \boldsymbol{v}_j\right)=0 (Avi)T(Avj)=viTATAvj=viT(λjvj)=0

从而 { A v 1 , ⋯   , A v n } \left\{A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_n\right\} {Av1,,Avn} 是一个正交基. 更进一步,由于向量 A v 1 , ⋯   , A v n A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_n Av1,,Avn 的长度是 A A A 的奇异值,且因为有 r r r个非零奇异值, 因此 A v i ≠ 0 A \boldsymbol{v}_i \neq \mathbf{0} Avi=0 的充分必要条件是 1 ⩽ i ⩽ r 1 \leqslant i \leqslant r 1ir. 所以 A v 1 , ⋯   , A v r A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_r Av1,,Avr 是线性无关向量, 且属于 Col ⁡ A \operatorname{Col} A ColA. 最后, 对任意属于 Col ⁡ A \operatorname{Col} A ColA y \boldsymbol{y} y, 比如 y = A x \boldsymbol{y}=A \boldsymbol{x} y=Ax, 我们可以写出 x = c 1 v 1 + ⋯ + c n v n \boldsymbol{x}=c_1 \boldsymbol{v}_1+\cdots+c_n \boldsymbol{v}_n x=c1v1++cnvn, 且
y = A x = c 1 A v 1 + ⋯ + c r A v r + c r + 1 A v r + 1 + ⋯ + c n A v n = c 1 A v 1 + ⋯ + c r A v r + 0 + ⋯ + 0 \begin{aligned} \boldsymbol{y} & =A \boldsymbol{x}=c_1 A \boldsymbol{v}_1+\cdots+c_r A \boldsymbol{v}_r+c_{r+1} A \boldsymbol{v}_{r+1}+\cdots+c_n A \boldsymbol{v}_n \\ & =c_1 A \boldsymbol{v}_1+\cdots+c_r A \boldsymbol{v}_r+0+\cdots+0 \end{aligned} y=Ax=c1Av1++crAvr+cr+1Avr+1++cnAvn=c1Av1++crAvr+0++0

这样, y \boldsymbol{y} y Span ⁡ { A v 1 , ⋯   , A v r } \operatorname{Span}\left\{A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_r\right\} Span{Av1,,Avr} 中, 这说明 { A v 1 , ⋯   , A v r } \left\{A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_r\right\} {Av1,,Avr} Col ⁡ A \operatorname{Col} A ColA 的一个(正交)基. 因此 rank ⁡ A = \operatorname{rank} A= rankA= dim ⁡ Col ⁡ A = r \operatorname{dim} \operatorname{Col} A=r dimColA=r.

3继续讨论

对每一个 m × n m \times n m×n 矩阵 A \boldsymbol{A} A, 存在标准正交集 { u 1 , ⋯   \left\{\boldsymbol{u}_1, \cdots\right. {u1,, u m } , { v 1 , ⋯   , v n } \left.\boldsymbol{u}_m\right\},\left\{\boldsymbol{v}_1, \cdots, \boldsymbol{v}_n\right\} um},{v1,,vn}, 以及非负数 σ 1 ⩾ ⋯ ⩾ σ n ⩾ 0 \quad \sigma_1 \geqslant \cdots \geqslant \sigma_n \geqslant 0 σ1σn0, 令
A v 1 = σ 1 u 1 A v 2 = σ 2 u 2 ⋮ A v n = σ n u n \begin{gathered} \boldsymbol{A} \boldsymbol{v}_1=\quad \sigma_1 \boldsymbol{u}_1 \\ \boldsymbol{A} \boldsymbol{v}_2=\quad \sigma_2 \boldsymbol{u}_2 \\ \vdots \\ \boldsymbol{A} \boldsymbol{v}_n=\quad \sigma_n \boldsymbol{u}_n \end{gathered} Av1=σ1u1Av2=σ2u2Avn=σnun
根据2中的讨论: { A v 1 , ⋯   , A v n } \left\{A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_n\right\} {Av1,,Avn} 是一个正交基. 更进一步,由于向量 A v 1 , ⋯   , A v n A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_n Av1,,Avn 的长度是 A A A 的奇异值,根据上述等式有: u i \boldsymbol{u}_i ui 为一组单位正交基
v i \boldsymbol{v}_i vi 称为是矩阵 A \boldsymbol{A} A 的右奇异向量, 将 u i \boldsymbol{u}_i ui A \boldsymbol{A} A的左奇异向量, s i s_i si A \boldsymbol{A} A 的奇异值(singular value).

4svd定义及证明

A A A 是秩为 r r r m × n m \times n m×n 矩阵, 那么存在一个 m × n m \times n m×n 矩阵 Σ \Sigma Σ, 其中 D D D 的对角线元素是 A A A 的前 r r r 个奇异值, σ 1 ⩾ σ 2 ⩾ ⋯ ⩾ σ r > 0 \sigma_1 \geqslant \sigma_2 \geqslant \cdots \geqslant \sigma_r>0 σ1σ2σr>0, 并且存在一个 m × m m \times m m×m 正交矩阵 U U U 和一个 n × n n \times n n×n 正交矩阵 V V V 使得 A = U Σ V T A=U \Sigma V^{\mathrm{T}} A=UΣVT.

任何分解 A = U Σ V T A=U \Sigma V^{\mathrm{T}} A=UΣVT 称为 A A A 的一个奇异值分解 (或 SVD), 其中 U U U V V V 是正交矩阵, Σ \Sigma Σ , D D D 具有正的对角线元素. 矩阵 U U U V V V 不是由 A A A 惟一确定的, 但 Σ \Sigma Σ 的对角线元素必须是 A A A 的奇异值. 这样的一个分解中 U U U 的列称为 A A A 的左奇异向量, 而 V V V 的列称为 A A A 的右奇异向量.
根据上面的讨论,很容易进行证明。
证明:
假设 λ i \lambda_i λi v i \boldsymbol{v}_i vi 如上述讨论 , 使得 { A v 1 , ⋯   , A v r } \left\{A \boldsymbol{v}_1, \cdots, A \boldsymbol{v}_r\right\} {Av1,,Avr} Col ⁡ A \operatorname{Col} A ColA 的正交基. 将每一个 A v i A \boldsymbol{v}_i Avi 单位化得到一个单位正交基 { u 1 , ⋯   , u r } \left\{\boldsymbol{u}_1, \cdots, \boldsymbol{u}_r\right\} {u1,,ur}, 其中
u i = 1 ∥ A v i ∥ A v i = 1 σ i A v i u_i=\frac{1}{\left\|A v_i\right\|} A \boldsymbol{v}_i=\frac{1}{\sigma_i} A \boldsymbol{v}_i ui=Avi1Avi=σi1Avi

而且
A v i = σ i u i ( 1 ⩽ i ⩽ r ) A \boldsymbol{v}_i=\sigma_i \boldsymbol{u}_i \quad(1 \leqslant i \leqslant r) Avi=σiui(1ir)

现在将 { u 1 , ⋯   , u r } \left\{\boldsymbol{u}_1, \cdots, \boldsymbol{u}_r\right\} {u1,,ur} 扩充为 R m \mathbb{R}^m Rm 的单位正交基 { u 1 , ⋯   , u m } \left\{\boldsymbol{u}_1, \cdots, \boldsymbol{u}_m\right\} {u1,,um}, 并且取
U = [ u 1 u 2 ⋯ u m ]  和  V = [ v 1 v 2 ⋯ v n ] U=\left[\begin{array}{llll} \boldsymbol{u}_1 & \boldsymbol{u}_2 & \cdots & \boldsymbol{u}_m \end{array}\right] \text { 和 } V=\left[\begin{array}{llll} \boldsymbol{v}_1 & \boldsymbol{v}_2 & \cdots & \boldsymbol{v}_n \end{array}\right] U=[u1u2um]  V=[v1v2vn]

由构造可知, U U U V V V 是正交矩阵
A V = [ A v 1 ⋯ A v r 0 ⋯ 0 ] = [ σ 1 u 1 ⋯ σ r u r 0 ⋯ 0 ] A V=\left[\begin{array}{llllll} A \boldsymbol{v}_1 & \cdots & A \boldsymbol{v}_r & \mathbf{0} & \cdots & 0 \end{array}\right]=\left[\begin{array}{llllll} \sigma_1 \boldsymbol{u}_1 & \cdots & \sigma_r \boldsymbol{u}_r & \mathbf{0} & \cdots & 0 \end{array}\right] AV=[Av1Avr00]=[σ1u1σrur00]

D D D 是对角线元素为 σ 1 , ⋯   , σ r \sigma_1, \cdots, \sigma_r σ1,,σr 的对角矩阵, 那么
U Σ = [ u 1 u 2 ⋯ u m ] [ σ 1 0 σ 2 0 ⋱ 0 σ r 0 0 ] = [ σ 1 u 1 ⋯ σ r u r 0 ⋯ 0 ] \begin{aligned} U \Sigma & =\left[\begin{array}{llll} \boldsymbol{u}_1 & \boldsymbol{u}_2 \cdots & \boldsymbol{u}_m \end{array}\right]\left[\begin{array}{llll|l} \sigma_1 & & & 0 & \\ & \sigma_2 & & & 0 \\ & & \ddots & & \\ 0 & & & \sigma_r & \\ \hline & 0 & & & 0 \end{array}\right] \\ & =\left[\sigma_1 \boldsymbol{u}_1 \cdots \sigma_r \boldsymbol{u}_r \mathbf{0} \cdots \mathbf{0}\right] \end{aligned} UΣ=[u1u2um] σ10σ200σr00 =[σ1u1σrur00]

由于 V V V 是一个正交矩阵, 因此 U Σ V T = A V V T = A U \Sigma V^{\mathrm{T}}=A V V^{\mathrm{T}}=A UΣVT=AVVT=A.

5讨论 u i \boldsymbol{u}_i ui的性质

由于 A v i = σ i u i \boldsymbol{A} \boldsymbol{v}_i=\quad \sigma_i \boldsymbol{u}_i Avi=σiui
{ v 1 , ⋯   , v n } \left\{\boldsymbol{v}_1, \cdots, \boldsymbol{v}_n\right\} {v1,,vn} R n \mathbb{R}^n Rn 的单位正交基且构成 A T A A^{\mathrm{T}} A ATA 的特征向量, λ 1 , ⋯   , λ n \lambda_1, \cdots, \lambda_n λ1,,λn A T A A^{\mathrm{T}} A ATA 对应的特征值
所以
A A T u i = 1 σ i A ( A T A v i ) = 1 σ i A λ i v i = λ i 1 σ i σ i u i = λ i u i \begin{aligned} AA^{\mathrm{T}}u_i=\frac{1}{\sigma_i}A(A^{\mathrm{T}}{A} {v}_i)=\frac{1}{\sigma_i}A\lambda_i{v}_i=\lambda_i\frac{1}{\sigma_i}\sigma_i {u}_i=\lambda_i{u}_i \end{aligned} AATui=σi1A(ATAvi)=σi1Aλivi=λiσi1σiui=λiui

所以 u i {u_i} ui A A T AA^{\mathrm{T}} AAT的特征向量, λ i \lambda_i λi为其特征值

6svd分解是唯一的吗?

对于给定矩阵 A , S V D \boldsymbol{A}, \mathrm{SVD} A,SVD 不唯一. 例如在定义方程 A v 1 = s 1 u 1 \boldsymbol{A} \boldsymbol{v}_1=s_1 \boldsymbol{u}_1 Av1=s1u1 中, 用 − v 1 -\boldsymbol{v}_1 v1 代替 v 1 \boldsymbol{v}_1 v1, 用 − u 1 -\boldsymbol{u}_1 u1 代替 u 1 \boldsymbol{u}_1 u1 不改变相等性, 但是改变矩阵 U \boldsymbol{U} U V \boldsymbol{V} V.
同样对于 A T A A^{\mathrm{T}}A ATA的特征向量 V V V, A A T AA^{\mathrm{T}} AAT的特征向量 U U U都存在正负号问题,如果同时求 V , U V,U V,U,此时不能确定SVD中 V , U V,U V,U的正负号,此种做法是错误的。

7svd的一般求解步骤

(1)求得矩阵 A T A A^{\mathrm{T}}A ATA的特征值与特征向量
(2)将矩阵 A T A A^{\mathrm{T}}A ATA的特征值按照降序排列,获取奇异值 σ i \sigma_i σi,得到对应的特征向量即 v i v_i vi
(3)根据奇异值分解定义:
A v i = σ i u i ( 1 ⩽ i ⩽ r ) A \boldsymbol{v}_i=\sigma_i \boldsymbol{u}_i \quad(1 \leqslant i \leqslant r) Avi=σiui(1ir)求得 u i u_i ui

参考:
《线性代数及其应用》7.4
《数值分析》12.3
1
2

  • 9
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值