← 返回 PaperDaily 大模型与智能体

2026新文:不用SVD也能算伪逆?这篇论文给出3种直接法

这篇论文很“硬核工程味”:不玩花活,专门盯着伪逆计算里最烦的三件事——稠密、病态、太慢。它提出的三条直接路线,都在试图把 SVD 这位“老大哥”请下场,给大规模稀疏回归留出一条更省内存的路。

2026新文:不用SVD也能算伪逆?这篇论文给出3种直接法
🐉 龙哥读论文知识星球来了!
公众号每日8篇拆解不够看?星球无上限更AI领域论文、资讯、招聘、招博、开源代码,一站式干货,每日2分钟刷完即赚!
👇扫码加入「龙哥读论文」知识星球,前沿干货、实用资源一站式拿捏~ xingqiu_header

龙哥推荐理由:
这篇论文很“硬核工程味”:不玩花活,专门盯着伪逆计算里最烦的三件事——稠密、病态、太慢。它提出的三条直接路线,都在试图把 SVD 这位“老大哥”请下场,给大规模稀疏回归留出一条更省内存的路。


原论文信息如下:
论文标题:
A Direct Method for Pseudoinverses
发表日期:
2026年07月
发表单位:
East Tennessee State University
原文链接:
https://arxiv.org/pdf/2607.10302v1.pdf
项目链接:
https://github.com/appmathdoc/DirectPseudoInverseMethods

为什么需要直接求伪逆

这篇论文最有意思的地方,不是“又发明了一个伪逆算法”,而是它把一个老问题说透了:伪逆并不只是线性代数课本里的优雅概念,它在大规模回归、稀疏求解、重复最小二乘里,真的是能省钱、能省内存、能省时间的工程工具。问题在于,大家一提伪逆,脑子里往往先蹦出 SVD(奇异值分解)。SVD 很稳,但也很“贵”,尤其在大矩阵、稀疏矩阵、重复求解场景里,贵得有点像每次点外卖都吃米其林:不是不行,是钱包和系统都扛不住。
论文先把三个现实痛点摆上台面。第一,条件数问题:矩阵 A 本身不一定病态,但 ATA 或 AAT 的条件数会直接平方放大,数值稳定性容易翻车。第二,秩判定问题:很多直接法要先知道“到底秩是多少”,可在浮点世界里,接近 0 的奇异值并不老实,今天看着像 0,明天又像没死透。第三,稀疏矩阵会被伪逆拖成稠密矩阵,这点最烦:原矩阵明明很省内存,伪逆一算出来,瞬间胖成一堵墙。
封面
图1:论文封面图。它传递的核心信息很直接——这不是在和 SVD 玩“谁更数学”,而是在和工程里的存储、速度、稳定性正面较劲。
更关键的是,作者并没有否定伪逆本身,而是试图证明:直接法也能做伪逆,而且在某些场景里比“先分解到天荒地老,再拼回来”更合适。这就把话题从“伪逆能不能算”推进到了“伪逆该怎么更像工程地算”。

双对角矩阵的三种分解方法

这篇论文的主线其实很清楚:先把原矩阵 A 做双对角化,把难题压缩成一个双对角矩阵 B,再针对 B 设计三条直接路线。这里先解释一下“双对角矩阵”:它只有主对角线和一条相邻对角线有非零元素,结构非常瘦,像把原矩阵“挤压”成了骨架版。很多复杂运算一旦落到这种结构上,就能做得又快又省。
作者给出的三种方法分别是:CK 分解对偶正规方程原地伪逆。它们的共同目标不是“把伪逆写成一个漂亮公式”,而是尽量避免显式构造稠密逆矩阵,同时还能让大规模稀疏问题有机会活下来。

CK 分解:把双对角矩阵切成“可逆块 + 零块”

CK 分解的思路可以理解成“先做外科手术,再分别处理”。作者用 Givens 旋转把双对角矩阵分解成一个可逆双对角块 C 和一个超对角块 K。这里的 Givens 旋转,就是一种只动两个坐标轴的小旋转,像用小扳手精准拧螺丝,不会把整台机器拆飞。
图2:双对角矩阵分块示意图与对应伪逆结构
图2:双对角矩阵被切分成多个结构块后的示意图。论文借助这种分块,把原本难处理的大矩阵伪逆问题,拆成若干个更小、更规整的局部问题。
CK 分解的妙处在于,K 的伪逆是稀疏的,C 则是可通过回代处理的可逆双对角矩阵。也就是说,它没有执着于“把整个伪逆矩阵完整打印出来”,而是把计算动作压缩到可执行的局部结构里。对大规模稀疏问题来说,这个思路很现实:能少存一点,就少存一点;能少乘一次,就少乘一次

对偶正规方程:把三对角系统交给 Thomas 算法

第二条路线更像“走正面路线但尽量别撞墙”。双对角矩阵 B 的 BBT 会变成三对角矩阵,而三对角系统正好是 Thomas 算法的主场。Thomas 算法本质上就是三对角方程的高效直接解法,复杂度很低,适合反复求解。论文还引入 Woodbury 矩阵拆分思想,把大系统切成小块再拼回去,减少存储压力。
图3:对偶正规方程与块状三对角结构示意图
图3:对偶正规方程对应的块状三对角结构示意图。它说明了为什么这个方法能借助 Thomas 算法快速求解,也解释了为什么 Woodbury 拆分能进一步降低内存占用。
不过这条路线也有代价:它本质上还是绕回了正规方程体系,因此条件数平方放大的老毛病并没有彻底消失。所以它的定位更像“工程上很好用,但不是数值党最爱的那种优雅解法”。

原地伪逆:在块里直接把伪逆算出来

第三条路线最有“工程味”。它先按超对角线中为 0 的位置把矩阵切成块,再按主对角线中为 0 的位置继续细分,最后只剩三种小块:方块、比列多一列的矩形块、比列多一行的矩形块。每种块都有明确的伪逆公式,可以原地算完。所谓“原地”,就是尽量在原矩阵结构附近完成计算,不额外造出一个巨大的稠密副本。
图4:原地分块后的小块伪逆结构示意图
图4:原地分块后的小块伪逆结构示意图。论文把一个大双对角矩阵拆成多个可直接求逆或求伪逆的小块,核心目标就是把“稠密化”风险压到最低。
这三种方法看起来风格不同,但底层逻辑一致:先把矩阵的结构榨干,再利用结构做直接计算。这比“上来就 SVD 全家桶”更像一个懂成本控制的工程师会做的事。

Lanczos算法的直接伪逆实现

如果说前面三种方法是在“已知双对角矩阵 B”上做文章,那么这一节就是把伪逆计算直接嵌进 Lanczos 双对角化过程里。Lanczos 算法可以理解为一种逐步把 A 压成双对角矩阵的迭代方法,迭代过程中会生成 Uk、Vk 和 Bk。论文的关键动作是:每走一步,就先构造一个当前近似伪逆 Xk = VkBk†UkT,然后观察它是否已经足够接近 A†。
这里需要顺手解释一个缩写:LSQRLeast Squares QR 的缩写,中文常译为“最小二乘 QR 算法”,它是经典的稀疏最小二乘迭代方法。论文的观点并不激进:不是说 LSQR 不行,而是说它可以被重新解释成一种“逐步生成直接伪逆”的过程,这就把迭代法和直接法之间那堵墙敲松了。
论文给出的一个重要结论是:只要残差 Rk 逐步趋近于 0,那么 AXkA 会在 Frobenius 范数意义下逼近 A。换成人话说,就是 Lanczos 过程生成的这个近似伪逆,不是随便拍脑袋出来的,而是有明确收敛目标的。更妙的是,作者还把它解释成一个优化问题的驻点搜索:每一步都在找一个新的向量 w,让当前近似尽量满足伪逆的约束。
演示视频占位
视频演示:项目主页给出的实现思路展示了三种方法如何围绕双对角化展开,尤其是原地伪逆与 Cython 加速版的组合,比较适合直观看“结构化计算”到底怎么落地。
从工程角度看,这一节最值钱的不是公式本身,而是它告诉读者:迭代法并不一定只是“求解器”,也可以被重写成“逐步逼近伪逆”的构造器。这对稀疏回归尤其友好,因为很多时候并不需要一次性把完整伪逆存下来,只需要它对多个右端项反复起作用。

误差界与计算复杂度分析

这部分是论文里最像“能不能上生产”的地方。因为算法好不好,不只看公式优不优雅,还得看误差怎么控、复杂度是不是还在预算内。论文的判断很务实:CK 分解理论上很漂亮,但完整双对角化本身接近 SVD 的代价,复杂度大致还是 O(n3) 量级,所以它更适合符号推导、结构分析或中等规模问题,而不是无脑拿去替代所有 SVD。
对偶正规方程和原地伪逆的优势更偏向“省空间、好拆分”。前者用三对角结构和 Thomas 算法,后者直接在块里算伪逆,二者都避免了显式构造稠密伪逆。论文还提到 Woodbury identity(伍德伯里恒等式)可以把块拆分后的结果重新组合,这在大规模问题里很有用,因为内存往往比算力更先爆。
表2:方法3与 scipy.linalg.pinv 的速度对比
表2:方法3与 scipy.linalg.pinv 的速度对比。表中数值大于 1 表示方法3更快,结果说明在部分规模设置下,原地伪逆配合 Cython 后可以达到与 SVD 基准相当甚至更快的速度。
实验结果本身没有把“吊打 SVD”这种话说满,反而更可信。因为表2里能看到,方法3在不同规模下和 scipy.linalg.pinv 基本是同一量级,部分情况下略快,部分情况下略慢。这个结果很像工程世界的真相:不是每次都能碾压,但只要结构利用得好,就能把速度和内存控制在一个更体面的区间里
论文还给出了一个非常实用的停止信号:用残差范数 ∥Rk∥ 监控收敛,当它足够小就停止。这个设计比“固定迭代次数”更合理,因为伪逆问题的难度并不均匀,硬跑满迭代次数往往是在浪费时间。对于要在稀疏回归里反复调用的场景,这种自适应停止条件很重要。

结论与开源工具

这篇论文的结论可以浓缩成一句话:伪逆不必总是依赖 SVD,结构化直接法在大规模稀疏回归里是有现实价值的。它没有宣称自己彻底取代 SVD,而是更聪明地把问题切开:能符号算的就符号算,能块状算的就块状算,能迭代逼近的就迭代逼近。这个态度比很多“什么都想一锅端”的方法更靠谱。
项目开源地址是 https://github.com/appmathdoc/DirectPseudoInverseMethods。实现上主要依赖 Numpy、Scipy、Sympy,原地方法的加速版还需要 Cython 和 LAPACK 的 gebrd/orgbr 接口。换句话说,这不是一个“看完论文就能顺手在手机上跑”的玩具,而是一个比较标准的 Python/数值计算工程项目,门槛不高,但也不是零成本。
如果把它放到更大的背景里看,这类工作对大模型时代也不是完全没关系。大模型训练和推理里,稀疏线性代数、结构化求解、重复最小二乘都在变得更常见。伪逆直接法也许不会天天出现在产品页面上,但在底层数值库里,它们很可能就是那种“平时没人夸,出事了全靠它”的角色。🙂

龙迷三问

下面是龙哥对于大家可能的一些问题的解答:

这篇论文到底解决什么问题?它解决的是“伪逆一定要靠 SVD 吗”这个老问题。作者给出三类不依赖 SVD 的直接方法,重点面向大规模、稀疏、重复求解的场景,目标是减少稠密矩阵和内存开销。

CK、对偶正规方程、原地伪逆分别是什么意思?CK 分解是把双对角矩阵拆成可逆块 C 和超对角块 K;对偶正规方程是利用 BBT 的三对角结构配合 Thomas 算法;原地伪逆则是先按零元素分块,再对每个小块直接写出伪逆公式。

Lanczos 直接伪逆和 LSQR 有什么关系?论文把 Lanczos 双对角化重新解释成逐步构造伪逆的过程,和 LSQR 的迭代思想很接近。简单说,LSQR 本来是最小二乘求解器,现在被作者“翻译”成了一个可逐步逼近伪逆的构造器。

如果你还有哪些想要了解的,欢迎在评论区留言或者讨论~

龙哥点评

论文创新性分数:★★★☆☆

创新点不算“颠覆式”,但把伪逆直接法、双对角化、Lanczos 迭代和块结构拆分串成一条工程可落地的链路,这个组合是有价值的。

实验合理度:★★★☆☆

速度测试比较克制,没有夸张宣传;但整体更偏方法展示,若想证明“全面优于 SVD”,还需要更系统的大规模与稀疏场景评测。

学术研究价值:★★★★☆

对直接法、伪逆理论、块结构数值算法都有启发,尤其适合后续继续做稀疏线性代数和结构化求解的人接着往下挖。

稳定性:★★★☆☆

分块和三对角求解思路是稳的,但涉及阈值、条件数和浮点误差时,仍需要按场景调参,不能当“拿来即用的万能钥匙”。

适应性以及泛化能力:★★★☆☆

对稀疏回归、重复最小二乘、结构化矩阵很友好,但对一般稠密大矩阵未必比成熟 SVD 路线更省心。

硬件需求及成本:★★★★☆

方法目标就是减内存、降稠密化,原地法和三对角法都比显式 SVD 更友好;但真正跑得快,还得看实现是否足够底层化。

复现难度:★★★☆☆

代码已开源,材料也比较完整;不过涉及 LAPACK、Cython 和数值细节,想复现出论文里的效果,还是得有一点数值计算底子。

产品化成熟度:★★★☆☆

适合进入数值库、科研工具或特定稀疏回归管线;要成为通用产品级方案,还需要更多边界测试和底层优化。

可能的问题:方法偏结构化问题,通用性不如 SVD;理论上漂亮,工程上还要继续补大规模、病态与异常输入下的稳定性验证。


主要参考文献

Jeff Knisley. A Direct Method for Pseudoinverses. arXiv:2607.10302v1, 2026.
项目开源代码:https://github.com/appmathdoc/DirectPseudoInverseMethods

*本文仅代表个人理解及观点,不构成任何论文审核或者项目落地推荐意见,具体以相关组织评审结果为准。欢迎就论文内容交流探讨,理性发言哦~ 想了解更多原文细节的小伙伴,可以点击"阅读原文",查看更多原论文细节哦!  

end
欢迎加入龙哥读论文粉丝群,扫描下方二维码或者添加龙哥助手微信号加群:kangjinlonghelper。一定要备注:研究方向+地点+学校/公司+昵称(如 图像处理+上海+清华+龙哥),根据格式备注,可更快被通过且邀请进群。
『龙哥读论文』微信群目前包含:图像处理、大模型及智能体、自动驾驶及机器人、AI医疗及AI金融5个群
wechat_helperdianzan
转发文章 微博 X LinkedIn Facebook
龙哥读论文 · PaperDaily

本文基于龙哥读论文 PaperDaily 数据库整理,结合论文原文与工程视角进行解读。