奇异值分解(SVD)

1 奇异值分解(SVD)简介

Beltrami 和 Jordan 被认为是奇异值分解(Singular Value Decomposition,SVD)的共同开创者,二人于19世纪70年代相继提出了相关理论。奇异值分解主要解决的问题是数据降维。在高维度的数据中,数据往往是稀疏的,或者数据往往由几个重要的成分表达了大部分信息。因此,通过降维可以很好地化繁为简的解决问题,也可以降低数据的存储成本和运算成本。

奇异值分解有着比较广泛的应用,在图像处理、推荐系统中都有着比较重要的应用。

2 奇异值分解的基本原理

2.1 特征值与特征向量

对于eq?n阶方阵eq?A,若存在非零向量eq?%5Cbeta和非负值eq?%5Clambda,使得eq?A%5Cbeta%20%3D%5Clambda%20%5Cbeta,则eq?%5Clambda称为线性变换eq?A的特征值,eq?%5Cbeta称为特征值eq?%5Clambda的特征向量。

若方阵eq?A的所有特征值为eq?%5Clambda%20_%7B1%7D%2C%5Clambda%20_%7B2%7D%2C...%2C%5Clambda%20_%7Bn%7D,对应的一组特征向量为eq?%5Cbeta%20_%7B1%7D%2C%5Cbeta%20_%7B2%7D%2C...%2C%5Cbeta%20_%7Bn%7D

eq?S%3D%5Cbegin%7Bbmatrix%7D%20%5Clambda%20_%7B1%7D%20%26%20%26%20%26%20%5C%5C%20%26%20%5Clambda%20_%7B2%7D%20%26%20%26%20%5C%5C%20%26%20%26%20...%20%26%20%5C%5C%20%26%20%26%20%26%20%5Clambda%20_%7Bn%7D%20%5Cend%7Bbmatrix%7Deq?B%3D%5Cleft%20%28%5Cbeta%20_%7B1%7D%2C%5Cbeta%20_%7B2%7D%2C...%2C%5Cbeta%20_%7Bn%7D%20%5Cright%20%29

则有eq?AB%3DBS

eq?A为实对称阵时,存在单位正交向量eq?%5Cbeta%20_%7B1%7D%2C%5Cbeta%20_%7B2%7D%2C...%2C%5Cbeta%20_%7Bn%7D构成单位正交阵eq?B%3D%5Cleft%20%28%5Cbeta%20_%7B1%7D%2C%5Cbeta%20_%7B2%7D%2C...%2C%5Cbeta%20_%7Bn%7D%20%5Cright%20%29。对于正交阵eq?B%5E%7B-1%7D%3DB%5E%7BT%7D,从而eq?ABB%5E%7B-1%7D%3DBSB%5E%7B-1%7D%5CRightarrow%20A%3DBSB%5E%7B-1%7D%3DBSB%5E%7BT%7D

上式实际上是实现了将实对称阵eq?A对角化成eq?S

2.2 矩阵的秩

矩阵eq?A任意选取的行和列的形成eq?k阶矩阵,其行列式称为矩阵eq?Aeq?k阶子式。矩阵eq?A的不为零的子式的最大阶数称为矩阵eq?A的秩。

对于eq?m%5Ctimes%20n矩阵eq?A,其秩记为eq?rank%28A%29%3Dr

对于方阵,其秩等于大于0的特征值的个数。

这里的eq?r也等于后文中大于0的奇异值的个数。

2.3 矩阵分解

2.3.1 矩阵分解的概念

任意eq?m%5Ctimes%20n矩阵eq?A都可分解为三个矩阵的乘积,即eq?A%3DUSV%5E%7BT%7D    ... (1)式。

其中eq?Ueq?m%5Ctimes%20m的正交矩阵,eq?Seq?m%5Ctimes%20n的非负对角阵,eq?Veq?n%5Ctimes%20n的正交矩阵。eq?U被称为左奇异向量,eq?S称为奇异值,eq?V称为右奇异向量。

其中eq?U%3D%5Cbegin%7Bbmatrix%7D%20u_%7B11%7D%20%26%20u_%7B21%7D%20%26%20...%26u_%7Bm1%7D%20%5C%5C%20u_%7B12%7D%26%20u_%7B22%7D%20%26...%20%26u_%7Bm2%7D%20%5C%5C%20.%26%20.%20%26%20...%26%20.%5C%5C%20u_%7B1m%7D%26%20u_%7B2m%7D%20%26...%20%26%20u_%7Bmm%7D%20%5Cend%7Bbmatrix%7D_%7Bm%5Ctimes%20m%7Deq?S%3D%5Cbegin%7Bbmatrix%7D%20%5C%20%5Csigma%20_%7B1%7D%20%26%20%26%20%26%20%5C%5C%20%26%20...%20%26%20%26%20%5C%5C%20%26%20%26%20%5Csigma%20_%7Br%7D%26%20%5C%5C%20%26%20%26%20...%26%200%5Cend%7Bbmatrix%7D_%7Bm%5Ctimes%20n%7Deq?V%5E%7BT%7D%3D%5Cbegin%7Bbmatrix%7D%20v_%7B11%7D%20%26%20v_%7B12%7D%20%26%20...%26v_%7B1n%7D%20%5C%5C%20v_%7B21%7D%26%20v_%7B22%7D%20%26...%20%26v_%7B2n%7D%20%5C%5C%20.%26%20.%20%26%20...%26%20.%5C%5C%20v_%7Bn1%7D%26%20v_%7Bn2%7D%20%26...%20%26%20v_%7Bnn%7D%20%5Cend%7Bbmatrix%7D_%7Bn%5Ctimes%20n%7D,并且eq?%5Csigma%20_%7B1%7D%5Cgeqslant%20%5Csigma%20_%7B2%7D%5Cgeqslant%20...%5Csigma%20_%7Br%7D%5Cgeqslant%200

当如上进行矩阵分解后,我们选择奇异值eq?%5Csigma%20_%7B1%7D%2C%5Csigma%20_%7B2%7D%2C...%2C%5Csigma%20_%7Br%7D中的前eq?k个奇异值eq?%5Csigma%20_%7B1%7D%2C%5Csigma%20_%7B2%7D%2C...%2C%5Csigma%20_%7Bk%7D,对应的eq?U%2CV选择前eq?k列的元素,得到的eq?U_%7Bm%5Ctimes%20k%7DS_%7Bk%5Ctimes%20k%7DV_%7Bn%5Ctimes%20k%7D%5E%7BT%7D称为矩阵eq?A的截断奇异值分解。

截断奇异值分解可以看作对数据eq?A的降维,即eq?A%5Capprox%20U_%7Bm%5Ctimes%20k%7DS_%7Bk%5Ctimes%20k%7DV_%7Bn%5Ctimes%20k%7D%5E%7BT%7D

2.3.2 奇异值分解的推导

对于矩阵eq?A的奇异值分解,假设存在满足前述条件的eq?U%2CS%2CV,使得eq?A%3DUSV%5E%7BT%7D则有

eq?A%5E%7BT%7DA%3D%28USV%5E%7BT%7D%29%5E%7BT%7DUSV%5E%7BT%7D%3DVS%5E%7BT%7DU%5E%7BT%7DUSV%5E%7BT%7D%3DVS%5E%7BT%7DSV%5E%7BT%7D

由于eq?S为对角阵,因此eq?S%5E%7BT%7D 仍为对角阵,eq?S%5E%7BT%7DSeq?n%5Ctimes%20n阶对角阵。

eq?S%5E%7BT%7DS%3D%5Cbegin%7Bbmatrix%7D%20%5Csigma%20_%7B1%7D%5E%7B2%7D%20%26%20%26%20%26%20%5C%5C%20%26%20...%20%26%20%26%20%5C%5C%20%26%20%26%20%5Csigma%20_%7Br%7D%5E%7B2%7D%20%26%20%5C%5C%20%26%20%26%20...%20%26%200%20%5Cend%7Bbmatrix%7D_%7Bn%5Ctimes%20n%7D,不妨将其记为eq?S%5E%7B2%7D

eq?A%5E%7BT%7DA%3DVS%5E%7B2%7DV%5E%7BT%7D

由于eq?V为正交矩阵,eq?V%5E%7BT%7DV%3DE,因此将上式右侧同乘以eq?V,得到

eq?A%5E%7BT%7DAV%3DVS%5E%7B2%7D

由于eq?A%5E%7BT%7DA为实对称阵,一定存在一组非负特征值和对应的特征向量(单位正交向量),不妨记该eq?n个特征值为eq?%5Csigma%20_%7B1%7D%5E%7B2%7D%2C%5Csigma%20_%7B2%7D%5E%7B2%7D%2C...%2C%5Csigma%20_%7Br%7D%5E%7B2%7D%2C0%2C...%2C0eq?%5Csigma%20_%7B1%7D%5Cgeqslant%20%5Csigma%20_%7B2%7D%5Cgeqslant%20...%5Csigma%20_%7Br%7D%3E0)。对应的特征向量(单位正交向量)分别记为eq?v_%7B1%7D%2Cv_%7B2%7D%2C...%2Cv_%7Bn%7D

将特征值开方后得到eq?%5Csigma%20_%7B1%7D%2C%5Csigma%20_%7B2%7D%2C...%2C%5Csigma%20_%7Br%7D%2C0%2C...%2C0

eq?S%3D%5Cbegin%7Bbmatrix%7D%20%5C%20%5Csigma%20_%7B1%7D%20%26%20%26%20%26%20%5C%5C%20%26%20...%20%26%20%26%20%5C%5C%20%26%20%26%20%5Csigma%20_%7Br%7D%26%20%5C%5C%20%26%20%26%20...%26%200%5Cend%7Bbmatrix%7D_%7Bm%5Ctimes%20n%7Deq?V%3D%28v_%7B1%7D%2Cv_%7B2%7D%2C...%2Cv_%7Bn%7D%29

则正好找到了对应的eq?Seq?V,使得(1)式成立。

对于实对称阵eq?AA%5E%7BT%7D,其非零特征值与eq?A%5E%7BT%7DA的特征值相同,也为eq?%5Csigma%20_%7B1%7D%5E%7B2%7D%2C%5Csigma%20_%7B2%7D%5E%7B2%7D%2C...%2C%5Csigma%20_%7Br%7D%5E%7B2%7Deq?%5Csigma%20_%7B1%7D%5Cgeqslant%20%5Csigma%20_%7B2%7D%5Cgeqslant%20...%5Csigma%20_%7Br%7D%3E0),其余eq?m-r个特征值为0。对应的特征向量(单位正交向量)分别记为eq?u_%7B1%7D%2Cu_%7B2%7D%2C...%2Cu_%7Bm%7D

将特征值开方后得到eq?%5Csigma%20_%7B1%7D%2C%5Csigma%20_%7B2%7D%2C...%2C%5Csigma%20_%7Br%7D%2C0%2C...%2C0

同理,有eq?AA%5E%7BT%7DV%3DUS%5E%7B2%7D

eq?S%3D%5Cbegin%7Bbmatrix%7D%20%5C%20%5Csigma%20_%7B1%7D%20%26%20%26%20%26%20%5C%5C%20%26%20...%20%26%20%26%20%5C%5C%20%26%20%26%20%5Csigma%20_%7Br%7D%26%20%5C%5C%20%26%20%26%20...%26%200%5Cend%7Bbmatrix%7D_%7Bm%5Ctimes%20n%7Deq?U%3D%28u_%7B1%7D%2Cu_%7B2%7D%2C...%2Cu_%7Bm%7D%29

则正好找到了对应的eq?Seq?U,使得(1)式成立。

如此,求出了(1)式所需的eq?U%2CS%2CV,问题得解。

3 奇异值分解的步骤

3.1 计算奇异值

计算矩阵乘积eq?A%5E%7BT%7DA,求解eq?%5Cleft%20%7C%20%5Csigma%20E-A%5E%7BT%7DA%20%5Cright%20%7C%3D0,得到大于零的特征值eq?%5Csigma%20_%7B1%7D%5E%7B2%7D%2C%5Csigma%20_%7B2%7D%5E%7B2%7D%2C...%2C%5Csigma%20_%7Br%7D%5E%7B2%7D%28%5Csigma%20_%7B1%7D%5Cgeqslant%20%5Csigma%20_%7B2%7D%5Cgeqslant%20...%5Csigma%20_%7Br%7D%3E0%29

eq?S%3D%5Cbegin%7Bbmatrix%7D%20%5C%20%5Csigma%20_%7B1%7D%20%26%20%26%20%26%20%5C%5C%20%26%20...%20%26%20%26%20%5C%5C%20%26%20%26%20%5Csigma%20_%7Br%7D%26%20%5C%5C%20%26%20%26%20...%26%200%5Cend%7Bbmatrix%7D_%7Bm%5Ctimes%20n%7D,得到奇异矩阵。

3.2 求解右奇异向量

将特征值eq?%5Csigma%20_%7B1%7D%5E%7B2%7D%2C%5Csigma%20_%7B2%7D%5E%7B2%7D%2C...%2C%5Csigma%20_%7Br%7D%5E%7B2%7D代入eq?%28%5Csigma%20E-A%5E%7BT%7DA%29V%3D0,求解得eq?A%5E%7BT%7DA的特征向量,并将其单位化,记为eq?v_%7B1%7D%2Cv_%7B2%7D%2C...%2Cv_%7Bn%7D

eq?V%3D%28v_%7B1%7D%2Cv_%7B2%7D%2C...%2Cv_%7Bn%7D%29,得右奇异向量。

3.3 求解左奇异向量

将特征值eq?%5Csigma%20_%7B1%7D%5E%7B2%7D%2C%5Csigma%20_%7B2%7D%5E%7B2%7D%2C...%2C%5Csigma%20_%7Br%7D%5E%7B2%7D代入eq?%28%5Csigma%20E-AA%5E%7BT%7D%29U%3D0,求解得eq?AA%5E%7BT%7D的特征向量,并将其单位化,记为eq?u_%7B1%7D%2Cu_%7B2%7D%2C...%2Cu_%7Bm%7D

eq?U%3D%28u_%7B1%7D%2Cu_%7B2%7D%2C...%2Cu_%7Bm%7D%29,得左奇异向量。

矩阵的奇异值分解完成。

4 奇异值分解的实例

numpy模块中有自带的奇异值分解函数。

import numpy as np
# 创建矩阵A
A = np.array([[3, 0, 0, 0],[0, 0, 0, 4],[0, 5, 0, 0],[0, 0, 0, 2],[2, 0, 0, 0]])# 进行奇异值分解
U, S, V = np.linalg.svd(A)
# 打印结果
print("U:\n", U)
print("S:", S)
print("V:\n", V)
U:[[ 0.          0.         -0.83205029 -0.         -0.5547002 ][ 0.          0.89442719  0.          0.4472136   0.        ][-1.          0.          0.          0.          0.        ][ 0.          0.4472136   0.         -0.89442719  0.        ][ 0.          0.         -0.5547002   0.          0.83205029]]
S: [5.         4.47213595 3.60555128 0.        ]
V:[[-0. -1. -0. -0.][ 0.  0.  0.  1.][-1. -0. -0. -0.][-0. -0. -1. -0.]]

5 奇异值分解的总结

(1)奇异值分解的原理和步骤比较简单;

(2)奇异值分解非常适合对高维数据的处理;

(3)奇异值分解一种非常重要的降维技术,尤其是在图像处理和推荐系统中有着重要的应用;

(4)奇异值分解后的结果不易直观理解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/399622.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tied and Anchored Stereo Attention Network for Cloud Removal in Optical

论文名称 基于固定锚定立体注意力网络的光学遥感图像去云方法代码运行 论文代码 https://github.com/ningjin00/TASANet?tabreadme-ov-file 论文地址 1环境创建 模型环境给了这几个包,如果你自带环境 那就运行代码 提示缺哪个装哪个 python 3.12rasterio 1.3.10…

【AI人工智能】文心智能体 - 你的专属车牌设计师

引言 自AI盛行以来,不断有各种各样的人工智能产品崭露头角。我们逐步跟着不断产生的人工智能来使自己的工作和生活变得更加智能化!那么我们是否能够创造一款专属于自己的人工智能产品呢? 文心智能体平台就给我们提供了这样的机会&#xff0c…

数值微分求梯度、计算图求梯度,实现单层线性回归 模型速度差异及损失率比对

文章目录 简述测试结果完整代码 简述 先将前面两篇文章的代码重构一下,抽离共同函数到utils.py。 重构后结构: ComputationGraphLinearNet.py: 使用计算图(forward、backward)求梯度构建的线性模型,代码…

分库分表的使用场景和中间件

文章目录 一、为什么要分库分表?分库分表的使用场景?二、分库分表常用中间件1、Cobar2、TDDL3、Atlas4、Sharding-jdbc5、Mycat6、总结 一、为什么要分库分表?分库分表的使用场景? 场景1:注册用户就 20 万&#xff0c…

<数据集>集装箱缺陷识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:3793张 标注数量(xml文件个数):3793 标注数量(txt文件个数):3793 标注类别数:4 标注类别名称:[DAMAGE - DEFRAME, DENT, DAMAGE - RUST, DAMAGE - HOLE] 序号类别名…

飞睿智能8km无人机WiFi图传模块,高清、稳定、超远距!实时传输新高度

在数字化飞速发展的今天,无人机已经从一个遥不可及的科幻概念,变成了我们日常生活中的得力助手。无论是航拍美景、农业植保,还是紧急救援、物流配送,无人机都展现出了其独特的优势。而在这背后,一个至关重要的技术支撑…

ThinkPHP教程

thinkPHP笔记 01. phpEnv配置安装 主讲老师 - 李炎恢 1. 学习基础 ThinkPHP8.x: 前端基础:HTML5/CSS(必须)、JavaScript(可选、但推荐有);后端基础:PHP基础,版本不限,但不能太老,至少PHP5.4以上语法,TP8是兼容PHP8.x的;数据库基础:MySQL数据库,掌握了常规的SQL…

再谈表的约束

文章目录 自增长唯一键外键 自增长 auto_increment:当对应的字段,不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值1操作,得到一个新的不同的值。通常和主键搭配使用,作为逻辑主键。 自增长的…

面向服务架构(SOA)介绍

在汽车电子电气架构还处于分布式时代时,汽车软件的开发方式主要是采用嵌入式软件进行开发,而随着汽车智能化程度的加深,更加复杂且多样的功能需求让汽车软件在复杂度上再上一层。在整车的自动驾驶方面,由于未来高阶自动驾驶能力的…

《Unity3D网络游戏实战》正确收发数据流

TCP数据流 系统缓冲区 当收到对端数据时,操作系统会将数据存入到Socket的接收缓冲区中 操作系统层面上的缓冲区完全由操作系统操作,程序并不能直接操作它们,只能通过socket.Receive、socket.Send等方法来间接操作。当系统的接收缓冲区为空&…

RCE绕过技巧

目录 EVAL长度限制突破技巧 1.使用反引号 2.file_put_contents写入文件 3.php5.6变长参数usort回调后门 命令长度限制突破技巧 1.拼接文件名 无字母数字的webshell命令执行 1.取反码 2.上传临时文件 EVAL长度限制突破技巧 分析代码:首先传递一个param参数&…

OceanBase V4.3 列存引擎之场景问题汇总

在OceanBase 4.3版本发布后(OceanBase社区版 V4.3 免费下载),其新增的列存引擎,及行列混存一体化的能力,可以支持秒级实时分析,引发了用户、开发者及业界人士的广泛讨论。本文选取了这些讨论中较为典型的一…

企业应该如何准备 EcoVadis 审核?

企业准备 EcoVadis 审核可以参考以下步骤: 注册:在网上注册并提供公司的相关信息,包括法律实体名称、国家和地区、企业规模和行业等。如果是受客户邀请参加评估,需按照邀请邮件中的链接进行注册,并确保客户能随时获知评…

安卓默认混淆规则文件的区别

在 Android 项目中,ProGuard 是一个优化和混淆代码的工具。proguard-android-optimize.txt 和 proguard-android.txt 是两个用于配置 ProGuard 的默认规则文件,如图下 它们有以下区别: proguard-android-optimize.txt: 优化:这个配…

Django中事务的基本使用

1. Django事务处理 事务(Transaction): 是一种将多个数据库操作组合成一个单一工作单元的机制. 如果事务中的所有操作都成功完成, 则这些更改将永久保存到数据库中. 如果事务中的某个操作失败, 则整个事务将回滚到事务开始前的状态, 所有的更改都不会被保存到数据库中. 这对于…

系统编程 day10 进程2

进程创建之后: 1.任务-----子进程与父进程干的活差不多 2.父进程创建出子进程之后,子进程做的与父进程完全不同 shell程序-----bash----- 以上为进程运行的过程中,典型的两种应用场景 能够改变子进程的执行效果的函数是exec函数族 l和v&a…

【网盘系统3.0版本】百度云盘手动cookie获取,添加到扫码系统管理平台。

一.获取cookie步骤 1.谷歌浏览器选择开发者模式。 2.选择网路,过滤接口main 3.选择request head,cookie列表里面可查看二.添加到管理平台。 1.登录管理平台,输入账户和密码 2.选择账户设置,添加cookie。 4.复制卡密链接&#xf…

LVS实验的三模式总结

文章目录 LVS的概念叙述NAT工作模式实战案例**思想:**NAT工作模式的优点NAT工作模式的缺点 NAT工作模式的应用场景大致配置 route:打开路由内核功能 部署DR模式集群案例工作思想:大致工作图如下思路模型 具体配置与事实步骤补充 防火墙标签解…

c++编程(20)——类与对象(6)继承

欢迎来到博主的专栏——c编程 博主ID:代码小豪 文章目录 继承继承与权限访问 基类和派生类基类和派生类的赋值兼容转换基类与派生类的类作用域派生类与基类的构造函数基类与派生类拷贝构造函数 继承与静态成员final关键字 面向对象编程的核心思想是封装、继承和多态…

计算机网络408考研 2021

2021 计算机网络408考研2021年真题解析_哔哩哔哩_bilibili 1 1 11 1 1 11