SVD推导

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25847123/article/details/79358598

申明: 仅个人小记

既定事实,
  1. 对于任意规格mXn矩阵 A A , A T A {A}^{T}A 为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 \}) ,即 A T A {A}^{T}A 的非零特征值的个数为k(重根分开计数)
  5. 易知恒有 A T A {A}^{T}A 的特征值 λ i 0 \lambda_i\ge0 将特征值按降序排为 λ 1 , λ 2 , , , λ k , λ k + 1 , , , λ n \lambda_1, \lambda_2, ,,\lambda_k,\lambda_{k+1},,,\lambda_n ,其中 λ k , λ k + 1 , , , λ n \lambda_k,\lambda_{k+1},,,\lambda_{n} 皆为零值。
推导开始

A T A {A}^{T}A 的n个n维度线性无关的相互正交的单位特征向量,记为 v 1 , v 2 , . . . , v n \vec {v _{1}}, \vec {v _{2}},...,{\vec {v _{n}}} 所以有, 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} 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 所以下面只讨论非零特征值部分, 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)
进而有, 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) 显然, ( 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}

即, ( 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)
即得, 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}

说明, A v 1 , A v 2 , . . . , A v k A\vec{v_1}, A\vec{v_2},...,A\vec{v_k} 是一组m维度列向量的正交基。

进而我们将这组正交基正规化,即化为每个向量都变为模为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 |}

即, 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}} ,

记作, u 1 , u 2 , . . . , u k , ( u i m ) \vec{u_1},\vec{u_2},...,\vec{u_k},(注意: \vec{u_i}是m维的列向量) 因为 k m k\le m ,且 u i \vec{u_i} 是m维度的,所以可以补充m维正交向量,使得 u 1 , u 2 , , , u m \vec{u_1},\vec{u_2},,,\vec{u_m} 为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)

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

所以有,
A ( v 1 , v 1 , . . . , v n ) A(\vec{v_1},\vec{v_1},...,\vec{v_n}) = ( 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} = U Σ =U\Sigma

其中 Σ \Sigma 为m*n的矩阵。又因为, [ v 1 , v 1 , . . . , v n ] [\vec{v_1},\vec{v_1},...,\vec{v_n}] 是正交矩阵,所以必然有 [ 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}

所以, 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 = ( 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 = U Σ V T A=U\Sigma {V}^{T}
U的规格:mm, Σ \Sigma 规格:mn, V规格: n*n

补充

证明矩阵U的列向量是 A A T A{A}^{T} 的单位特征向量
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}

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

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

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

猜你喜欢

转载自blog.csdn.net/qq_25847123/article/details/79358598
SVD