对应书本章节 | 主要学习内容 | 习目标 |
---|---|---|
矩阵奇异值分解基本定理 | 构造法证明的3步骤 | 掌握矩阵奇异值分解过程 |
正交变换 | 正交补空间的性质 | 理解正交补空间的秩与相关运算 |
奇异值与特征向量的关系 | 正交特征向量的构造及对奇异值的影响 | 掌握奇异值的求法与数学性质 |
奇异值分解的案例运算 | 简单与复杂矩阵的奇异值分解简化法 | 理解奇异值分解的实际意义 |
设 A A A为一 m × n m\times n m×n实矩阵, A ∈ R m × n A\in R_{m\times n} A∈Rm×n,则存在A的奇异值分解:
A = U Σ V T A=U\Sigma V^T A=UΣVT
这里 m ≥ n m\ge n m≥n,如果 m < n m
A T = U Σ V T A = V Σ U T A^T=U\Sigma V^T\\ A=V\Sigma U^T AT=UΣVTA=VΣUT
其中U与V分别是m阶与n阶正交矩阵, Σ \Sigma Σ是 m × n m\times n m×n矩形对角矩阵,对角线元素均为非负实数,依次按降序排列。
不妨设 m ≥ n m\ge n m≥n, m < n m
1、确定V和 Σ \Sigma Σ
由于A是 m × n m\times n m×n实矩阵,则矩阵 A T A A^TA ATA是n阶实对称矩阵。
特征值都是实数,存在n阶正交实矩阵V实现 A T A A^TA ATA的对角化,使得 V T ( A T A ) V = D V^T(A^TA)V=D VT(ATA)V=D成立
其中D是n阶对角矩阵,对角线元素依次为 A T A A^TA ATA的特征值降序排列组成(对角线元素个数为k个, k = r a n k ( A T A ) k=rank(A^TA) k=rank(ATA))。
上节内容:
合理排列正交矩阵V的列向量顺序,使得相似对角化后对应的的特征值依次降序排列。
分别计算特征值平方根,即为矩阵A的各奇异值。
λ 1 ≥ λ 2 ≥ ⋯ ≥ λ n ≥ 0 \lambda_1\ge\lambda_2\ge\cdots\ge\lambda_n\ge0 λ1≥λ2≥⋯≥λn≥0
记矩阵A的秩为r,即rank(A)=r,那么矩阵 A T A A^TA ATA的秩也是r。
σ i = λ i , i = 1 , 2 , ⋯ , n \sigma_i=\sqrt{\lambda_i},i=1,2,\cdots,n σi=λi,i=1,2,⋯,n
σ i = \sigma_i= σi=是矩阵分解中 Σ \Sigma Σ对角线上的元素
验证特征值非负
设 λ \lambda λ是 A T A A^TA ATA的一个特征值,x是对应于 λ \lambda λ的特征向量,则
∣ ∣ A x ∣ ∣ 2 = x T A T A x = λ x T x = λ ∣ ∣ x ∣ ∣ 2 ||Ax||^2=x^TA^TAx=\lambda x^Tx=\lambda ||x||^2 ∣∣Ax∣∣2=xTATAx=λxTx=λ∣∣x∣∣2
因此推出:
λ = ∣ ∣ A x ∣ ∣ 2 ∣ ∣ x ∣ ∣ 2 ≥ 0 \lambda=\cfrac{||Ax||^2}{ ||x||^2}\ge0 λ=∣∣x∣∣2∣∣Ax∣∣2≥0
A T A A^TA ATA是 n × n n\times n n×n的实对称矩阵,故A的秩等于正特征值的数目,因此:
λ 1 ≥ λ 2 ≥ ⋯ ≥ λ r > 0 , λ r + 1 = λ r + 2 = ⋯ = λ n = 0 \lambda_1\ge\lambda_2\ge\cdots\ge\lambda_r>0,\lambda_{r+1}=\lambda_{r+2}=\cdots=\lambda_{n}=0 λ1≥λ2≥⋯≥λr>0,λr+1=λr+2=⋯=λn=0
因此奇异值的大小关系为:
σ 1 ≥ σ 2 ≥ ⋯ ≥ σ r > 0 , σ r + 1 = σ r + 2 = ⋯ = σ n = 0 \sigma_1\ge\sigma_2\ge\cdots\ge\sigma_r>0,\sigma_{r+1}=\sigma_{r+2}=\cdots=\sigma_{n}=0 σ1≥σ2≥⋯≥σr>0,σr+1=σr+2=⋯=σn=0
因此特征向量也可以分为两个部分,定义:
V 1 = [ v 1 v 2 ⋯ v r ] , V 2 = [ v r + 1 v r + 2 ⋯ v n ] V_1=[v_1v_2\cdots v_r],V_2=[v_{r+1}v_{r+2}\cdots v_{n}] V1=[v1v2⋯vr],V2=[vr+1vr+2⋯vn]
其中 v 1 v 2 ⋯ v r v_1v_2\cdots v_r v1v2⋯vr为 A T A A^TA ATA的正特征值对应的特征向量,由于特征向量维数等于原矩阵的秩,故 v r + 1 v r + 2 ⋯ v n v_{r+1}v_{r+2}\cdots v_{n} vr+1vr+2⋯vn为0特征值对应的特征向量,合并 V 1 , V 2 V_1,V_2 V1,V2为矩阵V:
V = [ V 1 V 2 ] V=[V_1\space V_2] V=[V1 V2]
即得矩阵A奇异值分解中的n阶正交矩阵V。
记对角矩阵:
Σ 1 = [ σ 1 σ 2 ⋱ σ r ] \Sigma_1=\begin{bmatrix} \sigma_1 & & & \\ & \sigma_2 & & \\ & & \ddots & \\ & & &\sigma_r \end{bmatrix} Σ1=⎣⎢⎢⎡σ1σ2⋱σr⎦⎥⎥⎤
Σ 1 \Sigma_1 Σ1是r阶对角矩阵,其对角线元素依次降序排列: σ 1 , ⋯ , σ r \sigma_1,\cdots,\sigma_r σ1,⋯,σr
因此拓展矩阵的维数得到 m × n m\times n m×n矩形对角矩阵 Σ \Sigma Σ可表示为:
Σ = [ Σ 1 0 0 0 ] \Sigma=\begin{bmatrix} \Sigma_1 &0 \\ 0 & 0 \end{bmatrix} Σ=[Σ1000]
即得矩阵A奇异值分解中的 m × n m\times n m×n矩形对角矩阵
2、计算矩阵U
构造m阶正交实矩阵
记向量:
u j = 1 σ j A v j , j = 1 , 2 , ⋯ , r U 1 = [ u 1 , u 2 , ⋯ , u r ] u_j=\cfrac{1}{\sigma_j}Av_j,j=1,2,\cdots,r\\ U_1=[u_1,u_2,\cdots,u_r] uj=σj1Avj,j=1,2,⋯,rU1=[u1,u2,⋯,ur]
则有
A V 1 = U 1 Σ 1 AV_1=U_1\Sigma_1 AV1=U1Σ1
U 1 U_1 U1的列向量可视为一组标准正交基,因为:
记 { u r + 1 , u r + 2 , ⋯ , u m } \{u_{r+1},u_{r+2},\cdots,u_m\} { ur+1,ur+2,⋯,um}为A的正交线性空间 N ( A T ) N(A^T) N(AT)的一组标准正交基(使用施密特正交扩展),若记
U 2 = [ u r + 1 , u r + 2 , ⋯ , u m ] U_2=[u_{r+1},u_{r+2},\cdots,u_m] U2=[ur+1,ur+2,⋯,um]
则
U = [ U 1 U 2 ] U=[U_1\quad U_2] U=[U1U2]
u 1 , u 2 , ⋯ , u m u_{1},u_{2},\cdots,u_m u1,u2,⋯,um构成了 R m R^m Rm的一组标准正交基。因此U为m阶正交矩阵。
U即为矩阵A奇异值分解中的m阶正交矩阵。
3、证明 U Σ V T = A U\Sigma V^T=A UΣVT=A
由前述结论,可得矩阵乘积:
U Σ V T = [ U 1 U 2 ] [ Σ 1 0 0 0 ] [ v 1 T v k T ] = U 1 Σ 1 V 1 T = A 1 V 1 V 1 T = A U\Sigma V^T=[U_1\quad U_2]\begin{bmatrix} \Sigma_1 &0 \\ 0 & 0 \end{bmatrix}\begin{bmatrix} v_1^T \\ v_k^T \end{bmatrix}\\ =U_1\Sigma_1V_1^T\\ =A_1V_1V_1^T\\ =A UΣVT=[U1U2][Σ1000][v1TvkT]=U1Σ1V1T=A1V1V1T=A
上面理论部分感觉推得有点生硬,具体还是去看下数学基础部分:https://blog.csdn.net/oldmao_2001/article/details/103614310
下面看例子
试对下面5×4矩阵A进行奇异值分解
A = [ 1 0 0 0 0 0 0 4 0 3 0 0 0 0 0 0 2 0 0 0 ] A=\begin{bmatrix} 1 &0&0&0 \\ 0 & 0& 0& 4\\ 0 & 3& 0& 0\\ 0 & 0& 0& 0\\ 2 & 0& 0& 0\\ \end{bmatrix} A=⎣⎢⎢⎢⎢⎡10002003000000004000⎦⎥⎥⎥⎥⎤
解:
B = A T A = [ 5 0 0 0 0 9 0 0 0 0 0 0 0 0 0 16 ] B=A^TA=\begin{bmatrix} 5&0&0&0 \\ 0 & 9& 0&0 \\ 0 & 0& 0&0\\ 0 & 0& 0&16 \end{bmatrix} B=ATA=⎣⎢⎢⎡50000900000000016⎦⎥⎥⎤的特征值从大到小是4,3, 5 \sqrt5 5,0,对应的特征向量分别是:
[ 0 0 0 1 ] , [ 0 1 0 0 ] , [ 1 0 0 0 ] , [ 0 0 1 0 ] \begin{bmatrix} 0\\ 0\\ 0\\ 1 \end{bmatrix},\begin{bmatrix} 0\\ 1\\ 0\\ 0 \end{bmatrix},\begin{bmatrix} 1\\ 0\\ 0\\ 0 \end{bmatrix},\begin{bmatrix} 0\\ 0\\ 1\\ 0 \end{bmatrix} ⎣⎢⎢⎡0001⎦⎥⎥⎤,⎣⎢⎢⎡0100⎦⎥⎥⎤,⎣⎢⎢⎡1000⎦⎥⎥⎤,⎣⎢⎢⎡0010⎦⎥⎥⎤
后面就是求 Σ − 1 \Sigma^{-1} Σ−1,然后带公式求U,由于构造正交矩阵不唯一,结果也不唯一。