【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.xdnf.cn/news/16609.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【网页设计】CSS3 进阶(动画篇)

1. CSS3 2D 转换 转换(transform)是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、缩放等效果 转换(transform)你可以简单理解为变形 移动:translate旋转:rotate缩放&#xf…

系统架构设计师:软件架构的演化和维护

软件架构一般会经历初始设计、实际使用、修改完善和退化弃用的过程,其中修改完善的过程实际上就是软件架构的演化和维护过程,演化和维护的目的就是为了使软件能够适应环境的变化而进行的纠错性修改和完善性修改等。 软件架构的演化和维护过程是一个不断…

如何在 Ubuntu 上安装 Jupyter Notebook

本篇文章将教你在 Ubuntu 服务器上安装 Jupyter Notebook,并使用 Nginx 和 SSL 证书进行安全配置。 我将带你一步步在云服务器上搭建 Jupyter Notebook 服务器。Jupyter Notebook 在数据科学和机器学习领域被广泛用于交互式编码、可视化和实验。在远程服务器上运行…

IoT [remote electricity meter]

IoT [remote electricity meter] 物联网,远程抄表,电表数据,举个例子

使用ivew-ui-plus 的Submit组件踩坑 injection “LoginInstance“ not found 记录 问题原因分析与解决方案

问题描述: 在下面这个页面中 注册按钮使用了view-ui-plus的Submit组件 结果控制台报错 runtime-core.esm-bundler.js:257 Uncaught TypeError: Cannot read properties of undefined (reading handleSubmit)at Proxy.handleSubmit (viewuiplus.min.esm.js:32610:26)at callW…

力扣 LeetCode 1047. 删除字符串中的所有相邻重复项(Day5:栈与队列)

解题思路&#xff1a; 方法一&#xff1a;栈 class Solution {public String removeDuplicates(String s) {Deque<Character> stack new ArrayDeque<>();for (char c : s.toCharArray()) {if (stack.isEmpty() || stack.peek() ! c) stack.push(c);else stack.p…

无人机检测车辆——多目标检测

目录 YOLOv3&#xff08;You Only Look Once version 3&#xff09;简介 YOLOv3 的主要特点 YOLOv3 的结构 1. 特征提取网络&#xff08;Backbone&#xff09; 2. 检测头&#xff08;Head&#xff09; 3. 输出层 YOLOv3 损失函数 YOLOv3 的优势 YOLOv3 的应用 YOLOv3…

集群搭建高可用

contos7.9 部署3节点 hadoop3.4 高可用集群 contos7.9 部署3节点 hadoop3.4 高可用集群环境信息Hadoop与Zookeeper的版本对应关系服务器角色分配使用端口服务器配置配置免密登录服务器配置初始化 init_server.sh配置主机名映射所有节点配置 hosts文件 hadoop 安装环境配置下载安…

网络IP地址会经常换吗?深入解析与实操指南

在互联网的生态系统中&#xff0c;IP地址&#xff08;Internet Protocol Address&#xff09;是每台连接设备的唯一标识符&#xff0c;它在网络通信中起着至关重要的作用。然而&#xff0c;不少用户观察到自己的IP地址有时会发生变化&#xff0c;这引发了诸多疑问。本文旨在详细…

AI测试的主要研究方向介绍

随着AI技术的不断进步和应用场景的日益广泛&#xff0c;如何确保人工智能系统的可靠性和安全性&#xff0c; 变得日益重要。人工智能测试作为保障AI系统质量的关键环节&#xff0c;也随着AI技术不断向前发展。本文将介绍当前AI测试的主要研究方向&#xff0c;以期为大家提供一个…

Python3中str和bytes

参考文章&#xff1a;浅析Python3中的bytes和str类型 - Chown-Jane-Y - 博客园 Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分。文本总是Unicode&#xff0c;由str类型表示&#xff0c;二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str…

比特币前景再度不明,剧烈波动性恐即将回归

比特币市场降温&#xff0c;波动性增加 自特朗普赢得美国总统大选以来&#xff0c;比特币市场的投机狂热有所降温&#xff0c;现货和衍生品市场的活跃度开始减弱。比特币在上周五跌破87000美元&#xff0c;较之前创下的历史高点低了约6500美元。这一变化受到美联储主席鲍威尔讲…

node对接ChatGpt的流式输出的配置

node对接ChatGpt的流式输出的配置 首先看一下效果 将数据用流的方式返回给客户端,这种技术需求在传统的管理项目中不多见,但是在媒体或者有实时消息等功能上就会用到,这个知识点对于前端还是很重要的。 即时你不写服务端,但是服务端如果给你这样的接口,你也得知道怎么去使用联…

esp32c3安装micropython环境

esp32c3竟然支持micropython环境&#xff0c;真的太让人高兴了。主要是python开发比较友好&#xff0c;开发速度要快于C和C&#xff0c; 可以用来快速创意验证。 下载 首先到官网&#xff1a;MicroPython - Python for microcontrollers 点击“download”进入下载页面&#…

Linux运维工程师推荐学习的开发语言

前言&#xff1a;会开发的运维和不会开发的运维可以说是两个世界的运维。 个人推荐python和go&#xff0c;前者可以做自动化运维&#xff0c;后者可以深挖k8s&#xff1b;最近就不先演示运维服务技术的部署和架构搭建了&#xff0c;在深挖自动化运维&#xff0c;为了让现在的工…

新手小白学习docker第八弹------实现MySQL主从复制搭建

目录 0 引言1 实操1.1 新建主服务器容器1.2 书写配置文件1.3 重启master实例1.4 进入mysql-master容器master容器实例内创建数据同步用户 1.5 新建从服务器容器1.6 书写配置文件1.7 重启slave实例1.8 查看主从同步状态1.9 进入mysql-slave容器1.9.1 配置主从复制1.9.2 查看主从…

我谈二值形态学基本运算——腐蚀、膨胀、开运算、闭运算

Gonzalez从集合角度定义膨胀和腐蚀&#xff0c;不易理解。 Through these definitions, you can interpret dilation and erosion as sliding neighborhood operations analogous to convolution (or spatial filtering). 禹晶、肖创柏、廖庆敏《数字图像处理&#xff08;面向…

力扣题目解析--合并两个链表

题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff1a; 输入&#xff1a;l1 [], l2 [] 输出&#xff…

基于yolov8、yolov5的鸟类分类系统(含UI界面、训练好的模型、Python代码、数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下&#xff1a; 算法模型&#xff1a;     yolov8、yolov8 SE注意力机制 或 yolov5、yolov5 SE注意力机制 &#xff0c; 直接提供最少两个训练好的模型。模型十分重要&#xff0c;因为有些同学的电脑没有 GPU&#xff0…

css:浮动

网页的本质上就是摆放盒子&#xff0c;把盒子摆到相应的位置上 css提供了三种传统的布局方式&#xff1a; 普通流&#xff08;标准流&#xff09;&#xff1a;标签按默认方式排列&#xff0c;最基本的布局方式 浮动 定位 实际开发中&#xff0c;一个网页基本包含了三种这种布局…