主元分析法PCA学习笔记

因为做点云处理,在工作中接触到了PCA。

主要遇到的用法有两个:一个是对无预知信息的散乱点云进行法向量重建;另外一个是对两片散乱点云进行配准时通过PCA来校准主方向。

因为接触到的论文都言之不详,一直以来我只了解到使用PCA确定主方向的步骤:建立协方差矩阵,矩阵最大特征值对应的特征向量就是主方向。然而为什么要这么做,这么做是有着怎么样的物理背景,直到前些天专门去啃了PCA相关原理才清楚。

了解到具体原理的时候,我共有两个感想:一个是矩阵分析真是一门有用的公共课;第二个是头一次发现矩阵分析居然真的有用。。

PCA的原理,就以点云为例。点云是一系列有着(x,y,z)坐标的离散点,当然图像处理的时候很多特征向量也可以当作若干维(如128维的sift特征)特征空间中的离散点云来处理。如果一幅点云中有n个点,那么可以将点云信息写成3xn的矩阵,其中矩阵的每一列表示一个点。

矩阵的旋转是通过对数据矩阵左乘一个3x3的标准正交矩阵完成的,这种做法的实际意义在于:它是一种基变换!由一组标准正交基变换到另一组标准正交基,点云中点的相对位置没有发生改变,只是点云整体被旋转了一个角度。PCA就是基于这种“旋转”来设计的。

PCA对数据进行“旋转”,目的是为了降维,为了删除掉一些影响比较小的维度。而判断影响大小的参数是信噪比,即空域(或特征域)低频分量与高频分量之比(用方差评估频率,方差之比)。空域信息处于较高频的维度被认为是噪声,空域表现为点在该坐标轴上的投影分布较为集中,方差较小;空域信息处于较低频的维度被认为是信号,空域表现为点在该坐标轴上的投影分布较发散,方差较大。所以用于降维的PCA实际上是一个低通滤波器。

对于符合高斯分布的一般数据来说,可以用它们之间的协方差来表示相关性的大小。那么,对于点云在x维度上的数据和在y轴上的数据求取协方差,若协方差很小,说明两组数据较为独立,这两个维度能够储存最多的信息;若协方差很大,说明两组数据高度相关,这两个维度表示的信息高度重复。而对于点云数据的协方差矩阵来说,它非主对角线上的元素正是各维度之间的协方差,主对角线上的元素代表着该维度下数据的方差(即信息量)。于是,可以通过基变换使矩阵化为对角阵,在新的标准正交基下,数据在各个维度上的投影之间相关度达到最小。此时,各个维度上信息的丰富程度(分辨率)可以由主对角线上的元素(协方差矩阵的特征值)线性表征。协方差矩阵各特征值对应的特征向量即为新的标准正交基的一个基向量,而基向量的各个维度下信息的丰富程度是与特征值线性相关的。所以可以用最大特征值对应的特征向量来确定多维数据的主元,所以可以对基变换以后的数据删除一部分分辨率较低的维度来实现降维。

推论:PCA对于离群点很敏感;PCA直接计算出的主元是不分方向或者随机分配方向的。



没有更多推荐了,返回首页