matlab pca求曲率和法向量_深入理解PCA与SVD的关系

c54c350cb8c8243cea8a86d9889eb66d.png

先简单回顾下主成分析PCA(principle component analysis)与奇异值分解SVD(singular value decomposition)

一、主成分析PCA

1、所解决问题

给定

维样本
,通过变换
(其中
为变换矩阵),将样本
维降到
,计
,同时最大程度的减少降维带来的信息损失。

2、所依赖的原则

根据降维并减小信息损失的目标,可以得出以下两个原则

  1. 降维后的各个维度之间相互独立,即去除降维之前样本
    中各个维度之间的相关性。
  2. 最大程度保持降维后的每个维度数据的多样性,即最大化每个维度内的方差

记降维后样本集

的协方差矩阵为

上述第一个条件要求协方差矩阵B除了对角线上元素外,其他均为0,也即

为对角矩阵。

将变换关系

代入Y的协方差矩阵B中,

--------(1)

其中,

是变换前数据
的协方差矩阵。

的特征值分解形式如下:

--------(2)

其中,

为对角矩阵。

明显的式(1)和式(2)除了维度不同,其他均一样。

结合上述第二条原则,变换矩阵

即是矩阵C的前k大的特征向量按行组成的矩阵。

3、问题求解方法

式2就是协方差矩阵

的特征值分解,变换矩阵
即是矩阵C的前k大的特征向量按行组成的矩阵。所以,PCA的求解步骤为:
  • 均值
  • 减去均值
  • 计算协方差矩阵
  • 对协方差矩阵
    特征值分解
  • 从大到小排列
    的特征值
  • 取前
    个特征值对应的特征向量按行组成矩阵即为变换矩阵

这里的核心问题是协方差矩阵

的特征值分解

二、奇异值分解SVD

1、所解决问题

--------(3)

其中

均为正交矩阵,
为对角矩阵

奇异值分解要解决的问题是将

矩阵分解为对角矩阵
中对角元素
称为矩阵
的奇异值

2、问题求解方法

所以

特征值分解的特征向量按列组成的正交矩阵,
特征值组成的对角矩阵,也可以看出
的奇异值
是是
特征值
的平方根。

--------(4)

假如

的特征向量为
,则根据式3和式4,
中对应的
则可以由下式求出 :

--------(5)

也即奇异值分解的关键在于对

进行特征值分解。

三、PCA与SVD的关系

由上述分析可知,

  1. PCA求解关键在于求解协方差矩阵
    的特征值分解
  2. SVD关键在于
    的特征值分解。

很明显二者所解决的问题非常相似,都是对一个实对称矩阵进行特征值分解,

如果取:

则有:

SVD与PCA等价,所以PCA问题可以转化为SVD问题求解,那转化为SVD问题有什么好处?

有三点:

  1. 一般
    的维度很高,
    的计算量很大
  2. 方阵的特征值分解计算效率不高
  3. SVD除了特征值分解这种求解方式外,还有更高效且更准确的迭代求解法,避免了
    的计算

其实,PCA只与SVD的右奇异向量的压缩效果相同。

  1. 如果取
    的前
    行作为变换矩阵
    ,则
    ,起到压缩行即降维的效果
  2. 如果取
    的前
    行作为变换矩阵
    ,则
    ,起到压缩列即去除冗余样本的效果。

fa18bc62ef794b36dc6bbe36c2c49d54.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值