理解PCA


离散卡夫纳-勒维变换(LK),又称霍特林变换或本征向量变换。变换核(?)是样本图像的协方差矩阵的特征向量。(傅里叶变换:它是应用最广泛和最重要的变换。它的变换核是复指数函数,沃尔什-阿达玛变换:它是一种便于运算的变换。变换核是值+1或-1的有序序列。图像处理中所用的变换都是酉变换,即变换核满足正交条件的变换。经过酉变换后的图像往往更有利于特征抽取、增强、压缩和图像编码)
一,理解算法原理
解释清楚还挺费劲。pca变换结果为y,y就是x与Ex的差投影在x的协方差矩阵的特征空间(A)后的结果。显然Ey定是0。而y的协方差阵Cy,由于y是投影在正交的特征空间的结果,元素间相互不相关,必为对角阵,而从x得到y并没有改变向量每个元素的波动性(方差),所以Cy就等于Cx的特征值组成的对角阵。

协方差矩阵表示向量元素波动性。单个元素的波动性好理解。两个元素间相互影响,比如,a增大100,b增大10。这种关系就用协方差表示。如果没有相关性,(a-Ea)*(b-Eb),统计上来讲,为0。所以Cx表示了x的波动程度。其特征值,特征向量无非是把这种波动程度简化到一个正交的空间来表示。
注:关于“y就是x与Ex的差投影在x的协方差矩阵的特征空间(A)后的结果”的解释。
y=A'(x-Ex),因为A是相对于x-Ex的空间的变换,所以x-Ex与A相乘就是投影。
二,结合图像的解释
1,由y,A,Ex显然可以恢复x,A是x的协方差矩阵的特征空间.
2,得到Cx,并得到其特征空间和特征值,对于很小的特征值认为是0,则特征空间A得到降维.由此y也降维了.所以pca可以压缩图像,可以提取主要特征.
3,对于一系列图像,用均值的话,一张图就可以表示所有.但图像之间有变化,而变化有大小之分,协方差阵就是表示本身变化和相互影响变化的东西.提取他的主要部分(特征值),结合x在这些主要变化方向上的值,即y,就可近似表示所有变化了.

本质:对于所有x,提取主要的变化y.y是变化值,A是变化方向,Ex是不变量. 

三,opencv中的pca分析

cvCalcPCA计算一个样本集的不变量和变化的特征空间,cvProjectPCA计算一个样本相对于不变量的变化程度,cvBackProjectPCA重构原始值。PCA变换可以作降低数据量的工具是显然的。也可以用于匹配。例如光流法中,有用到LK方法匹配的。cvCalcOpticalFlowLK即是。还不清楚具体算法,但应当是通过一些样本的学习,得到不变量和变化的空间,向量只要满足:其与样本不变量的差等效于样本的变化空间就认为匹配成功,即:学习得到了目标的基本特征(Ex)和可容忍的变化(特征值和空间),目标这样的满足条件就认为匹配。

可以得到这样的结论:PCA可以得到样本的本质和变化限度,自然可以用于压缩和匹配了。机器学习也应该可以用到。

展开阅读全文

没有更多推荐了,返回首页