自适应滤波:奇异值分解SVD

时间:2022-08-27 22:33:37

作者:桂。

时间: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$,省去多少计算?

*有一张图很直观:

自适应滤波:奇异值分解SVD

她的微笑是不是有熟悉的味道o(^▽^)o?不过这里不解读微笑,看红线→:矩阵线性变换后,方向也发生了改变,所以它不是特征向量; 蓝线→:线性变换之后,方向不变,所以是特征向量。由此也可见,特征向量是一个族,而不是独一无二的。

二、奇异值分解

  A-特征值分解(EVD,Eigenvalues Decomposition)

这里分析酉矩阵,假设矩阵$\bf{B}$具有${\bf{B}} = {\bf{A}}{{\bf{A}}^H}$的形式,根据特征值定义:

自适应滤波:奇异值分解SVD

根据酉矩阵特性:

${\bf{B}} = {\bf{U}}\Lambda {{\bf{U}}^H}$

这里仍然可以写成求和的形式,这也是显然的:酉矩阵张成的空间,就是每一个维度成分的叠加嘛。

  B-奇异值分解(SVD,Singularly Valuable Decomposition)

根据矩阵变换特性:

自适应滤波:奇异值分解SVD

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

自适应滤波:奇异值分解SVD

因为是酉矩阵,从而${{\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的更多相关文章

  1. 矩阵奇异值分解(SVD)及其应用

    机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用(好文) [简化数据]奇异值分解(SVD) <数学之美> 第15章 矩阵运算和文本处理中的两个分类问题

  2. 转载:奇异值分解&lpar;SVD&rpar; --- 线性变换几何意义(下)

    本文转载自他人: PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD的几何意义.能在有限的篇幅把这个问题讲解的如此清晰,实属不易.原文举了一个简单的图像处理 ...

  3. 特征值分解与奇异值分解&lpar;SVD&rpar;

    1.使用QR分解获取特征值和特征向量 将矩阵A进行QR分解,得到正规正交矩阵Q与上三角形矩阵R.由上可知Ak为相似矩阵,当k增加时,Ak收敛到上三角矩阵,特征值为对角项. 2.奇异值分解(SVD) 其 ...

  4. 奇异值分解&lpar;SVD&rpar; --- 几何意义

    原文:http://blog.sciencenet.cn/blog-696950-699432.html PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD ...

  5. 自适应滤波:最小均方误差滤波器(LMS、NLMS)

    作者:桂. 时间:2017-04-02  08:08:31 链接:http://www.cnblogs.com/xingshansi/p/6658203.html 声明:欢迎被转载,不过记得注明出处哦 ...

  6. &lbrack;机器学习笔记&rsqb;奇异值分解SVD简介及其在推荐系统中的简单应用

    本文先从几何意义上对奇异值分解SVD进行简单介绍,然后分析了特征值分解与奇异值分解的区别与联系,最后用python实现将SVD应用于推荐系统. 1.SVD详解 SVD(singular value d ...

  7. 【转载】奇异值分解&lpar;SVD&rpar;计算过程示例

    原文链接:奇异值分解(SVD)的计算方法 奇异值分解是线性代数中一种重要的矩阵分解方法,这篇文章通过一个具体的例子来说明如何对一个矩阵A进行奇异值分解. 首先,对于一个m*n的矩阵,如果存在正交矩阵U ...

  8. 一步步教你轻松学奇异值分解SVD降维算法

    一步步教你轻松学奇异值分解SVD降维算法 (白宁超 2018年10月24日09:04:56 ) 摘要:奇异值分解(singular value decomposition)是线性代数中一种重要的矩阵分 ...

  9. 机器学习实战(Machine Learning in Action)学习笔记————10&period;奇异值分解&lpar;SVD&rpar;原理、基于协同过滤的推荐引擎、数据降维

    关键字:SVD.奇异值分解.降维.基于协同过滤的推荐引擎作者:米仓山下时间:2018-11-3机器学习实战(Machine Learning in Action,@author: Peter Harr ...

  10. 自适应滤波:维纳滤波器——FIR及IIR设计

    作者:桂. 时间:2017-03-23  06:28:45 链接:http://www.cnblogs.com/xingshansi/p/6603263.html [读书笔记02] 前言 仍然是西蒙. ...

随机推荐

  1. 比较 http连接 vs socket连接

    http连接 :短连接,客户端,服务器三次握手建立连接,服务器响应返回信息,连接关闭,一次性的socket连接:长连接,客户端,服务器三次握手建立连接不中断(通过ip地址端口号定位进程)及时通讯,客户 ...

  2. 500-internal server error 错误提示到配置文件的某行,并显示乱码

    UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码.UTF-8用1到4个字节编码UNICODE字符.用在网页上可 ...

  3. Extract QQ from iPhone and analyze it

    QQ is one of the most popular chat App in the world. Now let me show you how to extract QQ from iPho ...

  4. Delphi的几个跨平台小游戏例子。

    Embarcadero开源了几个FireMonkey的小游戏,支持Windows, Android,Ios, MacOS等. 源码地址: https://github.com/EmbarcaderoP ...

  5. python 校招信息爬虫程序

    发现一个爬虫程序,正在学习中: https://github.com/lizherui/spider_python

  6. Android系统APN配置具体解释

     Android 系统APN配置具体解释 这些天一直在调系统原生的Settings.apk里面APN配置的问题.在设置里面手动添加了APN配置选项.可是在界面上还是看不到.所以跟了下代码.原以为就是简 ...

  7. 如何处理JS,css与smarty标签的冲突

    smarty的默认标记符是大括号:{}, 假如我们页面上有JS且定义了函数或者对象,或者有CSS定义了样式,就会出现大括号, smary引擎就会把这些大括号当作smarty语法来解释, 很明显,这些C ...

  8. 安装 VS2017 的正确姿势

    自从装了长城带宽,我的肠子就变成青色的了. 国内的网络环境,真的是有很大的不同,有的人装 VS 的时候,号称满速,有的人(其实就是我)要等它下载很久,还告诉我有个组件没有安装成功.很久很久以前,VS ...

  9. Git版本库创建(包含文件权限设置 Linux环境下)

    确保git服务已安装成功,如果没有安装git服务查看:Git源码安装 Linux指定安装目录 1.创建git用户,并设置密码.并禁止git用户通过shell登录服务器(注意如果需要安装gitolite ...

  10. 源码编译安装lnmp环境

    一.源码编译安装步骤 首先说明源码安装的好处   速度快,可自定义路径 主要有三步:1.配置 进入源码安装包  ./configure --prefix=/uer/local/nginx  可指定参数 ...