资源描述:
《主成分分析(pca)入门》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、神经网络方法课程报告吴强200820901021浅析主成分分析方法简介成分分析(PCA)是现代数据分析方法的支柱,它就像一个黑箱被广泛地运用在各个领域,在本文中本人将谈谈对主成分分析的认识,对PCA数据压缩,去噪的应用的理解,以及PCA局限性和其在脑电分类问题的实际应用中的问题,最后简单分析了在EEG/fMRI同步采集信号时利用PCA去噪可能存在的问题。虚拟实验例子这里我首先举一个主成分分析的虚拟实验作为例子,以便能更好地,更直观地理解PCA。虚拟实验模型如下图所示,下图中的红球的运动是我们要考察或者说是观测的对象,而
2、红球被通过一个弹簧连接到固定的墙上,红球做沿弹簧径向的反复震动,下图中就是X轴方向,当然由于各种外界因素的干扰影响,如摩擦,碰撞,弹簧的非理想结构,使得红球的运动方向除了沿弹簧径向方向外还有在其他方向具有不确定性的运动。为了观测红球的运动,虚拟实验中设计了三个摄像头A/B/C,从不同角度来记录红球的运动,而虚拟实验的目的就是通过三个摄像头A/B/C的观测数据找出红球的最主要的运动方向,即沿弹簧径向的运动的X轴方向。这里根据应用PCA分析的常见的实际情况,有以下假设:1)摄像头只能观测到红球在其二维坐标中的坐标位置。2)
3、假设弹簧对于摄像头是不可见的。3)除红球摄像头的位置坐标,X/Y/Z坐标系是未知的且不可直接观测的。4)三个摄像头A/B/C的相对位置,拍摄方向未知如果有一个问题:红球到底是沿什么方向的弹簧驱动的?现在可能有人会说,红球主要的运动方向不是显而易见的吗?一眼就可以看出来!当然由于人眼的立体视觉,如果在现实中重现该实验确实能一眼就搞定。但是请问如果是超过三维的高维空间呢?实际上一般每个传感器能观测采样到的往往是一维时间序列数据,而由这样多个传感器采样数据构成的多维观测数据矩阵,给你这样一个矩阵你又如何能“看出”如本虚拟实验
4、中的红球的弹簧弹性震动的运动方向?所以要解决这个问题,我们就可以运用PCA分析方法。通过PCA就可以从三个摄像头的观测数据中分析出红球的本征弹性震动,即沿着弹簧方向的运动,从数学的角度说就是找到在由A/B/C三个摄像头所记录数据构成的空间中,找到X轴方向的坐标表示,即给空间中的一个向量。PCA分析方法原理PCA方法的基础是方差分析,其一个最基本的假设:在投影方向上观测数据分布的方差越大,该投影方向越能体现数据中的主要信息。由上图中的虚拟实验的例子,显然红球在X轴方向的投影,或者说红球位置坐标在X轴的值的方差显然会最大,
5、所以我们就是要通过PCA方法找到这个X轴方向。为简化说明,以一个二维数据矩阵为例,假设X是2×M的观测数据矩阵,M表示M个时间采样点,每时间点上有2个采样数据,在经过共平均参考后,假设获得如下的散点图分布,很显然将每个采样点沿图中长黑线方向投影,其投影后的坐标值的序列的方差是最大的,此时我们的PCA就是用来找到长黑方向的一个单位向量。以上过程可以用数学公式表示:假设单位列向量u(2×1),uTX=[uTx1,uTx2,….uTxm]uTxi是每个采样点上的二维数据在单位向量u上的投影,由于X经过共平均参考处理,所
6、以其均值向量μ=0,所以原始观测数据经单位向量u投影后的方差VAR(uTX)=∑(uTxi)2=(uTX)*(uTX)T=uTXXTu=λuTXXTu=λ两边左乘u得XXTu=λu,显然u是XXT的一个特征向量,而XXT是X的协方差矩阵,λ的值的大小表示原始观测数据经在向量u的方向上投影值的方差的大小。从而将问题“寻找在投影方向上观测数据分布的方差最大的方向”转变成求原始观测数据X的协方差矩阵特征值最大的特征向量的问题。由于特征向量计算本身所要求的正交性,以及特征向量个数小于等于空间维数,所以此二维空间只有两个特征向
7、量,而另一个特征向量,即短黑线方向的单位向量所对应的特征值是次大的,也是最小的。而推广到于高维空间时,正交于最大特征值对应特征向量的空间中,可以用同样方法,选出次大特征值λ所对应的特征向量,将选出的特征向量张成一个新的空间,原始观测数据投影到这个空间里时保留了原始方差较大的方向的信息,就可以认为这样就选出原始观测数据的主要成分,主成分之名也因此而来。PCA的数据压缩与去噪依然以上图为例子,我们对原始观测数据X在λ值最大的特征向量u上投影后,获得一个uTX(1×M)的序列,再加上特征向量u,即将X原来的2×M个数据压缩到
8、1×M+1×2个数据,如果原始数据是更高维的,可以选择适当V个特征值最大的λi所对应的特征向量此时则可以将数据由N×M个压缩到V×M+V×N个数据。而利用PCA去噪实质上是对PCA压缩数据的一个还原,以下图为例。左图是二维原始观测数据,向对原始数据主成分方向(图中虚线方向)投影后,获得1维标量序列,即uTX。此时可以看做数据压缩过