主成分分析PCA与奇异值分解SVD在降维中的应用

在数据压缩、冗余和噪音的消除中,PCA是常用的降维方法。其主要是用于减少数据集的维度,同时保证了数据集中使方差贡献最大的特征。因为用到了样本之间的协方差,如果样本数量比较多的时候,其计算量是相当大的。SVD利用PCA求解过程中的特点,可以有效降低这方面的计算量。下面分两个部分对涉及到的PCA和SVD原理进行分析。

1.主成分分析PCA:

        PCA是利用数据里面最主要的部分替代原来的数据,将原来一个样本的维度N降到n。在损失尽可能小的情况下,使被降维的数据集代替原来的数据集。先举一个比较简单的例子,一个数据集样本如下(-3,1)、(-2,1)、(-1,1)、(0,1)、(1,1)、(2,1)、(3,1)。这七个点如果在坐标轴上分布,相当于都分布在Y=1这条直线上。其实很明显,我们完全可以用一维的坐标轴来表示,即将这些点分布在X轴上,其位置为-3、-2、-1、0、1、2、3。但是为什么用X轴却不用Y轴来表示。因为这组数据集特别简单,我们可以一眼就可以看出来,但是如果数据集比较复杂,甚至超过上3维以后,不太好以图的形式来表示。因此,我们必须找出利用X轴而不用Y轴表示原因:样本点投放到超平面上能尽可能的分开(数据方差最大,从而最大化数据的差异性)。

        假设m个n维数据(n维代表着每一个样本有n个特征,降维,就是降特征的个数)都进行了中心化,即主成分分析PCA与奇异值分解SVD在降维中的应用_第1张图片,经过投影变换后得到的新坐标系为,其中w是标准正交基,注意,(这里W是未知的,如何确定其值就是PCA原理的重点)主成分分析PCA与奇异值分解SVD在降维中的应用_第2张图片,如果计划将n维降到n’维,即丢弃新坐标中部分坐标(如何丢弃就是PCA降维的关键)。新的低维坐标系为主成分分析PCA与奇异值分解SVD在降维中的应用_第3张图片,从m个样本中选出一个样本点,在被降维的投影坐标(w为坐标系,这里为坐标)为:主成分分析PCA与奇异值分解SVD在降维中的应用_第4张图片,其中,主成分分析PCA与奇异值分解SVD在降维中的应用_第5张图片,是在低维坐标系里第j维坐标。

        如果我们用,来恢复原始数据,则得到的恢复数据主成分分析PCA与奇异值分解SVD在降维中的应用_第6张图片,其中,W为标准正交基组成的矩阵,我们后面会详细解释W。如果说是恢复的数据和原数据差异性做小或者说样本点到超平面的距离足够近,则最小化下列公式:

主成分分析PCA与奇异值分解SVD在降维中的应用_第7张图片

将该式进行拆分:

主成分分析PCA与奇异值分解SVD在降维中的应用_第8张图片

其中,主成分分析PCA与奇异值分解SVD在降维中的应用_第9张图片是样本协方差。稍微推导一下详细细节:

协方差的定义为是两个变量之间的互相影响大小的参数,其定义为

假如一个样本点的特征维度为1024,即有1024个变量,那么每个变量算上与自身(也就是方差)的相互影响,那么样本协方差矩阵就需要大小为1024*1024的矩阵来表示。我们知道x样本集的数据已经是做了中心归一化,即各维度特征均值为零,那么期望也为0。那么第i个变量和第j个变量之间的样本协方差为:,就变成主成分分析PCA与奇异值分解SVD在降维中的应用_第10张图片。如果表达起来过于抽象,那么我们举一个简单的例子,假如样本集是由四个样本点组成(都经过了中心归一化),每个样本的特征为3个,样本用数字表示1,2,3,4特征用字母表示m,n,t。那么样本集A:

主成分分析PCA与奇异值分解SVD在降维中的应用_第11张图片主成分分析PCA与奇异值分解SVD在降维中的应用_第12张图片

 

主成分分析PCA与奇异值分解SVD在降维中的应用_第13张图片

上面就是样本协方差主成分分析PCA与奇异值分解SVD在降维中的应用_第14张图片实例的具体过程。

回到求解主成分分析PCA与奇异值分解SVD在降维中的应用_第15张图片最小化。推导公式中用到主成分分析PCA与奇异值分解SVD在降维中的应用_第16张图片,其中的W为每一个向量wj是标准正交基。主成分分析PCA与奇异值分解SVD在降维中的应用_第17张图片是常量。那么最小化等价于:

可以发现最小值对应的W由协方差矩阵最大的n'个特征值对应的特征向量组成。

另一方面这是一个有等式约束求解极小值的问题,用拉格朗日函数可以得到:

对W进行求导可知:主成分分析PCA与奇异值分解SVD在降维中的应用_第18张图片

  这样可以更清楚的看出,W为的n'个特征向量组成的矩阵,而λ为的若干特征值组成的矩阵,特征值在主对角线上,其余位置为0。当我们将数据集从n维降到n'维时,需要找到最大的n'个特征值对应的特征向量。这n'个特征向量组成的矩阵W即为我们需要的矩阵。对于原始数据集,我们只需要用主成分分析PCA与奇异值分解SVD在降维中的应用_第19张图片就可以把原始数据集降维到最小投影距离的n'维数据集。

      在这里是不是发现了好奇的地方?我们当初假设的W已经变成了协方差的特征向量组成的标准正交基。所以这就是求解W的突破口,有了W就可以实现降维了。

上述PCA降维已经解释,有可能存在几个疑问,1,为什么需要W这个由样本协方差矩阵组成的标准正交基,2,为什么会选择最大的特征值所组成的W,从而利用主成分分析PCA与奇异值分解SVD在降维中的应用_第20张图片进行降维。那这里就需要介绍一下特征向量和特征值的关系了。

2.特征根与特征向量

引用网上对特征向量和特征值解释的比较好的一篇文章:

主成分分析PCA与奇异值分解SVD在降维中的应用_第21张图片

主成分分析PCA与奇异值分解SVD在降维中的应用_第22张图片

特征值和特征向量表达了一个线性变换的特征。在物理意义上,一个高维空间的线性变换可以想象是在对一个向量在各个方向上进行了不同程度的变换,而特征向量之间是线性无关的,它们对应了最主要的变换方向,同时特征值表达了相应的变换程度。

具体的说,求特征向量,就是把矩阵A所代表的空间进行正交分解,使得A的向量集合可以表示为每个向量a在各个特征向量上的投影长度。对于实对称矩阵来说,可以得知,不同特征值对应的特征向量必然正交。我们通常求特征值和特征向量即为求出这个矩阵能使哪些向量只发生拉伸,而方向不发生变化,观察其发生拉伸的程度。在PCA中这样做的意义在于,看清一个矩阵在哪些方面(W中wi的方向)能产生最大的分散度(scatter),减少重叠,意味着更多的信息被保留下来当协方差为0时,表示两个特征(或称变量)完全独立。为了让协方差为0,我们选择基的时候一定要和其他方向的基有正交关系。对于投影后,尽可能的分散这种表示可以用方差来表示。所以我们需要寻找n'个(被降为后的维度)基,使得所有数据变换为这个基上的坐标表示后,方差值最大。再次强调一下,我们的目的是:在找到基变换矩阵W后,得到样本数据在W的每组基上的投影值,样本在每一组基上的投影彼此正交,因为正交,所以各组基之间的协方差为0。所有样本点投到某一组基时,如果散的开,则在该组基上表明方差越大,那么该组基表示的方向就是我们想要的。假设样本由100个样本点组成,每个样本点的特征长度为1024。那么W需要有1024个基组成,样本点在某个基的投影表示某个特征值的大小,每组基上有100个投影点。

捋一捋主成分分析PCA中的公式推导:

首先让原数据X进行由W(即由基组成的矩阵)进行的基变换,基变换后,我们想要样本数据集投影到每个基上后,各特征之间之间协方差为0,方差最大。那么设原始数据矩阵X对应的协方差矩阵为C相当于之前推导的,而W是一组基按行组成的矩阵,设Y=WX,则Y为X对W做基变换后的数据,相当于把X的数据分别投影到W的各个基轴上(还记不记的刚开始的时候把(-3,1)、(-2,1)、(-1,1)、(0,1)、(1,1)、(2,1)、(3,1)分别投到X和Y轴上,那么在X轴上的坐标为-3,-2,-1,0,1,2,3在Y轴上的坐标全为1。发现什么了没?投射到Y轴上的方差为0,投射到X轴的方差(9+4+1+1+4+9)/6=14/3。所以选择投射到X轴上的数据即可表示原来数据的大部分特征。X轴可以用标准基w0=(1,0)表示,Y轴用标准机w1=(0,1),我们舍弃w1。所以原来的数据:(-3,1)是两维,现在用一维即可表示成:(-3,1)*(1,0)= -3,剩下的样本点依次类推。如果按照这个例子,那么W就是由X和Y轴方向的大小为一的向量组成的。)。设Y的协方差矩阵为D,D与C的关系为:

那么D就是对角矩阵。由于D是对角矩阵,看到会不会让你想到矩阵分析中常做的一道题?对一个矩阵进行特征向量和特征值的求解(即:,其中Q是这个矩阵A的特征向量组成的矩阵,Σ是一个对角阵,每一个对角线上的元素就是一个特征值。首先,要明确的是,一个矩阵其实就是一个线性变换,因为一个矩阵乘以一个向量后得到的向量,其实就相当于将这个向量进行了线性变换)。

协方差矩阵C是一个是对称矩阵,在线性代数上,实对称矩阵有一系列非常好的性质:

1)实对称矩阵不同特征值对应的特征向量必然正交。

2)设特征向量λ重数为r,则必然存在r个线性无关的特征向量对应于λ,因此可以将这r个特征向量单位正交化。

所以,将原数据进行主成分分析PCA与奇异值分解SVD在降维中的应用_第23张图片空间位置转换后(即投影),其变成了样本数据集之间协方差为零,每一维的方差从大到小排列。按照之前提到的需要保留数据(这些数据就是投影后)之间的分散性,即方差要大。我们留下方差较大的维度(变量或特征)所组成的W,通过主成分分析PCA与奇异值分解SVD在降维中的应用_第24张图片实现降维。(这里备注一下,由于参考的文献不同,对于转置符号T使用的地方可能存在误解,比如说主成分分析PCA与奇异值分解SVD在降维中的应用_第25张图片,这个公式跟后面Y=PX这个公式中相比,P没有用到T转置,只是写法不同,原理明白就好)。

以上汇总:将所有数据都投影到某个方向(或称为基),用在这个方向上的投影值来表示原始值,投影后的点没有相关性(协方差为零,由各个基组成的W之间正交)。并且我们要保留分散度。这就在某一方面解释了选择特征值大的特征向量作为降维的标准。
 

 

 

你可能感兴趣的:(机器学习)