当前位置: 首页 > news >正文

线性代数|机器学习-P15矩阵A的低秩变换下的逆矩阵

文章目录

1. 单位矩阵的秩1变换

1.1 功能说明

假设我们有一个单位矩阵I,列向量u,v那么当我们对单位向量I减去秩为1的矩阵后,其逆等于多少?
M = I − u v T , M − 1 = I + u v T 1 − v T u \begin{equation} M=I-uv^T,M^{-1}=I+\frac{uv^T}{1-v^Tu} \end{equation} M=IuvT,M1=I+1vTuuvT

  • 我们发现,对于单位矩阵进行秩为1的扰动 u v T uv^T uvT,其逆也是进行秩为1的扰动 u v T 1 − v T u \frac{uv^T}{1-v^Tu} 1vTuuvT,这个公式的好处在于,当我们知道对I的秩为1的扰动,就能通过公式直接知道其逆的扰动,真神奇!

1.2 证明

M = I − u v T ⇒ M − 1 = I + u v T 1 − v T u \begin{equation} M=I-uv^T\Rightarrow M^{-1}=I+\frac{uv^T}{1-v^Tu}\end{equation} M=IuvTM1=I+1vTuuvT

  • 定义矩阵E表示如下:
    E = [ I u v T 1 ] , D e t [ E ] = 1 − v T u (3) E=\begin{bmatrix}I&&u\\\\v^T&&1\end{bmatrix},Det[E]=1-v^Tu\tag{3} E= IvTu1 ,Det[E]=1vTu(3)
    我们想求 E − 1 E^{-1} E1,可以通过增广矩阵,进行行变换得到,
  • 第一种方法是:将第一行乘以 v T v^T vT后加到第二行中.
    [ I 0 − v T 1 ] E = [ I u 0 D ] (4) \begin{bmatrix}I&&0\\\\-v^T&&1\end{bmatrix}E=\begin{bmatrix}I&&u\\\\0&&D\end{bmatrix}\tag{4} IvT01 E= I0uD (4)
    E − 1 = [ I u 0 D ] − 1 [ I 0 − v T 1 ] = [ I + u D − 1 v T − u D − 1 − D − 1 v T D − 1 ] (5) E^{-1}=\begin{bmatrix}I&&u\\\\0&&D\end{bmatrix}^{-1}\begin{bmatrix}I&&0\\\\-v^T&&1\end{bmatrix}=\begin{bmatrix}I+uD^{-1}v^T&&-uD^{-1}\\\\-D^{-1}v^T&&D^{-1}\end{bmatrix}\tag{5} E1= I0uD 1 IvT01 = I+uD1vTD1vTuD1D1 (5)
  • 第二种方法是:将第二行乘以 u u u后加到第一行中.
    [ I − u 0 1 ] E = [ I − u v T 0 v T 1 ] (6) \begin{bmatrix}I&&-u\\\\0&&1\end{bmatrix}E=\begin{bmatrix}I-uv^T&&0\\\\v^T&&1\end{bmatrix}\tag{6} I0u1 E= IuvTvT01 (6)
    E − 1 = [ I − u v T 0 v T 1 ] − 1 [ I − u 0 1 ] = [ M − 1 − M − 1 u − v T M − 1 1 + v T M − 1 u ] (7) E^{-1}=\begin{bmatrix}I-uv^T&&0\\\\v^T&&1\end{bmatrix}^{-1}\begin{bmatrix}I&&-u\\\\0&&1\end{bmatrix}=\begin{bmatrix}M^{-1}&&-M^{-1}u\\\\-v^TM^{-1}&&1+v^TM^{-1}u\end{bmatrix}\tag{7} E1= IuvTvT01 1 I0u1 = M1vTM1M1u1+vTM1u (7)
  • 由公式4,6 可得,两个 E − 1 E^{-1} E1相等, M = I − u v T M=I-uv^T M=IuvT
    [ I + u D − 1 v T − u D − 1 − D − 1 v T D − 1 ] = [ M − 1 − M − 1 u − v T M − 1 1 + v T M − 1 u ] (8) \begin{bmatrix}I+uD^{-1}v^T&&-uD^{-1}\\\\-D^{-1}v^T&&D^{-1}\end{bmatrix}=\begin{bmatrix}M^{-1}&&-M^{-1}u\\\\-v^TM^{-1}&&1+v^TM^{-1}u\end{bmatrix}\tag{8} I+uD1vTD1vTuD1D1 = M1vTM1M1u1+vTM1u (8)
  • 由第一个行,第一列可得如下
    M − 1 = I + u D − 1 v T = I + u v T 1 − v T u (9) M^{-1}=I+uD^{-1}v^T=I+\frac{uv^T}{1-v^Tu}\tag{9} M1=I+uD1vT=I+1vTuuvT(9)
  • 结论:
    M = I − u v T ⇒ M − 1 = I + u v T 1 − v T u (10) M=I-uv^T\Rightarrow M^{-1}=I+\frac{uv^T}{1-v^Tu}\tag{10} M=IuvTM1=I+1vTuuvT(10)

2. 单位矩阵 I n I_n In的秩k变换

  • 定义 M 表示如下:
    M = I − U V T → M − 1 = I n + U ( I k − V T U ) − 1 V T \begin{equation} M=I-UV^T\rightarrow M^{-1}=I_n+U(I_k-V^TU)^{-1}V^T \end{equation} M=IUVTM1=In+U(IkVTU)1VT
  • 同理构造矩阵E
    E = [ I n U V T I k ] , d e t ( E ) = d e t ( I n − U V T ) \begin{equation} E=\begin{bmatrix}I_n&U\\\\V^T&I_k\end{bmatrix},det(E)=det(I_n-UV^T) \end{equation} E= InVTUIk ,det(E)=det(InUVT)

3. 一般矩阵A的秩k变换

  • Sherman-Morrison-Woodbury formula
  • 定义 M 表示如下:
    M = A − U V T \begin{equation} M=A-UV^T \end{equation} M=AUVT
    - M − 1 = A − 1 + A − 1 U ( I − V T A − 1 U ) − 1 V T A − 1 \begin{equation} M^{-1}=A^{-1}+A^{-1}U(I-V^TA^{-1}U)^{-1}V^TA^{-1} \end{equation} M1=A1+A1U(IVTA1U)1VTA1
  • 同理构造矩阵E
    E = [ A U V T I ] , d e t ( E ) = d e t ( A − U V T ) \begin{equation} E=\begin{bmatrix}A&U\\\\V^T&I\end{bmatrix},det(E)=det(A-UV^T) \end{equation} E= AVTUI ,det(E)=det(AUVT)

4. 公式用途

4.1 求解方程

( I k − U V T ) x = b → x = [ I n + U ( I k − V T U ) − 1 V T ] b \begin{equation} (I_k-UV^T)x=b\rightarrow x=[I_n+U(I_k-V^TU)^{-1}V^T] b \end{equation} (IkUVT)x=bx=[In+U(IkVTU)1VT]b

4.2 卡曼滤波

当我们有一个已知的方程解 A x = b Ax=b Ax=b,最小二乘的结果如下:
A T A x ^ = A T b \begin{equation} A^TA\hat{x}=A^Tb \end{equation} ATAx^=ATb

  • 突然我们需要新增一行数据 v T v^T vT,那么矩阵变成如下:
    [ A T v ] [ A v T ] x ^ = [ A T v ] [ b b m + 1 ] \begin{equation} \begin{bmatrix}A^T&v\end{bmatrix} \begin{bmatrix}A\\\\v^T\end{bmatrix}\hat{x}=\begin{bmatrix}A^T&v\end{bmatrix} \begin{bmatrix}b\\\\b_{m+1}\end{bmatrix} \end{equation} [ATv] AvT x^=[ATv] bbm+1
  • 整理可得如下:
    [ A T A + v v T ] x ^ = A T b + v b m + 1 \begin{equation} [A^TA+vv^T]\hat{x}=A^Tb+vb_{m+1} \end{equation} [ATA+vvT]x^=ATb+vbm+1
  • 我们发现原来的矩阵为 A T A A^TA ATA,后来加了一个秩1的矩阵 v v T vv^T vvT,那么在假设原来 A T A A^TA ATA可逆的情况下,可以直接通过公式求得:
    M = A T A − v v T \begin{equation} M=A^TA-vv^T \end{equation} M=ATAvvT
    M − 1 = ( A T A ) − 1 + ( A T A ) − 1 v ( I + v T ( A T A ) − 1 v ) − 1 v T ( A T A ) − 1 \begin{equation} M^{-1}=(A^TA)^{-1}+(A^TA)^{-1}v(I+v^T(A^TA)^{-1}v)^{-1}v^T(A^TA)^{-1} \end{equation} M1=(ATA)1+(ATA)1v(I+vT(ATA)1v)1vT(ATA)1
    这样就可以在原来的结果基础上直接得到新解。

相关文章:

线性代数|机器学习-P15矩阵A的低秩变换下的逆矩阵

文章目录 1. 单位矩阵的秩1变换1.1 功能说明1.2 证明 2. 单位矩阵 I n I_n In​的秩k变换3. 一般矩阵A的秩k变换4. 公式用途4.1 求解方程4.2 卡曼滤波 1. 单位矩阵的秩1变换 1.1 功能说明 假设我们有一个单位矩阵I,列向量u,v那么当我们对单位向量I减去秩为1的矩阵…...

强强联合 极光推送(JPush)成为华为生态市场首家推送类SDK服务商

近日,中国领先的客户互动和营销科技服务商,极光(Aurora Mobile,纳斯达克股票代码:JG)的核心产品极光推送(JPush)顺利通过华为开发者联盟的多项测试及审核,成为首家在Harm…...

防止在 Qt 中触发信号

在 Qt 中工作时,有时我们需要暂时阻止某些信号的触发。以下是一个经典场景:我们有一个 QCheckBox 对象,当用户勾选或取消勾选时,需要调用一个函数,因此我们将这个函数连接到 stateChanged(int state) 信号。然而&#…...

【UML用户指南】-17-对基本行为建模-交互

目录 1、消息的可视化表示 2、对象与角色 3、链和连接件 4、消息 5、序列 6、创建、修改和撤销 7、表示法 8、常用建模技术 8.1、对控制流建模 8.1.1、基于时间的控制流 8.1.2、基于结构的控制流 在任何有意义的系统中,对象都不是孤立存在的,…...

Java中的类加载器与热部署技术详解

Java中的类加载器与热部署技术详解 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!在软件开发中,特别是在大型应用和服务的开发过程中,类…...

【事件总线】EventBus

文章目录 概述如何使用如何发布消息如何进行消息监听 来源 概述 事件总线是对发布-订阅模式(观察者)的一种实现,是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的。 …...

LeetCode 热题100 --双指针

双指针 b站UP主蜜糖:由于数据特征的有序性(大小或者正负),所以可以证明当前节点一定是优于过往节点,从而可以通过数据的维度数量的指针,逐步的迭代收敛最终找到最优解。 283.移动零 相关标签 :…...

从《深入设计模式》一书中学到的编程智慧

软件设计原则 优秀设计的特征 在开始学习实际的模式前,让我们来看看软件架构的设计过程,了解一下需要达成目标与需要尽量避免的陷阱。 代码复用 无论是开发何种软件产品,成本和时间都最重要的两个维度。较短的开发时间意味着可比竞争对…...

Redis 基本配置

Redis的配置文件通常位于 /etc/redis/redis.conf。以下是一些常见的Redis配置选项和它们的说明: 基本配置 1. 绑定地址 bind 127.0.0.1默认情况下,Redis只监听本地接口。如果需要远程访问,可以修改成bind 0.0.0.0,不过这会带来…...

【C++庖丁解牛】函数栈帧的创建与销毁

🍁你好,我是 RO-BERRY 📗 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 目录 1. 寄存器2. ebp和esp是如…...

Java基础16(集合框架 List ArrayList容器类 ArrayList底层源码解析及扩容机制)

目录 一、什么是集合? 二、集合接口 三、List集合 四、ArrayList容器类 1. 常用方法 1.1 增加 1.2 查找 int size() E get(int index) int indexOf(Object c) boolean contains(Object c) boolean isEmpty() List SubList(int fromindex,int …...

数组:移除元素

参考资料&#xff1a;代码随想录 本题思路&#xff1a;通过快慢指针将两次循环减少到一次 class Solution {public int removeElement(int[] nums, int val) {//0 1 2 2 2 2 3int fast 0;int slow 0;while(fast < nums.length){if(nums[fast] ! val){nums[slow] nums[f…...

胡说八道(24.6.22)——通信杂谈(完结)

上回书说到雷达和香农的信息论&#xff0c;今天来进行完结。 数字幅值调制或幅值键控&#xff08;ASK&#xff09;调制方式是指载波信号的幅值随数字基带信号而变化&#xff0c;因此可以实现将基带信号搬移到载波频段。2ASK是利用代表数字信息0或1的基带矩形脉冲去键控一个连续…...

设计模式原则——里氏替换原则

设计模式原则 设计模式示例代码库地址&#xff1a; https://gitee.com/Jasonpupil/designPatterns 里氏替换原则 继承必须确保父类所拥有的性质在子类中依然成立 与开闭原则不同的是开闭原则可以改变父类原有的功能&#xff0c;里氏替换原则不能修改父类的原有的性质&#…...

详解 ClickHouse 的 SQL 操作

传统关系型数据库&#xff08;以 MySQL 为例&#xff09;的 SQL 语句&#xff0c;ClickHouse 基本都支持 一、插入 --语法&#xff1a; insert into table_name values(xxxxxx),(yyyyyyy),...;insert into table_name select xxxxx from table_name2 where yyyyy;二、更新和删…...

WPF与Winform,你的选择是?

概述 在桌面应用的发展历程中&#xff0c;Winform和WPF作为微软推出的两大框架&#xff0c;各自承载着不同的设计理念和技术特色。Winform以其稳定、成熟的技术基础&#xff0c;长期占据着企业级应用开发的重要地位。而WPF&#xff0c;作为后来者&#xff0c;以其现代化的UI设计…...

基于SpringBoot的实习管理系统设计与实现

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a; Java 数据库&#xff1a; MySQL 技术&#xff1a; SpringBoot框架&#xff0c;B/S模式 工具&#xff1a; MyEclipse&#xff0c;Tomcat 系统展示 …...

编程用什么电脑不卡的:深度解析与推荐

编程用什么电脑不卡的&#xff1a;深度解析与推荐 在编程的世界里&#xff0c;一台流畅不卡的电脑无疑是每个开发者的得力助手。然而&#xff0c;面对市场上琳琅满目的电脑品牌和型号&#xff0c;如何选择一台适合编程的电脑却成为了一个令人困惑的问题。本文将从四个方面、五…...

优先级队列模拟实现

目录 1.堆的概念 2.堆性质堆中的某个元素小于或大于他的左右孩子 3.小根堆实例 4.堆创建 4.1调整思路 4.2向下调整思路 4.3代码实现&#xff08;大根堆&#xff09; 5.堆的删除 6.堆的插入 7.常用接口 7.1PriorityQueue和PriorityBlockingQueue 1.堆的概念 如果有一…...

记一次服务器崩溃事件

今天在安装Jenkins的时候&#xff0c;进行到插件安装这一步&#xff0c;本来一切顺利&#xff0c;结果最后安装完成之后一直进不去网页&#xff0c;显示连接超时&#xff0c;网上搜索了一圈也没发现什么相似的情况&#xff0c;当我疑惑的时候回到Linux控制台&#xff0c;发现命…...

实战应用:基于快马平台开发具备origin高级分析功能的在线工具

今天想和大家分享一个最近用InsCode(快马)平台做的实战项目——开发一个具备Origin高级分析功能的在线工具。作为一个经常需要处理实验数据的科研狗&#xff0c;Origin这类软件的分析功能确实强大&#xff0c;但每次都要安装本地软件实在麻烦。于是就想试试能不能做个在线版&am…...

zynq7020 u-boot 外设配置实战指南

1. Zynq7020 U-Boot外设配置概述 在嵌入式系统开发中&#xff0c;U-Boot作为系统启动加载器扮演着关键角色。对于Xilinx Zynq-7020平台来说&#xff0c;正确配置U-Boot外设是确保系统正常启动和运行的基础。本文将重点介绍网口、QSPI Flash和eMMC这三个核心外设的配置方法。 为…...

鸿蒙与Android双端蓝牙开发避坑指南:定位权限、虚拟地址与厂商SDK那些事

鸿蒙与Android双端蓝牙开发实战&#xff1a;权限策略与真实地址获取全解析 当你的应用需要同时在鸿蒙和Android设备上稳定运行蓝牙功能时&#xff0c;系统差异就像一片雷区——Android 12的权限拆分、鸿蒙4.0的虚拟地址返回、不同版本间的API兼容性&#xff0c;每个环节都可能让…...

【ArkTS】基础语法

一、ArkTS 语言简介 ArkTS 是一种设计用于构建高性能应用的编程语言。它在继承 TypeScript 语法的基础上进行了优化,以提供更高的性能和开发效率。 许多编程语言在设计之初未考虑移动设备,导致应用运行缓慢、低效且功耗大。随着移动设备在日常生活中越来越普遍,针对移动环境…...

佰力博金属电导率测试:精准赋能金属材料性能评估

金属电导率是衡量材料导电能力的核心指标&#xff0c;直接决定铜、铝、合金等在电子、电力、航空航天等领域的应用价值。佰力博检测依托专业技术与自研设备&#xff0c;构建了覆盖多场景、高精度的金属电导率测试体系&#xff0c;为材料研发、质量管控与工艺优化提供权威数据支…...

从synchronized到CompletableFuture:Java多线程完全进阶指南

在当今多核处理器普及的计算时代&#xff0c;充分利用硬件资源成为提升程序性能的关键。Java作为企业级应用的主流语言&#xff0c;其内置的多线程支持让并发编程变得触手可及。然而&#xff0c;多线程编程如同一把双刃剑——用得好&#xff0c;能成倍提升系统吞吐量&#xff1…...

【Cornerstone3D实战】从零构建医学影像三视图渲染器:Dicom文件加载与多平面重建

1. 医学影像三视图渲染器入门指南 第一次接触医学影像开发的朋友可能会被"Dicom"、"三视图重建"这些专业术语吓到。其实用现代Web技术实现一个基础的医学影像查看器&#xff0c;比你想象中简单得多。Cornerstone3D这个开源库就像医学影像界的jQuery&#x…...

IEEE会议论文避雷指南:如何用GSview+Photoshop搞定EPS图片压缩与特殊字符命名

IEEE会议论文图片处理全攻略&#xff1a;从格式转换到命名规范 第一次投稿IEEE会议的新手研究者们&#xff0c;往往会在图片处理环节栽跟头——明明内容扎实、实验充分&#xff0c;却因为技术细节问题被编辑退回修改。这不是学术能力的问题&#xff0c;而是对印刷出版标准的不熟…...

Zend Framework错误处理与日志记录终极指南:10个构建稳定生产环境的技巧

Zend Framework错误处理与日志记录终极指南&#xff1a;10个构建稳定生产环境的技巧 【免费下载链接】zendframework Official Zend Framework repository 项目地址: https://gitcode.com/gh_mirrors/ze/zendframework Zend Framework作为一款成熟的PHP开发框架&#xf…...

从云中心到边缘节点,Java Runtime冷启动优化全解析,将延迟压至87ms以内

第一章&#xff1a;Java边缘运行时部署的演进与挑战随着物联网、5G和实时AI推理场景的爆发式增长&#xff0c;Java应用正加速向边缘侧迁移。然而&#xff0c;传统JVM设计面向服务器长期运行环境&#xff0c;其启动延迟高、内存占用大、冷启动慢等特性与边缘设备资源受限、事件驱…...