模式识别(Pattern Recognition)学习笔记(三十五)-- K-L变换与PCA
K-L变换的理论知识
K-L变换是除了PCA外的另一种常用的特征提取方法,它有很多种形式,最基本的形式跟PCA类似,它跟PCA的不同在于,PCA是一种无监督的特征变换,而K-L变换能够考虑到不同的分类信息,实现有监督的特征提取。
根据随机过程中的KL展开理论,将随机过程描述为无数个正交函数的线性组合,而在模式识别问题中,通常可以将一个样本看成是随机向量的某一次实现结果,所以假设有一d维随机向量x,可以写成一组正交基的线性组合,且它们的模为1:
对上式变形得到:
(初见K-L变换,通常需要先对样本进行零均值化或平移)
假设有用信息就集中在其中的q维上,那么现在我们来尝试用着q维去近似x:
近似前后样本向量的差向量为:
考查上述差向量的均方误差(MSE)为:
其中,变换矩阵 是原样本向量x的二阶矩阵(注意,这里还可以是其他矩阵,如协方差矩阵),可以与PCA中比较一下,形式大致相同,但在PCA中使用的变换矩阵是协方差矩阵;
我们的目的是最小化上述MSE,同PCA中的求解方法,得到下面拉格朗日目标函数:
对sigma求导并令其等于零,有:
看到熟悉的面孔了,哈哈,就是
的特征值,所以上面要求的均方误差就解开了神秘的面纱:
分析到这里,应该不难看出,简直跟PCA就是一对双胞胎啊,太像了有木有,其实当K-L变换的变换矩阵为协方差矩阵时,K-L变换就变成了PCA。
回到使用q维逼近样本向量x的问题上来,通过上面的分析我们知道了,如果想用q维来表示样本向量并使MSE最小化,合理的做法就是:把变换矩阵的特征值从大到小排列,然后选择前q个特征值对应的特征向量就行,此时截断误差能够保证最小,其中
中的前q个正交向量就组成了新的特征空间,而原样本向量x在这个新特征空间上的展开系数yi就组成了新的特征向量,这种变换就叫做K-L变换,对于它的其他不同的形式,主要是基于变换矩阵
的具体形式。
可以发现,得到这q个新特征与PCA中的d个主成分是类似的,当对原特征x进行中心化时,K-L变换等价于PCA;
K-L变换的几个重要性质
1.变换后得到的新特征满足零均值:
证明:
设有如下K-L变换:,其中矩阵A是变换核矩阵;
对X的变换结果Y球其均值:
2.K-L变换是一种正交变换;
3.K-L变换的新特征彼此之间不相关;
4.K-L变换的新特征向量的二阶矩阵是对角阵,且对角线元素就是原特征的二阶矩阵的特征值;
证明:
5.K-L变换是信号的最佳压缩表示,用q维新特征表示原样本特征带来的误差在所有q维正交坐标变换中最小;
6.用K-L坐标系来表示原数据,意味着熵最小,即样本的方差信息最大程度的集中在较少的维数上;
K-L变换与PCA的联系与区别
联系:
都属于正交变换;
当对原特征x进行中心化时(即变换矩阵为协方差矩阵),K-L变换等价于PCA;
PCA是离散K-L变换;
都可以实现降维变换;
区别:
K-L变换可以实现有监督的特征提取,但是PCA的变换是一种无监督的;
在含义上,K-L变换较广义,PCA较狭义;
K-L变换可以处理连续和离散情况,而PCA只针对离散情况;
K-L变换的变换矩阵可以是很多种,如二阶矩阵、协方差矩阵(总体散布矩阵)等,或者说自相关矩阵,而PCA的变换矩阵就是协方差矩阵;
但是,在一些地方就认为两者是没什么区别的,因为实际应用中不管是协方差矩阵,还是自相关矩阵,其实只是差了个对样本进行均值的平移,但是在PCA中这种平移并不会影响主成分的方向,所以PCA中也通常会先对样本平移,这样看来自相关矩阵就变成了协方差矩阵。
协方差矩阵:
自相关矩阵:
其中,是共轭转置矩阵,当为实矩阵时,等价于转置矩阵;
协方差矩阵和自相关矩阵的关系:
参考:Wiki
模式识别(Pattern Recognition)学习笔记(三十五)-- K-L变换与PCA相关推荐
- JavaScript学习笔记(十五)
JavaScript学习笔记(十五) 事件 事件是DOM(文档对象模型)的一部分.事件流就是事件发生顺序,这是IE和其他浏览器在事件支持上的主要差别. 一.事件流 1.冒泡型事件 IE上的解决方案就是 ...
- OpenCV学习笔记(十五):图像仿射变换:warpAffine(),getRotationMatrix2D()
OpenCV学习笔记(十五):图像仿射变换:warpAffine(),getRotationMatrix2D() 一个任意的仿射变换都能表示为乘以一个矩阵(线性变换)接着再加上一个向量(平移)的形式. ...
- Mr.J-- jQuery学习笔记(三十二)--jQuery属性操作源码封装
扫码看专栏 jQuery的优点 jquery是JavaScript库,能够极大地简化JavaScript编程,能够更方便的处理DOM操作和进行Ajax交互 1.轻量级 JQuery非常轻巧 2.强大的 ...
- cortex_m3_stm32嵌入式学习笔记(十五):待机唤醒实验(WK_UP外部中断)
cortex_m3_stm32嵌入式学习笔记(十五):待机唤醒实验(WK_UP外部中断) https://blog.csdn.net/qq_16255321/article/details/43086 ...
- tensorflow学习笔记(三十二):conv2d_transpose (解卷积)
tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...
- MATLAB学习笔记(十五)
MATLAB学习笔记(十五) 一.非线性方程求解与函数极值计算 1.1 非线性方程数值求解 1.2 函数极值的计算 1.2.1 无约束最优化问题 1.2.2 有约束最优化问题 一.非线性方程求解与函数 ...
- 学习笔记(十五)——镜像的知识点与注意事项
学习笔记(十五)--镜像的知识点与注意事项 一.基础知识 1.SQL Server镜像只有两种模式:高安全模式和高性能模式.两种模式的主要区别在于在事务提交后的操作. 在高性能模式下,主体服务器不需要 ...
- JavaScript学习(三十五)—拖动元素
JavaScript学习(三十五)-拖动元素 代码如下: <!DOCTYPE html> <html lang="en"><head><m ...
- Cty的Linux学习笔记(十五——wget)
Linux学习笔记--第十五篇 wget命令用于在终端中下载网络文件,格式为"wget [参数] 下载地址" 参数: -b:后台下载模式 -P:下载到指定目录 -t:最大尝试次 ...
最新文章
- springmvc 拦截器、国际化、验证
- 在 Yii框架中使用session 的笔记:
- sql over函数_SQL 高级函数
- 【HDU - 6662】Acesrc and Travel(树形dp,博弈dp)
- Sublime Merge Stage时提示系统找不到指定的文件
- UI调试--初步尝试心得总结
- Leetcode每日一题:860.lemonade-change(柠檬水找零)
- linux 下显卡优化,[转载]Linux 下 NVIDIA 显卡闭源驱动的一些优化
- Atitit 技术趋势的管理之道 attilax著 1. 技术趋势 即是新特性	3 1.1. 几个大趋势	3 1.2. 可读性大于性能趋势	3 2. 趋势来源渠道	4 2.1. 技术趋势Thought
- SlideLive:提供阶梯类型PPT模板下载
- Completed 403 FORBIDDEN 后端解决跨域问题
- 偶数提取(不用二次倒位,直接一步到位)
- JWT快速上手 | 黑马
- 网站优化推广怎么做?
- uva 10118	Free Candies
- 余额宝 算法 php,把10000元放进余额宝,一年后支付宝会给多少利息?你计算过吗?...
- 罗马音平假字复制_罗马音平假名和片假名大全
- 随机分布嵌入使短时高维序列可预测
- 用python写简易计算器_Python制作简易计算器
- 使用百度EasyDL实现森林火灾预警识别