线性代数基础-矩阵奇异值分解-02

发布时间 2023-12-30 16:53:04作者: jack-chen666

1. 引入

奇异值分解,singular value deconposition是6种矩阵分解方式中,综合性最强应用最广泛的分解技术,是PCA(主成分分析)的基础

六种矩阵分解技术:

只有矩阵为方阵(m=n)时,才有特征值;但对任何一个矩阵,都能求奇异值,SVD对所有矩阵均适用。

Ax=λx
矩阵乘向量(例如:Ax)是对向量做线性变换,如旋转,拉伸,翻折等。旋转与翻折可以通过正交矩阵(Orthogonal matrices)实现。
二维直角坐标系下旋转与翻折可通过如下两个正交矩阵描述:
旋转:

旋转矩阵
代表逆时针旋转
,此式在坐标变换或二维张量推导证明中常用。
对向量(1,0)与(0,1)进行旋转变换

翻折:

翻折矩阵 代表以
为对称轴,进行翻折。
对向量(1,0)与(0,1)进行翻折变换:

正交矩阵:
每列或每行只有与自身相乘时才为1,否则为0;


重点:对于正交矩阵,我们能瞬间求逆(只需转置),这非常漂亮(通常,矩阵求逆非常耗时)

谱聚类就用到这个知识点:
X1...Xn属于A1..Ak中的某一类,通过A1的维度来观察所有的样本,总共有|A1|个样本是属于A1这一类,对于属于这一类的值标上 1/sqrt(|A|) 这样的A1的向量描述W1就有 相乘=1

2. 几何的角度理解SVD

矩阵所代表的线性变换,可分解为先旋转(或翻折),再缩伸,最后再旋转(或翻折)的形式。
这三个过程至少具有一个,如对角阵只有缩拉。用矩阵语言描述如下:从右到左依次作用,先旋转
,再伸缩
,最后再旋转

详细说明:
1)对一个在
空间中的单位球,
作用为转换一下坐标基,球未变形;只是球旋转了一下而已。

2)
作用为将 n维球变为r维球(只有r个奇异值),再进行伸缩变换,此时球变形了。
3)
作用:再进行基的转变。

矩阵作用举例:

作用在向量
上:


作用在
上:

从这里一下子看不出。
若将原始坐标逆时针旋转45°,再将M作用于旋转后的矩阵,可得到如下结果:

-->

旋转过程实际上是寻找矩阵M特征向量.也就是寻找新的正交基,

其实也就是

这其实就是逆时针旋转45°
对于一组正交基V,经过矩阵M变化后,得到正交基U,要描述这一过程,就会得到奇异值分解。奇异值就是不同基变化的伸缩量。
这个结论太重要了

3. 空间的角度理解

设矩阵
秩为r(r个单位正交基)从矩阵
行空间(row space)中找一个向量
,通过
投影到A的列空间(column space)
方向,
v1 --> u1
其中, 放因子,此处与特征值类似,称为奇异值.

SVD妙处在于,在行空间中找的r个向量是正交的,即 彼此正交,且列向量空间的r个向量也是正交的,即 彼此正交




U为
V为:
对角阵

4 如何求解SVD


也就是如何求解:

U V都是正交矩阵:


为对称阵,可以进行分解:

因此:


特征向量归一化后组成的矩阵



特征向量归一化后组成的矩阵

奇异值的平方
或者特征值

奇异值为正数

例:


5. SVD的应用

将代表图像的矩阵进行SVD,只保留前k个较大的奇异值(
),从而保留了图像的主要信息。这样操作将大大减小图像存储的内存需求。这也可用于图像去噪,因为小的奇异值一般对应着噪声。用数学语言描述如下:前k个奇异值近似A效果是最好的

例如:若原始图像大小为mn,则压缩后大小为:mk+n*k+k。

原始图像:
取前20个奇异值就能保存其主要信息,则压缩后大小为:

压缩比为:7.67,压缩了近8倍


分别取前2,4,8,16,32,64,128个奇异值(当k=32时,已保留大部分信息)