图像特征提取系列之PCA
来源:互联网 发布:淘宝pc与手机尺寸 编辑:程序博客网 时间:2024/06/05 06:25
1:为什么图像处理需要PC A?
1- 如果【特征向量】维度过高,不仅会增加计算复杂度,还会给分类问题带来负面影响,造成识别,或者分类精度降低。
2- 可能,直观上,感觉特征越多,就越多的描述【样本的属性】,可提高识别率。
3- 其实,并不是???!!
假设,要区分西瓜,冬瓜。我们可以直接通过表皮就纹理,就可以做出正确的判断。那么,我多加几个特征:(重量)(形状)(体积)(是否有籽),可能还会对分类造成干扰。
:实际上,对于【特定样本数目】的情况下,特征维度与识别率关系 大概如下曲线:
注意:x轴—特征向量数目, y轴—分类性能。
这就需要对【特征降维】,其中一个重要手段:PCA.
2: PCA 干什么?
【实质】:尽可能好的保留原始数据信息的条件下,通过【线性变换】将高维空间中样本数据投影到低维空间。
3: PCA怎么干?数学解释
1- 提取 样本协方差矩阵S 的 前K个特征值【求矩阵特征值,然后排序,然后取前K个】对应的特征向量【这些特征向量保证相互正交】。
2- 实际上,就是找到一组基,将原来的矩阵投影到新的 空间上。
3- 几何解释
1- 在二维平面,求出来的两个本征向量就是,E1,E2. PCA实际上做:投影变换【从原来的X,Y轴,转换到了一组新的E1,E2 坐标系】
2- 这实际上也是去除数据的线性相关的过程。
【直观解释】:如果直接用眼看,让你先给一个向量,使得样本数据在此方向上的差异【方差】表现最大。那肯定E1,找到第二个,必须跟第一个垂直,也就是E2.
4:计算实例
已知样本 X={(1,2), (3,3), (3,5), (5,4), (5,6), (6,5), (8,7), (9,8)}问题: 利用1个,2个主成分 实现X的重构(表达X)。
1- 计算样本均值 m=(5,5);
2- 计算协方差矩阵:
3- 求S特征值 lamda1 = 9.34, lamda2 = 0.41
求特征向量 e1 = (0.81,0.59)T ,e2 = (-0.59 0.81) T;
e1 与e2 彼此单位正交。
4 -降至一维:
结果: a1 = -5.01, a2 = -2.8 , a3 = -1.62, a4 = -0.59 ,a5 = 0.59, a6= 0.81 ,a7 = 3.61, a8=5.01
5 -二维:
【a1 = -5.01, a2 = -2.8 , a3 = -1.62, a4 = -0.59 ,a5 = 0.59, a6= 0.81 ,a7 = 3.61, a8=5.01】
第二维度【-0.07, 0.44, 1.18, -0.81, 0.81, 0.59, -0.15, 0.07】
5:matlab 计算上题
x=[1,2; 3,3; 3,5; 5,4; 5,6; 6,5; 8,7; 9,8] [COFFE,Score, latent] = princomp(X); %主成分分析 注意matlab版本应低于2014b— — — — — — - - - - - - X = 1 2 3 3 3 5 5 4 5 6 6 5 8 7 9 8COFFE = %变幻基矩阵,每一个列向量构成变换空间中的一组基 0.8086 -0.5883 0.5883 0.8086Score = % 主成分,Score(:,1) 就是第一个最重要的分量,Score(:,2) 次之 -4.9995 -0.0728 -2.7939 -0.4407 -1.6173 1.1766 -0.5883 -0.8086 0.5883 0.8086 0.8086 -0.5883 3.6025 -0.1476 4.9995 0.0728latent = %协方差矩阵的特征值 10.6764 0.4664
实际上,我们做过CenterLoss实验的都知道,我们可以对LFW图像提取特征之后,再应用PCA。然后就上上面那样,找一个最好的维度,去将原来的特征空间,转换到新的特征空间,那么原来的特征在新的空间上有新的表示。
那如果想把未来的一张图片,投影的原来已经设定好的特征空间,应该如何做呢?
%*************************************************************************% ┊File Name: pca_fea.m% ┊Author: bin.wang% ┊Mail: sa615168@mail.ustc.edu.cn% ┊Created Time: Fri 16 Jun 2017 09:03:37 PM CST%************************************************************************/% this file for find top-K principle component % feature.mat include 2 variables :fea & fea_p ,size(fea)==size(fea_p)=[6000,512]load feature.mat % pca for fea then result store in Score ,size(Score)=[6000,512][COFFE,Score, latent] = princomp(fea); % compute transform matrix for pca fea_p_mean=mean(fea_p);for i=1:6000 %each col = col - mean(col) fea_p_sub_mean(i,:)=fea_p(i,:)-fea_p_mean(:,:);end%project fea_p to a new subspace ;proj_fea_p=fea_p_sub_mean * COFFE;
- 图像特征提取系列之PCA
- 图像特征提取之--PCA方法
- 特征提取之PCA
- 图像特征提取之(一) --- 主成份分析(PCA)
- 图像算法之二:特征提取算法系列之Harris
- 【图像特征提取14】PCA-SIFT原理及源码解析
- PCA-特征提取
- 图像特征提取之(三) --- HOG特征
- 图像特征提取之LBP特征
- 图像特征提取之LBP特征
- 图像特征提取之HOG特征
- 图像特征提取之LBP特征
- 图像特征提取之Haar特征
- 图像特征提取之(二) --- LBP特征提取
- 图像特征&特征提取
- 图像基础8 图像分类——PCA 图像特征提取算法
- SparkML之特征提取(一)主成分分析(PCA)
- FPGA图像处理之SIFT特征提取
- 浮点数计算问题
- 【bzoj1066】[SCOI2007]蜥蜴
- Log4j 日志工具demo以及配置文件实例[申明:来源于网络]
- iOS中集成ijkplayer视频直播框架
- ZOJ
- 图像特征提取系列之PCA
- 全排列问题,不等式数列
- addView
- [mysql] C++操作mysql方法总结
- 运算符重载,何时用友元,何时用成员函数
- 百度实习2017 编程题 Java
- 数据分析
- 【算法习题】棋盘上的距离
- Ramsis human-solutions