矩阵奇异值分解学习笔记

清华大学马辉老师线性代数课程笔记,本人第一次写博客,如有问题请多指教。

首先,我们要搞清楚奇异值分解是用来干啥的。在众多矩阵中,我们最喜欢的矩阵是对角阵,因为对角阵一眼就能看出来秩、行列式、特征值等信息,但可惜的是我们从数学模型中提取出来的很多矩阵都不是对角矩阵,我们要尽量让普通矩阵和对角阵联系起来。由以前线性代数的知识可知,对于满足条件的方阵来说,对角化是一件容易实现的事情,例如实对称矩阵一定可以对角化。但如果不是方阵的时候,我们应该怎么办呢?这就需要奇异值分解了。

奇异值分解的定义

若有矩阵 A m × n A_{m\times n} ,正交方阵 U m × m U_{m\times m} ,正交方阵 V n × n V_{n\times n} (即 U T = U 1 V T = V 1 U^T=U^{-1},V^T=V^{-1} )满足
A = U ( σ 1 σ 2 σ r 0 ) m × n V T = : U Σ V T A=U\begin{pmatrix} \sigma_1&&&\\& \sigma_2&&&\\&& \ddots&\\ &&&\sigma_r\\&&&&\mathbf0\end{pmatrix}_{m\times n}V^T=:U\Sigma V^T 其中, r = r a n k ( A ) r=rank(A) ,设 σ 1 σ 2 σ r 0 \sigma_1\geq\sigma_2\geq\cdots\sigma_r\geq 0 ,则称 σ 1 , σ 2 ,   , σ r \sigma_1,\sigma_2,\cdots,\sigma_r 奇异值(singular value),称 U U V V 的前 r r 列向量为奇异向量(singular vector).上面的分解过程为奇异值分解(Singular Value Decomposition,SVD).

奇异值分解的性质

U V U、V 写成列向量形式,则 U = ( u 1 u r u r + 1 u m ) , V = ( v 1 v r v r + 1 v n ) U=(\mathbf u_1\cdots \mathbf u_r\mathbf u_{r+1}\cdots\mathbf u_m),V=(\mathbf v_1\cdots \mathbf v_r\mathbf v_{r+1}\cdots\mathbf v_n), 其中 u i R m v i R n \mathbf u_i\in\mathbb R^m,\mathbf v_i\in\mathbb R^n .

A = U Σ V T A=U\Sigma V^T 等式两边同时右乘 V V ,得到 A V = U Σ V T V AV=U\Sigma V^TV ,由正交矩阵性质,有 A V = U Σ AV=U\Sigma ,写成向量形式,有
A ( v 1 v r v r + 1 v n ) = ( u 1 u r u r + 1 u m ) ( σ 1 σ 2 σ r 0 ) m × n A(\mathbf v_1\cdots \mathbf v_r\mathbf v_{r+1}\cdots\mathbf v_n)=(\mathbf u_1\cdots \mathbf u_r\mathbf u_{r+1}\cdots\mathbf u_m)\begin{pmatrix} \sigma_1&&&\\& \sigma_2&&&\\&& \ddots&\\ &&&\sigma_r\\&&&&\mathbf 0\end{pmatrix}_{m\times n} 因此, (1) A v i = σ i u i , i = 1 , , r , A\mathbf v_i=\sigma_i\mathbf u_i, i=1,\dots,r,\tag{1} A v j = 0 , j = r + 1 ,   , m . A\mathbf v_j=0, j=r+1,\cdots,m. A = U Σ V T A=U\Sigma V^T 两边均转置得 A T = V Σ T U T A^T=V\Sigma ^TU^T ,同理可得 A T U = V Σ T A^TU=V\Sigma ^T ,因此 (2) A T u i = σ i v i , i = 1 , , r , A^T\mathbf u_i=\sigma _i\mathbf v_i,i=1,\dots,r,\tag{2} A T u k = 0 , k = r + 1 ,   , m . A^T\mathbf u_k=\mathbf0,k=r+1,\cdots,m.

式(1)等式两边同时左乘 A T A^T ,得到 A T A u i = σ i A T u i A^TA\mathbf u_i=\sigma_iA^T\mathbf u_i ,将式(2)带入其中,得到 A T A v i = σ i 2 v i A^TA\mathbf v_i=\sigma _i^2\mathbf v_i ,同理可得 A A T u i = σ i 2 u i i = 1 , , r AA^T\mathbf u_i=\sigma _i^2\mathbf u_i,i=1,\dots,r .

这样,我们得到奇异值分解的一个性质:对于式(1)、(2)来说, v i \mathbf v_i A T A A^TA 的关于 σ i 2 \sigma_i^2 的特征向量, u i \mathbf u_i A A T AA^T 的关于 σ i 2 \sigma_i^2 的特征向量,其中, i = 1 , , r i=1,\dots,r .

由此,我们由原来的矩阵 A A 构造了两个实对称矩阵: m m 阶的 A A T AA^T n n 阶的 A T A A^TA ,为接下来的工作打下了基础.

下面的反推过程说明了SVD的合理性

A A 是秩为 r r m × n m\times n 的实矩阵,则 A A T AA^T m m 阶实对称矩阵, A T A A^TA n n 阶实对称矩阵,求证:
(1) A A T AA^T A T A A^TA 的特征值为非负数.

证:设 A T A x = λ x ( x 0 ) A^TA\mathbf x=\lambda \mathbf x(\mathbf x\neq \mathbf0), x T A T A x = λ x T x \mathbf x^TA^TA\mathbf x=\lambda \mathbf x^T\mathbf x ,即
A x 2 = λ x 2 ||A\mathbf x||^2=\lambda||\mathbf x||^2, λ 0. \lambda\geq0. 同理 A A T AA^T 的特征值也全是非负数.
(2) A A T AA^T A T A A^TA 的非零特征值集合相同.
证:已知 r a n k ( A A T ) = r a n k ( A T ) = r rank(AA^T)=rank(A^T)=r, r a n k ( A T A ) = r a n k ( A ) = r rank(A^TA)=rank(A)=r, 且实对称矩阵一定正交相似于对角阵,而相似矩阵有相同的秩和相同的特征值,因此 A A T AA^T 的非零特征值的个数与 A T A A^TA 的非零特征值的个数都等于 r r .
λ \lambda A T A A^TA 的非零特征值,即 x \exists \mathbf x, 使得 A T A x = λ x A^TA\mathbf x=\lambda \mathbf x . 则有 A A T A x = λ A x AA^TA\mathbf x=\lambda A\mathbf x . 故 λ \lambda 也是 A A T AA^T 的非零特征值.反之亦然. 因此, A A T AA^T A T A A^TA 具有相同的非零特征值.

不妨设 A A T AA^T A T A A^TA r r 个非零特征值为 σ 1 2 σ r 2 > 0 \sigma_1^2\geq\cdots\sigma^2_r\gt0 ,其中 σ i > 0 \sigma_i\gt0 .
v 1 ,   , v n R n \mathbf v_1,\cdots,\mathbf v_n\in \mathbb R^n n n 阶实对称方程 A T A A^TA 的单位正交特征向量,且有向量 u i : = A v i σ i R m ( 1 i r ) . \mathbf u_i:=\frac{A\mathbf v_i}{\sigma_i}\in\mathbb R^m(1\leq i\leq r). V = ( v 1 ,   , v n ) , U = ( u 1 ,   , u m ) . V=(\mathbf v_1,\cdots,\mathbf v_n),U=(\mathbf u_1,\cdots,\mathbf u_m).
A T A ( v 1 v n ) = ( v 1 v n ) ( σ 1 2 σ r 2 0 ) A^TA(\mathbf v_1\cdots \mathbf v_n)=(\mathbf v_1\cdots \mathbf v_n)\begin{pmatrix} \sigma^2_1&&&\\& \ddots&\\ &&\sigma^2_r\\&&&\mathbf 0\end{pmatrix}
(3)推出式(1)、式(2)

证:注意到 A T A v i = σ i 2 v i ( 1 i r ) . A^TA\mathbf v_i=\sigma_i^2\mathbf v_i(1\leq i\leq r). v i T A T A v i = σ i 2 v i T v i , \mathbf v_i^TA^TA\mathbf v_i=\sigma_i^2\mathbf v_i^T\mathbf v_i, A x i 2 = σ i 2 . ||A\mathbf x_i||^2=\sigma_i^2.
可知 A A T u i = A ( A T A v i σ i ) = A σ i 2 v i σ i = σ i 2 u i AA^T\mathbf u_i=A(A^T\frac{A\mathbf v_i}{\sigma_i})=\frac{A\sigma^2_i\mathbf v_i}{\sigma_i}=\sigma_i^2\mathbf u_i, 所以 u i ( 1 i r ) \mathbf u_i(1\leq i\leq r) A A T AA^T 的特征向量,并且由于 v i \mathbf v_i 为单位正交特征向量,故 u i T u j = ( A v i ) T σ i A v j σ j = v i T ( A T A v j ) σ i σ j = σ j 2 v i T v j σ i σ j = σ j σ i δ i j = δ i j \mathbf u_i^T\mathbf u_j=\frac{(A\mathbf v_i)^T}{\sigma_i}\frac{A\mathbf v_j}{\sigma_j}=\frac{\mathbf v_i^T(A^TA\mathbf v_j)}{\sigma_i\sigma_j}=\frac{\sigma_j^2\mathbf v_i^T\mathbf v_j}{\sigma_i\sigma_j}=\frac{\sigma_j}{\sigma_i}\delta_{ij}=\delta_{ij}, { u i 1 i r } \{\mathbf u_i|1\leq i\leq r\} A A T AA^T 的单位正交特征向量.

A v i = σ i u i A T u i = σ i v i 1 i r . A\mathbf v_i=\sigma_i\mathbf u_i,A^T\mathbf u_i=\sigma_i\mathbf v_i,\quad 1\leq i\leq r.
{ u 1 ,   , u r } \{\mathbf u_1,\cdots ,\mathbf u_r\} R n \mathbb R^n 的一组单位正交基; { v 1 ,   , v r } \{\mathbf v_1,\cdots ,\mathbf v_r\} R m \mathbb R^m 的一组单位正交基.
A ( v 1 v r ) = ( u 1 u r ) ( σ 1 σ r ) A(\mathbf v_1\cdots \mathbf v_r)=(\mathbf u_1\cdots \mathbf u_r)\begin{pmatrix} \sigma_1&&\\& \ddots&\\ &&\sigma_r\end{pmatrix}
记为 A m × n V n × r = U m × r Σ r × r . A_{m\times n}V_{n\times r}=U_{m\times r}\Sigma_{r\times r}.
扩充 { v 1 ,   , v r } \{\mathbf v_1,\cdots ,\mathbf v_r\} R n \mathbb R^n 的一组基 { v 1 ,   , v r v r + 1 ,   , v n } \{\mathbf v_1,\cdots ,\mathbf v_r,\mathbf v_{r+1},\cdots,\mathbf v_n\} ,扩充 { u 1 ,   , u r } \{\mathbf u_1,\cdots ,\mathbf u_r\} R n \mathbb R^n 的一组基 { u 1 ,   , u r u r + 1 ,   , u n } \{\mathbf u_1,\cdots ,\mathbf u_r,\mathbf u_{r+1},\cdots,\mathbf u_n\} .
则有
A ( v 1 v r v r + 1 v n ) = ( u 1 u r u r + 1 u n ) ( σ 1 σ r 0 ) m × n A(\mathbf v_1\cdots \mathbf v_r\mathbf v_{r+1}\cdots\mathbf v_n)=(\mathbf u_1\cdots \mathbf u_r\mathbf u_{r+1}\cdots\mathbf u_n)\begin{pmatrix} \sigma_1&&&\\& \ddots&\\ &&\sigma_r\\&&&\mathbf 0\end{pmatrix}_{m\times n},
A m × n V n × n = U m × m Σ m × n A_{m\times n}V_{n\times n}=U_{m\times m}\Sigma_{m\times n}, 其中 V T V = I n U T U = I m . V^TV=I_n,U^TU=I_m.
又即 A = U Σ V T A = σ 1 u 1 v 1 T + + σ r u r v r T . A=U\Sigma V^T,A=\sigma_1\mathbf u_1\mathbf v_1^T+\cdots+\sigma_r\mathbf u_r\mathbf v_r^T.

SVD与特征值的性质:
λ m a x |\lambda|_{max} 是矩阵 A A 的特征值的模长的最大值,则 σ 1 λ m a x σ 1 a i j i , j . \sigma_1\geq|\lambda|_{max},\sigma_1\geq|a_{ij}|,\forall i,j. 证:设 A A 有奇异值分解 A = U Σ V T A=U\Sigma V^T, 则对任意向量 x \mathbf x ,有 A x = U Σ V T x = Σ V T x σ 1 V T x = σ 1 x . ||A\mathbf x||=||U\Sigma V^T\mathbf x||=||\Sigma V^T\mathbf x||\leq\sigma_1||V^T\mathbf x||=\sigma_1||\mathbf x||.

这里 U U V T V^T 都是正交矩阵,从奇异值分解的几何意义来看,只是做旋转,并不改变向量长度,乘上 Σ \Sigma 表示向量的伸缩,因为 σ i \sigma_i 是按照从大到小顺序排列的,故这里 σ 1 \sigma_1 为最大的伸缩比例.

A x = λ x A\mathbf x=\lambda\mathbf x ,则 A x = λ x ||A\mathbf x||=|\lambda|\cdot||\mathbf x|| ,故 σ 1 λ \sigma_1\geq|\lambda|, 特别有 σ 1 λ m a x . \sigma_1\geq|\lambda|_{max}.

特别地,若取 x = ( 1 , 0 ,   , 0 ) \mathbf x=(1,0,\cdots,0), A x A\mathbf x 表示 A A 的第一列向量,且 A x σ 1 x = σ 1 ||A\mathbf x||\leq\sigma_1||\mathbf x||=\sigma_1 ,而 a i 1 a 11 2 + + a n 1 2 σ 1 . |a_{i1}|\leq\sqrt{a_{11}^2+\cdots+a_{n1}^2}\leq\sigma_1. 同理,依次取不同的 x \mathbf x ,则有 a i j σ 1 |a_{ij}|\leq\sigma_1 .

其他性质
1.矩阵 A A 列满秩 A \Leftrightarrow A 的奇异值均非零.
2.方阵 A A 非奇异 A \Leftrightarrow A 的奇异值均非零.

注:
矩阵的奇异值和其特征值相比的一个优点是非零奇异值的个数恰好是矩阵的秩,而矩阵的非零特征值的个数一般比其秩小,故常以此来计算矩阵的秩.

奇异值分解的几何意义

一般地,设秩为 r r m × n m\times n 矩阵 A A 有SVD: A m × n = U Σ V T A_{m\times n}=U\Sigma V^T, 则从 R n \mathbb R^n R m \mathbb R^m 的线性变换 x A x \mathbf x\rightarrow A\mathbf x 可看成是以下三步的复合:
R n \mathbb R^n 中的旋转 x V T x \mathbf x\rightarrow V^T\mathbf x;
R n \mathbb R^n 中的向量 V T x V^T\mathbf x 的前 r r 个分量做伸缩,其余分量变为0;
③再在 R m \mathbb R^m 中做旋转 Σ V T x U Σ V T x . \Sigma V^T\mathbf x\rightarrow U\Sigma V^T\mathbf x.

猜你喜欢

转载自blog.csdn.net/qq_41564404/article/details/86515891