思想
PCA的一个重要应用就是特征提取。特征提取背后的思想是,可以找到一种数据表示,比给定的原始表示更适合于分析。下面根据PCA特征提取在脸部特征提取的一个实例上理解各个不同的概念。
实例
首先上一组人脸图像:
这些人脸图像的大小都是87x65=5655像素,从中任取一副图像,则可以用一个含有5655个元素的向量a表示,其中,每个元素的物理意义为灰度值。可以理解成每一副图像就有5655个维度。本例中加入训练集的这样的图像共有1547幅。所以训练集的大小可以表示为1547x5655的矩阵A(行表示样本,列表示特征)。
利用PCA可以从这5655个维度提取100个互不相关的维度,即提取前100个主成分,这一百个主成分包括了图像的绝大部分信息。也就是说,前面提到的含有5655个元素的向量a转化成了只含有100个元素的向量b,在某种规定下,a和b都可以表示一幅图像,只不过b表示的图像一般而言会丢失一些信息。
下面简单介绍一下如何从训练集A得到这100个主成分分量。
1.对矩阵A(1547x5655)的每一列减去这一列的均值得到矩阵B(1547x5655),即保证矩阵B的每一列均值都为0;
2.计算矩阵B的协方差矩阵C(5655x5655);
3.计算协方差矩阵C的特征值和特征向量(5655个,每一个有5655维);
4.将特征值按从大到小排列,共有5655个,取其前100个特征值对应的特征向量(5655维),这100个特征向量即为上述100个主成分分量。
下图是其中前15个主成分分量表示的分量图(每张图当然也是5655像素)
假设向量b的元素为
bi
b
i
,主成分分量为
ci
c
i
,那么我们就得到了一幅图像的新的表示方法:
anew a n e w 里含有了a的绝大部分信息。
也可以这样理解,b和a的区别在于“单位”不同。a的元素值就是像素值,“单位”是亮度,即这一个像素的位置处,像素值越高就越亮。而b的“单位”是 ci c i ,即一幅幅分量图,把所有的分量图按照b里面的系数线性组合,就得到了 anew a n e w 。
这样,我们就把原来需要5655个特征表示的图像现在只需要100个特征就能很好的表示出来。