奇异值分解(SVD)原理详解及推导

奇异值分解(SVD)原理详解及推导-矩阵相关 SVD原理以及推导 一。关于这篇文章的开始几句话        看过我之前写过文章的童鞋们会发现我写文章的水平很烂的,所以看官们见谅啊!SVD不仅是一个数学问题,在数学问题上主要涉及矩阵的计算,矩阵已经忘记的童鞋们最好去复习一下相关知识啊。说实话我还没怎么在实际开发中用过SVD,但是SVD以前我不会,原理和推导过程还是有意思的。        引用一句流行语——没时间解释了,快上车!!!! 阅读详情

奇异值分解(SVD)原理详解及推导
转载请声明出处http://blog.youkuaiyun.com/zhongkejingwang/article/details/43053513

奇异值分解(SVD)原理详解及推导

在网上看到有很多文章介绍SVD的,讲的也都不错,但是感觉还是有需要补充的,特别是关于矩阵和映射之间的对应关系。前段时间看了国外的一篇文章,叫A Singularly Valuable Decomposition The SVD of a Matrix,觉得分析的特别好,把矩阵和空间关系对应了起来。本文就参考了该文并结合矩阵的相关知识把SVD原理梳理一下。

SVD不仅是一个数学问题,在工程应用中的很多地方都有它的身影,比如前面讲的PCA,掌握了SVD原理后再去看PCA那是相当简单的,在推荐系统方面,SVD更是名声大噪,将它应用于推荐系统的是Netflix大奖的获得者Koren,可以在Google上找到他写的文章;用SVD可以很容易得到任意矩阵的满秩分解,用满秩分解可以对数据做压缩。可以用SVD来证明对任意M*N的矩阵均存在如下分解:

在这里插入图片描述
这个可以应用在数据降维压缩上!在数据相关性特别大的情况下存储X和Y矩阵比存储A矩阵占用空间更小!

在开始讲解SVD之前,先补充一点矩阵代数的相关知识。

正交矩阵

正交矩阵是在欧几里得空间里的叫法,在酉空间里叫酉矩阵,一个正交矩阵对应的变换叫正交变换,这个变换的特点是不改变向量的尺寸和向量间的夹角,那么它到底是个什么样的变换呢?看下面这张图

在这里插入图片描述

假设二维空间中的一个向量OA,它在标准坐标系也即e1、e2表示的坐标是中表示为(a,b)’(用’表示转置),现在把它用另一组坐标e1’、e2’表示为(a’,b’)’,存在矩阵U使得(a’,b’)’=U(a,b)’,则U即为正交矩阵。从图中可以看到,正交变换只是将变换向量用另一组正交基表示,在这个过程中并没有对向量做拉伸,也不改变向量的空间位置,加入对两个向量同时做正交变换,那么变换前后这两个向量的夹角显然不会改变。上面的例子只是正交变换的一个方面,即旋转变换,可以把e1’、e2’坐标系看做是e1、e2坐标系经过旋转某个斯塔角度得到,怎么样得到该旋转矩阵U呢?如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
a’和b’实际上是x在e1’和e2’轴上的投影大小,所以直接做内积可得,then
在这里插入图片描述
从图中可以看到
在这里插入图片描述在这里插入图片描述
所以
在这里插入图片描述
正交阵U行(列)向量之间都是单位正交向量。上面求得的是一个旋转矩阵,它对向量做旋转变换!也许你会有疑问:刚才不是说向量空间位置不变吗?怎么现在又说它被旋转了?对的,这两个并没有冲突,说空间位置不变是绝对的,但是坐标是相对的,加入你站在e1上看OA,随着e1旋转到e1’,看OA的位置就会改变。如下图:
在这里插入图片描述
如图,如果我选择了e1’、e2’作为新的标准坐标系,那么在新坐标系中OA(原标准坐标系的表示)就变成了OA’,这样看来就好像坐标系不动,把OA往顺时针方向旋转了“斯塔”角度,这个操作实现起来很简单:将变换后的向量坐标仍然表示在当前坐标系中。

旋转变换是正交变换的一个方面,这个挺有用的,比如在开发中需要实现某种旋转效果,直接可以用旋转变换实现。正交变换的另一个方面是反射变换,也即e1’的方向与图中方向相反,这个不再讨论。

总结:正交矩阵的行(列)向量都是两两正交的单位向量,正交矩阵对应的变换为正交变换,它有两种表现:旋转和反射。正交矩阵将标准正交基映射为标准正交基(即图中从e1、e2到e1’、e2’)

特征值分解——EVD

在讨论SVD之前先讨论矩阵的特征值分解(EVD),在这里,选择一种特殊的矩阵——对称阵(酉空间中叫hermite矩阵即厄米阵)。对称阵有一个很优美的性质:它总能相似对角化,对称阵不同特征值对应的特征向量两两正交。一个矩阵能相似对角化即说明其特征子空间即为其列空间,若不能对角化则其特征子空间为列空间的子空间。现在假设存在mxm的满秩对称矩阵A,它有m个不同的特征值,设特征值为

在这里插入图片描述
对应的单位特征向量为
在这里插入图片描述
则有
在这里插入图片描述
进而
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
所以可得到A的特征值分解(由于对称阵特征向量两两正交,所以U为正交阵,正交阵的逆矩阵等于其转置)
在这里插入图片描述
这里假设A有m个不同的特征值,实际上,只要A是对称阵其均有如上分解。

矩阵A分解了,相应的,其对应的映射也分解为三个映射。现在假设有x向量,用A将其变换到A的列空间中,那么首先由U’先对x做变换:
在这里插入图片描述
U是正交阵U’也是正交阵,所以U’对x的变换是正交变换,它将x用新的坐标系来表示,这个坐标系就是A的所有正交的特征向量构成的坐标系。比如将x用A的所有特征向量表示为:
在这里插入图片描述
则通过第一个变换就可以把x表示为[a1 a2 … am]’:
在这里插入图片描述
紧接着,在新的坐标系表示下,由中间那个对角矩阵对新的向量坐标换,其结果就是将向量往各个轴方向拉伸或压缩:
在这里插入图片描述
从上图可以看到,如果A不是满秩的话,那么就是说对角阵的对角线上元素存在0,这时候就会导致维度退化,这样就会使映射后的向量落入m维空间的子空间中。

最后一个变换就是U对拉伸或压缩后的向量做变换,由于U和U’是互为逆矩阵,所以U变换是U’变换的逆变换。

因此,从对称阵的分解对应的映射分解来分析一个矩阵的变换特点是非常直观的。假设对称阵特征值全为1那么显然它就是单位阵,如果对称阵的特征值有个别是0其他全是1,那么它就是一个正交投影矩阵,它将m维向量投影到它的列空间中。

根据对称阵A的特征向量,如果A是2*2的,那么就可以在二维平面中找到这样一个矩形,是的这个矩形经过A变换后还是矩形:
在这里插入图片描述
这个矩形的选择就是让其边都落在A的特征向量方向上,如果选择其他矩形的话变换后的图形就不是矩形了!

奇异值分解——SVD

上面的特征值分解的A矩阵是对称阵,根据EVD可以找到一个(超)矩形使得变换后还是(超)矩形,也即A可以将一组正交基映射到另一组正交基!那么现在来分析:对任意M*N的矩阵,能否找到一组正交基使得经过它变换后还是正交基?答案是肯定的,它就是SVD分解的精髓所在。

现在假设存在M*N矩阵A,事实上,A矩阵将n维空间中的向量映射到k(k<=m)维空间中,k=Rank(A)。现在的目标就是:在n维空间中找一组正交基,使得经过A变换后还是正交的。假设已经找到这样一组正交基:

在这里插入图片描述
则A矩阵将这组基映射为:
在这里插入图片描述
如果要使他们两两正交,即
在这里插入图片描述
根据假设,存在
在这里插入图片描述
所以如果正交基v选择为A’A的特征向量的话,由于A’A是对称阵,v之间两两正交,那么
在这里插入图片描述
这样就找到了正交基使其映射后还是正交基了,现在,将映射后的正交基单位化:

因为

在这里插入图片描述
所以有
在这里插入图片描述
所以取单位向量
在这里插入图片描述
由此可得
在这里插入图片描述
当k < i <= m时,对u1,u2,…,uk进行扩展u(k+1),…,um,使得u1,u2,…,um为m维空间中的一组正交基,即
在这里插入图片描述
则可得到
在这里插入图片描述
继而可以得到A矩阵的奇异值分解:
在这里插入图片描述

在这里插入图片描述
现在可以来对A矩阵的映射过程进行分析了:如果在n维空间中找到一个(超)矩形,其边都落在A’A的特征向量的方向上,那么经过A变换后的形状仍然为(超)矩形!

vi为A’A的特征向量,称为A的右奇异向量,ui=Avi实际上为AA’的特征向量,称为A的左奇异向量。下面利用SVD证明文章一开始的满秩分解:
在这里插入图片描述
利用矩阵分块乘法展开得:
在这里插入图片描述
可以看到第二项为0,有
在这里插入图片描述
令
在这里插入图片描述
在这里插入图片描述
则A=XY即是A的满秩分解。

整个SVD的推导过程就是这样,后面会介绍SVD在推荐系统中的具体应用,也就是复现Koren论文中的算法以及其推导过程。

参考文献:A Singularly Valuable Decomposition The SVD of a Matrix

以上内容编辑:郭南南

奇异值分解(SVD)的原理详解及推导 1. 写在前面 最近整理推荐系统模型的时候, 第二个模型打算整理一下隐语义模型, 这里面绕不开一种思想就是矩阵分解, 而作为矩阵分解的经典方法SVD感觉这次有必要学学了, SVD不仅是一个数学问题,在工程应用中的很多地方都有它的身影,比如我之前在【白话机器学习篇】说到了PCA, 那是一种经典的降维方式, 而SVD同样的也可以用于降维, 并且掌握了SVD原理后再去看PCA那是相当简单的,在推荐系统方面,SVD更是名声大噪,在2006年, Koren将它应用于推荐系统并获得了Netflix大奖, 因此在推荐系 阅读详情

相关推荐

NX二次开发编译时dll自动数字签名及拷贝

在UG5.0开始,所有基于UG二次开发的DLL都要“签名”后才能被客户端上正版的NX调用。

菜鸟爱飞不飞的博客 2686

奇异值分解(SVD)原理及详解

转载请声明出处http://blog.youkuaiyun.com/zhongkejingwang/article/details/43053513     在网上看到有很多文章介绍SVD的,讲的也都不错,但是感觉还是有需要补充的,特别是关于矩阵和映射之间的对应关系。前段时间看了国外的一篇文章,叫A Singularly Valuable Decomposition The SVD of a Matrix,觉得

Miracle.Zhao的博客 1823

Python广度优先搜索BFS - 蓝桥13届省赛污染海域

请问这片N * M海域中有几块是没被污染的独立海域(没被污染的独立海域是指该块海域上下左右被已污染的海域包围,且N * M以外的海域都为已被污染的海域)有一片海域划分为N * M个方格,其中有些海域已被污染(用0表示),有些海域没被污染(用1表示)。第二行开始输入N行,每行M个数字(数字只能为1或者0,1表示没被污染的海域,0表示已被污染的海域)这块4 * 5的海域,有3块海域(绿色)没被污染,因为每一块的上下左右都被污染的海域包围。输出一个整数,表示N * M的海域中有几块是没被污染的独立海域。

m0_69865359的博客 271

SVD奇异值分解简述

SVD奇异值分解简述 BY:YANG LIU 1.什么是奇异值分解 奇异值分解(Singular Value Decomposition)是线性代数中一种重要的矩阵分解,奇异值分解则是特征分解在任意矩阵上的推广。奇异值分解在某些方面与对称矩阵或Hermite矩阵基于特征向量的对角化类似。谱分析的基础是对称阵特征向量的分解,而奇异值分解则是谱分析理论在任意矩阵上的推广。 对称矩阵(Symmetric Matrices)是指以主对角线为对称轴,各元素对应相等的矩阵。 厄米特矩阵(Hermitian Matrix

a3012203250的博客 6940

Brainstorm简单分析近红外数据(fNIRS)(一)

Brainstorm分析fNIRS数据

weixin_43604817的博客 1352

树莓派 SPI操作

扩展板配备一款0.96inch,128864分辨率的oled显示屏,通过SPI控制,先上显示效果图。由于程序过长,在这里我就不把代码全部贴出来了,只是简单讲解一下spi的操作函数。管脚如下如所有,左边方框的管脚分别为MOSI MISO SCLK,左边CE0,CE1为两个片选管脚,分别对应上图中的spidev0.0,spidev0.1两个设备。下载spidev库,复制到树莓派,并行运行如下命令解压安装。spi设备,此处设备为/dev/spi-decv0.0。在/dev路径下面,我们可以发现两个spi设备。

weixin_46529898的博客 916

SVD的应用举例与矩阵求伪逆

奇异值分解SVD无论是在理论、在计算都有很多实际的用途,特别地,在机器学习中SVD亦有重要应用。本文主要结合一些具体的例子来讨论SVD的一些应用,并引出关于矩阵求伪逆的概念

白马负金羁 1万+

【硬件工程师面经整理18_Smith圆图】

若文中任何内容侵犯了您的合法权益,请相关权益人及时与我联系,我将立即进行核实并采取适当措施,包括但不限于删除相关内容或更新文章以消除影响。**在Smith圆图上,源阻抗表示为圆心,而负载阻抗表示为圆图上的一个点。具体来说,通过将负载阻抗在Smith圆图上移动到特定位置,使其与传输线特性阻抗形成纯电阻或纯电抗的组合,从而实现匹配。例如,反射系数表示为Smith圆图上的一个点,而驻波比则表示为圆图上两个点之间的距离。Smith圆图是用于阻抗匹配和网络分析的工具,它是一种将复阻抗表示为坐标的图形。

LeeYLong的博客 653

矩阵分解 SVD分解

1.前言 一般提到特征值分解(eigenvalue decomposition)或者奇异值分解(singular value decomposition),大多数同学脑海里的第一反应就是一大堆矩阵以及数学计算方法。确实,学校学习阶段,不管是学线性代数或者矩阵分析,对于这部分内容,或者说绝大部分内容,老师一上来都是吧啦吧啦给你一堆定理推论或者公理,然后就是哗啦哗啦一堆公式出来,告诉你怎么计算。

billbliss的专栏 2万+

一文掌握 MongoDB 详细安装与配置(Windows / Linux / macOS 全平台)

本文详细介绍了MongoDB社区版7.0+在Windows、Linux和macOS三大操作系统上的完整安装、配置与安全加固流程。主要内容包括:各平台推荐安装方式(Windows使用MSI安装包、Linux通过官方仓库、macOS通过Homebrew)、基本配置参数说明、服务启动方法以及关键安全措施(如创建管理员用户和启用身份验证)。文章还提供了系统最低要求、下载地址、数据目录设置建议以及生产环境使用注意事项,适合开发、测试及生产环境部署参考。

数据知道的博客 6718

【数据分析】比较SparCC、Pearson和Spearman相关性估计方法在合成组学数据上的表现

【数据分析】比较SparCC、Pearson和Spearman相关性估计方法在合成组学数据上的表现

专注生信领域 664

奇异值分解与矩阵逆:算法实现与性能比较

1.背景介绍 奇异值分解(Singular Value Decomposition, SVD)和矩阵逆(Matrix Inverse)是线性代数和数值分析中的两个重要概念,它们在机器学习、数据挖掘、图像处理等领域具有广泛的应用。在这篇文章中,我们将深入探讨这两个概念的定义、性质、算法实现以及性能比较。 1.1 奇异值分解(SVD) 奇异值分解是对矩阵A进行分解的一种方法,可以表示为三个矩阵的...

AI天才研究院 1544

从零开始学 PyTorch 7天路线图(完整可运行代码版)

本文提供了5天PyTorch入门教程的完整代码,涵盖从基础到实战的核心内容。Day1测试环境并介绍张量基础;Day2讲解常用张量操作;Day3演示自动求导机制;Day4实现完整线性回归模型;Day5构建MNIST手写数字识别全连接网络。所有代码可直接运行,包含GPU检测、梯度计算、模型训练和可视化等关键环节,帮助新手快速掌握PyTorch核心概念和典型应用场景。

IT老农民的博客 315

ICP算法学习分享2:SVD奇异值分解原理推导

其中 U 是一个 m×m 的矩阵, Σ 是一个 m×n 的矩阵,除了主对角线上的元素以外全为0,主对角线上的每个元素都称为奇异值, V 是一个 n×n 的矩阵。对于奇异值,它跟我们特征分解中的特征值类似,在奇异值矩阵中也是按照从大到小排列,而且奇异值的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例。其中 A 是一个 n×n 矩阵, x 是一个 n 维向量,则 λ 是矩阵 A 的一个特征值,而 x 是矩阵 A 的特征值 λ 所对应的特征向量。

codeiceve的博客 242

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

奇异值分解(SVD)原理详解及推导 

原文地址:奇异值分解(SVD)原理详解及推导(转)作者:一片叶子 转载出处http://blog.youkuaiyun.com/zhongkejingwang/article/details/43053513 在网上看到有很多文章介绍SVD的,讲的也都不错,但是感觉还是有需要补充的,特别是关于矩阵和映射之间的对应关系。前段时间看了国外的一篇文章,叫A Singularly Valuable...

a412841321的专栏 279

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

奇异值分解(SVD)原理详解及推导 (转)

转载请声明出处http://blog.youkuaiyun.com/zhongkejingwang/article/details/43053513     在网上看到有很多文章介绍SVD的,讲的也都不错,但是感觉还是有需要补充的,特别是关于矩阵和映射之间的对应关系。前段时间看了国外的一篇文章,叫A Singularly Valuable Decomposition The SVD of a Matri

u012797056的博客 3276

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

奇异值分解(SVD)原理详解及推导(转载)

在网上看到有很多文章介绍SVD的,讲的也都不错,但是感觉还是有需要补充的,特别是关于矩阵和映射之间的对应关系。前段时间看了国外的一篇文章,叫A Singularly Valuable Decomposition The SVD of a Matrix,觉得分析的特别好,把矩阵和空间关系对应了起来。本文就参考了该文并结合矩阵的相关知识把SVD原理梳理一下。   SVD不仅是一个数学问题,在工程应用中...

洋石灰儿的博客 490
上一篇: 弗罗贝尼乌斯范数
下一篇: 变量分裂法(Variable Splitting)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值