现在的位置: 首页 > 综合 > 正文

主元分析(PCA)理论分析及应用

2013年10月03日 ⁄ 综合 ⁄ 共 5730字 ⁄ 字号 评论关闭

转自http://www.cad.zju.edu.cn/home/chenlu/pca.htm 

(主要基于外文教程翻译)

什么是PCA?

       PCAPrincipal component analysis的缩写,中文翻译为主元分析。它是一种对数据进行分析的技术,最重要的应用是对原有数据进行简化。正如它的名字:主元分析,这种方法可以有效的找出数据中最“主要”的元素和结构,去除噪音和冗余,将原有的复杂数据降维,揭示隐藏在复杂数据背后的简单结构。它的优点是简单,而且无参数限制,可以方便的应用与各个场合。因此应用极其广泛,从神经科学到计算机图形学都有它的用武之地。被誉为应用线形代数价值的结果之一。

       在以下的章节中,不仅有对PCA的比较直观的解释,同时也配有较为深入的分析。首先将从一个简单的例子开始说明PCA应用的场合以及想法的由来,进行一个比较直观的解释;然后加入数学的严格推导,引入线形代数,进行问题的求解。随后将揭示PCASVD(Singular Value Decomposition)之间的联系以及如何将之应用于真实世界。最后将分析PCA理论模型的假设条件以及针对这些条件可能进行的改进。

一个简单的模型

       在实验科学中我常遇到的情况是,使用大量的变量代表可能变化的因素,例如光谱、电压、速度等等。但是由于实验环境和观测手段的限制,实验数据往往变得极其的复杂、混乱和冗余的。如何对数据进行分析,取得隐藏在数据背后的变量关系,是一个很困难的问题。在神经科学、气象学、海洋学等等学科实验中,假设的变量个数可能非常之多,但是真正的影响因素以及它们之间的关系可能又是非常之简单的。

       下面的模型取自一个物理学中的实验。它看上去比较简单,但足以说明问题。如图表 1所示。这是一个理想弹簧运动规律的测定实验。假设球是连接在一个无质量无摩擦的弹簧之上,从平衡位置沿 轴拉开一定的距离然后释放。

 

 

图表 1

       对于一个具有先验知识的实验者来说,这个实验是非常容易的。球的运动只是在x轴向上发生,只需要记录下 轴向上的运动序列并加以分析即可。但是,在真实世界中,对于第一次实验的探索者来说(这也是实验科学中最常遇到的一种情况),是不可能进行这样的假设的。那么,一般来说,必须记录下球的三维位置 。这一点可以通过在不同角度放置三个摄像机实现(如图所示),假设以 的频率拍摄画面,就可以得到球在空间中的运动序列。但是,由于实验的限制,这三台摄像机的角度可能比较任意,并不是正交的。事实上,在真实世界中也并没有所谓的 轴,每个摄像机记录下的都是一幅二维的图像,有其自己的空间坐标系,球的空间位置是由一组二维坐标记录的: 。经过实验,系统产生了几分钟内球的位置序列。怎样从这些数据中得到球是沿着某个 轴运动的规律呢?怎样将实验数据中的冗余变量剔除,化归到这个潜在的 轴上呢?

       这是一个真实的实验场景,数据的噪音是必须面对的因素。在这个实验中噪音可能来自空气、摩擦、摄像机的误差以及非理想化的弹簧等等。噪音使数据变得混乱,掩盖了变量间的真实关系。如何去除噪音是实验者每天所要面对的巨大考验。

       上面提出的两个问题就是PCA方法的目标。PCA主元分析方法是解决此类问题的一个有力的武器。下文将结合以上的例子提出解决方案,逐步叙述PCA方法的思想和求解过程。

线形代数:基变换

       从线形代数的角度来看,PCA的目标就是使用另一组基去重新描述得到的数据空间。而新的基要能尽量揭示原有的数据间的关系。在这个例子中,沿着某 轴上的运动是最重要的。这个维度即最重要的“主元”。PCA的目标就是找到这样的“主元”,最大程度的去除冗余和噪音的干扰。

A.    标准正交基

为了引入推导,需要将上文的数据进行明确的定义。在上面描述的实验过程中,在每一个采样时间点上,每个摄像机记录了一组二维坐标 ,综合三台摄像机数据,在每一个时间点上得到的位置数据对应于一个六维列向量。

 

如果以 的频率拍摄10分钟,将得到 这样的向量数据。

       抽象一点来说,每一个采样点数据 都是在 维向量空间(此例中 )内的一个向量,这里的 是牵涉的变量个数。由线形代数我们知道,在 维向量空间中的每一个向量都是一组正交基的线形组合。最普通的一组正交基是标准正交基,实验采样的结果通常可以看作是在标准正交基下表示的。举例来说,上例中每个摄像机记录的数据坐标为 ,这样的基便是 。那为什么不取 或是其他任意的基呢?原因是,这样的标准正交基反映了数据的采集方式。假设采集数据点是 ,一般并不会记录 (在 基下),因为一般的观测者都是习惯于取摄像机的屏幕坐标,即向上和向右的方向作为观测的基准。也就是说,标准正交基表现了数据观测的一般方式。

       在线形代数中,这组基表示为行列向量线形无关的单位矩阵。

 

B.    基变换

从更严格的数学定义上来说,PCA回答的问题是:如何寻找到另一组正交基,它们是标准正交基的线性组合,而且能够最好的表示数据集?

       这里提出了PCA方法的一个关键的假设:线性。这是一个非常强的假设条件。它使问题得到了很大程度的简化:1)数据被限制在一个向量空间中,能被一组基表示;2)隐含的假设了数据之间的连续性关系。

       这样一来数据就可以被表示为各种基的线性组合。令 表示原数据集。 是一个 的矩阵,它的每一个列向量都表示一个时间采样点上的数据 ,在上面的例子中, 表示转换以后的新的数据集表示。 是他们之间的线性转换。

                                                                                                                     (1)

有如下定义:

l         表示 的行向量。

l         表示 的列向量(或者 )。

l         表示 的列向量。

公式(1)表示不同基之间的转换,在线性代数中,它有如下的含义:

Ø                       是从 的转换矩阵。

Ø                       几何上来说, 进行旋转和拉伸得到

Ø                       的行向量, 是一组新的基,而 是原数据 在这组新的基表示下得到的重新表示。

下面是对最后一个含义的显式说明:

 

 

注意到 的列向量:

 

可见 表示的是 中对应列的点积,也就是相当于是在对应向量上的投影。所以, 的行向量事实上就是一组新的基。它对原数据 进行重新表示。在一些文献中,将数据 成为“源”,而将变换后的 称为“信号”。这是由于变换后的数据更能体现信号成分的原因。

C.    问题

在线性的假设条件下,问题转化为寻找一组变换后的基,也就是 的行向量 ,这些向量就是PCA中所谓的“主元”。问题转化为如下的形式:

l         怎样才能最好的表示原数据

l         基怎样选择才是最好的?

解决问题的关键是如何体现数据的特征。那么,什么是数据的特征,如何体现呢?

方差和目标

       “最好的表示”是什么意思呢?下面的章节将给出一个较为直观的解释,并增加一些额外的假设条件。在线性系统中,所谓的“混乱数据”通常包含以下的三种成分:噪音、旋转以及冗余。下面将对这三种成分做出数学上的描述并针对目标作出分析。

A.    噪音和旋转

噪音对数据的影响是巨大的,如果不能对噪音进行区分,就不可能抽取数据中有用的信息。噪音的横梁有多种方式,最常见的定义是信噪比 (signal-to-noise ratio),或是方差比

                                                                                                            (2)

比较大的信噪比表示数据的准确度高,而信噪比低则说明数据中的噪音成分比较多。那么怎样区分什么是信号,什么是噪音呢?这里假设,变化较大的信息被认为是信号,变化较小的则是噪音。事实上,这个标准等价于一个低通的滤波器,是一种标准的去噪准则。而变化的大小则是由方差来描述的。

 

       它表示了采样点在平均值两侧的分布,对应于图表 2(a)就是采样点云的“胖瘦”。显然的,方差较大,也就是较“宽”较“胖”的分布,表示了采样点的主要分布趋势,是主信号或主要分量;而方差较小的分布则被认为是噪音或次要分量。

 

图表 2(a)摄像机A的采集数据。图中黑色垂直直线表示一组正交基的方向。 是采样点云在长线方向上分布的方差,而 是数据点在短线方向上分布的方差。(b) 的基向量进行旋转使SNR和方差最大。

 

       假设摄像机A拍摄到的数据如图表 2(a)所示,圆圈代表采样点,因为运动理论上是只存在于一条直线上,所以偏离直线的分布都属于噪音。此时 描述的就是采样点云在某对垂直方向上的概率分布的比值。那么,最大限度的揭示原数据的结构和关系,找出某条潜在的,最优的 轴,事实上等价寻找一对空间内的垂直直线(图中黑线表示,也对应于此空间的一组基),使得信噪比尽可能大的方向。容易看出,本例中潜在的 轴就是图上的较长黑线方向。那么怎样寻找这样一组方向呢?直接的想法是对基向量进行旋转。如图表 2(b)所示,随着这对直线的转动 以及方差的变化情况。应于 最大值的一组基 ,就是最优的“主元”方向。在进行数学中求取这组基的推导之前,先介绍另一个影响因素。

B.    冗余

有时在实验中引入了一些不必要的变量。可能会使两种情况:1)该变量对结果没有影响;2)该变量可以用其它变量表示,从而造成数据冗余。下面对这样的冗余情况进行分析和分类。

 

图表 3:可能冗余数据的频谱图表示。 分别是两个不同的观测变量。
(比如例子中的 )。最佳拟合线 用虚线表示。

 

       图表 3所示,它揭示了两个观测变量之间的关系。(a)图所示的情况是低冗余的,从统计学上说,这两个观测变量是相互独立的,它们之间的信息没有冗余。而相反的极端情况如(c) 高度相关, 完全可以用 表示。一般来说,这种情况发生可能是因为摄像机A和摄像机B放置的位置太近或是数据被重复记录了,也可能是由于实验设计的不合理所造成的。那么对于观测者而言,这个变量的观测数据就是完全冗余的,应当去除,只用一个变量就可以表示了。这也就是PCA中“降维”思想的本源。

C.    协方差矩阵

对于上面的简单情况,可以通过简单的线性拟合的方法来判断各观测变量之间是否出现冗余的情况,而对于复杂的情况,需要借助协方差来进行衡量和判断:

       分别表示不同的观测变量所记录的一组值,在统计学中,由协方差的性质可以得到:

l         ,且 当且仅当观测变量 相互独立。

l         ,当 =

等价的,将 写成行向量的形式:

       协方差可以表示为:

                                                                                                             (3)

       那么,对于一组具有 观测变量, 采样时间点的采样数据 ,将每个观测变量的值写为行向量,可以得到一个 的矩阵:

                                                                                                                    (4)

       接下来定义协方差矩阵如下:

                                                                                                            (5)

容易发现协方差矩阵 性质如下:

l         是一个 的平方对称矩阵。

l         对角线上的元素是对应的观测变量的方差。

l         非对角线上的元素是对应的观测变量之间的协方差。

 

       协方差矩阵 包含了所有观测变量之间的相关性度量。更重要的是,根据前两节的说明,这些相关性度量反映了数据的噪音和冗余的程度。

l         在对角线上的元素越大,表明信号越强,变量的重要性越高;元素越小则表明可能是存在的噪音或是次要变量。

l         在非对角线上的元素大小则对应于相关观测变量对之间冗余程度的大小。

一般情况下,初始数据的协方差矩阵总是不太好的,表现为信噪比不高且变量间相关度大。PCA的目标就是通过基变换对协方差矩阵进行优化,找到相关“主元”。那么,如何进行优化?矩阵的那些性质是需要注意的呢?

D.    协方差矩阵的对角化

总结上面的章节,主元分析以及协方差矩阵优化的原则是:1)最小化变量冗余,对应于协方差矩阵的非对角元素要尽量小;2)最大化信号,对应于要使协方差矩阵的对角线上的元素尽可能的大。因为协方差矩阵的每一项都是正值,最小值为0,所以优化的目标矩阵 的非对角元素应该都是0,对应于冗余最小。所以优化的目标矩阵 应该是一个对角阵。即只有对角线上的元素可能是非零值。同时,PCA假设 所对应的一组变换基 必须是标准正交的,而优化矩阵 对角线上的元素越大,就说明信号的成分越大,换句话就是对应于越重要的“主元”。

      对于协方差矩阵进行对角化的方法很多。根据上面的分析,最简单最直接的算法就是在多维空间内进行搜索。和图表 2(a)的例子中旋转 的方法类似:

1)  维空间中进行遍历,找到一个方差最大的向量,令作

2)  在与 垂直的向量空间中进行遍历,找出次大的方差对应的向量,记作

3)  对以上过程循环,直到找出全部 的向量。它们生成的顺序也就是“主元”的排序。

这个理论上成立的算法说明了PCA的主要思想和过程。在这中间,牵涉到两个重要的特性:a)转换基是一组标准正交基。这给PCA的求解带来了很大的好处,它可以运用线性代数的相关理论进行快速有效的分解。这些方法将在后面提到。b

抱歉!评论已关闭.