机器学习-统计与数学

【分解】矩阵SVD分解

作者 : 老饼 发表日期 : 2023-01-20 00:41:34 更新日期 : 2025-04-02 05:02:46
本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com



SVD分解是机器学习中常用的矩阵分解手段,是"方阵特征分解"在非方阵上的拓展

本文介绍SVD分解的定义,以及SVD中U,S,V各个矩阵的意义,并进一步解释SVD的意义

从本文可以了解SVD是个什么东西,有什么用,以及如何从几何角度理解它的意义





    01. 什么是SVD分解     




本节初步介绍什么是SVD分解及其定义




   什么是SVD分解   


SVD全称为Singular Value Decomposition奇异值分解
它一般被认为是"方阵特征分解"在非方阵上的拓展
它与方阵的矩阵对角化、特征值相对应,弥补非方阵不能进行特征值分解的不足
   SVD分解的定义   
对于矩阵A,将其分解为、 和 三个矩阵,如下 
 
其中,
 的酉矩阵            
 半正定对角矩阵   
 :的酉矩阵              
(1) 通常 对角元素由大到小排序,这样  和是唯一的
(2) 对角线上的元素称为A的奇异值                                    
这样的分解与方阵的奇异值分解相对应,属于基于方阵奇异值分解的拓展






    SVD分解的代码实现    


在python中可以通过numpy来对矩阵进行SVD分解 
具体代码示例如下:
import numpy as np
A = np.array([[2,3,4], [5,1, 1]])   # 要分解的矩阵A
U,S,VT = np.linalg.svd(A)           # 对矩阵A进行SVD分解
print('U:',U)                       # 分解后的U
print('S:',S)                       # 分解后的S
print('VT:',VT)                     # 分解后的V^T
代码运行结果如下:
 
易验证,
 








    02. 如何理解SVD分解    




本节讲解SVD分解出来的U、Σ、V的意义,及几何意义





     SVD分解-U、Σ、V的意义    


    由易得:
                                                                   


 值得注意的是:
👉与 都是对称方阵                              
 👉
 分别是的对角矩阵             
由以上两式可易知
 分别是  的  对角化矩阵
也即  为 的特征向量组成的矩阵      
       为的特征向量组成的矩阵,   
  对角元素是两者特征值的开方   





    SVD的几何意义    


与方阵的对角化相对应,
SVD也是提供了以变换的角度来看待非方阵矩阵A的本质

 知识准备
从 可得:   
(1)        
(2)  
 (2)式的推导过程如下
 
需要注意的是,
 U和V都是酉矩阵,都可以代表一组正交标准基。
 U 代表一个m维空间的正交标准基 
V 代表一个n维空间的正交标准基
A作为变换的意义
 从  可知,
A把V所代表的n维空间的每个基,
映射到U所代表的m维空间中m个基中的n个基,并作伸缩
 
这就意味着所作的变换就是,
把在中的坐标为
映射为在的坐标为 

作为变换的意义
同样的,从可知
 把 U  所代表的m维空间的m个基,
映射到 V 所代表的n维空间的每个基,
其中,在 U中只有前n个基,
分别一一对应 V中的n个基,并且 作 伸缩,
而其余的则映射到0中

  


   




好了,以上就是SVD分解与它的意义了~











 End 







联系老饼