Principal Components Analysis(主成分分析)
2017年12月09日
PCA出现的原因
我们经常提取到许多特征,希望通过提高维度来增强分类器的分类性能,但是这种“提高”是有一定界限的。超过了这个界限后,分类器的分类性能不升反降,出现了过拟合,且使得计算变得非常复杂。基于此,我们需要一种可以将数据的维度降低(dimensionality reduction),提高数据的密度,但是其“关键”的维度仍然得以保留的算法——降维算法。PCA就是一种典型的降维算法。
理论上说,这样一种降维算法有两种可能:特征选择和特征抽取。特征选择是指选择全部特征的一个子集作为特征向量;特征抽取是通过已有的特征,重新建立一个新的特征子集——PCA技术就是一种特征抽取方法。
如何实现PCA?——PCA的数学推导
如何将这个问题转化为数学语言?
将这个问题转化为数学语言,那就是:如何在低维样本空间中较好地代表高维样本空间中的样本。那么问题来了:如何定量地描述:“较好地代表” 呢?一种思路是考虑线性代数中的特征基变换,使用前 n 个较大的 pairs of eigenvalues and eigenvectors,作为降维基变换矩阵进行 change of basis ,这样将原来高维样本空间中的样本映射到低维的以特征基张成的样本空间(principal subspace)中,达到了降维的效果。但是这样的做法是“最好地代表”吗?
考虑这样一个超平面(实际上是一个principal subspace),使得样本点到这个超平面的距离都足够近,这样在用超平面上的点”代表“样本点时,误差就会足够小。这个性质叫做 Minimum-error formulation,是”较好地代表“的一个要求。这个条件如何用数学语言来描述呢?
我们先来表示出样本点在低维空间中的投影
假设所有的样本数据已经进行了中心化:
∑i=1nxi=0 (样本中心化)
且通过投影变换后,得到的principal subspace 的 basis 是一组标准正交基:
{
w1,w2,⋯,wD},符合wiwTj=0,(i,j=1,2,⋯,D),∥wi∥=1将这些基向量写作基变换矩阵W,由于正交矩阵的性质,我们可以等价写为WTW=I.
我们的最终目标就是要找到这个基变换矩阵W:
Wn×D,使得Wn×DWTD×nxn×1=Tn×nxn×1=[Tx]n×1:=zn×1总落在Span{
Col(W)}中,其中dim(Span{
Col(W)})=D<n=dim(Col(X)),这样我们就可以用Span{
Col(W)}的D个基向量即w1,w2,⋯,wD来表示[Tx]n×1,这样我们就只要储存线性组合的D个系数,将原来的n维降到了D维。
即(这一步转化可以参见我的线性代数笔记Chapter6 正交性和最小二乘法 中的 正交投影 一节)我们将数据投影到 D-dimensional subspace 中得到的新样本点为:
$$
\mathbf{z}{n}=\sum{i=1}^{D}\left ( \mathbf{x}{n}^{T}\mathbf{w}{i} \right ) \mathbf{w}{i}=WW^{T}\mathbf{x}{n},\text{注意这里的}\mathbf{z}_{n}\text{仍然是一个}n\text{维向量}
$$
表示 Minimum-error formulation 这个要求——化为最优化问题
考虑到我们需要 ”误差足够小“,即 原来的样本点 与 投影后得到的 新样本点 之间的距离最小。这转化为数学语言就是:
min{
∑i=1n∥xn−zn∥2}由WTW=I,XTX是常量得LHS=min{
(WW