这几天在学习PCA算法(结合在人脸识别方面的应用),下面是我的笔记(有不对的地方欢迎各位指出):
相关的数学知识
特征值\特征向量
简单的算法流程
1)特征中心化,即每一维的数据都减去该维的均值;
2)(对维度)计算协方差矩阵;
3)计算协方差矩阵的特征值和特征向量;
4)选取最大的前几个特征值对应的特征向量,组成一个投影矩阵。
对算法原理的一些理解
1)计算样本维度的协方差矩阵,可得到样本各个维度的相关性(协方差矩阵的元素为随机变量的其中两个维度的协方差,对角线元素为某个维度的方差);
2)选取协方差矩阵前K个最大的特征值及对应的特征向量,可得到对样本起决定性作用最大的前K个特征(详细推导参考最大方差理论);
3)样本通过投影计算后从N维降到K维,这K维的元素大体上可代表原来的N维样本;
4)PCA人脸识别最核心的一点是将人脸从N维降到K维以后,计算每个人脸K维向量之间的距离,若小于某一阈值,可认为两个K维向量代表同一个人的脸,否则代表两个不同的人脸。
关于算法中的一些矩阵计算
1)假设样本的个数(图片的数量)为M,每个样本的维度(每张图片的像素总数)为N,则样本数据矩阵为一个M*N的矩阵(