matlab pca求曲率和法向量_主成分分析(PCA),概率主成分分析(PPCA)和因子分析(FA)的区别?...

介绍

在PCA中,有一份样本为n,维度为d的数据

,我们希望降维,于是:

而Probabilistic PCA则是假设

时,PPCA等价于PCA。 另外Factor analysis则是假设

其中D是一个对角矩阵,他跟PPCA的区别就是x的每一个维度的方差都可以不一样,而PPCA中x每个维度的方差都是一样的

。不过好像很多人都没搞明白FA跟PCA的区别,这主要是因为很多软件,它写着方法是FA,但实际上给你运行的是PCA >_< 这都是这些软件的锅...

接下来将介绍PCA和PPCA的一些推导。

从PCA说起

我们知道PCA一般是用来降维的,如果有一份样本为n,维度为d的数据

,那他是怎么实现的呢?其实是基于以下公式实现的:

其中

,只要我们能够找到一个k≪d的矩阵,使得X跟
尽可能接近就可以了。更具体的说,对于某个样本
,其近似方式为

一般来说,我们只需要估计W的值,因为如果W已知的话,z是可以直接用x求出来的:

可以简单推导下:

我们通常假设W是正交矩阵,于是

,从而
;从这条式子可以看出,z的每一个维度是由一列一列的w,然后将x加权平均得到的。又因为这个W是不唯一的,他的旋转的是等价的,因此为了保证唯一性,我们通常会通过逐列求解W来保证唯一性。那么如何逐列求解呢?

为了求解方便,假设X是经过标准化的样本矩阵(这将意味着

)。首先整体来看就是找到W使得重构误差最小,也称为(synthesis view):

其中

。但是或许大家听得最多的是所谓的最大化方差,接下来将证明是等价的 考虑求解第一列
,则对于第i个样本它对应着
(这个是一个标量),其loss函数为:

可以看到,推到最后其实就是在最大化方差,那么如果求解呢?我们把w和x代回去:

其中

,是经验协方差矩阵(注意到这是个很多个外积的求和)。然而要最大化,显然最简单的是将w设得无穷大,所以为了限制这一天,我们要加个约束
,于是

对其求导:

最终我们发现

恰好是
的特征向量,所以我们求PCA的时候,直接求协方差的特征向量就把w给求出来了。接下来的求
也是类似的,考虑

这里因为

是已知的,所以被当做常数项了。又因为,

最后求导可以得到

,是第二个特征向量,如此类推。

Probabilistic PCA

在PCA中我们假设

而在PPCA中我们假设

显然当

的时候,PPCA与PCA是等价的。根据上述假设,可以知道他们的分布为:

其实PPCA的框架是很灵活的,完全可以假设p(x|z)是laplace分布(Robust PCA),或者如果x是离散就是softmax之类的(Latent Discrete Analysis)。这里先假设高斯的,那我们可以简单推导下x和z的联合分布

,这个需要用到高斯求条件概率的公式。不过这里,就简单推推

参考文献

CPSC 540: Machine Learning Probabilistic PCA and Factor Analysis

Murphy K. Machine Learning: a Probabilistic Perspective. The MIT Press, 2012.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值