第十五章15.1矩阵奇异值分解步骤

文章目录

  • 本章内容
  • 矩阵的奇异值分解
  • 正交矩阵
  • 矩阵的奇异值分解
  • 矩阵的满秩分解

本课程来自深度之眼,部分截图来自课程视频以及李航老师的《统计学习方法》第二版。
公式输入请参考: 在线Latex公式

本章内容

任务简介:学习矩阵奇异值分解的定义与基本定理,理解奇异值分解的紧凑和截断形式、几何解释、主要性质,掌握奇异值分解的主要步骤。

本章讲了矩阵奇异值分解的基本原理与实现过程。通过学习第1节,理解奇异值分解的定义与性质,掌握奇异值分解基本定理;通过学习第2节,掌握奇异值分解的计算-5步法;第3节描述奇异值分解与矩阵近似的关系,引入弗罗贝尼乌斯范数,矩阵的最优近似和外积展开式。
学习目标:
1.掌握矩阵奇异值分解法原理。
2.理解奇异值分解的两种形式:紧奇异值分解和截断奇异值分解。
3.理解矩阵奇异值分解与的特征值、特征向量的关系。
4.掌握矩阵奇异值分解步骤与几何意义。
5.理解矩阵的弗罗贝尼乌斯范数定义与性质。

矩阵的奇异值分解

SVD可以很容易得到任意矩阵的满秩分
解,⽤满秩分解可以对数据做压缩。
可以⽤SVD来证明对任意 M × N M\times N M×N的矩阵
均存在如下图的分解:
第十五章15.1矩阵奇异值分解步骤_第1张图片

其中 k = r a n k ( A ) k=rank(A) k=rank(A)
这个经常用来数据降维,例如有m个样本,每个样本的维度是n,如果要降维至r维,那么就将m×n矩阵乘以一个n×r的矩阵,就得到m×r的矩阵,达到降维的目的。
注意降维是特征筛选的一种。

正交矩阵

正交矩阵是在欧⼏⾥得空间⾥的名称,在⾣空间⾥被称为⾣矩阵。
⼀个正交矩阵对应的变换叫正交变换,这个变换的特点是不改变向量的尺⼨和向量间的夹⻆。
正交变换是将变换向量⽤另⼀组正交基表示,在这个过程中并没有对向量做拉伸,也不改变向量的空间位置。(可以看成改变是坐标系)
第十五章15.1矩阵奇异值分解步骤_第2张图片
在新坐标系下向量的投影当然是有旋转和变化的。
第十五章15.1矩阵奇异值分解步骤_第3张图片

如果选择 e 1 ′ e1' e1 e 2 ′ e2' e2作为新的标准坐标系,那么在新坐标系中OA(原标准坐标系的表示)变成OA’,看起来像坐标系不动,把OA往顺时针⽅向旋转了θ⻆度。
正交矩阵的⾏(列)向量都是两两正交的单位向量,正交矩阵对应的变换为正交变换,它有两种表现:旋转和反射。
正交矩阵将标准正交基映射为标准正交基(即上图中从 e 1 e1 e1 e 2 e2 e2 e 1 ′ e1' e1 e 2 ′ e2' e2

矩阵的奇异值分解

现在假设存在M*N矩阵A,事实上,A矩阵将n维空间中的向量映射到k(k<=m)维空间中,k=Rank(A)。
现在的目标是:在n维空间中找一组正交基,使得经过A变换后还是正交的。假设已经找到这样一组正交基: { v 1 , v 2 … , v n } \{v_1,v_2…,v_n\} { v1,v2,vn}
则A将这组基映射为: { A v 1 , A v 2 , … , A v n } \{Av_1,Av_2,…,Av_n\} { Av1,Av2,,Avn}
现在假设存在两组相互正交的基,且其模长为1:
v i T v j = v i ⋅ v j = 0 v_i^Tvj=v_i\cdot v_j=0 viTvj=vivj=0
所以如果正交基 v v v选择为 A T A A^TA ATA的特征向量的话,由于 A T A A^TA ATA是对称阵, v v v之间两两正交,那么这样就找到了正交基使其映射后还是正交基了,现在,将映射后的正交基单位化。因为
A v i ⋅ A v i = λ i v i ⋅ v i = λ i Av_i\cdot Av_i=\lambda_iv_i\cdot v_i=\lambda_i AviAvi=λivivi=λi
所以有
∣ A v i ∣ 2 = λ i ≥ 0 |Av_i|^2=\lambda_i\ge0 Avi2=λi0
上面的内容感觉老师讲的和ppt内容相差太远。。。


摘录一点板书内容
如果矩阵 A m × n A_{m\times n} Am×n的秩 r a n k ( A ) = k ≤ min ⁡ ( m , n ) rank(A)=k\le \min(m,n) rank(A)=kmin(m,n),那么 A T A A^TA ATA或者 A A T AA^T AAT的秩也是k
证明:
假设矩阵方程 A X = 0 AX=0 AX=0成立
等式两边同时乘以一个东西也成立: A T A X = 0 A^TAX=0 ATAX=0
也就是说X是两个矩阵方程的解,也就是说上面方程的解空间属于下面方程的解空间。
也就是上面方程的解空间维度( n − r a n k ( A ) n-rank(A) nrank(A))小于下面方程的解空间的维度( n − r a n k ( A T A ) n-rank(A^TA) nrank(ATA))。
n − r a n k ( A ) ≤ n − r a n k ( A T A ) − r a n k ( A ) ≤ − r a n k ( A T A ) r a n k ( A ) ≥ r a n k ( A T A ) n-rank(A)\le n-rank(A^TA)\\ -rank(A)\le -rank(A^TA)\\ rank(A)\ge rank(A^TA) nrank(A)nrank(ATA)rank(A)rank(ATA)rank(A)rank(ATA)
上面的方程 A T A X = 0 A^TAX=0 ATAX=0再左右乘以一个东西还是成立的:
X T A T A X = 0 = ∣ ∣ A X ∣ ∣ 2 X^TA^TAX=0=||AX||^2 XTATAX=0=AX2
也就是 A X = 0 AX=0 AX=0,从这个推导我们可以得出结论
r a n k ( A ) = r a n k ( A T A ) = r a n k ( A A T ) = rank(A)= rank(A^TA)=rank(AA^T)= rank(A)=rank(ATA)=rank(AAT)=


接上面,由于 A T A , A A T A^TA,AA^T ATA,AAT都是半正定矩阵,因此有k个特征向量,写为:
λ 1 2 ≥ λ 2 2 ≥ ⋯ ≥ λ k 2 \lambda^2_1\ge\lambda^2_2\ge\cdots\ge\lambda^2_k λ12λ22λk2
A v i ⋅ A v i = ∣ ∣ A v i ∣ ∣ 2 = v i T A T A v i Av_i\cdot Av_i=||Av_i||^2=v_i^TA^TAv_i AviAvi=Avi2=viTATAvi
由于 λ 2 \lambda^2 λ2 A T A A^TA ATA特征值,因此上式可以写为:
= v i T λ i 2 A v i = λ i 2 v i T A v i =v_i^T\lambda_i^2Av_i=\lambda_i^2v_i^TAv_i =viTλi2Avi=λi2viTAvi
由于 v i v_i vi模长是1,因此上面结果为: λ i 2 \lambda_i^2 λi2
为什么可以写成 λ i \lambda_i λi?就好比假设 A = λ i 2 A=\lambda_i^2 A=λi2,这里用 λ i \lambda_i λi来表示A。
∣ A v i ∣ 2 = λ i ≥ 0 |Av_i|^2=\lambda_i\ge0 Avi2=λi0
得证


取单位向量:
u i = A v i ∣ A v i ∣ = 1 λ i A v i u_i=\cfrac{Av_i}{|Av_i|}=\cfrac{1}{\sqrt{\lambda_i}}Av_i ui=AviAvi=λi 1Avi
变形:
A v i = σ i u i Av_i=\sigma_iu_i Avi=σiui
其中 σ i = λ i , 0 ≤ i ≤ k , k = R a n k ( A ) \sigma_i=\sqrt{\lambda_i},0\le i\le k,k=Rank(A) σi=λi ,0ik,k=Rank(A)称为奇异值
k < i ≤ m kk<im时,对 u 1 , u 2 , ⋯   , u k u_1,u_2,\cdots,u_k u1,u2,,uk进行扩展 u k + 1 , ⋯   , u m u_{k+1},\cdots,u_m uk+1,,um,使得 u 1 , u 2 , ⋯   , u m u_1,u_2,\cdots,u_m u1,u2,,um为m维空间中的一组正交基。(扩展的方法用了施密特正交化,不展开)
同样的,对 v 1 , v 2 , ⋯   , v k v_1,v_2,\cdots,v_k v1,v2,,vk进行扩展 v k + 1 , ⋯   , v n v_{k+1},\cdots,v_n vk+1,,vn(这n-k个向量存在于A的零空间中,即Ax=0的解空间的基),使得 v 1 , v 2 , ⋯   , v n v_1,v_2,\cdots,v_n v1,v2,,vn为n维空间中的一组正交基。
则可得到:
A [ v 1   v 2   ⋯   v k ∣ v k + 1   ⋯   v n ] = [ u 1   u 2   ⋯   u k ∣ u k + 1   ⋯   u m ] [ σ 1 0 ⋱ 0 σ k 0 0 0 0 0 ] A[v_1\space v_2\space\cdots\space v_k|v_{k+1}\space\cdots \space v_n]=[u_1\space u_2\space\cdots\space u_k|u_{k+1}\space\cdots \space u_m]\begin{bmatrix} \sigma_1 & & &0 \\ & \ddots& &0 \\ & & \sigma_k&0 \\ 0 & 0 & 0& 0 \end{bmatrix} A[v1 v2  vkvk+1  vn]=[u1 u2  ukuk+1  um]σ100σk00000
继而可以得到A矩阵的奇异值分解:
A = U Σ V T A=U\Sigma V^T A=UΣVT

矩阵的满秩分解

v i v_i vi A T A A^TA ATA的特征向量,称为A的右奇异向量, u i = A v i u_i=Av_i ui=Avi实际上为 A A T AA^T AAT的特征向量,称为A的左奇异向量。下面利用SVD证明矩阵的满秩分解:
A = [ u 1   u 2   ⋯   u k ∣ u k + 1   ⋯   u m ] [ σ 1 0 ⋱ 0 σ k 0 0 0 0 0 ] [ v 1 T ⋮ v k T v k + 1 T ⋮ v n T ] A=[u_1\space u_2\space\cdots\space u_k|u_{k+1}\space\cdots \space u_m]\begin{bmatrix} \sigma_1 & & &0 \\ & \ddots& &0 \\ & & \sigma_k&0 \\ 0 & 0 & 0& 0 \end{bmatrix}\begin{bmatrix} v_1^T\\ \vdots\\ v_k^T\\ v_{k+1}^T\\ \vdots\\ v_n^T\\ \end{bmatrix} A=[u1 u2  ukuk+1  um]σ100σk00000v1TvkTvk+1TvnT
利用矩阵分块乘法展开得:
A = [ u 1   u 2   ⋯   u k ] [ σ 1 ⋱ σ k ] [ v 1 T ⋮ v k T ] + [ u k + 1   ⋯   u m ] [ 0 ] [ v k + 1 T ⋮ v n T ] A=[u_1\space u_2\space\cdots\space u_k]\begin{bmatrix} \sigma_1 & & \\ & \ddots& \\ & & \sigma_k \end{bmatrix}\begin{bmatrix} v_1^T\\ \vdots\\ v_k^T \end{bmatrix}+[u_{k+1}\space\cdots \space u_m]\begin{bmatrix} & & \\ & 0& \\ & & \end{bmatrix}\begin{bmatrix} v_{k+1}^T\\ \vdots\\ v_n^T\\ \end{bmatrix} A=[u1 u2  uk]σ1σkv1TvkT+[uk+1  um]0vk+1TvnT
可以看到第2项为0:
A = [ u 1   u 2   ⋯   u k ] [ σ 1 ⋱ σ k ] [ v 1 T ⋮ v k T ] A=[u_1\space u_2\space\cdots\space u_k]\begin{bmatrix} \sigma_1 & & \\ & \ddots& \\ & & \sigma_k \end{bmatrix}\begin{bmatrix} v_1^T\\ \vdots\\ v_k^T \end{bmatrix} A=[u1 u2  uk]σ1σkv1TvkT
因此得到满秩分解A=XY。

你可能感兴趣的:(统计学习方法)