定义
矩阵奇异值分解(Singular Value Decomposition,SVD )是指将一个非零的m × n m \times n m × n 实矩阵A A A , A ∈ R m × n A \in R^{m \times n} A ∈ R m × n , 表示为以下三个实矩阵乘积形式的运算 , 即进行矩阵的因子分解:
A = U Σ V T \begin{align}
A = U \Sigma V^T
\end{align}
A = U Σ V T
其中,U U U 是m m m 阶正交矩阵(orthogonal matrix ),V V V 是n n n 阶正交矩阵,Σ \Sigma Σ 是由降序排列的非负的对角线元素组成的m × n m \times n m × n 矩阵对角矩阵(rectangular diagonal matrix ) , 满足
U U T = I V V T = I Σ = d i a g ( σ 1 . σ 2 , . . . , σ p ) σ 1 ≥ σ 2 ≥ . . . ≥ σ p ≥ 0 p = m i n ( m , n ) \begin{array}{c}
UU^T = I\\
VV^T = I\\
\Sigma = diag(\sigma_1 . \sigma_2 , ... , \sigma_p)\\
\sigma_1 \ge \sigma_2 \ge ... \ge \sigma_p \ge 0 \\
p = min(m,n)
\end{array}
U U T = I V V T = I Σ = d ia g ( σ 1 . σ 2 , ... , σ p ) σ 1 ≥ σ 2 ≥ ... ≥ σ p ≥ 0 p = min ( m , n )
U Σ V T U\Sigma V^T U Σ V T 称为矩阵A A A 的奇异值分解,σ i \sigma_i σ i 称为矩阵A A A 的奇异值,U U U 的列向量称为左奇异向量,V V V 的列向量称为右奇异向量。
奇异值分解基本定理
若A A A 为一个m × n m \times n m × n 实矩阵,A ∈ R m × n A\in R^{m \times n} A ∈ R m × n ,则A A A 的奇异值分解存在:
A = U Σ V T \begin{align}
A = U \Sigma V^T
\end{align}
A = U Σ V T
其中,U U U 是m m m 阶正交矩阵,V V V 是n n n 阶正交矩阵,Σ \Sigma Σ d是m × n m \times n m × n 矩阵对角矩阵,其对角线元素非负,且按降序排列。
提示
证明参考Gilbert Strang的Introduction to Linear Algebra(Fifth Edition)第371页,或李航的 机器学习方法 第231页。
紧奇异值分解与截断奇异值分解
定义所给出的又称为矩阵的完全奇异值分解 (full singular value decomposition )。实际常用的是奇异值分解的紧凑形式与截断形式。
紧奇异值分解是与原始矩阵等秩的奇异值分解,截断奇异值分解是比原始矩阵低秩的奇异值分解。
紧奇异值分解定义
设有m × n m \times n m × n 实矩阵A A A ,其秩为r a n k ( A ) = r , r ≤ m i n ( m , n ) rank(A) = r,r \le min(m,n) r ank ( A ) = r , r ≤ min ( m , n ) ,则称U r Σ r V r T U_r \Sigma_r {V_r}^T U r Σ r V r T 为A A A 的紧奇异值分解(compact singular value decomposition ),即
A = U r Σ r V r T \begin{align}
A = U_r \Sigma_r {V_r}^T
\end{align}
A = U r Σ r V r T
其中,U r U_r U r 是m × n m\times n m × n 矩阵,V r V_r V r 是n × r n \times r n × r 矩阵,Σ r \Sigma_r Σ r 是r r r 阶对角矩阵;矩阵U r U_{r} U r 由完全奇异值分解中U U U 的前r r r 列、矩阵V r V_{r} V r 由V V V 的前r r r 列、矩阵Σ r \Sigma_{r} Σ r 由Σ \Sigma Σ 的前r r r 个对角线元素得到,紧奇异值分解的对角矩阵Σ r \Sigma_{r} Σ r 的秩与原始矩阵A A A 的秩相等。
截断奇异值分解定义
设A A A 为m × n m \times n m × n 实矩阵,其秩r a n k ( A ) = r rank(A) = r r ank ( A ) = r ,且0 < k < r 0 < k < r 0 < k < r ,则称U k Σ k V k T U_{k} \Sigma_{k} V_{k}^T U k Σ k V k T 为矩阵A A A 的截断奇异值分解(truncated singular value decomposition ),即
A ≈ U k Σ k V k T \begin{align}
A \approx U_{k} \Sigma_{k} V_{k}^T
\end{align}
A ≈ U k Σ k V k T
其中,U k U_{k} U k 是m × k m \times k m × k 矩阵,V k V_{k} V k 是n × k n \times k n × k 矩阵,Σ k \Sigma_{k} Σ k 是k k k 阶对角矩阵;矩阵U k U_{k} U k 由完全奇异值分解中U U U 的前k k k 列、矩阵V k V_{k} V k 由V V V 的前k k k 列、矩阵Σ k \Sigma_{k} Σ k 由Σ \Sigma Σ 的前k k k 个对角线元素得到,紧奇异值分解的对角矩阵Σ k \Sigma_{k} Σ k 的秩比原始矩阵A A A 的秩低。
几何解释
从线性变换的角度理解奇异值分解,m × n m \times n m × n 矩阵A \boldsymbol{A} A 表示从n n n 维空间R n \boldsymbol{R}^{n} R n 到m m m 维空间R m R^{m} R m 的一个线性变换:
T : x → A x T: \boldsymbol{x} \rightarrow \boldsymbol{A} \boldsymbol{x}
T : x → A x
其中, x ∈ R n x \in R^{n} x ∈ R n ,A x ∈ R m \boldsymbol{A x} \in \boldsymbol{R}^{m} Ax ∈ R m , x \boldsymbol{x} x 和A x \boldsymbol{A x} Ax 分别是各自空间的向量。线性变换可以分解为三个简单的变换: 一个坐标系的旋转或反射变换、一个坐标轴的缩放变换、另一个坐标系的旋转或反射变换。奇异值定理保证这种分解一定存在。这就是奇异值分解的几何解释。
对矩阵A \boldsymbol{A} A 进行奇异值分解, 得到R n R^{n} R n 中的正交坐标系的旋转或反射变换;U \boldsymbol{U} U 的列向量 u 1 , u 2 , ⋯ , u m \boldsymbol{u}_{1}, \boldsymbol{u}_{2}, \cdots, \boldsymbol{u}_{m} u 1 , u 2 , ⋯ , u m 构成R m \boldsymbol{R}^{m} R m 空间的一组标准正交基,表示R m \boldsymbol{R}^{m} R m 中的正交坐标系的旋转或反射变换; Σ \boldsymbol{\Sigma} Σ 的对角元素σ 1 , σ 2 , ⋯ , σ n \sigma_{1}, \sigma_{2}, \cdots, \sigma_{n} σ 1 , σ 2 , ⋯ , σ n 是一组非负实数,表示R n \boldsymbol{R}^{n} R n 中的原始正交坐标系坐标轴的σ 1 , σ 2 , ⋯ , σ n \sigma_{1}, \sigma_{2}, \cdots, \sigma_{n} σ 1 , σ 2 , ⋯ , σ n 倍的缩放变换。
对于任意一个向量x ∈ R n \boldsymbol{x} \in \boldsymbol{R}^{n} x ∈ R n , 经过基于A = U Σ V T \boldsymbol{A}=\boldsymbol{U} \boldsymbol{\Sigma} \boldsymbol{V}^{\mathrm{T}} A = U Σ V T 的线性变换, 等价于经过坐标系的旋转或反射变换V T \boldsymbol{V}^{\mathrm{T}} V T 、坐标轴的缩放变换Σ \boldsymbol{\Sigma} Σ , 以及坐标系的旋转或反射变换U \boldsymbol{U} U , 得到向量A x ∈ R m \boldsymbol{A x} \in \boldsymbol{R}^{\boldsymbol{m}} Ax ∈ R m 。
奇异值分解的性质
设矩阵A A A 的奇异值分解为A = U Σ V T A = U \Sigma V^T A = U Σ V T ,则以下关系成立:
A T A = ( U Σ V T ) T ( U Σ V T ) = V ( Σ T Σ ) V T A A T = ( U Σ V T ) ( U Σ V T ) T = U ( Σ Σ T ) U T \begin{align}
A^T A = (U \Sigma V^T)^T(U \Sigma V^T) = V(\Sigma^T \Sigma)V^T \\
AA^T = (U \Sigma V^T)(U \Sigma V^T)^T = U(\Sigma \Sigma^T)U^T
\end{align}
A T A = ( U Σ V T ) T ( U Σ V T ) = V ( Σ T Σ ) V T A A T = ( U Σ V T ) ( U Σ V T ) T = U ( Σ Σ T ) U T
在矩阵A A A 的奇异值分解中,奇异值、左奇异向量和右奇异向量之间存在对应关系。
由A = U Σ V T A = U \Sigma V^T A = U Σ V T 易知:
A V = U Σ \begin{array}{c}
AV = U \Sigma
\end{array}
A V = U Σ
比较这一等式两端的第j j j 列,得到:
A v j = σ j u j , j = 1 , 2 , ⋯ , n \begin{align}
Av_{j} = \sigma_{j} u_{j},j = 1,2,\cdots,n
\end{align}
A v j = σ j u j , j = 1 , 2 , ⋯ , n
这就是矩阵A A A 的右奇异向量和奇异值、左奇异向量的关系。
类似的,有
A T U = V Σ T \begin{array}{}
A^T U = V \Sigma^T
\end{array}
A T U = V Σ T
得到:
A T u j = σ j v j , , j = 1 , 2 , ⋯ , n A T u j = 0 , j = n + 1 , n + 2 , ⋯ , m \begin{align}
A^Tu_{j}=\sigma_{j}v_{j},,j = 1,2,\cdots,n \\
A^Tu_{j} = 0,j = n+1,n+2,\cdots,m
\end{align}
A T u j = σ j v j ,, j = 1 , 2 , ⋯ , n A T u j = 0 , j = n + 1 , n + 2 , ⋯ , m
这就是矩阵A A A 的左奇异向量和奇异值、右奇异向量的关系。
矩阵A A A 的奇异值分解中,奇异值σ 1 , σ 2 , ⋯ , σ n \sigma_{1},\sigma_{2},\cdots,\sigma_{n} σ 1 , σ 2 , ⋯ , σ n 是唯一的,而矩阵U U U 和V V V 不是唯一的。
矩阵A A A 和矩阵Σ \Sigma Σ 的秩相等,等于正奇异值σ i \sigma_{i} σ i 的个数r r r (包含重复的奇异值)。
矩阵A A A 的r r r 个右奇异向量v 1 , v 2 , … , v r v_{1},v_{2},\dots,v_{r} v 1 , v 2 , … , v r 构成A T A^T A T 的值域R ( A T ) R(A^T) R ( A T ) 的一组标准正交基,n − r n-r n − r 个右奇异向量v r + 1 , v r + 2 , … , v n v_{r+1},v_{r+2},\dots,v_{n} v r + 1 , v r + 2 , … , v n 构成A A A 的零空间N ( A ) N(A) N ( A ) 的一组标准正交基;矩阵A A A 的r r r 个左奇异向量u 1 , u 2 , … , u r u_{1},u_{2},\dots,u_{r} u 1 , u 2 , … , u r 构成A A A 的值域R ( A ) R(A) R ( A ) 的一组标准正交基,矩阵A A A 的n − r n-r n − r 个左奇异向量u r + 1 , u r + 2 , … , u n u_{r+1},u_{r+2},\dots,u_{n} u r + 1 , u r + 2 , … , u n 构成A T A^T A T 的零空间N ( A T ) N(A^T) N ( A T ) 的一组标准正交基。这里的性质完美的符合了Gilbert Strang的那副经典图片。
计算方法
求A T A A^TA A T A 的特征值与特征向量
求n n n 阶正交矩阵V V V
求m × n m \times n m × n 的对角矩阵Σ \Sigma Σ
求m m m 阶正交矩阵U U U
奇异值分解与矩阵近似
弗罗贝尼乌斯范数
奇异值分解也是一种矩阵近似的方法,这个近似是在弗罗贝尼乌斯范数(Frobenius norm )意义下的近似。矩阵的弗罗贝尼乌斯范数是向量L 2 L_{2} L 2 范数的直接推广,对应机器学习中的平方损失函数。
弗罗贝尼乌斯范数的定义
设矩阵A ∈ R m × n A \in R^{m \times n} A ∈ R m × n ,A = [ a i j ] m × n A = [a_{ij}]_{m \times n} A = [ a ij ] m × n ,定义矩阵A A A 的弗罗贝尼乌斯范数为
∥ A ∥ F = ( ∑ i = 1 m ∑ j = 1 n a i j 2 ) 1 2 \begin{align}
\Vert A \Vert_{F} = \left( \sum_{i=1}^{m} \sum_{j=1}^{n} a_{ij}^2 \right)^{\frac{1}{2}}
\end{align}
∥ A ∥ F = ( i = 1 ∑ m j = 1 ∑ n a ij 2 ) 2 1
引理
设矩阵A ∈ R m × n A \in R^{m \times n} A ∈ R m × n ,A A A 的奇异值分解为U Σ V T U \Sigma V^T U Σ V T ,其中Σ = d i a g ( σ 1 , σ 2 , ⋯ , σ n ) \Sigma = diag(\sigma_{1},\sigma_{2},\cdots,\sigma_{n}) Σ = d ia g ( σ 1 , σ 2 , ⋯ , σ n ) ,则
∥ A ∥ F = ( σ 1 2 + σ 2 2 + ⋯ + σ n 2 ) \begin{align}
\Vert A \Vert_{F} = (\sigma_{1}^2+\sigma_{2}^2+\cdots+\sigma_{n}^2)
\end{align}
∥ A ∥ F = ( σ 1 2 + σ 2 2 + ⋯ + σ n 2 )
矩阵的最优近似
奇异值分解是在平方损失(弗罗贝尼乌斯范数)意义下对矩阵的最优近似,即数据压缩。
定理 设矩阵A ∈ R m × n A \in R^{m \times n} A ∈ R m × n ,矩阵的秩r a n k ( A ) = r rank(A) = r r ank ( A ) = r ,并设M \mathcal{M} M 为R m × n R^{m \times n} R m × n 中所有秩不超过k k k 的矩阵集合,0 < k < r 0 <k < r 0 < k < r ,则存在一个秩为k k k 的矩阵X ∈ M X \in \mathcal{M} X ∈ M ,使得
∥ A − X ∥ F = min S ∈ M ∥ A − S ∥ F \begin{align}
\Vert A - X \Vert_{F} = \min_{S \in \mathcal{M}} \Vert A - S \Vert_{F}
\end{align}
∥ A − X ∥ F = S ∈ M min ∥ A − S ∥ F
称矩阵X X X 为矩阵A A A 在弗罗贝尼乌斯范数意义下的最优近似。
定理 设矩阵A ∈ R m × n \boldsymbol{A} \in \boldsymbol{R}^{m \times n} A ∈ R m × n , 矩阵的秩rank ( A ) = r \operatorname{rank}(\boldsymbol{A})=r rank ( A ) = r , 有奇异值分解A = U Σ V T \boldsymbol{A}=\boldsymbol{U} \boldsymbol{\Sigma} \boldsymbol{V}^{\mathrm{T}} A = U Σ V T , 并设M \mathcal{M} M 为R m × n \boldsymbol{R}^{m \times n} R m × n 中所有秩不超过k k k 的矩阵的集合,0 < k < r 0<k<r 0 < k < r ,若秩为k k k 的矩阵X ∈ M \boldsymbol{X} \in \mathcal{M} X ∈ M 满足
∥ A − X ∥ F = min S ∈ M ∥ A − S ∥ F \begin{align}
\|\boldsymbol{A}-\boldsymbol{X}\|_{F}=\min _{S \in \mathcal{M}}\|\boldsymbol{A}-\boldsymbol{S}\|_{F}
\end{align}
∥ A − X ∥ F = S ∈ M min ∥ A − S ∥ F
则
∥ A − X ∥ F = ( σ k + 1 2 + σ k + 2 2 + ⋯ + σ n 2 ) 1 2 \begin{align}
\|\boldsymbol{A}-\boldsymbol{X}\|_{F}=\left(\sigma_{k+1}^{2}+\sigma_{k+2}^{2}+\cdots+\sigma_{n}^{2}\right)^{\frac{1}{2}}
\end{align}
∥ A − X ∥ F = ( σ k + 1 2 + σ k + 2 2 + ⋯ + σ n 2 ) 2 1
特别地, 若 A ′ = U Σ ′ V T \boldsymbol{A}^{\prime}=\boldsymbol{U} \boldsymbol{\Sigma}^{\prime} \boldsymbol{V}^{\mathrm{T}} A ′ = U Σ ′ V T , 其中,
Σ ′ = [ σ 1 ⋱ 0 σ k 0 0 ⋱ 0 ] = [ Σ k 0 o 0 ] \boldsymbol{\Sigma}^{\prime}=\left[\begin{array}{cccccc}
\sigma_{1} & & & & & \\
& \ddots & & & 0 & \\
& & \sigma_{k} & & & \\
& & & 0 & & \\
& 0 & & & \ddots & \\
& & & & & 0
\end{array}\right]=\left[\begin{array}{cc}
\Sigma_{k} & 0 \\
o & 0
\end{array}\right]
Σ ′ = σ 1 ⋱ 0 σ k 0 0 ⋱ 0 = [ Σ k o 0 0 ]
则
∥ A − A ′ ∥ F = ( σ k + 1 2 + σ k + 2 2 + ⋯ + σ n 2 ) 1 2 = min S ∈ M ∥ A − S ∥ F \begin{align}
\left\|\boldsymbol{A}-\boldsymbol{A}^{\prime}\right\|_{F}=\left(\sigma_{k+1}^{2}+\sigma_{k+2}^{2}+\cdots+\sigma_{n}^{2}\right)^{\frac{1}{2}}=\min _{S \in \mathcal{M}}\|\boldsymbol{A}-\boldsymbol{S}\|_{F}
\end{align}
A − A ′ F = ( σ k + 1 2 + σ k + 2 2 + ⋯ + σ n 2 ) 2 1 = S ∈ M min ∥ A − S ∥ F
矩阵的外积展开式
A = σ 1 u 1 v 1 T + σ 2 u 2 v 2 T + ⋯ + σ n u n v n T = ∑ k = 1 n A k = ∑ k = 1 n σ k u k v k T \begin{align}
A &= \sigma_{1}u_{1}v_{1}^T + \sigma_{2}u_{2}v_{2}^T + \cdots + \sigma_{n}u_{n}v_{n}^T\\
&= \sum_{k=1}^nA_{k}=\sum_{k=1}^n\sigma_{k}u_{k}v_{k}^T\\
\end{align}
A = σ 1 u 1 v 1 T + σ 2 u 2 v 2 T + ⋯ + σ n u n v n T = k = 1 ∑ n A k = k = 1 ∑ n σ k u k v k T
若A A A 的秩为n n n ,则
A = σ 1 u 1 v 1 T + σ 2 u 2 v 2 T + ⋯ + σ n u n v n T \begin{align}
A = \sigma_{1}u_{1}v_{1}^T + \sigma_{2}u_{2}v_{2}^T + \cdots + \sigma_{n}u_{n}v_{n}^T
\end{align}
A = σ 1 u 1 v 1 T + σ 2 u 2 v 2 T + ⋯ + σ n u n v n T
Rayleigh quotient 瑞利商
定义
本文采用STRANG G.Introduction to Linear Algebra 的定义:
r ( x ) = x T S x x T x \begin{align}
r(x) = \frac{x^T S x}{x^T x}
\end{align}
r ( x ) = x T x x T S x
习题
1.随机矩阵理论
The MATLAB commands A = rand (20, 40) and B = randn (20, 40) produce 20 by 40 random matrices. The entries of A are between 0 and 1 with uniform probability. The entries of B have a normal “bell-shaped” probability distribution. Using an svd command, find and graph their singular values σ 1 \sigma_{1} σ 1 to σ 20 \sigma_{20} σ 20 . Why do they have 20 σ \sigma σ 's?(Source:STRANG G.Introduction to Linear Algebra P370)
该题代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 A = rand (20 , 40 ); B = randn (20 , 40 ); s_A = svd(A); s_B = svd(B); figure ;subplot(1 ,2 ,1 ); plot (1 :20 , s_A, 'b-o' , 'LineWidth' , 1.5 );title('Singular Values of A (rand)' ); xlabel('Index' ); ylabel('\sigma_i' ); grid on; subplot(1 ,2 ,2 ); plot (1 :20 , s_B, 'r-*' , 'LineWidth' , 1.5 );title('Singular Values of B (randn)' ); xlabel('Index' ); ylabel('\sigma_i' ); grid on;
观察σ i − I n d e x \sigma_{i}-Index σ i − I n d e x 图可以得出:矩阵A的奇异值第一个值到第二个值下降极快,后面下降平缓;矩阵B的奇异值均匀下降。需要注意的是,当矩阵A的秩越大,其第一奇异值越大,第一奇异值与第二奇异值差越大。