博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
主成分分析(PCA)算法,K-L变换 角度
阅读量:6159 次
发布时间:2019-06-21

本文共 2197 字,大约阅读时间需要 7 分钟。

主成分分析(PCA)是多元统计分析中用来分析数据的一种方法,它是用一种较少数 量的特征对样本进行描述以达到降低特征空间维数的方法,它的本质实际上是K-L变换。PCA方法最著名的应用应该是在人脸识别中特征提取及数据维,我们知 道输入200*200大小的人脸图像,单单提取它的灰度值作为原始特征,则这个原始特征将达到40000维,这给后面分类器的处理将带来极大的难度。著名 的人脸识别Eigenface算法就是采用PCA算法,用一个低维子空间描述人脸图像,同时用保存了识别所需要的信息。下面先介绍下PCA算法的本质K- L变换。

1、K-L变换(卡洛南-洛伊(Karhunen-Loeve)变换):最优正交变换  

  • 一种常用的特征提取方法;
  • 最小均方误差意义下的最优正交变换;
  • 在消除模式特征之间的相关性、突出差异性方面有最优的效果。
离散K-L变换:对向量
x(可以想象成 
M维=width*height 的人脸图像原始特征)用确定的完备正交归一向量系
uj 展开:
 
 
 
这个公式由来我想应该是任一
n维欧式空间
V均存在正交基,利用施密特正交化过程即可构建这个正交基。
现在我们希望用
d个有限项来估计向量
x,公式如下:
 
计算该估计的均方误差如下:
 
要使用均方误差最小,我们采用Langrange乘子法进行求解:
 
                                                           
 
因此,当满足上式时,
取得最小值。
 
 
即相关矩阵R的d个特征向量(对应d个特征值从大到小排列)为基向量来展开向量x时,其均方误差最小,为:
 
因此,K-L变换定义:当取矩阵R的d个最大特征值对应的特征向量来展开x时,其截断均方误差最小。
这d个特征向量组成的正交坐标系称作x所在的D维空间的d维K-L变换坐标系, x在K-L坐标系上的展开系数向量y称作x的K-L变换。
 

总结下,
K-L变换的方法:对相关矩阵
R的特征值由大到小进行排队,
均方误差最小
x近似于:
                                                              
矩阵形式:
 
上式两边乘以
U的转置,得
                                             
 

向量y就是变换(降维)后的系数向量,在人脸识别Eigenface算法中就是用系数向量y代替原始特征向量x进行识别。


 
下面,我们来看看相关矩阵
R到底是什么样子。
 
因此,我们可以看出相关矩阵
R是一个实对称矩阵(或者严谨的讲叫正规矩阵),正规矩阵有什么特点呢??学过《矩阵分析》的朋友应该知道:
若矩阵R是一个实对称矩阵,则必定存在正交矩阵U,使得R相似于对角形矩阵,即:
 
 因此,我们可以得出这样一个结论:
                                                    
 
 降维后的系数向量
y
的相关矩阵是对角矩阵,即
通过K-L变换消除原有向量x的各分量间的相关性,从而有可能去掉那些带有较少信息的分量以达到降低特征维数的目的。
 
2、主成分分析(PCA)
 
主成分分析(PCA)的原理就是将一个高维向量
x,通过一个特殊的特征向量矩阵
U,投影到一个低维的向量空间中,表征为一个低维向量
y,并且仅仅损失了一些次要信息。也就是说,
通过低维表征的向量和特征向量矩阵,可以基本重构出所对应的原始高维向量。
在人脸识别中,特征向量矩阵
U称为特征脸(eigenface)空间,因此其中的特征向量
ui进行量化后可以看出人脸轮廓,在下面的实验中可以看出。
以人脸识别为例,说明下PCA的应用。
设有
N个人脸训练样本,每个样本由其像素灰度值组成一个向量
xi,则样本图像的像素点数即为
xi的维数,
M=width*height ,由向量构成的训练样本集为
该样本集的平均向量为:
平均向量又叫平均脸。
 
样本集的
协方差矩阵为:
 
求出协方差矩阵的特征向量
ui和对应的特征值
,这些特征向量组成的矩阵
U就是人脸空间的正交基底,用它们的线性组合可以重构出样本中任意的人脸图像,(如果有朋友不太理解这句话的意思,请看下面的总结2。) 并且图像信息集中在特征值大的特征向量中,即使丢弃特征值小的向量也不会影响图像质量。
将协方差矩阵的特征值按大到小排序:
。由大于
对应的特征向量构成主成分,主成分构成的变换矩阵为:
                              
这样每一幅人脸图像都可以投影到
构成的特征脸子空间中,
U的维数为
M×d。有了这样一个降维的子空间,任何一幅人脸图像都可以向其作投影
,即并获得一组坐标系数,即低维向量
y,维数
d×1,为称为
KL分解系数。这组系数表明了图像在子空间的位置,从而可以作为人脸识别的依据。

有朋友可能不太理解,第一部分讲K-L变换的时候,求的是相关矩阵
的特征向量和特征值,这里怎么求的是协方差矩阵
?
其实协方差矩阵也是:
,可以看出其实
用代替
x就成了相关矩阵
R,相当于原始样本向量都减去个平均向量,实质上还是一样的,协方差矩阵也是实对称矩阵。

总结下:
1、在人脸识别过程中,对输入的一个测试样本
x,求出它与平均脸的偏差
,则
在特征脸空间
U
投影,可以表示为系数向量
y
                                    
U的维数为
M×d
的维数为
M×1
y的维数
d×1。若
M为200*200=40000维,取200个主成分,即200个特征向量,则最后投影的系数向量
y维数降维200维。
2、根据1中的式子,可以得出:
                               
这里的
x就是根据投影系数向量
y
重构出的人脸图像,丢失了部分图像信息,但不会影响图像质量。
 
算法:见其他随笔
 
http://www.cnblogs.com/liu-jun/archive/2013/03/20/2970132.html
你可能感兴趣的文章
DEV实现日期时间效果
查看>>
java注解【转】
查看>>
centos 下安装g++
查看>>
下一步工作分配
查看>>
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>
jQuery最佳实践
查看>>
centos64i386下apache 403没有权限访问。
查看>>
jquery用法大全
查看>>
PC-BSD 9.2 发布,基于 FreeBSD 9.2
查看>>
css斜线
查看>>
Windows phone 8 学习笔记(3) 通信
查看>>
Revit API找到风管穿过的墙(当前文档和链接文档)
查看>>
Scroll Depth – 衡量页面滚动的 Google 分析插件
查看>>
Windows 8.1 应用再出发 - 视图状态的更新
查看>>
自己制作交叉编译工具链
查看>>
Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全
查看>>
[物理学与PDEs]第3章习题1 只有一个非零分量的磁场
查看>>
onInterceptTouchEvent和onTouchEvent调用时序
查看>>
android防止内存溢出浅析
查看>>
4.3.3版本之引擎bug
查看>>