赞
踩
作为降维中最经典的方法,至今已有100多年的历史,它属于一种线性、非监督、全局的降维算法,是面试中经常被问到的问题。
PCA旨在找到数据中的主成分,并利用这些主成分表征原始数据,从而达到降维的目的。举一个简单的例子,在三维空间中有一系列数据点,这些点分布在 一个过原点的平面上。如果我们用自然坐标系x,y,z三个轴来表示数据,就需要使用三个维度。而实际上,这些点只出现在一个二维平面上,如果我们通过坐标系旋转变换使得数据所在平面与x,y平面重合,那么我们就可以通过x′,y′两个维度表达原始数据,并且没有任何损失,这样就完成了数据的降维。而x′,y′两个轴所包含的信息就是我们要找到的主成分。
我们很容易看出图中主成分所在的轴(以下称为主轴)的大致方向,即图中黄线所处的轴。因为在黄线所处的轴上,数据分布得更为分散,这也意味着数据在这个方向上方差更大。在信号处理领域,我们认为信号具有较大方差,噪声具有较小方差,信号与噪声之比称为信噪比。信噪比越大意味着数据的质量越好,反之,信噪比越小意味着数据的质量越差。由此我们不难引出PCA的目标,即最大化投影方差,也就是让数据在主轴上投影的方差最大。
经过上面的推导,我们可以得出一个关键性结论:x投影后的方差就是协方差矩阵的特征值。我们要找到最大的方差也就是协方差矩阵最大的特征值,最佳投影方向 就是最大特征值所对应的特征向量。次佳投影方向位于最佳投影方向的正交空间中,是第二大特征值对应的特征向量,以此类推。
至此,我们可以将PCA 的求解方法总结为以下的几步:
(1)对样本数据进行中心化处理。
(2)求样本协方差矩阵。
(3)对协方差矩阵进行特征值分解,将特征值从大到小排列。
(4)取特征值前d大对应的特征向量ω1,ω2,…,ωd,通过以下映射将n维样本映 射到d维
至此,我们从最大化投影方差的角度解释了PCA的原理、目标函数和求解方 法。其实,PCA还可以用其他思路进行分析,比如从最小回归误差的角度得到新的目标函数。但最终我们会发现其对应的原理和求解方法与本文中的是等价的。
我们还是考虑二维空间中的样本点,如图所示。上一节求解得到一条直线使得样本点投影到该直线上的方差最大。从求解直线的思路出发,很容易联想到数学中的线性回归问题,其目标也是求解一个线性函数使得对应直线能够更好地拟合样本点集合。如果我们从这个角度定义PCA的目标,那么问题就会转化为一个回归问题。
顺着这个思路,在高维空间中,我们实际上是要找到一个d维超平面,使得数据点到这个超平面的距离平方和最小。以d=1为例,超平面退化为直线,即把样本点投影到最佳直线,最小化的就是所有点到直线的距离平方之和,如图所示。
线性判别分析(Linear Discriminant Analysis,LDA)是一种有监督学习算法,同时经常被用来对数据进行降维。它是Ronald Fisher在1936年发明的,有些资料上也称之为Fisher LDA(Fisher’s Linear Discriminant Analysis)。LDA是目前机 器学习、数据挖掘领域中经典且热门的一种算法。
相比于PCA,LDA可以作为一种有监督的降维算法。在PCA中,算法没有考虑数据的标签(类别),只是把原数据映射到一些方差比较大的方向上而已。
假设用不同的颜色标注C1、C2两个不同类别的数据,如图所示。根据PCA 算法,数据应该映射到方差最大的那个方向,亦即y轴方向。但是,C1,C2两个不 同类别的数据就会完全混合在一起,很难区分开。所以,使用PCA算法进行降维 后再进行分类的效果会非常差。但是,如果使用LDA算法,数据会映射到x轴方 向。那么,LDA算法究竟是如何做到这一点的呢?
用数学化的语言描述就是每类内部的方差比左图中更小。这就引出了LDA的中心思想——最大化类间距离和最小化类内距离。
在前文中我们提到,LDA的中心思想——最大化类间距离和最小化类内距。因此,我们将目标函数定义为类间距离和类内距离的比值,我们需要将其最大化。目标函数如下:
从这里我们可以看出,我们最大化的目标对应了一个矩阵的特征值,于是LDA降维变成了一个求矩阵特征向量的问题。J(ω)就对应了矩阵SwSB最大的特征值,而投影方向就是这个特征值对应的特征向量。
从PCA和LDA两种降维方法的求解过程来看,它们确实有着很大的相似性, 但对应的原理却有所区别。
首先从目标出发,PCA选择的是投影后数据方差最大的方向。由于它是无监督的,因此PCA假设方差越大,信息量越多,用主成分来表示原始数据可以去除冗余的维度,达到降维。而LDA选择的是投影后类内方差小、类间方差大的方向。其用到了类别标签信息,为了找到数据中具有判别性的维度,使得原始数据在这些方向上投影后,不同类别尽可能区分开。
举一个简单的例子,在语音识别中,我们想从一段音频中提取出人的语音信号,这时可以使用PCA先进行降维,过滤掉一些固定频率(方差较小)的背景噪声。但如果我们的需求是从这段音频中区分出声音属于哪个人,那么我们应该使用LDA对数据进行降维,使每个人的语音信号具有区分性。 在人脸识别领域中,基于PCA的人脸识别方法也称为特征脸方法,该方法将人脸图像按行展开形成一个高维向量,然后使用PCA进行降维,人脸识别在降维后的空间上进行。然而由于其利用PCA进行降维,一般情况下保留的是最佳描述特征,而非分类特征。如果我们想要达到更好的人脸识别效果,应该用LDA方法对数据集进行降维,使得不同人脸在投影后的特征具有一定区分性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。