机器学习数学基础之三奇异值分解(SVD)

奇异值分解(Singular Value Decomposition,SVD)

引入

在上一节中我们回顾了矩阵的特征分解,但是特征分解只能对方阵进行(当然有的方阵可能也无法进行特征分解),那对于任意的一个矩阵 A ∈ R m × n A\in{R^{m\times{n}}} ARm×n 是否也能进行矩阵分解呢?答案是肯定的,那就是本节我们要介绍的奇异值分解(SVD)。
在正式介绍SVD之前,我们先来思考一下: y ⃗ = A x ⃗ \vec{y}=A\vec{x} y =Ax 代表什么意义?我们可以认为,矩阵 A A A 代表了一种线性变换,将n维的向量 x ⃗ \vec{x} x R n R^n Rn 空间变换为 R m R^{m} Rm 空间下的m维向量 y ⃗ \vec{y} y 。那进一步想,矩阵 A A A 到底是怎么把向量 x ⃗ \vec{x} x 变换为向量 y ⃗ \vec{y} y 的呢?或者说是经历了哪些步骤将向量 x ⃗ \vec{x} x 变换为向量 y ⃗ \vec{y} y 的呢?
如果存在一种分解方法,可以将矩阵 A A A 进行因子分解,得到 A = U Σ V T A=U\Sigma V^T A=UΣVT,其中 U U U R m × m R^{m\times{m}} Rm×m空间下的正交矩阵, Σ \Sigma Σ R m × n R^{m\times{n}} Rm×n 空间下的 ( m × n ) (m\times{n}) (m×n) 矩形对角矩阵, V T V^T VT R n × n R^{n\times{n}} Rn×n 空间下的正交矩阵。那么对于 A x ⃗ = U Σ V T x ⃗ A\vec{x}=U\Sigma V^T\vec{x} Ax =UΣVTx 可以理解为先用 V T V^T VT x ⃗ \vec{x} x 进行变换得到 V T x ⃗ V^T\vec{x} VTx ,再用 Σ \Sigma Σ V T x ⃗ V^T\vec{x} VTx 进行变换得到 Σ V T x ⃗ \Sigma V^T\vec{x} ΣVTx ,最后用 U U U Σ V T x ⃗ \Sigma V^T\vec{x} ΣVTx 进行变换得到 U Σ V T x ⃗ U\Sigma V^T\vec{x} UΣVTx 。那么问题来了,上述变换都表示什么意思呢? V V V是正交矩阵,其列向量构成 R n R^n Rn 空间的一组标准正交基,表示 R n R^n Rn 中的正交坐标系的旋转或者反射变换, U U U 同理;而 Σ \Sigma Σ 的对角元素 σ 1 , σ 2 , . . . , σ n \sigma_1,\sigma_2,...,\sigma_n σ1,σ2,...,σn 是一组非负实数,表示 R n R^n Rn 中的原始坐标实现坐标轴的 σ 1 , σ 2 , . . . , σ n \sigma_1,\sigma_2,...,\sigma_n σ1,σ2,...,σn 倍的缩放变换。
结合下图给出一个更为直观的几何解释:原始空间的标准正交基(红色和黄色),经过坐标系的旋转变换 V T V^T VT、坐标轴的缩放变换 Σ \Sigma Σ(黑色 σ 1 , σ 2 \sigma_1,\sigma_2 σ1,σ2)、坐标系的旋转变换 U U U,得到和经过线性变换 A A A 等价的结果。
在这里插入图片描述

SVD的定义

经过上述的叙述,我们对SVD算是有了一个初步的了解,下面给出奇异值分解的定义:

定义3.1(奇异值分解) 矩阵的奇异值分解是指,将一个非零的 ( m × n ) (m\times{n}) (m×n) 实矩阵表示为以下三个实矩阵乘积形式的运算,即进行矩阵的因子分解: A = U Σ V T A=U\Sigma V^T A=UΣVT其中 U U U 是m阶正交矩阵, V V V 是n阶正交矩阵, Σ \Sigma Σ 是降序排列的非负的对角线元素组成的 ( m × n ) (m\times{n}) (m×n) 矩形对角矩阵,满足: U U T = I UU^T=I UUT=I V V T = I VV^T=I VVT=I Σ = d i a g ( σ 1 , σ 2 , . . . , σ p ) \Sigma=diag(\sigma_1,\sigma_2,...,\sigma_p) Σ=diag(σ1,σ2,...,σp) σ 1 ≥ σ 2 ≥ ⋯ ≥ σ p ≥ 0 \sigma_1\ge\sigma_2\ge\dots\ge\sigma_p\ge0 σ1σ2σp0 p = m i n ( m , n ) p=min(m,n) p=min(m,n) U Σ V T U\Sigma V^T UΣVT 称为矩阵 A A A 的奇异值分解, σ i \sigma_i σi 称为矩阵的奇异值, U U U 的列向量称为左奇异向量, V V V 的列向量称为右奇异向量。

【注意】:奇异值分解不是要求矩阵 A A A 是方阵,事实上矩阵的奇异值分解可以看做是方阵对角化的推广。

任意给定一个实矩阵,其奇异值分解是否一定存在你?答案是肯定的,有 奇异值分解基本定理 给与保证,下面我们证明之。

【证明】:证明是构造性的,对给定的矩阵 A A A ,构造出其奇异值分解的各个矩阵。为了方便,不妨设 m ≥ n m\ge n mn。证明由三步完成:
(1)确定 V V V Σ \Sigma Σ
矩阵 A A A m × n m\times{n} m×n 实矩阵,则矩阵 A T A A^TA ATA 是n阶实对称矩阵。因而 A T A A^TA ATA 的特征值都是实数,且存在一个n阶的正交矩阵 V V V 实现 A T A A^TA ATA 的对角化,使得 V T ( A T A ) V = Λ V^T(A^TA)V=\Lambda VT(ATA)V=Λ 成立。
而且, A T A A^TA ATA 的特征值都是非负的。事实上,令 λ \lambda λ A T A A^TA ATA 的一个特征值, x ⃗ \vec{x} x 是对应的特征向量,则 ∥ A x ⃗ ∥ 2 = x T A T A x = λ x T x = λ ∥ x ∥ 2 \parallel A\vec{x}\parallel^2=x^TA^TAx=\lambda x^Tx =\lambda \parallel x\parallel^2 Ax 2=xTATAx=λxTx=λx2于是 λ = ∥ A x ∥ 2 ∥ x ∥ 2 ≥ 0 \lambda=\frac{\parallel Ax\parallel^2}{\parallel x\parallel^2}\ge0 λ=x2Ax20可以假设正交矩阵 V V V 的列的排列使得对应的特征值形成降序排列 λ 1 ≥ λ 2 ≥ ⋯ ≥ λ n ≥ 0 \lambda_1\ge\lambda_2\ge\dots\ge\lambda_n\ge0 λ1λ2λn0计算特征值的平方根(实际上就是矩阵 A A A的奇异值) σ j = λ j , j = 1 , 2 , … , n \sigma_j=\sqrt{\lambda_j},j=1,2,\dots,n σj=λj ,j=1,2,,n设矩阵 A A A 的秩是 r r r,则矩阵 A T A A^TA ATA 的秩也是 r r r,由于 A T A A^TA ATA 是对称矩阵,它的秩等于正的特征值的个数,所以 λ 1 ≥ λ 2 ≥ ⋯ ≥ λ r > 0 , λ r + 1 = λ r + 2 = ⋯ = λ n = 0 \lambda_1\ge\lambda_2\ge \dots \ge\lambda_r>0,\lambda_{r+1}=\lambda_{r+2}=\dots=\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\dots\ge\sigma_r>0,\sigma_{r+1}=\sigma_{r+2}=\dots\sigma_n=0 σ1σ2σr>0,σr+1=σr+2=σn=0 V 1 = ( v 1 v 1 … v r ) , V 2 = ( v r + 1 v r + 2 … v n ) V_1=\begin{pmatrix} v_1&v_1&\dots&v_r\end{pmatrix},V_2=\begin{pmatrix}v_{r+1}&v_{r+2}&\dots&v_n\end{pmatrix} V1=(v1v1vr),V2=(vr+1vr+2vn)其中 v 1 , … , v r v_1,\dots,v_r v1,,vr A T A A^TA ATA 的正特征值对应的特征向量, v r + 1 , … , v n v_{r+1},\dots,v_n vr+1,,vn 为0特征值对应的特征向量,则 V = ( V 1 V 2 ) V=\begin{pmatrix}V_1&V_2\end{pmatrix} V=(V1V2) 这就是矩阵 A A A的奇异值分解中的n阶正交矩阵 V V V
Σ 1 = ( σ 1 σ 2 ⋱ σ r ) \Sigma_1=\begin{pmatrix}\sigma_1&&&&\\&\sigma_2&&&\\&&\ddots&\\&&&&\sigma_r\end{pmatrix} Σ1=σ1σ2σr m × n m\times{n} m×n 矩形对角矩阵 Σ \Sigma Σ 可以表示为 Σ = ( Σ 1 0 0 0 ) \Sigma=\begin{pmatrix}\Sigma_1&0\\0&0\end{pmatrix} Σ=(Σ1000)这就是矩阵 A A A 的奇异值分解中的 m × n m\times{n} m×n 矩形对角矩阵 Σ \Sigma Σ
下面推出后面要用到的一个公式。 因为 V 2 V_2 V2 的列向量是 A T A A^TA ATA 对应于特征值为0的特征向量,因此 V 2 V_2 V2 的列向量工程了A的零空间的一组标准正交基。因此 A V 2 = 0 AV_2=0 AV2=0 由于 V V V 是正交矩阵,则 I = V V T = V 1 V 1 T + V 2 V 2 T I=VV^T=V_1V_1^T+V_2V_2^T I=VVT=V1V1T+V2V2T A = A I = A V 1 V 1 T + A V 2 V 2 T = A V 1 V 1 T A=AI=AV_1V_1^T+AV_2V_2^T=AV_1V_1^T A=AI=AV1V1T+AV2V2T=AV1V1T
(2)确定 U U U

接着构造m阶正交矩阵 U U U,令 u j = 1 σ j A v j , j = 1 , 2 , … , r u_j=\frac{1}{\sigma_j}Av_j,j=1,2,\dots,r uj=σj1Avj,j=1,2,,r U 1 = ( u 1 u 2 … u r ) U1=\begin{pmatrix}u_1&u_2&\dots&u_r\end{pmatrix} U1=(u1u2ur)
则有 A V 1 = U 1 Σ 1 AV_1=U_1\Sigma_1 AV1=U1Σ1 U 1 U_1 U1 的列向量构成了一组标准正交基,因为 u i T u j = ( 1 σ i v i T A T ) ( 1 σ j A v j ) u_i^Tu_j=(\frac{1}{\sigma_i}v_i^TA^T)(\frac{1}{\sigma_j}Av_j) uiTuj=(σi1viTAT)(σj1Avj) = 1 σ i σ j v i T ( A T A v j ) =\frac{1}{\sigma_i\sigma_j}v_i^T(A^TAv_j) =σiσj1viT(ATAvj) = σ j σ i v i T v j =\frac{\sigma_j}{\sigma_i}v_i^Tv_j =σiσjviTvj = δ i j , i = 1 , 2 , … , r ; j = 1 , 2 , … , r = \delta_{ij},i=1,2,\dots,r;j=1,2,\dots,r =δij,i=1,2,,r;j=1,2,,r { u r + 1 , u r + 2 , … , u m } \{u_{r+1},u_{r+2},\dots,u_m\} {ur+1,ur+2,,um} N ( A T ) N(A^T) N(AT) 的一组标准正交基,并令 U 2 = ( u r + 1 u r + 2 … u m ) U_2=\begin{pmatrix}u_{r+1}&u_{r+2}&\dots&u_m\end{pmatrix} U2=(ur+1ur+2um) U = ( U 1 U 2 ) U=\begin{pmatrix}U_1&U_2\end{pmatrix} U=(U1U2) u 1 , u 2 , … , u m u_1,u_2,\dots,u_m u1,u2,,um 构成了 R m R^m Rm 的一组标准正交基。因此, U U U 是m阶正交矩阵,这就是矩阵 A A 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 2 T ) U\Sigma V^T=\begin{pmatrix}U_1&U_2\end{pmatrix}\begin{pmatrix}\Sigma_1&0\\0&0\end{pmatrix}\begin{pmatrix}V_1^T\\V_2^T\end{pmatrix} UΣVT=(U1U2)(Σ1000)(V1TV2T) = U 1 Σ 1 V 1 T =U_1\Sigma_1V_1^T =U1Σ1V1T = A V 1 V 1 T =AV_1V_1^T =AV1V1T = A =A =A
至此证明了矩阵 A A A 存在奇异值分解。

紧奇异值分解和截断奇异值分解

定理3.1 给出的奇异值分解 A = U Σ V T A=U\Sigma V^T A=UΣVT又称为完全奇异值分解。实际常用的奇异值分解是紧凑形式和截断形式。

【紧奇异值分解】

定义3.2(紧奇异值分解) 设有 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) rank(A)=r,rmin(m,n),则称 U r Σ r V r T U_r\Sigma_rV_r^T UrΣrVrT A A A 的紧奇异值分解,即 A = U r Σ r V r T A=U_r\Sigma_rV_r^T A=UrΣrVrT
其中 U r U_r Ur m × r m\times{r} m×r 矩阵, V r V_r Vr n × r n\times{r} n×r 矩阵, Σ r \Sigma_r Σr 是 r 阶对角矩阵,矩阵 U r U_r Ur 由完全奇异值分解中 U U U 的前 r 列,矩阵 V r V_r Vr V V V 的前r列,矩阵 Σ r \Sigma_r Σr Σ \Sigma Σ 的前r个对角线元素得到,紧奇异值分解的对角矩阵 Σ r \Sigma_r Σr 的秩与原始矩阵 A A A 的秩相等。

【截断奇异值分解】

定义3.3(截断奇异值分解) A A A m × n m\times{n} m×n 实矩阵,其秩 r a n k ( A ) = r , 且 0 < k < r rank(A)=r,且 0<k<r rank(A)=r0<k<r,则称 U k Σ k V k T U_k\Sigma_k V_k^T UkΣkVkT 为矩阵 A A A 的截断奇异值分解 A ≈ U k Σ k V k T A\approx U_k\Sigma_k V_k^T AUkΣkVkT其中, U k U_k Uk m × k m\times{k} m×k 矩阵, V k V_k Vk n × k n\times{k} n×k 矩阵, Σ k \Sigma_k Σk 是 k 阶对角矩阵; 矩阵 U k U_k Uk 由完全奇异值分解中 U U U 的前 k 列,矩阵 V k V_k Vk V V V 的前 k 列,矩阵 Σ k \Sigma_k Σk Σ \Sigma Σ 的前 k 个对角线元素得到。对角矩阵 Σ k \Sigma_k Σk 的秩比原始矩阵 A A A 的秩低。

【注】:
(1)实际应用中提到的矩阵的奇异值分解时,通常指的是截断奇异值分解。
(2)紧奇异值分解对应着无损压缩,截断奇异值分解对应着有损压缩。

SVD的主要性质

【1】 设矩阵 A A A 的奇异值分解为 A = U Σ V T A=U\Sigma V^T A=UΣVT,则以下关系成立: A T A = ( U Σ V T ) T ( U Σ V T ) = V ( Σ T Σ ) V T A^TA=(U\Sigma V^T)^T(U\Sigma V^T)=V(\Sigma^T\Sigma)V^T ATA=(UΣVT)T(UΣVT)=V(ΣTΣ)VT A A T = ( U Σ V T ) ( U Σ V T ) T = U ( Σ Σ T ) U T AA^T=(U\Sigma V^T)(U\Sigma V^T)^T=U(\Sigma\Sigma^T)U^T AAT=(UΣVT)(UΣVT)T=U(ΣΣT)UT,也就是说,矩阵 A T A A^TA ATA A A T AA^T AAT 的特征分解存在,且可以由矩阵 A A A 的奇异值分解的矩阵表示。

【2】矩阵 A A A 的奇异值分解中,奇异值 σ 1 , σ 2 , … , σ n \sigma_1,\sigma_2,\dots,\sigma_n σ1,σ2,,σn 是唯一的,而矩阵 U U U V V V 不是唯一的。

【3】矩阵 A A A Σ \Sigma Σ 的秩相等,等于正奇异值 σ i \sigma_i σi 的个数 r r r (包含重复的奇异值)。

【注】:掌握了前边所述的SVD的构造,奇异值分解的计算也就明白了。关于奇异值分解的计算和奇异值分解与矩阵近似的相关内容,感兴趣的可以参考参考文献[1]。

【参考文献】

[1] 统计学习方法 / 李航著。—2版。—北京:清华大学出版社,2019

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值