重构大学数学基础_week02_SVD奇异值分解

上周我们说了PCA,那么同为数据降维的方法,今天我们来聊一聊矩阵的奇异值分解(SVD),同时说一下背后的实质。SVD有很多应用,比如机器学习里面特征提取和降维SVD是很关键的一步。

SVD奇异值分解我认为很类似于方阵中的正交对角化。我首先从方阵开始引入。

对于一个n阶对称矩阵A,如果我们求出了矩阵A的n个特征值,并且求出了这n个特征值对应的特征向量,如果这n个特征向量线性无关那么矩阵A可被特征分解为: A=Q\sum Q^{-1}

其中Q为n个特征向量组成的矩阵,Q=(q1,q2.....qn)其中qi为特征向量,∑为n个特征值组成的对角矩阵。

然后我们把Q中的特征向量给它单位化并正交化,即满足||qi|
|=1,qi* qj=0,此时的Q矩阵为正交矩阵,也叫酉(you)矩阵,即满足QQ-1 =I这个时候A又可被特征分解为A=Q\sum Q^{T}

上式也成为正交对角化

但是,上面所述的特征分解要满足A矩阵为n阶方阵,要正交对角化还要满足A矩阵为对称矩阵,那么对于任意一个m*n阶的矩阵我们是否可以对它进行特征分解呢,这就引出了SVD。因此SVD的作用也就是解决了对于任意m*n阶矩阵的特征分解。

对于任意一个矩阵A,我们都可以将它分解为A=U\sum V^{T},其中UV是正交矩阵,是对角矩阵(不一定是方阵),其主对角线上的每个值我们称为奇异值。

单位正交矩阵的性质:单位正交矩阵的列向量(或行向量)彼此正交(垂直),并且每个向量的长度为1。这意味着其转置矩阵等于其逆矩阵,且在几何上可以表示旋转、镜像和反射等线性变换。

我首先介绍一下线性空间中的旋转和压缩,如图所示,拉伸呢就相当于将这个线性变换用矩阵表示出来,其中这个矩阵的基向量进行了一个数乘,在几何意义上就能将数据做到一个拉伸的效果。

对于旋转,在线性代数中,如果一个矩阵只涉及在空间中的旋转效果,那么这个矩阵必定是一个正交矩阵。因为对于旋转矩阵而言,其行列式为1,因为旋转操作保持了空间的定向不变。

下面以2阶方阵为例。SVD呢就可以将一个MXN矩阵分解为三个矩阵,这三个矩阵分别代表的意义就是旋转,拉伸,旋转。看下面的图,V是原始空间的一组标准正交基,U是经过M变换后的标准正交基,且U的出现还经过了缩放,我们就可以建立一个等式。然后等式两边右乘V的转置(因为V是标准正交基,V的逆就等于V的转置)

我们就可以得到SVD的基本公式。M=U\sum V^{T}

我们推广到m×n矩阵,如图所示,这里我将SVD与图像关联起来。我们可以尝试一下去掉最小的几个奇异值,就是去掉了不重要的主成分,可以肉眼可以看到,原始矩阵与未去掉最小奇异值的结果相差不大。进行矩阵乘法以后,我们可以看到,产生的都是秩为一的矩阵,图像的颜色以深浅去排列,我们可以假定奇异值代表一种透明度,将这三个矩阵与奇异值乘完叠起来,就是线性变换后的矩阵。这样,我们就做到了对图像的一个压缩。

那么我们知道了SVD的作用,如何进行SVD分解呢?我们可以先对M左乘一个M的转置,然后括号打开,根据正交矩阵的特性进行化简,就可以得到M^{T}M=V\sum \sum V^{T},其中\sum =\begin{bmatrix} \sigma1 &0 \\ 0&\sigma2 \end{bmatrix},将\sum \sum写成L,就可以得到M^{T}M=VLV^{T},这样的话就又回到了方阵的特征值分解上。

我们求出来M^{T}M的特征值和特征向量,将特征向量组成矩阵V,再将特征值开根号,就得到了原来M的奇异值。同理,我们再对M右乘一个M的转置,可以解出另一组特征值和特征向量。最后我们写成SVD的标准形式就可以了。

总结一下:我们如何去求SVD呢?

那么SVD和PCA都作为对数据进行降维的方法,他们俩有什么关系或者区别呢?

PCA通过找到数据变化最大的方向(即最大方差方向)来降低数据维度,这些方向实际上就是原数据集协方差矩阵的特征向量。而SVD能直接对数据矩阵进行分解,得到的右奇异向量与PCA所找的主方向相对应。如图所示。

由于SVD不直接依赖于协方差矩阵的计算,因此在数值稳定性上往往优于直接计算PCA。特别是在数据高度相关或协方差矩阵接近奇异时,SVD能提供更可靠的结果。

 PCA主要应用于具有明确定义的均值和方差的数据集,特别是当关注数据的统计特性时。SVD则是一种更广泛应用于任意矩阵的分解方法,不仅限于方差和协方差的分析。

 虽然有观点指出SVD可以获取另一个方向上的主成分,这实际上是一种误解。正确理解是,SVD通过分解提供了全面的信息,包括左奇异向量(代表输入空间的方向)、右奇异向量(代表输出空间的方向)和奇异值(各方向的重要性),而PCA主要关注的是右奇异向量,即数据在新坐标系下的投影。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值