PCA、协方差矩阵以及在点云处理中的应用
目的
考虑一个问题:一组数据 X P × N X_{P\times N} XP×N (数据维度为P,样本点数目为N),我们想对 X X X进行降维,但最大限度的保留其中的信息,该怎么做?
一种直观的想法是这样的,如果数据中存在高度相关的维度,那我们只保留其中的一个维度就可以了。对于普通的数据,各维度的相关性比较复杂,判断要保留哪些维度是一件比较困难的事情。但是有一种理想的情况,数据的协方差矩阵 X X T XX^T XXT是一个对角矩阵,各个维度之间都不相关,那么我们只需要保留方差比较大的维度就可以了。
所以,如果我们能有一种方法对数据进行处理,使得其协方差矩阵为对角矩阵,即将
[ c o n v ( X , X ) c o n v ( X , Y ) c o n v ( Y , X ) c o n v ( Y , Y ) ] \begin{bmatrix} conv(X,X) & conv(X,Y) \\ conv(Y,X) & conv(Y,Y) \end{bmatrix} [conv(X,X)conv(Y,X)conv(X,Y)conv(Y,Y)]
化为:
[ c o n v ( X , X ) 0 0 c o n v ( Y , Y ) ] \begin{bmatrix} conv(X,X) & 0 \\ 0 & conv(Y,Y) \end{bmatrix} [conv(X,X)00conv(Y,Y)]
那么问题就解决了。幸运的是,由于协方差矩阵的良好性质(对称性),这个思路是完全可行的。我们可以对原始数据进行”变基“操作(即换个坐标系,或者简单的理解为旋转坐标系),使得这组数据在我们的新基下,其协方差矩阵为对角矩阵。在方差较大的维度上,数据是较为分散的,保留了原始数据的大部分信息。而在方差较小的维度上,数据几乎没有波动,这些维度我们完全可以丢掉。因此可以起到降维的效果。(当我们的新基相对与旧基只是一个旋转变换的时候,各样本点到样本均值之间的距离是不变的。这个距离的均值等于协方差矩阵的迹,也即各个维度内部的方差之和。因此一些维度方差最大,另一些维度必然方差最小)。
以上就是PCA算法的基本思想。
PCA推导
特征值分解
定义:
方阵 A n × n A_{n\times n} An×n,且 A A A有 N N N 个线性无关的特征向量 q i ( i = 1 , … , N ) q_{i}(i=1, \ldots, N) qi(i=1,…,N),则 A A A可以被分解为
A = Q Λ Q − 1 \mathbf{A}=\mathbf{Q} \mathbf{\Lambda} \mathbf{Q}^{-1} A=QΛQ−1
其中 Q \mathrm{Q} Q 是 N × N N \times N N×N 方阵, 且其第 i i i列为 A \mathrm{A} A 的特征向量 。 Λ \Lambda Λ 是对角矩阵, 其对角线上的元素为对应的特征值,也即 Λ i i = λ i \Lambda_{i i}=\lambda_{i} Λii=λi 。
直观理解:
矩阵乘法可以表征一个线性变换(旋转和拉伸的组合,注意方阵没有降维操作),特征值分解可以使得这个过程更加清晰。首先需要说明的是, A A A代表的线性变换,在以其特征向量为基的空间中,只是沿着坐标轴的拉伸而已(两者是同一个线性变换在不同的坐标系下的表达,也即 A A A与 Λ \mathbf{\Lambda}

本文介绍了PCA(主成分分析)及其与协方差矩阵的关系,强调它们在高维数据降维中的作用。PCA通过特征值分解实现数据的正交变换,将协方差矩阵对角化,保留主要信息。在点云处理中,PCA可用于边缘检测、法向量计算、OrientedBoundingBox计算和点云配准等任务。
最低0.47元/天 解锁文章
643

被折叠的 条评论
为什么被折叠?



