3.7 四个基本子空间与秩-零化度定理
本节位置:模块 3 · 矩阵与线性映射 | 前置:2.6 秩、3.6 | 预计:45 分钟
一句话:一个 矩阵把输入空间切成「被保留」与「被压掉」两半,把输出空间切成「够得着」与「够不着」两半——这就是四个基本子空间。
0. 场景引入
一家量化基金的风控台,每晚跑一次因子风险模型。
股票池 500 只,因子 8 个(价值、成长、动量、波动、规模、质量、红利、行业中性化后的大盘)。因子暴露矩阵 , 是第 只股票在第 个因子上的暴露。组合权重 ,。组合规模 20 亿元。
组合的因子暴露是 。风控要求把它压到目标附近:价值 、动量 、其余接近 0。
问题出在第 8 个因子上——它被构造成「0.6 倍价值 + 0.4 倍成长」的线性组合,精确共线。于是 ,不是 8。
后果:解 使 时, 奇异,直接求逆会炸出 量级的权重——一只股票被要求配 10000% 的仓位,交易系统拒单。
更隐蔽的后果:如果代码用一个极小的正则项把逆「救」回来,权重看着正常了,但风控报告会说「8 个因子全部中性」,而实际上它在那个共线方向上押了一大笔——这个方向模型根本看不见。
问题:一个 、秩为 7 的矩阵,它的四个子空间分别是什么?秩比因子数少 1,到底丢了什么?
读完本节,你应该能回答三件事:
- 四个子空间的定义、维数与两组正交关系;
- 秩-零化度定理为什么是 ,而不是 ;
- 为什么「有解」看列空间、「唯一」看零空间,秩亏时风控该盯哪个空间。
1. 直觉
1.1 一栋有四个房间的房子
把矩阵想成一栋有四个房间的房子:
dim = r"] NS["零空间
dim = n − r"] end subgraph OUT["输出空间 R^m"] CS["列空间
dim = r"] LNS["左零空间
dim = m − r"] end RS -->|A| CS NS -->|A| Z(("0")) LNS -.->|与列空间正交| CS
注意:零空间整体被送到 ;左零空间不是任何输入的像,而是与列空间正交的输出方向。
- 行空间(row space) 里的向量被 原样「看见」,映射到列空间,维度不变()。
- 零空间(null space) 里的向量被压成 ,信息彻底丢失。
- 列空间(column space) 是所有可能的输出,维度 。
- 左零空间(left null space) 是与所有输出都正交的方向, 永远够不着。
💡 一句话直觉: 是一个信息通道:输入有 维,只有 维能通过;输出有 维,只有 维能被点亮。
类比边界:这是线性通道的图景。非线性网络可以在不同区域用不同的有效秩,四个子空间只描述某一点附近的线性化。
1.2 现实对应:风控台上的四扇门
把因子模型想成一个物流中心:500 只股票是 500 个包裹(输入是权重),8 个因子是 8 条传送带(输出是暴露)。四扇门各有分工:
- 行空间 ,维数 7:这 8 个因子里真正独立的 7 个方向。你在这个空间里给目标暴露,模型能听懂。
- 零空间 ,维数 :那个「零暴露的因子组合」。本例里它就是 ——同时做多「价值 0.6、成长 0.4」、做空「第 8 个因子 1 份」,对 500 只股票的净暴露恰好为零。模型看不见这个方向。
- 列空间 ,维数 7:所有「能被因子解释」的暴露向量,是 500 维空间里的一个 7 维平面。
- 左零空间 ,维数 :与这 7 个暴露方向全正交的仓位方向,落在列空间的正交补里——这就是「纯残差 / 纯 alpha」那部分,因子模型说它没有系统性风险。
分清楚这四扇门,风控的两个问题就有答案了:「我能不能配出这个目标暴露」看列空间(目标在 7 维平面内才配得出);「同一个组合能不能换个配方」看零空间( 维自由度,说明有 1 个方向的因子目标根本不影响任何股票)。
这个类比在哪里失效:四个子空间是严格的线性代数,但「因子」这个概念本身是人为构造的。真实市场里因子会失效、会换定义、会在危机时相关性突然趋近 1。四个子空间只告诉你「模型看见了什么、漏了什么」,不告诉你「漏掉的那部分明天会不会咬你」——后者要靠压力测试,不靠线性代数。
1.3 量级直觉
秩亏 1,代价有多大?秩亏意味着理论上的 、。实际计算用浮点, 不会是精确的 0,而是约 (、 在二进制里不能精确表示,加上数据本身有噪声)。于是 。
意味着:目标暴露上 的误差,会被放大成权重上 (也就是 10000%)的误差。这就是为什么共线因子必须先做正交化(Gram–Schmidt,第 2.7 节)或 SVD,而不能硬求逆。
2. 定义
设 ,。
列空间(column space):,是 的 个列向量的张成,维数为 。
零空间(null space):,也叫核(kernel),维数为 。
行空间(row space):,是 的 个行向量的张成,维数为 。
左零空间(left null space):,即满足 的 ,维数为 。
秩-零化度定理(rank-nullity theorem):,即 。
把四个子空间的两组正交分解打包成「线性代数基本定理」的,是 Strang 1993。
3. 为什么这样定义
为什么要四个而不是两个?因为输入和输出是两个不同的空间,各自都要分成「保留/丢失」两部分。
想解 ,会问两个问题:
- 有没有解? 当且仅当 。若 有左零空间分量,就永远解不出来。
- 解唯一吗? 不唯一;若 是一个解,则所有解是 。零空间越大,解的自由度越大。
四个子空间把这两个问题几何化:可达性看列空间,唯一性看零空间。行空间与左零空间则是它们的正交补,负责「分解」输入与输出空间。
为什么秩同时等于列空间和行空间的维数?这不是巧合:转置不改变「非零子式的最大阶数」,所以行秩 = 列秩。第 2.6 节给出了秩的直观与等价刻画,本节从 RREF 角度给出构造性证明。
3.1 反事实:如果「有解」定义成「 是方阵且 」
最先学到的可解判据是 Cramer 法则:方阵、、唯一解。一个很自然的错误推广是——「只有方阵才能解方程」。
取一个 的矩阵(3 个观测、2 个未知数,典型的超定系统):
它不是方阵,没有 。按上面的判据,应该「解不出来」。
但 确实有解。取 :
而 确实无解——第三分量必须等于 ,前两个方程已经定了 ,和是 2,不是 0。
一眼可见的差别:同一个 ,一个 有解、一个没解。所以「有没有解」不是 的性质,而是 与 的关系——准确说,是 在不在 里。
是 里由 、 张成的 2 维平面。 落在这个平面里, 落在平面外。判据是 ,与 是不是方阵无关。
同理,「解唯一」也不是 的性质,而是 。本例中两列无关,零空间只有零,所以有解时解唯一。可达性看列空间,唯一性看零空间——两件事必须分开判。
4. 性质与推导
4.1 两组正交关系
行空间 ⊥ 零空间(都在 ):若 ,则 ,即 的每一行与 的点积都是 0。行空间的任意向量是这些行的线性组合,所以也与 正交。
列空间 ⊥ 左零空间(都在 ):若 ,则 ,即 与 的每一列正交;列空间的任意向量是列的线性组合,所以也与 正交。
于是得到两个正交直和分解:
4.2 秩-零化度的构造性证明
把 化成 RREF。设主元有 个,位于第 列;其余 列是自由列。
- 每个自由变量取 1、其余自由变量取 0,回代得到唯一的 ,得到一个零空间基向量。共 个,线性无关,所以 。
- RREF 的主元列是 ,说明 的主元列线性无关;而行变换保持列之间的线性关系,每个自由列都是主元列的线性组合(RREF 的系数直接给出),所以主元列张成 。共 个,所以 。
两式相加即得 。
4.3 常用推论
| 结论 | 说明 |
|---|---|
| 行秩 = 列秩 | |
| 复合不会增加维数 | |
| 有解 | 增广不增加秩 |
| 方阵可逆 | 零空间只有零 |
的证明:若 ,两边左乘 即得 ;反之若 ,左乘 得 ,故 。两边零空间相同,维数相同,秩也就相同。
表中这些秩等式与正交补关系的完整证明,见 Horn & Johnson。
5. 例子
5.1 手算: 矩阵的四个子空间
取
它把 4 维输入送到 3 维输出。行 3 = 行 1 + 行 2,所以秩最多 2;行 1、行 2 不成比例,秩恰为 2。消元:
(行 1 减 2 倍行 2 得第一行;行 3 减行 1 再减行 2 得零行。)
列空间:主元在第 1、2 列,取 的第 1、2 列,基为 、,维数为 2。
零空间:由 RREF,,。取 与 ,得 、,维数为 2。
行空间:取 RREF 的非零行(与原行空间相同),基为 、,维数为 2。
左零空间:解 ,即 与每一列正交。取 :与第 1 列点积 ,与第 2 列 ,与第 3、4 列也为 0。所以 ,维数为 1。
验证正交与维数:
- 行空间 ⊥ 零空间:,与 也正交;第二行同理。
- 列空间 ⊥ 左零空间:,。
- 秩-零化度:;输出侧 。
解方程:取 ,它等于第 1 列 + 第 2 列,所以 是特解;通解是 。而 不在列空间里(前两列的任何组合第三分量都是 ,要等于 1 且前两分量都为 0 只能 ),所以无解。
5.2 场景闭环:500 只股票的目标暴露
输入:,fp32 占 KB,;目标暴露变化 ;当前权重 。组合 20 亿元,500 只股票平均每只 4000 万元。
计算:要求 ,且 最小(换手最小)。最小范数解是
是 的伪逆:对 做特征分解( 量级,几百次运算),把 以下的特征值置零再取倒数。整个求解不到 1 万次运算。
输出:500 个目标权重,按价格换算成股数、取整到 100 股一手,生成第二天的订单。
成本:算力完全不是问题(不到 1 万 FLOPs,一天一次)。真正的成本是换手率: 每多 1%,20 亿的组合就是 2000 万的交易,按双边千分之二算,4 万元的交易成本。所以「最小范数」不只是数学上漂亮,它直接对应钱。
失败条件与兜底:
- 秩判断错:代码若假设 , 不存在(数值上是 量级的条件数),解出的权重爆到 。交易系统拒单是最好结局;若系统不设上限,第二天开盘会真的去下这些单。兜底:分解后检查最小奇异值,低于阈值就把维数降到 7。
- 取整破坏约束:500 只股票各自取整到 100 股,累计的暴露偏差可能到 。对目标 来说是 7%,可接受;但若目标本身只有 ,这个误差就不可忽略。兜底:把取整后的实际暴露算回来,超差就再做一次小规模修正。
- 模型漏掉的方向:零空间里那个 方向,模型测不到风险。若组合恰好在这个方向建了仓,风控报告会显示「接近中性」,真实风险却全押在一个方向。兜底:定期用实际收益归因反查,而不是只信模型自报的 。
6. 常见误区
-
误区:。 纠正:应等于输入维数 。 在 , 在 ,两者不在同一个空间里相加。
-
误区:零空间就是 的零行对应的解。 纠正:零空间由自由变量产生,与零行没有直接对应;应看 RREF 的主元列与自由列。
-
误区:行变换会保持列空间不变。 纠正:行变换保持行空间与零空间,但会改变列空间(只保持维数)。所以列空间的基要取原矩阵的主元列,不能取 RREF 的列。
-
误区:秩就是原矩阵非零行的个数。 纠正:非零行个数要化成 REF 后才可靠;原矩阵的行可能相关(如本例行 3 = 行 1 + 行 2)。
7. 概念网络
- 前置:2.6 秩 —— 秩是信息的维度。
- 前置:3.6 转置、对称与分块 —— 行空间是列空间的转置,正交性来自点积。
- 前置:1.6 正交与投影 —— 正交补与直和分解。
- 后续:4.2 解的存在性与通解 —— 特解 + 零空间。
- 后续:4.5 伪逆与最小范数解 —— 四个子空间给出伪逆的几何。
- 后续:7.3 低秩近似 —— 秩决定能压缩多少。
- 关联:11.2 线性层 —— 权重矩阵的秩瓶颈。
8. 通往大模型:秩就是信息瓶颈
出现位置:权重矩阵的秩、LoRA 的低秩更新、注意力的打分矩阵、隐藏状态的有效维度。
形状与运算:任意 的秩不超过 。LoRA 把更新写成 ,、,于是 :它只能改动权重的一个 维子空间。注意力里 ,、,所以 ;、 时, 的分数矩阵秩最多 64。
为什么需要:秩告诉你「这个矩阵能携带多少独立信息」。若某层权重秩为 ,则无论输入多丰富,该层输出只能落在 维子空间里(加偏置后是这个子空间的平移);残差流经过它,该分支能新增的信息被限制在 维。这就是低秩压缩、LoRA、KV 低秩缓存等方法的共同数学基础。
可检验结论:随机生成 ,计算 的奇异值;非零奇异值恰有 64 个(数值上其余接近 ),即 np.linalg.matrix_rank(S) == 64。用奇异值阈值而不是「数非零行」来定义秩,是 Golub & Van Loan 的口径。若把 降到 8,秩也降到 8——注意力的表达力被每个头的维度直接限制。
如果这一步算错,用户会看到什么现象:把秩当成满的,风控报告会显示「组合在 8 个因子上全部中性」,听起来完美,实际那个共线方向上押的仓没被计量,遇到风格切换时回撤远超模型预测的 VaR——用户看到的是「模型说风险 2%,实际亏了 15%」。另一种现象是权重算出 几百 %,被交易系统直接拒单,这个反而安全,因为它会报错。模型侧同理:如果误以为某层权重是满秩、按满秩去分配容量,实际有效维度更低,表现是「加宽了也没变强」,而这不会触发任何报错。
9. 练习
- 概念:用四个子空间解释「 有解且解唯一」的条件。
- 计算:,求四个子空间的基与维数,并验证两组正交关系。
- 计算:接上题,判断 与 是否在列空间里。
- 计算:,求秩、零空间、左零空间,并验证 。
- 开放:如果一层权重被约束为秩 1,它的输入输出关系会退化成什么样?这对模型容量意味着什么?
参考答案
- 有解 ;解唯一 ,即 。两者同时成立要求 且 在列空间。
- 行 3 = 行 1 + 行 2,秩 2;RREF 为 。列空间基 ;零空间基 ;行空间基 ;左零空间基 。验证:,、。
- 是两列之和,在列空间; 若在列空间,需 且第三分量 ,矛盾,不在。
- 两列成比例,秩 1;零空间由 给出,基 ,维数 1;左零空间由 与 (同一方程)给出,基 ,维数 2。。
- 秩 1 权重 先与 做内积(得到在 方向上的投影系数),再沿 输出:。所有输出共线,模型只能学「一个方向」的映射,容量急剧下降;但计算与存储都极省。
10. 一页速记
- 四个子空间:、、、。
- 物理意义 / 现实对应:四个子空间是「信息通道的四扇门」;在风控里,列空间是「模型能解释的仓位」,零空间是「模型看不见的押注」。
- 维数:。
- 正交:行空间 ⊥ 零空间,列空间 ⊥ 左零空间;两个正交直和分解。
- 秩-零化度:;行秩 = 列秩。
- 可解性看列空间,唯一性看零空间; 就是信息通道的宽度。
11. 参考文献与致谢
这一页的知识不是凭空来的。下面列出本页直接借用的原始工作与权威整理;正文中的人名、定理名已链接到对应条目。链接优先指向 DOI、arXiv 或可长期访问的原文存档。
- 斯特朗(Gilbert Strang, 1993):The Fundamental Theorem of Linear Algebra。把四个子空间的两组正交分解与 打包成「线性代数基本定理」,本页整页结构出自这篇。Amer. Math. Monthly
- Horn & Johnson(2012):Matrix Analysis(第 2 版)。给出 、 与正交补分解的完整证明,本页 §4.3 的推论表以它为准。Cambridge University Press
- Golub & Van Loan(2013):Matrix Computations(第 4 版)。用奇异值阈值定义「数值秩」,本页 §8 用
matrix_rank判断 的秩就依赖这个口径。Johns Hopkins University Press
下一篇 → 模块 4 · 线性方程组
随堂测 · 6 题
源文件:03-矩阵与线性映射/07-四个基本子空间.md