矩阵分解 (特征值/奇异值分解+SVD+解齐次/非齐次线性方程组)
1.1 应用领域
- 最优化问题:最小二乘问题 (求取最小二乘解的方法一般使用SVD)
- 统计分析:信号与图像处理
- 求解线性方程组:Ax=0或Ax=bAx=0或Ax=b
- 奇异值分解:可以降维,同时可以降低数据存储需求
1.2 矩阵是什么
- 矩阵是什么取决于应用场景
- 矩阵可以是:
- 只是一堆数:如果不对这堆数建立一些运算规则
- 矩阵是一列列向量:如果每一列向量列举了对同一个客观事物的多方面的观察值
- 矩阵是一个图像:它的每个元素代表对应位置的像素值
- 矩阵是一个线性变换:它可以将一些向量变换为另一些向量
1.3 矩阵与线性变换
-
矩阵的本质:矩阵的本质就是线性变换
-
基-坐标系:一个基定义了一个坐标系
-
矩阵-线性变换:在线性空间中,当选定一组基(相当于确定坐标系)之后,不仅可以用一个向量来描述空间中的任何一个对象,而且可以用矩阵来描述此空间中的任何一个运行(变换),即任何一个线性变换, 都可以用一个确定的矩阵来加以描述
-
向量:向量描述对象(在选定基之后)
- 矩阵:矩阵描述对象的运动(在选定基之后)
- 运动:使某个对象发生要求的运动,就是用描述此运动的矩阵乘以运动对象的向量(运动 * 对象 = 矩阵 * 向量)
- 特征值-变换:同一个线性变换在同的坐标系(基)下的矩阵不同,但其本质相同, 所以特征值相同
- 矩阵可进行哪些线性变换?
- 旋转
- 缩放
- 投影
- 矩阵包含这么多功能,当我们看着一个数据表,对它的功能一无所知,很是迷茫,为了达到我们人类的目的,大神们把它进行分解,从而达到我们人类理解、使用的目标。
- 特征向量:都是正交的,即相互垂直
- 特征值分解和奇异值分解:都是给一个矩阵(线性变换)找一组特殊的基
- 特征值分解:找到了特征向量这一组基,在这组基下该线性变换只有缩放效果
- 奇异值分解(SVD):则是找到两组基,从一组基到另一组的线性变换的旋转、缩放、投影三种功能独立地展示出来了
2. 特征值分解-方阵
-
只有方阵才能进行特征值分解
-
奇异值和特征值的重要意义相似,都是为了提取出矩阵的主要特征。
-
特征值的本质:
-
特征值分解:把方阵分解为缩放矩阵+特征向量矩阵,没有旋转或旋转角度为0
-
特征值-变化的主次:如果我们想要描述好一个变换,那我们就描述好这个变换主要的变化方向就好了。反过头来看看之前特征值分解的式子,分解得到的∧∧矩阵是一个对角阵,里面的特征值是由大到小排列的,这些特征值所对应的特征向量就是描述这个矩阵变化方向(从主要的变化到次要的变化排列)
-
高维线性变换:当矩阵是高维的情况下,那么这个矩阵就是高维空间下的一个线性变换,这个线性变化可能没法通过图片来表示,但是可以想象,这个变换也同样有很多的变换方向,我们通过特征值分解得到的前N个特征向量,那么就对应了这个矩阵最主要的N个变化方向。我们利用这前N个变化方向,就可以近似这个矩阵(变换)。也就是之前说的:提取这个矩阵最重要的特征。
-
特征值分解总结:特征值分解可以得到:
- 特征值:特征值表示的是这个特征到底有多重要
- 特征向量:而特征向量表示这个特征是什么,可以将每一个特征向量理解为一个线性的子空间,我们可以利用这些线性的子空间干很多的事情。
- 特征值分解的局限:特征值分解也有很多的局限,比如说变换的矩阵必须是方阵。
2.1 方阵的分解
2.2 实对称矩阵的分解
3. 奇异值分解(SVD) - 非方阵
-
只有非方阵才能进行奇异值分解
-
SVD分解:把矩阵分解为缩放矩阵+旋转矩阵+特征向量矩阵
-
A的非0奇异值的个数等于它的秩rr
3.1 SVD定义
-
SVD分解如下图所示:
-
3.2 SVD特征
4. 齐次/非齐次线性方程组
5. SVD解优化问题
5.1 SVD解非齐次线性方程组(Ax=b)
-
3) 求解向量yy:
4) 求解向量xx:
5.1.1 rank(A) = n的求解步骤
5.1.2 rank(A) < n的求解步骤
- λiλi:是用于参数化的随机值(parametrized by the indeterminate values)
5.2 SVD解齐次线性方程组(Ax=0)
- 求解步骤: