基于PCA的人脸识别03 - PCA最简系统调试与优化

本文记录了基于PCA的人脸识别系统在毕业设计中的调试与优化过程,包括尝试使用SVD加速计算,探讨子空间维数k的影响,以及将近邻分类器扩展为k-近邻分类器。实验结果显示,SVD对大型矩阵运算速度提升不明显,k-近邻分类器在k值增大时识别率下降,表明需要改进输入特征和分类器以提高性能。
摘要由CSDN通过智能技术生成

毕业设计阶段性报告02 · PCA最简系统调试与优化

完成时间:2015/04/06– 2015/04/11  总结时间:2015/04/11

 

内容提要:

1. 尝试提升速度:利用SVD求协方差矩阵特征值

2. 子空间维数k的选择

3. 近邻分类器改进:由“最近邻”拓展为“k-近邻”

4. 观察误判图像,尝试分析原因

5. 后续计划

 

一、尝试利用SVD来求协方差矩阵的特征值:

(SVD = Singular Value Decomposition, 奇异值分解)

 

0. 原理阐述:

 假设已经得到中心化数据集X:

 

改进前:

Sigma = X*X’;

[V,D] = eigs(Sigma,k);

  

改进后:

[u,s,v] = svd(X);

%数学上:将X奇异值分解,得X = u·s·v

%u 的各列是X·X’的特征向量

%v 的各列是X’·X的特征向量

%理论上,使用u的前k列,就和改进前的代码等价


 

1. 验证上述原理的正确性:

X = magic(5);

A = X*X’;

[V,D] = eigs(A,5);

[u,s,v] = svd(X);

 

u = single(u)  %直接回车看结果,Single只是为了省略一部分小数点,看得清楚些,下同。

V = single(V)  %注意区别大小写V的含义

 

显示结果:只相差一个负号,对后续过程无影响。

利用 tic; [代码段] toc; 测算运行时间,发现对于小型矩阵,svd确实比eigs快很多。

 

2. 对原始代码的改写:

&#x

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值