【DQ Robotics】基于SVD的全秩矩阵逆

基于SVD的全秩矩阵逆

英文原文:

As you might remember from your undergraduate-level courses, every real matrix can be decomposed in its singular-value decomposition (SVD) as follows

A = U Σ V T A = U \Sigma V^T A=UΣVT

where U ∈ R m × m U \in \mathbb{R}^{m \times m} URm×mand V ∈ R n × n V \in \mathbb{R}^{n \times n} VRn×n are orthonormal matrices (i.e., they are square, full rank, and their inverses are given by U U T = I m × m U U^T = I_{m \times m} UUT=Im×mand V V T = V T V = I n × n V V^T = V^T V = I_{n \times n} VVT=VTV=In×n). Moreover, Σ \Sigma Σ is a (rectangular) diagonal matrix composed of the singular values of the matrix given by σ i \sigma_i σifor i = 1 , … , m i = 1, \dots, m i=1,,m, ordered from the largest singular value towards the smallest singular value. Note that singular values are always non-negative.

Note: All singular values of a given matrix will be non-zero when the matrix has full rank.

中文翻译:

如你在本科阶段课程中可能学到的那样,每个实矩阵都可以通过其奇异值分解 (SVD) 表示如下:

A = U Σ V T A = U \Sigma V^T A=UΣVT

其中, U ∈ R m × m U \in \mathbb{R}^{m \times m} URm×m V ∈ R n × n V \in \mathbb{R}^{n \times n} VRn×n是正交矩阵(即,它们是方阵,满秩,且它们的逆由 U U T = I m × m U U^T = I_{m \times m} UUT=Im×m V V T = V T V = I n × n V V^T = V^T V = I_{n \times n} VVT=VTV=In×n给出)。此外, Σ \Sigma Σ是一个(矩形的)对角矩阵,由矩阵的奇异值组成,记为 σ i \sigma_i σi i = 1 , … , m i = 1, \dots, m i=1,,m,按从最大奇异值到最小奇异值的顺序排列。请注意,奇异值总是非负的。

注意:当矩阵是满秩时,其所有奇异值都将是非零的。

解释

奇异值分解(SVD)是一种重要的矩阵分解方法,用于将一个矩阵分解为三个部分:一个正交矩阵 U U U、一个对角矩阵 Σ \Sigma Σ(包含矩阵的奇异值)和另一个正交矩阵 V V V。这种分解具有许多应用,如数据降维、矩阵逆计算和信号处理等。

  1. 正交矩阵 U U U V V V

    • 正交矩阵的特点是它们的行和列是相互正交的(垂直的),且单位长度。
    • 正交矩阵的逆等于它的转置,即 U U T = I U U^T = I UUT=I V V T = I V V^T = I VVT=I,这表明它们是满秩矩阵。
  2. 对角矩阵 Σ \Sigma Σ

    • Σ \Sigma Σ 包含了原矩阵的奇异值,这些奇异值是按从大到小的顺序排列的。
    • 奇异值总是非负的,当矩阵是满秩时,所有奇异值都是非零的。
    • 如果矩阵不是满秩,那么会有一些奇异值为零,这表示矩阵的某些行或列之间存在线性依赖。
  3. 满秩矩阵的性质:

    • 如果矩阵是满秩的,那么它的所有奇异值都是非零的。
    • 满秩意味着矩阵的行或列是线性独立的,能够代表完整的信息。

这种奇异值分解可以帮助我们分析矩阵的结构,特别是在矩阵可能是奇异或非方形的情况下,SVD 提供了计算伪逆和解决不适定问题的一种方法。

右伪逆

英文原文:

With these properties, a right pseudo-inverse can be defined for any matrix for which all singular values are non-zero. The right pseudo-inverse is

A † ≜ V Σ inv U T . A^\dagger \triangleq V \Sigma^{\text{inv}} U^T. AVΣinvUT.

where Σ inv \Sigma^{\text{inv} } Σinv is a compatible matrix where we use the reciprocal of the singular values. For example, for a square matrix we have

Σ inv ≜ [ 1 σ 1 0 ⋯ 0 0 1 σ 2 ⋯ 0 0 0 ⋱ 0 0 0 0 1 σ m ] \Sigma^{\text{inv}} \triangleq \begin{bmatrix} \frac{1}{\sigma_1} & 0 & \cdots & 0 \\ 0 & \frac{1}{\sigma_2} & \cdots & 0 \\ 0 & 0 & \ddots & 0 \\ 0 & 0 & 0 & \frac{1}{\sigma_m} \end{bmatrix} Σinv σ110000σ21000000σm1
and for a rectangular matrix
Σ inv ≜ [ 1 σ 1 0 ⋯ 0 0 1 σ 2 ⋯ 0 0 0 ⋱ 0 0 0 0 1 σ m 0 0 0 0 ] \Sigma^{\text{inv}} \triangleq \begin{bmatrix} \frac{1}{\sigma_1} & 0 & \cdots & 0 \\ 0 & \frac{1}{\sigma_2} & \cdots & 0 \\ 0 & 0 & \ddots & 0 \\ 0 & 0 & 0 & \frac{1}{\sigma_m} \\ 0 & 0 & 0 & 0 \end{bmatrix} Σinv σ1100000σ2100000000σm10

中文翻译:

基于这些性质,可以为所有奇异值均非零的矩阵定义右伪逆。右伪逆定义为:

A † ≜ V Σ inv U T . A^\dagger \triangleq V \Sigma^{\text{inv}} U^T. AVΣinvUT.

其中, Σ inv \Sigma^{\text{inv} } Σinv 是一个与 Σ \Sigma Σ 兼容的矩阵,其中每个奇异值取倒数。
例如,对于方阵,我们有

Σ inv ≜ [ 1 σ 1 0 ⋯ 0 0 1 σ 2 ⋯ 0 0 0 ⋱ 0 0 0 0 1 σ m ] \Sigma^{\text{inv}} \triangleq \begin{bmatrix} \frac{1}{\sigma_1} & 0 & \cdots & 0 \\ 0 & \frac{1}{\sigma_2} & \cdots & 0 \\ 0 & 0 & \ddots & 0 \\ 0 & 0 & 0 & \frac{1}{\sigma_m} \end{bmatrix} Σinv σ110000σ21000000σm1
对于矩形矩阵
Σ inv ≜ [ 1 σ 1 0 ⋯ 0 0 1 σ 2 ⋯ 0 0 0 ⋱ 0 0 0 0 1 σ m 0 0 0 0 ] \Sigma^{\text{inv}} \triangleq \begin{bmatrix} \frac{1}{\sigma_1} & 0 & \cdots & 0 \\ 0 & \frac{1}{\sigma_2} & \cdots & 0 \\ 0 & 0 & \ddots & 0 \\ 0 & 0 & 0 & \frac{1}{\sigma_m} \\ 0 & 0 & 0 & 0 \end{bmatrix} Σinv σ1100000σ2100000000σm10

解释

这段文字解释了如何利用奇异值分解(SVD)来构造矩阵的伪逆(pseudo-inverse)。伪逆是一种“广义逆”,特别适用于非方阵和奇异矩阵的情况,即矩阵可能没有标准的逆。

  1. 伪逆的构造方法

    • 给定一个矩阵 A A A,我们可以将其分解为 A = U Σ V T A = U \Sigma V^T A=UΣVT
    • 要构造 A A A 的伪逆 A † A^\dagger A,我们需要使用 V V V Σ inv \Sigma^{\text{inv}} Σinv U T U^T UT
    • 这里, Σ inv \Sigma^{\text{inv}} Σinv 是对角矩阵 Σ \Sigma Σ 的“逆”,其中包含 Σ \Sigma Σ 中奇异值的倒数。
  2. 对角矩阵 Σ inv \Sigma^{\text{inv}} Σinv

    • 如果 Σ \Sigma Σ 中的奇异值是 σ 1 , σ 2 , … , σ m \sigma_1, \sigma_2, \dots, \sigma_m σ1,σ2,,σm,那么 Σ inv \Sigma^{\text{inv}} Σinv 的对角线上将是它们的倒数 1 σ 1 , 1 σ 2 , … , 1 σ m \frac{1}{\sigma_1}, \frac{1}{\sigma_2}, \dots, \frac{1}{\sigma_m} σ11,σ21,,σm1
    • 这要求所有奇异值 σ i \sigma_i σi 非零,否则无法取倒数。因此,仅当矩阵满秩时,才可以直接使用这种方式计算伪逆。

总之,右伪逆是通过SVD构造的一种广义逆矩阵,对于矩阵奇异值均为非零的满秩矩阵,它是存在且唯一的。

当矩阵为矩形时如何构造其伪逆的对角矩阵 Σ inv \Sigma^{\text{inv}} Σinv

  1. 矩形矩阵的奇异值分解

    • 对于一个矩形矩阵 A A A,奇异值分解 (SVD) 仍然适用,可以将其分解为 A = U Σ V T A = U \Sigma V^T A=UΣVT
    • 其中 Σ \Sigma Σ 是一个对角矩阵,但它的大小可能并不是方阵,而是一个矩形(例如 m × n m \times n m×n)。
  2. 伪逆矩阵 Σ inv \Sigma^{\text{inv}} Σinv 的构造

    • A A A 是矩形时, Σ inv \Sigma^{\text{inv}} Σinv的构造略有不同。
    • 对于所有非零的奇异值 σ i \sigma_i σi,我们在对角线上填入其倒数 1 σ i \frac{1}{\sigma_i} σi1
    • 如果 A A A m × n m \times n m×n 的矩阵,并且 m ≠ n m \neq n m=n,则 Σ inv \Sigma^{\text{inv}} Σinv的大小将与 Σ \Sigma Σ兼容,但可能在矩阵的末尾出现额外的零行或零列。
  3. 作用

    • 通过将 Σ \Sigma Σ 中的奇异值取倒数填入 Σ inv \Sigma^{\text{inv}} Σinv 中,我们可以构造矩形矩阵的伪逆 A † = V Σ inv U T A^\dagger = V \Sigma^{\text{inv}} U^T A=VΣinvUT
    • 这种伪逆在最小二乘解、数据降维等领域有广泛应用,特别是在原矩阵没有标准逆的情况下。

总结来说,这种方法可以让我们在矩形矩阵上应用伪逆,即使矩阵不满秩或不为方阵,这在实际计算中具有重要意义。

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

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

相关文章

java版询价采购系统 招投标询价竞标投标系统 招投标公告系统源码

在信息化飞速发展的今天,电子招投标采购系统已成为企业运营中的重要一环。这一系统不仅优化了传统的招投标流程,还为企业带来了诸多显著的价值。 首先,电子招投标采购系统极大地提高了工作效率。传统招投标过程中,企业需要耗费大…

物联网——UNIX时间戳、BKP备份寄存器、RTC时钟

RTC时钟 Unix时间戳 UTC/GMT 时间戳转换 时间戳转换 BKP简介 RTC框图 RTC基本结构 硬件供电电路 RTC操作注意事项 接线图(读写备份寄存器和实时时钟)

系统思考—跳出症状看全局

在和企业创办人交流中,经常听到这样的疑问:“为什么我们试了这么多办法,问题却还是没有解决?”其实很多时候,根本原因并不在于对策不到位,而是连问题的本质都没找对。 曾经和一家企业合作,为了解…

RK3568平台开发系列讲解(platform虚拟总线驱动篇)实验:点亮一个LED

🚀返回专栏总目录 文章目录 一、设备树二、平台驱动三、应用沉淀、分享、成长,让自己和他人都能有所收获!😄 📢xxx 程序编写的主要内容为添加 LED 灯的设备树节点、在驱动程序中使用 of 函数获取设备节点中的属性,编写测试应用程序。 • 首先向设备树添加 LED 设备节点…

【售前方案】工业园区整体解决方案,智慧园区方案,智慧城市方案,智慧各类信息化方案(ppt原件)

基于云计算、物联网、移动通信计算的智慧园区集中运营管理平台是一个高度集成化、智能化的管理系统,它利用先进的技术手段对园区进行全方位的监控和管理。 软件资料清单列表部分文档清单:工作安排任务书,可行性分析报告,立项申请审…

Nacos 配置中心变更利器:自定义标签灰度

作者:柳遵飞 配置中心被广泛使用 配置中心是 Nacos 的核心功能之一,接入配置中心,可以实现不重启线上应用的情况下动态改变程序的运行期行为,在整个软件生命周期中,可以极大降低了软件构建及部署的成本,提…

两大新兴开发语言大比拼:Move PK Rust

了解 Move 和 Rust 的差异有助于开发者根据项目的具体需求选择最合适的语言。选择不恰当的语言可能会导致项目后期出现技术债务。不同语言有其独特的优势。了解 Move 和 Rust 的差异可以帮助开发者拓展技术视野,发现不同语言在不同领域的应用潜力。 咱们直奔主题&a…

【大语言模型】ACL2024论文-16 基于地图制图的罗马尼亚自然语言推理语料库的新型课程学习方法

【大语言模型】ACL2024论文-16 基于地图制图的罗马尼亚自然语言推理语料库的新型课程学习方法 目录 文章目录 【大语言模型】ACL2024论文-16 基于地图制图的罗马尼亚自然语言推理语料库的新型课程学习方法目录摘要:研究背景:问题与挑战:如何解…

面试题:Kafka(一)

1. Kafka如何保证消息不丢失 生产者发送消息到Brocker丢失 设置异步发送 消息重试 消息在Brocker中存储丢失 发送确认机制acks 消费者从Brocker接收消息丢失 Kafka 中的分区机制指的是将每个主题划分成多个分区(Partition)topic分区中消息只能由消费者…

基于多模板配准的心腔分割算法

🏡作者主页:点击! 🤖编程探索专栏:点击! ⏰️创作时间:2024年11月18日20点09分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文链接 点击开启你的论文编程之旅…

ScubaGear:用于评估 Microsoft 365 配置是否存在安全漏洞的开源工具

ScubaGear 是由网络安全和基础设施安全局 (CISA) 创建的开源工具,用于自动评估 Microsoft 365 (M365) 配置中是否存在潜在的安全漏洞。 ScubaGear 分析组织的 M365 租户配置,提供可操作的见解和建议,以帮助管理员解决安全漏洞并加强 Microso…

PgSQL汇总

SQL sql执行顺序 1.from 2.on 3.join 4.where 5.group by(开始使用select中的别名,后面的语句中都可以使用) 6. avg,sum.. 7.having 8.select 9.distinct 10.order by 11.limit⭐流程控制语句 CASE 写法一: CASE case_valueWHEN when_value THENsta…

.NET 简介

文章目录 一、组件二、免费且开源三、支持四、.NET 生态系统 .NET 是一个免费的跨平台开放源代码开发人员平台,用于生成多种类型的应用程序。 .NET 可以运行使用多种语言编写的程序,其中 C# 是最常用的语言。 .NET 依赖于许多大规模应用在生产中使用的高…

Linux之vim模式下全选命令

在Linux系统中,使用Vim编辑器进行全选操作可以通过以下几种方式实现: 1.使用键盘快捷键 按下 ”ggVG”(先按下”g”,再按下”g”,再按下”V”,最后按下”G”)可以全选当前文件内容。其中 ”g…

【学习笔记】大模型调优(llms_tuning)

项目地址:GitHubchunhuizhang/llms_tuning 文章目录 01 TRL SFTTrainer 中的 formatting_func 与 DataCollatorForCompletion02 accelerate ddp 与 trl SFTTrainer03 finetune_llama3_for_RAG04 optimizer Trainer 优化细节(AdamW,grad clip、…

剧本杀门店预约小程序,解锁沉浸式推理体验

一、开发背景 剧本杀作为一种热门娱乐游戏,深受大众的欢迎,但随着市场的快速发展,竞争也在不断加大,对于剧本杀线下商家来说面临着发展创新。 剧本杀线下门店数量目前正在逐渐增加,竞争激烈,而门店的获客…

OpenCV从入门到精通实战(九)——基于dlib的疲劳监测 ear计算

本文实现Python库d和OpenCV来实现眼部闭合检测,主要用于评估用户是否眨眼。 步骤一:导入必要的库和设置参数 首先,代码导入了必要的Python库,如dlib、OpenCV和scipy。通过argparse设置了输入视频和面部标记预测器的参数。 from…

candence : 如何利用EXCEL 绘制复杂、多管脚元件

如何利用EXCEL 绘制复杂、多管脚元件 前面的步骤直接略过 我们以STM32F407VEXX 系列 100pin 芯片为例讲解: 1、新建好一个空元件 2、使用阵列,放置管脚 点击 “ ok ” 3、选中所有管脚 右键 “edit properites” 出现如下页面 4、点击 左上角&…

Java多线程回顾总结

目录 一.线程与创建线程方式简介 二.Thread继承 三.实现Runnable接口 四.Callable接口 五.使用线程池 一.线程与创建线程方式简介 线程与进程的区别: 1、一个进程至少包含一个线程 2、比如电脑上QQ,运行起来就是一个进程,QQ可以聊天同时也可以传文…

深度学习基础练习:代码复现transformer重难点

2024/11/10-2024/11/18: 主要对transformer一些比较难理解的点做了一些整理,希望对读者有所帮助。 前置知识: 深度学习基础练习:从pytorch API出发复现LSTM与LSTMP-CSDN博客 【神经网络】学习笔记十四——Seq2Seq模型-CSDN博客 【官方双语】一…