一.K-L变换

说PCA的话,必须先介绍一下K-L变换了。

K-L变换是Karhunen-Loeve变换的简称,是一种特殊的正交变换。它是建立在统计特性基础上的一种变换,有的文献也称其为霍特林(Hotelling)变换,因为他在1933年最先给出将离散信号变换成一串不相关系数的方法。
K-L变换的突出优点是它能去相关性,而且是均方误差(Mean Square Error,MSE)意义下的最佳变换。

下面就简单的介绍一下K-L变换了。

设,随机向量X ∈Rn(n阶列向量),它的均值向量为mX,则其协方差矩阵可以表示为

Cx= E{(X-mx)*(X-mx)T}                           (2.1)

Cx是一个n*n阶的实对称阵。

K-L变换定义了一正交变换A ∈Rn*n,将X ∈Rn的向量映射到用Y ∈Rn代表的向量,并且使Y向量中各分量间不相关:
Y = A*(X-mx)                                            (2.2)

因为Y的各分量间不相关,则其协方差矩阵Cy为对角阵,即

Cy = diag(λ12,...,λn)

而矩阵A总是可以找到的,因为对于实对称阵,总能找到一个正交阵A,使得ACxAT的运算结果为对称阵。K-L变换中,将A的每一行取为Cx的特征向量,并且将这些特征向量按对应的特征值大小进行降序排序,使最大特征值对应的特征向量在A的第一行,而最小特征值对应的特征向量在A的最后一行。而Cy是Cx对角化后的结果,所以两个矩阵的特征值是一致的(λ12,...,λn)。

这样就可以通过矩阵A实现由随机向量X到随机向量Y的K-L变换了,而由

X = ATY +mx                                          (2.3)

就可以实现Y反变换到X。
若选择的最大k个特征值对应的k个特征向量,组成k×n的转换矩阵A,则变换后Y降为k维的,则由Y对X的恢复公式如下:

X‘ = AKY +mx                                          (2.4)

这时候Cy = diag(λ12,...,λk),X与X’之间的均方误差可以由下式表达:

λk+1+.λk+2...+λn                                       (2.5)                            (没有公式编辑器啊)

上面我们提到了对于特征值λ是从大到小排序的,那么这时候通过式子2.5可以表明通过选择k个具有最大特征值的特征向量来降低误差。因此,从可以将向量X和它的近似X‘之间的均方误差降至最小这方面来说,K-L变换是最佳变换。

二.PCA,主成分分析

在二十世纪九十年代初,Kirby和Sirovich开始讨论利用PCA技术进行人脸图像的最优表示问题。并且由M.Turk和A.Pentland将此技术用于人脸识别中,并称为特征脸方法。M.Turk和A.Pentland将m×n的人脸图像,重新排列为m *n维的列向量。则所有的训练图像经此变换后得到一组列向量:{ xi },xi∈Rm*n,其中N代表训练样本集中图像的个数。将图像看成一随机列向量,并通过训练样本对其均值向量和协方差矩阵进行估计。

均值向量μ通过下式估计:
μ = (1/N)*((x1+x2+...+xN)                        (3.1)
协方差矩阵

ST  = E{(xi-u)*(xi-u)T}  = X'X'T               (3.2)

其中X’ = [x1-μ, x2-μ,...., xN-μ]

则将投影变换矩阵A取为ST的前k个最大特征值对应的特征向量。利用K-L变换式对原图像进行去相关并降维:

Y = AK*(X-mx)                                          (3.3)

因为S=X'X'T,而X‘为(m*n)*N矩阵,但是因为X’为N阶矩阵,所以ST的秩最大为N-1,这样只要计算出ST的特征向量就可以计算出K-L变换矩阵了。

但是因为ST是(m*n)*(m*n)阶的矩阵,所以计算它的特征向量比较复杂,这里使用了一个技巧:

XTXviivi                                                (3.4)

(XXT)(Xvi)=δi(Xvi)                                    (3.5)

根据式子3.4与3.5可以看出,只要计算出XTX的特征值和特征向量δi与vi,然后就可以计算出XXT的 特征值和特征向量δi与Xvi,而XTX为N*N阶的矩阵,计算起来比较容易,除此以外,也可以使用SVD,这里就不提了。

三.PCA流程整理

PCA的整个变换过程整理了一下,如下:

1.将mxn的训练图像重新排列为m *n维的列向量。计算均值向量,并利用均值向量将所有样本中心化。
2.利用中心化后的样本向量,根据式(3.2)计算其协方差矩阵;对其特征值分解,并将特征向量按其对应的特征值大小进行降序排列。
3.选取第2步所得的k ≤N-1个最大特征值对应的特征向量组成投影矩阵A,将每幅已中心化的训练图像(x1-μ, x2-μ,...., xN-μ),向矩阵A投影,得到每幅训练图像的降维表示为(y1-μ, y2-μ,...., yN)
4.对测试图像中心化,并投影到矩阵A,得到测试图像的降维表示。
5.选择合适的分类器,对测试图像进行分类。

 
                PCA本质和SVD
 

K-L变换和 主成分分析PCA的更多相关文章

  1. 机器学习 —— 基础整理(四)特征提取之线性方法:主成分分析PCA、独立成分分析ICA、线性判别分析LDA

    本文简单整理了以下内容: (一)维数灾难 (二)特征提取--线性方法 1. 主成分分析PCA 2. 独立成分分析ICA 3. 线性判别分析LDA (一)维数灾难(Curse of dimensiona ...

  2. 主成分分析PCA数据降维原理及python应用(葡萄酒案例分析)

    目录 主成分分析(PCA)——以葡萄酒数据集分类为例 1.认识PCA (1)简介 (2)方法步骤 2.提取主成分 3.主成分方差可视化 4.特征变换 5.数据分类结果 6.完整代码 总结: 1.认识P ...

  3. 降维(一)----说说主成分分析(PCA)的源头

    降维(一)----说说主成分分析(PCA)的源头 降维系列: 降维(一)----说说主成分分析(PCA)的源头 降维(二)----Laplacian Eigenmaps --------------- ...

  4. 机器学习课程-第8周-降维(Dimensionality Reduction)—主成分分析(PCA)

    1. 动机一:数据压缩 第二种类型的 无监督学习问题,称为 降维.有几个不同的的原因使你可能想要做降维.一是数据压缩,数据压缩不仅允许我们压缩数据,因而使用较少的计算机内存或磁盘空间,但它也让我们加快 ...

  5. 05-03 主成分分析(PCA)

    目录 主成分分析(PCA) 一.维数灾难和降维 二.主成分分析学习目标 三.主成分分析详解 3.1 主成分分析两个条件 3.2 基于最近重构性推导PCA 3.2.1 主成分分析目标函数 3.2.2 主 ...

  6. 机器学习降维方法概括, LASSO参数缩减、主成分分析PCA、小波分析、线性判别LDA、拉普拉斯映射、深度学习SparseAutoEncoder、矩阵奇异值分解SVD、LLE局部线性嵌入、Isomap等距映射

    机器学习降维方法概括   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u014772862/article/details/52335970 最近 ...

  7. 深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening

    主成分分析与白化是在做深度学习训练时最常见的两种预处理的方法,主成分分析是一种我们用的很多的降维的一种手段,通过PCA降维,我们能够有效的降低数据的维度,加快运算速度.而白化就是为了使得每个特征能有同 ...

  8. 线性判别分析(LDA), 主成分分析(PCA)及其推导【转】

    前言: 如果学习分类算法,最好从线性的入手,线性分类器最简单的就是LDA,它可以看做是简化版的SVM,如果想理解SVM这种分类器,那理解LDA就是很有必要的了. 谈到LDA,就不得不谈谈PCA,PCA ...

  9. 主成分分析PCA(转载)

    主成分分析PCA 降维的必要性 1.多重共线性--预测变量之间相互关联.多重共线性会导致解空间的不稳定,从而可能导致结果的不连贯. 2.高维空间本身具有稀疏性.一维正态分布有68%的值落于正负标准差之 ...

随机推荐

  1. 修改Echarts 图表的坐标轴的文本的排列位置

    option.xAxis.axisLabel['interval'] = 0 option.xAxis.axisLabel['formatter'] = function(value,index){ ...

  2. AtCoder Regular Contest 091

    数学场,做到怀疑人生系列 C - Flip,Flip, and Flip...... Time limit : 2sec / Memory limit : 256MB Score : 300 poin ...

  3. Set容器——TreeSet及常用API

    TreeSet及常用Api ①   TreeSet为使用树来进行存储的Set接口提供了一个工具,对象按升序存储,访问和检索很快; ②   在存储了大量的需要进行快速检索的排序信息的情况下,TreeSe ...

  4. git基本常用命令总结

    官网:https://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80-%E5%8F%96%E5%BE%97%E9%A1%B9%E7%9B%AE%E7%9A% ...

  5. 二进制<3>

    Matrix67:位运算简介及实用技巧(三) 进阶篇(2) (2010-07-27 11:10:44) 转载▼ 标签: it 分类: 老贾·OI相关 n皇后问题位运算版    n皇后问题是啥我就不说了 ...

  6. 刷题总结———长跑路径(ssoj1982)

    题目: 给定一个无向图···求特定几个点中两两间的最短路中的最小值····其中1≤N,M≤100000:T≤5:1≤K≤n:1≤边长≤100000,T为一个测试点的测试数··k为测试点数量 题解: 我 ...

  7. [JSOI2016] 最佳团队 (树形DP+01分数规划)

    Description JSOI信息学代表队一共有N名候选人,这些候选人从1到N编号.方便起见,JYY的编号是0号. 每个候选人都由一位编号比他小的候选人Ri推荐.如果Ri=0则说明这个候选人是JYY ...

  8. vue学习:解决Apycharm的 * is only available in ES6(use 'esversion: 6') 问题

    使用pycharm打开main.js,代码前出现黄点,js报错了 把鼠标移至import的波浪线上,出现提示:W119 - ‘import’  is only available in ES6(use ...

  9. 从0到1:全面理解RPC远程调用

    上一篇关于 WSGI 的硬核长文,不知道有多少同学,能够从头看到尾的,不管你们有没有看得很过瘾,反正我是写得很爽,总有一种将一样知识吃透了的错觉. 今天我又给自己挖坑了,打算将 rpc 远程调用的知识 ...

  10. CodeForces 333E. Summer Earnings

    time limit per test 9 seconds memory limit per test 256 megabytes input standard input output standa ...