网站首页 > 技术文章 正文
一、左乘矩阵的几何意义
- 向量左乘对角矩阵,几何上相当对这个向量的长度进行缩放,此处坐标轴保持不变;
- 向量左乘对称矩阵,几何上相当于对这个向量的长度进行缩放,并且对坐标轴也进行旋转;
- 给向量左乘普通矩阵,总能找到一组正交的坐标轴来表示该向量,这组坐标轴是由原来的坐标轴通过缩放和旋转而得到。
我们看一下在坐标轴上的几何变化:
1、左乘对角阵:
2、左乘对称阵:
3、左乘任意阵
对于任意的矩阵,我们总能找到一组坐标轴,来表示该向量。这个新的坐标体系是由原来的坐标轴通过缩放和旋转得到。
二、SVD的几何意义
奇异值分解SVD ( The singular value decomposition )从几何意义上来说:对于任意矩阵M,通过SVD。可以将一个相互垂直的坐标变换到另外一个相互垂直的坐标。
问题描述:
用v1和v2分别表示原来坐标系中的单位向量, 经过左乘矩阵M后,向量Mv1和 Mv2 正交。用u1 和 u2分别表示Mv1 和 Mv2方向上的单位向量,那么:
σ1* u1 = Mv1
σ2* u2 = Mv2
σ2 和 σ2分别表示这不同方向向量上的模。
设现有一个向量x,那么在变换前,其表达式为:
x = (v1·x) *v1 + (v2·x) *v2
向量点乘v1·x,表示x在v1上投影乘以v1的模,由于v1是单位向量,模为1,所以这个向量点乘,就是x在v1上投影,向量x在两个正交向量的投影乘对应的向量,然后相加就是向量x。
经过M线性变换后的向量的表达形式:
Mx = (v1·x) σ1u1 + (v2·x) σ2u2
而我们对原坐标空间表达式,等式两边同乘以矩阵M:
Mx = (v1· x) Mv1 + (v2· x) Mv2
由于v1· x是一个标量, Mv1是一个向量,所以可以变换位置如下:
Mx = u1σ1 v1Tx + u2σ2 v2Tx
进而,由于u1和v1都是列向量,u1σ1 v1T就是两个向量点乘后乘以一个标量
于是可得:
M = u1σ1 v1T + u2σ2 v2T
表示成:
M = UΣVT
u 矩阵的列向量分别是u1,u2 ,Σ 是一个对角矩阵,对角元素分别是对应的σ1 和 σ2,V 矩阵的列向量分别是v1,v2。
以上表明任意矩阵 M 是可以分解成三个矩阵。V 表示了原始域的标准正交基,u 表示经过 M 变换后的标准正交基,Σ 表示V 中的向量与u 中 相对应向量之间的关系。
三、与PCA的关系
将一个m * n的矩阵A的进行坐标轴的变化,P是变换矩阵,把一个m×n维的空间变换到另一个m×n维的空间,在空间中就会进行一些类似于旋转、拉伸的变化。
如果降低特征空间维度,只提取r个特征,那么就是:
这就是PCA,如果要详细了解PCA原理,请阅读本头条号另一篇非常易懂PCA的文章《深度剖析:Eigenfaces算法原理及其中PCA几何意义(人脸系列一)》
跟PCA一样,SVD也是按照奇异值由大到小排列的,方差最大的坐标轴是第一个奇异向量,以此类推, SVD表达式:
在矩阵的两边同时乘上一个矩阵V,由于V是一个正交的矩阵,所以V转置乘以V得到单位阵I,所以可以化成后面的式子:
对比变换
,这里是将一个m * n 的矩阵压缩到一个m * r的矩阵,也就是对列进行压缩。
同样我们写出一个通用的行压缩例子:
这样就从一个m行的矩阵压缩到一个r行的矩阵了,对SVD来说也是一样的,我们对SVD分解的式子两边乘以U的转置UT
注意上式,m×r后转置,符合矩阵相乘的左矩阵列数与右矩阵行数相等的要求。
综上,可见,PCA是SVD的一个特例,我们实现了SVD,那也就实现了PCA,或者说,我们可以得到两个方向的PCA,如果我们对ATA进行特征值的分解,只能得到一个方向的PCA。
总结如下:
- 左奇异矩阵可以用于行数的压缩。
- 右奇异矩阵可以用于列数即特征维度的压缩,也就是PCA降维。
- 上一篇: 比加速,我们的车没怕过 比速汽车还能恢复生产吗
- 下一篇: AI数学基础之:奇异值和奇异值分解
猜你喜欢
- 2024-10-28 编程大佬告诉你人工智能需要学习哪些数学知识
- 2024-10-28 NumPy之:多维数组中的线性代数 多维数组元素之间的关系是线性的吗
- 2024-10-28 相机模型与张氏标定 相机标定的原理
- 2024-10-28 C代码快速傅里叶变换-分类和推理-常微分和偏微分方程
- 2024-10-28 认识“模拟进化算法” 模拟进化怪物
- 2024-10-28 3D点云平面拟合算法 3d点云项目
- 2024-10-28 黎曼猜想突破作者首次公开讲解,陶哲轩送上总结
- 2024-10-28 浅谈PCA主成分分析 什么是pca主成分分析
- 2024-10-28 【杂谈】cholesky分解——对称正定矩阵最好的分解
- 2024-10-28 降维算法: 奇异值分解SVD 降维的算法
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)