SVD推导

申明: 仅个人小记

前提简要
  1. A = U Σ V T A=U\Sigma V^T A=UΣVT
  1. u i ⃗ \vec{u_i} ui U U U的列向量, v i ⃗ \vec{v_i} vi V V V的列向量, v i ⃗ \vec{v_i} vi u i ⃗ \vec{u_i} ui 的直接关系为, A v i ⃗ = λ i u i ⃗ = σ i u i ⃗ A\vec{v_i}=\sqrt{\lambda_i}\vec{u_i}=\sigma_i\vec{u_i} Avi =λi ui =σiui
  2. u i ⃗ \vec{u_i} ui 称为左奇异向量 v i ⃗ \vec{v_i} vi 称为右奇异向量
  3. 注意! λ \lambda λ是矩阵 A T A A^TA ATA的特征值,而不是矩阵 A A A的特征值!
  4. 我们把 λ i \sqrt{\lambda_i} λi 记作 σ i \sigma_i σi,并称为奇异值。
  5. 当A可对角化时,奇异值 σ i \sigma_i σi就是矩阵A的特征值。
既定事实,
  1. 对于任意规格mXn矩阵 A A A, A T A {A}^{T}A ATA为n*n规格的实对称矩阵。
  2. 实对称矩阵必然存在n个线性无关的相互正交的单位特征向量
  3. 正交矩阵的逆矩阵等于正交矩阵的转置
  4. r ( A T A ) = r ( A ) = k , ( k ≤ m i n { m , n } ) r({A}^{T}A)=r(A)=k,(k\le min\left \{ m,n\right \}) r(ATA)=r(A)=k,(kmin{m,n}),即 A T A {A}^{T}A ATA的非零特征值的个数为k(重根分开计数)
  5. 易知恒有 A T A {A}^{T}A ATA的特征值 λ i ≥ 0 \lambda_i\ge0 λi0将特征值按降序排为 λ 1 , λ 2 , , , λ k , λ k + 1 , , , λ n \lambda_1, \lambda_2, ,,\lambda_k,\lambda_{k+1},,,\lambda_n λ1,λ2,,,λk,λk+1,,,λn,其中 λ k , λ k + 1 , , , λ n \lambda_k,\lambda_{k+1},,,\lambda_{n} λk,λk+1,,,λn皆为零值。
推导开始

A T A {A}^{T}A ATA的n个n维度线性无关的相互正交的单位特征向量,记为 v 1 ⃗ , v 2 ⃗ , . . . , v n ⃗ \vec {v _{1}}, \vec {v _{2}},...,{\vec {v _{n}}} v1 ,v2 ,...,vn 所以有, A T A v i ⃗ = λ i v i ⃗ = { λ i v i ⃗ , i ≤ k 0 ⃗ , i > k {A}^{T}A\vec {v _{i}} = \lambda _{i} \vec {v _{i}}=\begin {cases} \lambda_i\vec{v_i},&i\le k \cr \vec{0},&i>k\end {cases} ATAvi =λivi ={λivi ,0 ,iki>k v i ⃗ ⋅ v j ⃗ = 0 , ( i ≠ j ) 以及 v i ⃗ ⋅ v i ⃗ = 1 \vec {v _{i}} \cdot \vec {v_{j}} = 0, (i \neq j)以及\vec {v_{i}} \cdot \vec {v_{i}} = 1 vi vj =0,(i=j)以及vi vi =1所以下面只讨论非零特征值部分, v j ⃗ ⋅ A T A v i ⃗ = v j ⃗ ⋅ λ i v i ⃗ , ( i , j ≤ k ) \vec {v_j} \cdot {A}^{T}A\vec {v_i} = \vec {v_j} \cdot \lambda _i \vec{v_i},(i, j\le k) vj ATAvi =vj λivi (i,jk)
进而有, v j ⃗ T A T A v i ⃗ = λ v j ⃗ ⋅ v i ⃗ , ( i , j ≤ k ) {\vec{v_j}}^{T}{A}^{T}A\vec{v_i}=\lambda \vec{v_j}\cdot\vec{v_i} ,(i, j\le k) vj TATAvi =λvj vi ,(i,jk)显然, ( A v j ⃗ ) T ⋅ ( A v i ⃗ ) = λ i ⋅ { 0 , i ≠ j 1 , i = j {(A\vec{v_j})}^{T}\cdot(A\vec{v_i})=\lambda _i \cdot \begin{cases}0,&i \neq j \cr 1, & i=j\end{cases} (Avj )T(Avi )=λi{0,1,i=ji=j

即, ( A v j ⃗ ) ⋅ ( A v i ⃗ ) = { 0 , i ≠ j λ i , i = j , ( i , j ≤ k ) (A\vec{v_j})\cdot(A\vec{v_i})=\begin{cases} 0,&i\neq j\cr \lambda _i,&i=j\end{cases},(i, j\le k) (Avj )(Avi )={0,λi,i=ji=j,(i,jk)
即得, ∣ A v i ⃗ ∣ = λ i 且 A v i ⃗ ⊥ A v j ⃗ \left | A\vec{v_i}\right | = \sqrt{\lambda}_i且A\vec{v_i}\perp A\vec{v_j} Avi =λ iAvi Avj

说明, A v 1 ⃗ , A v 2 ⃗ , . . . , A v k ⃗ A\vec{v_1}, A\vec{v_2},...,A\vec{v_k} Av1 ,Av2 ,...,Avk 是一组m维度列向量的正交基。其中 λ i \sqrt{\lambda_i} λi 称为奇异值,记为 σ i \sigma_i σi

进而我们将这组正交基正规化,即化为每个向量都变为模为1的向量,即 A v 1 ⃗ ∣ A v 1 ⃗ ∣ , A v 2 ⃗ ∣ A v 2 ⃗ ∣ , . . . , A v k ⃗ ∣ A v k ⃗ ∣ \frac {A\vec{v_1}}{\left | A\vec{v_1} \right |},\frac {A\vec{v_2}}{\left | A\vec{v_2} \right |},...,\frac {A\vec{v_k}}{\left | A\vec{v_k} \right |} Av1 Av1 ,Av2 Av2 ,...,Avk Avk

即, A v 1 ⃗ λ 1 , A v 2 ⃗ λ 2 , . . . , A v k ⃗ λ k \frac {A\vec{v_1}}{\sqrt{\lambda _1}},\frac {A\vec{v_2}}{\sqrt{\lambda _2}},...,\frac {A\vec{v_k}}{\sqrt{\lambda _k}} λ1 Av1 ,λ2 Av2 ,...,λk Avk

记作(注意 v ⃗ \vec{v} v u ⃗ \vec{u} u 之间的直接关系), u 1 ⃗ , u 2 ⃗ , . . . , u k ⃗ , ( 注意: u i ⃗ 是 m 维的列向量 ) \vec{u_1},\vec{u_2},...,\vec{u_k},(注意: \vec{u_i}是m维的列向量) u1 ,u2 ,...,uk ,(注意:ui m维的列向量)因为 k ≤ m k\le m km,且 u i ⃗ \vec{u_i} ui 是m维度的,所以可以补充m维正交向量,使得 u 1 ⃗ , u 2 ⃗ , , , u m ⃗ \vec{u_1},\vec{u_2},,,\vec{u_m} u1 ,u2 ,,,um 为m个m维度的正交向量组。

此处梳理下,以上的推导结果为 u i ⃗ ⋅ u j ⃗ = { 0 , i ≠ j 1 , i = j , ( i , j ≤ m ) \vec{u_i}\cdot\vec{u_j}=\begin{cases}0,&i \neq j\cr1,&i = j \end{cases},(i,j\le m) ui uj ={0,1,i=ji=j,(i,jm)

A v i ⃗ = u i ⃗ λ i , ( i , j ≤ k ) A\vec{v_i}=\vec{u_i}\sqrt{\lambda_i},(i, j\le k) Avi =ui λi ,(i,jk)

所以有,
A ( v 1 ⃗ , v 1 ⃗ , . . . , v n ⃗ ) A(\vec{v_1},\vec{v_1},...,\vec{v_n}) A(v1 ,v1 ,...,vn ) = ( u 1 ⃗ , u 2 ⃗ , . . . , u m ⃗ ) [ λ 1 λ 2 . λ k 0 . 0 ] =(\vec{u_1},\vec{u_2},...,\vec{u_m})\begin {bmatrix}&\sqrt{\lambda_1} & &&&&&\\&&\sqrt{\lambda_2}&&&&&\\&&&.&&&&\\&&&&\sqrt{\lambda_k}&&&\\&&&&&0 &&\\&&&&&&.&\\&&&&&&&0\end {bmatrix} =(u1 ,u2 ,...,um ) λ1 λ2 .λk 0.0 = U Σ =U\Sigma =UΣ

其中 Σ \Sigma Σ为m*n的矩阵。又因为, [ v 1 ⃗ , v 1 ⃗ , . . . , v n ⃗ ] [\vec{v_1},\vec{v_1},...,\vec{v_n}] [v1 ,v1 ,...,vn ] 是正交矩阵,所以必然有 [ v 1 ⃗ , v 1 ⃗ , . . . , v n ⃗ ] − 1 = [ v 1 ⃗ , v 1 ⃗ , . . . , v n ⃗ ] T {[\vec{v_1},\vec{v_1},...,\vec{v_n}]}^{-1}={[\vec{v_1},\vec{v_1},...,\vec{v_n}]}^{T} [v1 ,v1 ,...,vn ]1=[v1 ,v1 ,...,vn ]T

所以, A = ( u 1 ⃗ , u 2 ⃗ , . . . , u m ⃗ ) [ λ 1 λ 2 . λ k 0 . 0 ] [ v 1 ⃗ , v 1 ⃗ , . . . , v n ⃗ ] − 1 A=(\vec{u_1},\vec{u_2},...,\vec{u_m})\begin {bmatrix}&\sqrt{\lambda_1} & &&&&&\\&&\sqrt{\lambda_2}&&&&&\\&&&.&&&&\\&&&&\sqrt{\lambda_k}&&&\\&&&&&0 &&\\&&&&&&.&\\&&&&&&&0\end {bmatrix}{[\vec{v_1},\vec{v_1},...,\vec{v_n}]}^{-1} A=(u1 ,u2 ,...,um ) λ1 λ2 .λk 0.0 [v1 ,v1 ,...,vn ]1

即, A = ( u 1 ⃗ , u 2 ⃗ , . . . , u m ⃗ ) [ λ 1 λ 2 . λ k 0 . 0 ] [ v 1 ⃗ , v 1 ⃗ , . . . , v n ⃗ ] T A=(\vec{u_1},\vec{u_2},...,\vec{u_m})\begin {bmatrix}&\sqrt{\lambda_1} & &&&&&\\&&\sqrt{\lambda_2}&&&&&\\&&&.&&&&\\&&&&\sqrt{\lambda_k}&&&\\&&&&&0 &&\\&&&&&&.&\\&&&&&&&0\end {bmatrix}{[\vec{v_1},\vec{v_1},...,\vec{v_n}]}^{T} A=(u1 ,u2 ,...,um ) λ1 λ2 .λk 0.0 [v1 ,v1 ,...,vn ]T

记作, A = U Σ V T A=U\Sigma {V}^{T} A=UΣVT
U的规格:mXm, Σ \Sigma Σ 规格:mXn, V规格: nXn

补充

证明矩阵U的列向量是 A A T A{A}^{T} AAT的单位特征向量
A A T u i ⃗ = A A T A v i ⃗ λ i = A A T A v i ⃗ λ i = A λ i v i ⃗ λ i = λ i A v i ⃗ λ i = λ i u i ⃗ A{A}^{T}\vec{u_i}=A{A}^{T}\frac {A\vec{v_i}}{\sqrt{\lambda_i}}=A \frac {{A}^{T}A\vec{v_i}}{\sqrt{\lambda_i}}=A\frac {\lambda_i \vec{v_i}}{\sqrt{\lambda_i}}=\lambda_i\frac {A\vec{v_i}}{\sqrt{\lambda_i}}=\lambda_i\vec{u_i} AATui =AATλi Avi =Aλi ATAvi =Aλi λivi =λiλi Avi =λiui

即, A A T u i ⃗ = λ i u i ⃗ A{A}^{T}\vec{u_i}=\lambda_i\vec{u_i} AATui =λiui

又因为, u i ⃗ ⋅ u i ⃗ = 1 \vec{u_i}\cdot\vec{u_i}=1 ui ui =1

所以, u i ⃗ \vec{u_i} ui A A T A{A}^{T} AAT的单位特征向量。

再次注意 v ⃗ \vec{v} v u ⃗ \vec{u} u 之间的直接关系,并利用该关系证明矩阵U的列向量是 A A T A{A}^{T} AAT的单位特征向量,证明如下 A T A v i ⃗ = λ i v i ⃗ A^TA\vec{v_i}=\lambda_i\vec{v_i} ATAvi =λivi A A T A v i ⃗ = λ i A v i ⃗ AA^TA\vec{v_i}=\lambda_iA\vec{v_i} AATAvi =λiAvi 因为 v ⃗ \vec{v} v u ⃗ \vec{u} u 之间的直接关系 A v i ⃗ = λ i u i ⃗ = σ i u i ⃗ A\vec{v_i}=\sqrt{\lambda_i}\vec{u_i}=\sigma_i\vec{u_i} Avi =λi ui =σiui ,进而 A A T σ i u i ⃗ = λ i σ i u i ⃗ AA^T\sigma_i\vec{u_i}=\lambda_i\sigma_i\vec{u_i} AATσiui =λiσiui 即, A A T = λ i u ⃗ AA^T=\lambda_i\vec{u} AAT=λiu 证毕。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值