课程/M07/伪逆、数值秩与条件数
M07 · SVD进阶约 35 分钟

7.4 伪逆、数值秩与条件数

本节位置:模块 7 · SVD | 前置:4.5、7.2 | 预计:35 分钟

一句话:伪逆就是「沿每个奇异方向取倒数」,但小奇异值不能取倒数——什么时候算「小」,由数值秩和条件数决定。

0. 场景引入

放射科要重建一张 512×512 的 CT 切片: 个未知像素,而扫描只有 180 个角度 × 512 个探测器,共 个方程——方程比未知数少,问题本身欠定。

CT 的方程组是 ; 既不是方阵,也谈不上可逆,solve 在这里连调用都不合法。你想找一个统一写法,把「方程比未知数多」「少」「刚好但病态」三种情况一次处理掉。

更麻烦的是病态:探测器噪声约 0.5%,而系统矩阵的最小奇异值只有最大奇异值的 量级。伪逆要沿每个奇异方向除以 ,最坏方向上 的噪声会被放大 倍,重建图上是放射状条纹,不是解剖结构。

你要决定截断阈值 取多少。取小了,条纹压不住;取大了,钙化点和小裂纹一起被抹平——「看起来干净」比「有噪声」更危险。每张切片的重建按秒计,病人还在扫描床上,没时间让你试十组参数。

读完你能回答三个问题:

  1. 伪逆 怎样用一个公式同时处理超定、欠定和秩亏?
  2. 为什么「多小算小」不能用一个绝对常数回答?
  3. 截断伪逆为什么有时比精确逆更接近真解?

1. 直觉

在奇异坐标系里就是「沿 乘 ,送到 」。想反解就沿原路除回去,于是

很小时 很大: 里一点噪声会被放大成巨大的解分量。这就是病态的几何图像——某个方向几乎被压扁,反解时就要把它撑开。

💡 一句话直觉:伪逆 = 沿可逆方向精确反演 + 沿太扁的方向放弃;放弃的标准是「 是否大于阈值」。

1.1 它在现实世界里对应什么

把 CT 重建想成「把每个方向的压缩比倒过来」:

数学对象CT 里的对应物
512×512 的衰减系数图,262,144 个未知数
180 个角度 × 512 个探测器的读数,92,160 个方程
第 个图案在投影数据里的可见度
反演这个图案时的放大倍数
低于它就当看不见,直接丢掉

大,说明这个图案在投影里对比度高,反演可靠; 小,说明它几乎被压平,要除以一个很小的数才能撑回来,噪声也跟着被撑大。伪逆做的就是「沿可逆方向精确反演,沿太扁方向放弃」。

1.2 这个类比在哪里失效

  • 真实 CT 还有射束硬化、散射、运动伪影,它们不在线性方程组里;SVD 只处理「线性病态」这一半。
  • 截断不是「算不出来」,而是主动用偏差换稳定:被丢掉的方向不是简单变模糊,而是没有对应结构。
  • 伪逆给的是最小范数解。如果真实解在零空间里有分量(欠定时完全可能),伪逆不会恢复它,只会挑范数最小的那个。

1.3 量级直觉

时, 从 到 ,动态范围是 dB。探测器噪声 按最坏方向放大,相对误差上界是

也就是相对误差上界 5000 倍。这个上界很悲观——实际误差取决于噪声方向与最坏奇异方向的夹角——但重建图上的放射状条纹,就是它的小号版本。只要 小于噪声水平, 就不再是信息,而是噪声放大器。

2. 定义

2.1 伪逆(pseudoinverse)的 SVD 形式

设 是瘦 SVD,,定义

非零奇异值取倒数,零保持为零。形状是 ——转置了。这组性质由 Penrose 在 1955 年用四条方程公理化,本页后面反复用的正是这四条。

2.2 一个公式,三种情形

的定义是:先在所有使 最小的 里挑,再挑其中 最小者。

情形秩结果
超定(,满列秩)普通最小二乘解,唯一
欠定(,满行秩)残差为 0 的解中范数最小者
秩亏两者同时:最小残差 + 最小范数

2.3 数值秩与截断

浮点数里没有「恰好为零」。给定容差 ,**数值秩(numerical rank)**为 。常用取值为 (NumPy matrix_rank 的默认),也可自己给(如 );数值秩与条件数的标准处理见 Golub 与 Van Loan。**截断伪逆(truncated pseudoinverse)**只保留 的项:。

2.4 条件数(condition number)

是「输入相对误差被放大倍数的上界」;秩亏时约定 。数值上要区分 无穷与 :后者对双精度而言已经「实际不可逆」。

3. 为什么这样定义

四个子空间各归各位。 把行空间同构送到列空间,把零空间压成 0。伪逆要做三件事:列空间上取真逆( 的项取 );左零空间上输出 0(没有输入能到达那里,反解无从谈起);零空间上输出 0(这些方向本就不可观测,取 0 顺便实现最小范数)。

为什么阈值是必需的? 「 是否等于零」取决于精度与噪声:双精度、无噪声时它是真实维度;bf16 或测量有 噪声时它和 0 没区别。数值秩不是 的固有属性,而是 加精度加噪声的联合属性。

3.1 反事实:用绝对阈值判秩会坏在哪

假设你图省事,把阈值写成一个绝对常数 ,单位是伏特。取一个对角矩阵

在伏特下,,数值秩判为 1,第二个方向被截掉。

现在换一个工程师,用微伏记录同一个物理量:。同一个 ,,数值秩判为 2,第二个方向保留。

同一个矩阵、同一台设备,只是换了单位,数值秩从 1 变成 2;下游一个做截断、一个不做,解和重建结果完全不同。阈值绑在单位上,结论就绑在单位上。

换成相对阈值 :

  • 伏特版:, 远大于它,秩 2;
  • 微伏版:, 也远大于它,秩 2。

两边的结论一致,因为阈值随 一起缩放。

但相对阈值也不是终点:若测量噪声本身有 (伏特), 仍然不可信——这时阈值应该定在噪声水平,而不是机器精度。判秩的阈值要随噪声走,不能随单位走,也不能只随 走。

4. 性质与推导

4.1 两个投影

,而 是对角元为 的对角阵,所以 是到 的正交投影;同理 投影到 。

4.2 误差放大: 从哪来

设 可逆, 有扰动 ,解变为 ,则 。展开到奇异坐标:

两式相除得 。这个式子说的是:相对误差最多被放大 倍。它也解释了为什么不能先算 :, 会变成 ,直接吃光双精度。

4.3 截断的偏差—方差权衡

用 时,解与真解的差别分两部分:被丢掉的方向带来偏差(量级 ),保留的方向带来噪声放大(量级 )。 增大,偏差增大、方差减小;最佳 与噪声水平同量级。

4.4 满秩时的退化

满列秩()时 ;满行秩()时 。两者都能从 直接推出,不需要额外假设。

5. 例子

5.1 超定:最小二乘

的特征值为 ,故 、,(良态)。右奇异向量 、;左奇异向量 、。

的奇异坐标为 、,于是

核对:残差 ,与两列都正交()✓;,投影分量 ,残差平方 ,与 一致 ✓。

5.2 欠定:最小范数

、。,故 、,;、,、。于是

核对: ✓。解集为 ,由于 与特解正交,, 时最小 ✓。

5.3 数值秩:什么时候该截断

,,。真解 对应 。

把 扰动 (),新解变成 ——相对误差 。而 ,与观测到的放大同量级。

若取 ,数值秩 ,截断伪逆给出 。噪声被压掉,答案反而更接近真解——这就是 TSVD(截断奇异值分解)作为正则化的直观来源;Hansen 把这类截断的偏差—方差权衡写成了系统分析。

5.4 场景闭环:512×512 的 CT 切片

输入: 重建,262,144 个未知数;180 个角度 × 512 个探测器,92,160 个方程。系统矩阵稀疏,每条射线约穿过 512 个像素,非零元约 ,按每非零 8 B 存约 377 MB;sinogram 本身 B≈0.37 MB,重建图 1 MB。

计算:不形成完整 SVD—— 会是 个数,fp64 约 68 GB。实际用 Lanczos/svds 只求前 个奇异三元组,每次迭代两次稀疏矩阵-向量乘,约 FLOP; 跑 50–100 次迭代约 – FLOP。伪逆解按 组装。

输出:一张重建图,以及阈值 (或等价的截断秩 )。决策还包括是否叠加 Tikhonov/TV 正则、是否重扫。

成本:主要成本是稀疏 matvec 和存 的 377 MB;单张按 FLOP、10 GFLOP/s 估约 1 s,符合「病人在扫描床上等」的预算。图像本身只占 1 MB,相比系统矩阵可以忽略。

失败条件:

  • 太小:0.5% 的探测器噪声被 放大,重建出现放射状条纹。兜底:按残差范数约等于噪声范数来选 (偏差原理),或加 TV 正则。
  • 太大:钙化点、小裂纹一起被抹平。兜底:用体模(phantom)标定 ,并保留原始 sinogram 以便换参重重建。
  • 模型误差:射束硬化、散射不在 里,截断 SVD 救不了。兜底:先做硬化校正,或改用带物理模型的迭代重建。

6. 常见误区

  1. 误区: 是「近似的逆」,。 纠正: 是到行空间的精确投影,秩亏时离 很远;只有满列秩时才是 。
  2. 误区: 一定满足 。 纠正:只有 时残差为零,否则它是最小二乘解(见 5.1)。
  3. 误区:数值秩是矩阵的客观属性,算出来多少就是多少; 大说明代码有 bug。 纠正:数值秩依赖容差与精度——同一个 在 fp64 下可能秩 512、bf16 下秩 200。 是问题的属性;良态问题加坏算法才出错,病态问题加好算法也只能得到 倍的误差。

7. 概念网络

8. 通往大模型:编辑、微调与「不敢反演」

出现位置:闭式模型编辑(把一条事实写入某一层)、求最小改动微调、以及任何需要「反解」权重的地方。

形状:要让 在 个输入 上满足 ,取 ,其中 、,且 。 时只有 8 个非零奇异值,其余 4088 维完全没动。

为什么需要条件数: 的稳定性由 决定。若 8 个编辑输入的表示几乎共线, 很小, 会爆炸,并对未观测输入产生巨大扰动。上线前检查 是必要步骤:常见做法是 就减少 ,或改用 做 Tikhonov 正则。

低精度的天花板:bf16 相对精度约 , 的方向实际不可反演。也就是说,低精度训练里「秩」有一个由精度决定的上限:超过它的方向即使数学上非零,也无法可靠更新。

可检验结论: 在浮点误差内精确成立,;若把 的某一列复制一份(人为制造秩亏), 变为无穷,此时必须截断,否则解出现 inf/nan。

算错时下游看到什么:若 的 8 个编辑输入几乎共线( 很大), 的范数量级是 ,会顺带改掉未观测输入的行为。用户看到的是:想让模型记住一条新事实,它却在无关问题上开始胡说,或者旧知识被覆盖。兜底是编辑前检查 、限制 、用 Tikhonov 正则,并在编辑后跑一组回归问题。

9. 练习

  1. 概念:为什么伪逆解一定落在行空间里?这和「最小范数」是同一件事吗?
  2. 计算:,,求 、残差,并验证残差与列空间正交。
  3. 计算:,求 ,解 的最小二乘解与残差。
  4. 场景:某层 的 ,做闭式编辑会发生什么?给出两种补救办法。
  5. 开放:既然截断能提高稳定性,为什么不全截断到秩 1?
参考答案
  1. 的列是 的列的线性组合,而 的前 列张成行空间。解集 中只有行空间分量影响 ,去掉零空间分量既保持残差又减小范数,所以两件事是一体的。
  2. 、,,。残差 ,与 的内积 ✓。
  3. ,;残差 ,与 正交 ✓。
  4. 很小, 的范数约为 , 爆炸并破坏其他输入。补救:(a) 减少 ,只保留独立方向;(b) Tikhonov 正则 ,等价于做 TSVD 截断。
  5. 偏差会失控:秩 1 近似只保留一个方向, 可能接近 ,残差巨大。截断的收益有上限,最优 在「噪声放大」与「丢信息」之间取平衡。

10. 一页速记

  • :非零奇异值取倒数、零留零,形状 ;一个公式统一超定(最小二乘)、欠定(最小范数)与秩亏(两者同时)。
  • 数值秩 , 依赖精度与噪声,不是固有属性。
  • ,相对误差最多放大 倍;。
  • 截断伪逆用偏差换稳定,是最简单的正则化;bf16 下秩有精度天花板。
  • 物理意义 / 现实对应:伪逆是「把每个方向的压缩比倒过来」; 是被压扁的程度, 是反演时的放大倍数, 是「低于噪声就当看不见」的分界线。

11. 参考文献与致谢

这一页的知识不是凭空来的。下面列出本页直接借用的原始工作与权威整理;正文中的人名、定理名已链接到对应条目。链接优先指向 DOI、arXiv 或可长期访问的原文存档。

  • 彭罗斯(Roger Penrose, 1955):A Generalized Inverse for Matrices。用四条方程唯一刻画了广义逆 (也就是伪逆),本页第 2.1 节的 就是这组方程在 SVD 下的解。Math. Proc. Cambridge Philos. Soc. 51(3)
  • Hansen(Per Christian Hansen, 1998):Rank-Deficient and Discrete Ill-Posed Problems。系统分析了 TSVD 作为正则化的偏差—方差权衡,本页第 5.3 节「截断反而更接近真解」与第 4.3 节的最佳 都出自这一框架。SIAM
  • Golub 与 Van Loan(Gene H. Golub & Charles F. Van Loan, 2013):Matrix Computations(4th ed.)。对数值秩、条件数与伪逆给出系统处理;本页第 2.3 节用 判零、第 4.2 节用 界误差,都是这一框架里的标准结论。Johns Hopkins University Press

下一篇 → 7.5 SVD 应用:PCA、推荐与 LoRA

返回 M07 导览去练习场

随堂测 · 5 题

单选难度 1第 1 / 5 题
若 ,伪逆 的形状是?

源文件:07-SVD/04-伪逆与数值秩.md

输入关键词开始搜索