自适应滤波:奇异值分解SVD
作者:桂。
时间:2017-04-03 19:41:26
链接:http://www.cnblogs.com/xingshansi/p/6661230.html
【读书笔记10】
前言
广义逆矩阵可以借助SVD进行求解,这在上一篇文章已经分析。本文主要对SVD进行梳理,主要包括:
1)特征向量意义;
2)特征值分解与SVD;
3)PCA与SVD;
内容为自己的学习记录,其中多有借鉴他人之处,最后一并给出链接。
一、特征向量
第一反应是:啥是特征向量?为什么好好的一个矩阵,要拆成这个模样?先看定义
$Av = \lambda v$
矩阵对应线性变换,可以看到特征向量是这样:线性变换后,只伸缩,既不平移、也不旋转。如计算$A^5v$,可以直接用$\lambda^5 v$,省去多少计算?
维基百科有一张图很直观:

她的微笑是不是有熟悉的味道o(^▽^)o?不过这里不解读微笑,看红线→:矩阵线性变换后,方向也发生了改变,所以它不是特征向量; 蓝线→:线性变换之后,方向不变,所以是特征向量。由此也可见,特征向量是一个族,而不是独一无二的。
二、奇异值分解
A-特征值分解(EVD,Eigenvalues Decomposition)
这里分析酉矩阵,假设矩阵$\bf{B}$具有${\bf{B}} = {\bf{A}}{{\bf{A}}^H}$的形式,根据特征值定义:

根据酉矩阵特性:
${\bf{B}} = {\bf{U}}\Lambda {{\bf{U}}^H}$
这里仍然可以写成求和的形式,这也是显然的:酉矩阵张成的空间,就是每一个维度成分的叠加嘛。
B-奇异值分解(SVD,Singularly Valuable Decomposition)
根据矩阵变换特性:

其中$\bf{A}$是$m$x$n$的矩阵,$\bf{U_o}$为$m$x$m$,$\bf{V_o}$为$n$x$n$定义$\bf{B}$,并借助EVD进行分析:

因为是酉矩阵,从而${{\bf{U}}_o} = {\bf{U}}$。${\bf{\Sigma }}$为$m$x$n$,且,${s_i} = \sqrt {{\lambda _i}}, i=1,2,...min(m,n)$,至此完成$\bf{U_o}$和${\bf{\Sigma }}$的求解,还剩下$\bf{V_o}$。
对于${\bf{V_o}}$则有:
${\bf{AV_o}} = {\bf{U\Sigma }}$
即${{\bf{U}}^H}{\bf{A}} = {\bf{\Sigma }}{{\bf{V_o}}^H}$,因为有对角阵,转化为向量运算很方便,对于缺失的部分可以借助施密特正交化进行补全。
至此完成SVD分解。
总结SVD思路:
步骤一:利用$AA^H$求解矩阵$U$,并构造$S$;
步骤二:求解$V_o$,并借助施密特正交化构造完整的$V$。
特征值求解、施密特正交化,任何一本线性代数应该都有,所以这里假设特征值分解EVD、施密特正交化直接调用,给出SVD求解的代码(与svd指令等价):
a = [ 1 7 5
1 6 4
2 7 8
10 5 4]';
[E,D] = eig(a*a');
%预处理
[val,pos] = sort(diag(D),'descend');
E = E(:,pos);
D = diag(val);
mina = min(size(a));
%SVD分解
U = E; %完成U求解
S = zeros(size(a));
S(1:mina,1:mina) = diag(sqrt(val(1:mina)));%完成S求解
Vo = [U(:,1:mina)'*a]'./repmat(diag(S)',size(a,2),1);%求解Vo
V = [Vo null(Vo')];%完成V求解,补全正交基,可借助施密特正交化
三、PCA与SVD
根据上文分析,可以看出SVD或者EVD都可以分解出特征值以及特征向量。
再来回顾以前PCA一文的求解思路:
- 步骤一:数据中心化——去均值,根据需要,有的需要归一化——Normalized;
- 步骤二:求解协方差矩阵;
- 步骤三:利用特征值分解/奇异值分解 求解特征值以及特征向量;
- 步骤四:利用特征向量构造投影矩阵;
- 步骤五:利用投影矩阵,得出降维的数据。
PCA的核心就是根据特征值的大小/总的比例 确定对应特征向量的个数,从而构造投影矩阵。简而言之:有了特征值、特征向量,也就相当于有了PCA。
而EVD/SVD是得到特征值、特征向量的方式,可以说EVD/SVD是PCA的基础,PCA是二者的应用方式。
自适应滤波:奇异值分解SVD的更多相关文章
- 矩阵奇异值分解(SVD)及其应用
机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用(好文) [简化数据]奇异值分解(SVD) <数学之美> 第15章 矩阵运算和文本处理中的两个分类问题
- 转载:奇异值分解(SVD) --- 线性变换几何意义(下)
本文转载自他人: PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD的几何意义.能在有限的篇幅把这个问题讲解的如此清晰,实属不易.原文举了一个简单的图像处理 ...
- 特征值分解与奇异值分解(SVD)
1.使用QR分解获取特征值和特征向量 将矩阵A进行QR分解,得到正规正交矩阵Q与上三角形矩阵R.由上可知Ak为相似矩阵,当k增加时,Ak收敛到上三角矩阵,特征值为对角项. 2.奇异值分解(SVD) 其 ...
- 奇异值分解(SVD) --- 几何意义
原文:http://blog.sciencenet.cn/blog-696950-699432.html PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD ...
- 自适应滤波:最小均方误差滤波器(LMS、NLMS)
作者:桂. 时间:2017-04-02 08:08:31 链接:http://www.cnblogs.com/xingshansi/p/6658203.html 声明:欢迎被转载,不过记得注明出处哦 ...
- [机器学习笔记]奇异值分解SVD简介及其在推荐系统中的简单应用
本文先从几何意义上对奇异值分解SVD进行简单介绍,然后分析了特征值分解与奇异值分解的区别与联系,最后用python实现将SVD应用于推荐系统. 1.SVD详解 SVD(singular value d ...
- 【转载】奇异值分解(SVD)计算过程示例
原文链接:奇异值分解(SVD)的计算方法 奇异值分解是线性代数中一种重要的矩阵分解方法,这篇文章通过一个具体的例子来说明如何对一个矩阵A进行奇异值分解. 首先,对于一个m*n的矩阵,如果存在正交矩阵U ...
- 一步步教你轻松学奇异值分解SVD降维算法
一步步教你轻松学奇异值分解SVD降维算法 (白宁超 2018年10月24日09:04:56 ) 摘要:奇异值分解(singular value decomposition)是线性代数中一种重要的矩阵分 ...
- 机器学习实战(Machine Learning in Action)学习笔记————10.奇异值分解(SVD)原理、基于协同过滤的推荐引擎、数据降维
关键字:SVD.奇异值分解.降维.基于协同过滤的推荐引擎作者:米仓山下时间:2018-11-3机器学习实战(Machine Learning in Action,@author: Peter Harr ...
- 自适应滤波:维纳滤波器——FIR及IIR设计
作者:桂. 时间:2017-03-23 06:28:45 链接:http://www.cnblogs.com/xingshansi/p/6603263.html [读书笔记02] 前言 仍然是西蒙. ...
随机推荐
- Docker网络代理设置
背景 在一些实验室环境,服务器没有直接连接外网的权限,需要通过网络代理.我们通常会将网络代理直接配置在/etc/environment./etc/profile之类的配置文件中,这对于大部分操作都是可 ...
- HTTP笔记(一)
最近在看<图解HTTP>.全书以图解的形式生动形象的讲解了HTTP协议.本文是根据该书整理的笔记,方便以后回顾. HTTP的诞生 HTTP又称超文本传输协议(HTTP,HyperText ...
- 动态添加删除网卡 - 每天5分钟玩转 OpenStack(156)
这是 OpenStack 实施经验分享系列的第 6 篇. 在项目实施过程中,经常会有添加删除网卡的需求.比如一个运行数据库的 instance,初始只有一个网卡,数据库服务和备份共用这块网卡,后来为提 ...
- 【转】SQLState详解
根据 X/Open 和 SQL Access Group SQL CAE 规范 (1992) 所进行的定义,SQLERROR 返回 SQLSTATE 值.SQLSTATE 值是包含五个字符的字符串 . ...
- 数据库读写分离Amoeba
1.理解读写分离的原理 Amoeba(变形虫)项目,该开源框架于2008发布一款Amoeba for mysql软件,该软件致力于mysql的分布式数据库前端代理层,主要的作用是应用服务访问mysql ...
- Java Calendar.set 方法设置时间的问题
因项目需要,需要遍历一年中的其中几个月,获得每个月的用户数量. 变量有:开始时间--startDate,结束时间--endDate. 逻辑很简单:获取到开始时间的月份和结束时间的月份,然后得到月份差 ...
- 地图定位CoreLocation框架,地理位置编码与反编码
在现代互联网时代,越来越多的应用,都用到了地图定位功能,在iOS开发中,想要加入这种功能,必须基于两个框架进行开发: 1.Map Kit:用于显示地图, 2.CoreLocation:用于显示地理位置 ...
- Linux tomcat设置ip地址直接访问,tomcat设置ip地址直接访问,tomcat绑定ip地址
Linux tomcat设置ip地址直接访问,tomcat设置ip地址直接访问,tomcat绑定ip地址 >>>>>>>>>>>> ...
- 第23篇 js快速学习知识
前面说了js的一些高级方面的基础知识,这些都是比较容易出错的和比较难理解的东西,除了这些之外其它的知识都比较简单了,基础学好了,扩展起来就是小意思.今天说说js方面可以快速学习和入门的知识. 1.闭包 ...
- 《深入理解Java虚拟机》学习笔记之类加载
之前在学习ASM时做了一篇笔记<Java字节码操纵框架ASM小试>,笔记里对类文件结构做了简介,这里我们来回顾一下. Class类文件结构 在Java发展之初设计者们发布规范文档时就刻意把 ...