参考周志华老师的西瓜书,对PCA的求解构成进行细节的推导,希望能有所帮助。
主成分分析简称PCA,是一种在尽可能减少信息损失的情况下找到某种方式降低数据的维度的方法。对于正交属性空间中的样本点,如何用一个超平面对所有样本进行恰当的表达?这里这个超平面应该有两个性质:
I.最近重构性:重构后的样本映射回原空间,与原样本的距离都足够的近;
II.最大可分性:样本在这个超平面上的投影尽可能分开。
本文主要基于这个两个性质,从PCA的公式推导的角度,来看优化在其中的作用。
一、最近重构性
设在n维空间中有m个样本点矩阵X:
现在对这些点进行压缩,使其投影到k维空间中,其中k<n,使其损失的信息最小。假设数据样本进行了去中心化,即
若丢弃新坐标系中的部分坐标,即将维度降低到k<n。
由矩阵的乘法可知,将样本点
所以,利用该坐标系重构数据,即把数据集合Z从k维空间重新映射回n维空间,得到新的坐标点
这里假设新得到的数据与原始的数据点之间的距离最小,即PCA可转化为求解约束最优化问题:
![]()
1.1
根据F范数与矩阵迹的关系:
1.2
利用1.2对1.1进行简化:
![]()
1.3
由于已知项,不会影响到最优化的结果;有负号转为最大值,所以1.4等式简化为:
1.4
1.4式变换为:
1.5
最终PCA的最优化问题就简化为:
![]()
1.6
利用拉个朗日乘子法来求解1.6的最优化问题,引入乘子矩阵
![]()
1.7
对1.7式求W的偏导数,在导数为0处取极值:
由矩阵微分公式
![]()
![]()
1.8
从1.8式根据特征向量的定义可知,
显然,此时只需要令
二、最大可分性
从最大可分性出发,能得到PCA的另一种解释。样本点
![9cf4902da920c84025005ffe1b27b581.png](https://i-blog.csdnimg.cn/blog_migrate/7865c9fb02f6d43d8f407eca3656cffe.png)
投影后样本点的方差是
后面的求解构成与第一种的最近重构性一致。
PCA的算法步骤:
输入:n维空间的样本集合其中;映射到k维空间
1、归一化,将X中样本变换为标准正态分布:
1.1![]()
1.2![]()
2、计算协方差矩阵![]()
3、对协方差矩阵进行特征分解
![]()
4、求取最大的k个特征值以及对应的特征向量,依次记录为![]()
输出,其中![]()
三、PCA的应用
(一)、数据降维。数据降维是处理高维度数据的基础。使用PCA降维有什么意义?
- 数据在低维下更容易进行处理与使用,算法的开销也将大大减少,比如在研究高维度数据分群中,使用无监督聚类的距离公式计算相似度不准确且开销大;
- 相关特征,重要特征通过降维能在数据中显现出来;同时,降至2维或3维也能进行可视化;
- 去除数据噪声,当数据受到噪声影响时,最小的特征值所对应的特征向量往往与噪声有关,将它们舍弃能再一定程度上起到去噪的作用。
![398beb6c24391fb683e3a57a58a21364.png](https://i-blog.csdnimg.cn/blog_migrate/502829704f5ab11fed06660daf0cade3.jpeg)
(二)、人脸识别与手写数字识别。PCA在这方面的应用这几年随着深度学习技术的发展,而不断弱化。这里可以看下相关的blog文章,以人脸识别为例,计算人脸图像库中的“平均脸”并提取前K为特征向量,用于做映射矩阵。最终就是计算残差的大小,来判断人脸。残差公式就是上面的1.1式
![0c3ffbfac1b6fbffd69cdde3c3ad66d6.png](https://i-blog.csdnimg.cn/blog_migrate/3215aa2f178b66cb490c12a437794f77.jpeg)
手写数字识别的例子没有找到,可以参考下PRML的截图:
![afa3cbd23bd8b965e48a71c7cb0f71dc.png](https://i-blog.csdnimg.cn/blog_migrate/4d41f8448fa50b7305fcb8f8abaa5b76.jpeg)
![b67034954b385020c3b7606b71c42aa0.png](https://i-blog.csdnimg.cn/blog_migrate/922b5ae4bb0df24c85ea8efe14254c8c.jpeg)
![0acb13556a668bf73b72619ab46f1a47.png](https://i-blog.csdnimg.cn/blog_migrate/95a6fb1783ea96c0980b201edd94e608.jpeg)