Math-03.线性代数-03.线性变换与秩

本页说明矩阵作为线性变换的几何意义,以及(rank)如何刻画信息维度——PCA、SVD、LoRA 都建立在秩的概念上。

段末注释(rank)是矩阵列(或行)向量组的极大线性无关个数;$\mathrm{rank}(A) \le \min(m,n)$,对 $A \in \mathbb{R}^{m \times n}$。

系列入口00.系列规划 | 前置:02 向量与矩阵运算


1. 线性变换直观(D1)

图 1 线性变换

矩阵 $A \in \mathbb{R}^{m \times n}$ 定义映射 $T(\mathbf{x}) = A\mathbf{x}$,$\mathbf{x} \in \mathbb{R}^n$,$A\mathbf{x} \in \mathbb{R}^m$。

线性指:

$$
T(\alpha \mathbf{x} + \beta \mathbf{y}) = \alpha T(\mathbf{x}) + \beta T(\mathbf{y})
$$

几何上:原点固定、直线仍映为直线(可拉伸/旋转/投影)。ML 中一层全连接(无激活)就是线性变换;ReLU 等非线性打破纯线性,但梯度仍经线性块回传。


2. 四个基本子空间(D2–D3)

图 2 子空间与秩

对 $A \in \mathbb{R}^{m \times n}$:

子空间 符号 维数
列空间 $\mathcal{C}(A) = {A\mathbf{x}}$ $\mathrm{rank}(A)$
零空间 $\mathcal{N}(A) = {\mathbf{x}: A\mathbf{x}=\mathbf{0}}$ $n - \mathrm{rank}(A)$
行空间 $\mathcal{C}(A^\top)$ $\mathrm{rank}(A)$
左零空间 $\mathcal{N}(A^\top)$ $m - \mathrm{rank}(A)$

秩–零化度定理:$\mathrm{rank}(A) + \dim\mathcal{N}(A) = n$。

满秩

  • 列满秩($\mathrm{rank}=n$):$A\mathbf{x}=\mathbf{b}$ 至多一个解 → 特征无冗余
  • 行满秩($\mathrm{rank}=m$):方程组相容性条件较松

3. 秩的等价定义(D3)

以下数值相等,均为 $\mathrm{rank}(A)$:

  1. 线性无关列的最大个数
  2. 线性无关行的最大个数
  3. 非零奇异值个数(见 05 SVD

低秩矩阵:$\mathrm{rank}(A) = r \ll \min(m,n)$,可写为 $A = UV^\top$,$U \in \mathbb{R}^{m \times r}$,$V \in \mathbb{R}^{n \times r}$——LoRA 的思想根源。


4. 可逆与伪逆(D3–D6)

方阵 $A \in \mathbb{R}^{n \times n}$ 可逆当且仅当 $\mathrm{rank}(A)=n$,即 $\det(A)\neq 0$(非奇异)。

非方阵或奇异时,最小二乘解用 Moore–Penrose 伪逆 $A^+$:

$$
\hat{\mathbf{x}} = A^+ \mathbf{b}, \quad A^+ = V \Sigma^+ U^\top \text{(由 SVD 构造)}
$$

线性回归正规方程 $X^\top X \boldsymbol{\beta} = X^\top \mathbf{y}$:当 $X^\top X$ 奇异(多重共线性)时需正则化(Ridge)或降维。


5. ML 场景(D7)

图 3 秩在 ML 中的含义

场景 秩的含义
特征矩阵 $X$ 列秩 $< d$ → 特征线性相关,$X^\top X$ 不可逆
协方差 $\Sigma$ $\mathrm{rank}(\Sigma) < d$ → 数据落在低维子空间
权重更新 $\Delta W$ LoRA 假设 $\mathrm{rank}(\Delta W)$ 很小
嵌入矩阵 有效维度 ≤ 隐藏维 $h$
数据 $n < d$ 高维小样本,天然低秩/需正则

Math-02/20 特征选择 共线性讨论直接相关。


6. 局限与误用(D8)

图 4 局限

误用 说明
强行求 $A^{-1}$ 秩亏时数值不稳定
忽视 $\mathrm{rank}(X) < n$ 最小二乘不唯一
把「参数多」当「秩高」 过参数化网络秩行为更复杂
样本秩 = 总体秩 有限样本估计有噪声

7. NumPy 示例(D12)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import numpy as np

X = np.random.randn(50, 20)
print("rank(X):", np.linalg.matrix_rank(X)) # 通常 min(50,20)=20

# 构造秩-2 矩阵
u = np.random.randn(50, 2)
v = np.random.randn(20, 2)
X_low = u @ v.T
print("rank(X_low):", np.linalg.matrix_rank(X_low)) # 2

# 奇异值看秩
s = np.linalg.svd(X_low, compute_uv=False)
print("非零奇异值个数:", np.sum(s > 1e-10))

8. 小结

回答「这个矩阵真正有多少自由度」——降维、共线性、LoRA 都依赖它。下一篇:04 特征值与特征向量(对称矩阵的谱)。

系列导航02 向量矩阵 | 05 SVD

-------------本文结束感谢您的阅读-------------