列空间和零空间是与给定矩阵 A 紧密关联的两个基本子空间。它们提供关于由 A 定义的线性变换的行为特性以及它可能表示的数据结构的宝贵理解。理解列空间和零空间对于分析线性模型、特征之间的关系以及线性方程组的可解性很重要。向量 (vector)空间、张成和线性独立性是定义和应用这些子空间的奠基性概念。
列空间(值域)
考虑一个 m×n 矩阵 A。它的列向量 (vector) a1,a2,...,an 均是 Rm 中的向量。
列空间 Col(A) 是矩阵 A 的所有列向量的线性组合所构成的集合。换句话说,它是这些列向量的张成空间:
Col(A)=span{a1,a2,...,an}
由于任何一组向量的张成空间都构成一个子空间,所以 Col(A) 是 Rm 的一个子空间。
列空间代表什么?回想一下,矩阵向量积 Ax 可以写成 A 的列向量的线性组合,其权重 (weight)由 x 的分量给出:
Ax=x1a1+x2a2+...+xnan
这意味着列空间 Col(A) 正是由变换 x↦Ax 可以得到的所有可能输出 b 的集合。如果将 A 视为定义了一个线性变换 T:Rn→Rm,其中 T(x)=Ax,那么 Col(A) 就是此变换的值域。它是输出空间 Rm 中该变换实际能达到的子空间。
线性方程组 Ax=b 有解(即至少有一个解)当且仅当向量 b 位于 A 的列空间中。如果 b 在 Col(A) 之外,那么就不可能找到权重 x1,...,xn 使得 x1a1+...+xnan=b。
寻找列空间的一组基
列空间的一组基包含一组线性独立的列向量,这些列向量仍然能张成整个列空间。我们如何找到这样一组向量?原始矩阵 A 的主元列构成 Col(A) 的一组基。为了找到它们,通常需要将 A 进行行化简,使其达到阶梯形。原始矩阵 A 中对应于阶梯形中主元位置的列向量就是 Col(A) 的一组基。
列空间的维度 dim(Col(A)) 是其基中向量的数量,它等于 A 中主元列的数量。这个维度有一个特殊名称:矩阵 A 的秩。
秩(A)=dim(Col(A))
秩告诉我们 A 的列向量所张成的独立方向或维度的数量。在机器学习 (machine learning)的情境中,如果列向量表示特征或变换后的特征,则秩表明了该特征空间的有效维度。秩小于列数意味着列向量所表示的特征存在线性相关性或冗余。
零空间(核)
一个 m×n 矩阵 A 的零空间,记作 Nul(A),是 Rn 中所有向量 (vector) x 的集合,这些向量通过变换 x↦Ax 被映射到 Rm 中的零向量。形式上表示为:
Nul(A)={x∈Rn∣Ax=0}
零空间包含齐次线性方程组 Ax=0 的所有解。
Nul(A) 是一个子空间吗?是的,它是输入空间 Rn 的一个子空间。我们可以这样验证:
- 零向量 0∈Rn 总是在 Nul(A) 中,因为 A0=0。
- 如果 u 和 v 都在 Nul(A) 中,那么 Au=0 且 Av=0。于是 A(u+v)=Au+Av=0+0=0,所以 u+v 在 Nul(A) 中。
- 如果 u 在 Nul(A) 中且 c 是一个标量,那么 Au=0。于是 A(cu)=c(Au)=c(0)=0,所以 cu 在 Nul(A) 中。
从几何上看,如果 A 表示一个变换 T:Rn→Rm,则零空间 Nul(A) 是所有在输出空间中被“压缩”或映射到原点的输入向量的集合。这有时也称为变换 T 的核。
寻找零空间的一组基
为了找到零空间的一组基,你需要找到齐次方程 Ax=0 的通解。这通常涉及:
- 将增广矩阵 [A∣0] 行化简为简化行阶梯形(RREF)。
- 将基本变量(对应于主元列)用自由变量(对应于非主元列)表示。
- 将通解向量 x 写成向量的线性组合,其中权重 (weight)是自由变量。
此线性组合中的向量构成了 Nul(A) 的一组基。
零空间的维度 dim(Nul(A)) 是其基中向量的数量,它等于系统 Ax=0 中自由变量的数量。这个维度通常称为矩阵 A 的零化度。
零化度(A)=dim(Nul(A))
如果零化度大于零,则表示存在非零输入向量映射到零向量。对于系统 Ax=b,如果存在一个解 xp(一个特解),那么任何其他解都可以写成 x=xp+xh,其中 xh 是来自零空间的任意向量(Axh=0)。一个非平凡的零空间意味着 Ax=b 的解(如果存在)不唯一。
秩-零化度定理
对于任何 m×n 矩阵 A,列空间维度(秩)与零空间维度(零化度)之间存在一个基本关系。它被称为秩-零化度定理:
秩(A)+零化度(A)=n
或者
dim(Col(A))+dim(Nul(A))=A 的列数
这个定理在变换 T(x)=Ax 的输入空间 (Rn) 和输出空间 (Rm) 之间提供了一个有力的联系。它主要表明,由变换保留的维度数量(秩,值域的维度)加上被压缩为零的维度数量(零化度,核的维度)必须等于输入域的总维度 (n)。
思考这意味着什么:
- 如果一个矩阵具有大的零空间(高零化度),则许多输入维度在变换中丢失,导致输出空间维度降低(低秩)。
- 如果一个矩阵具有平凡零空间(零化度 = 0,意味着只有 x=0 是 Ax=0 的解),那么没有维度丢失,并且秩将等于列数 (n)。这种情况发生当且仅当 A 的列是线性独立的。
数据分析和机器学习 (machine learning)中的意义
为什么这些子空间在实践中很重要?
- 列空间和秩: 列空间代表由解含有 A 的方程组确定的线性模型所能实现的所有可能结果或预测的空间。特征矩阵的秩告诉您独立特征的有效数量。如果秩小于列数,则表明存在多重共线性或冗余特征,这可能导致某些模型(如线性回归)的不稳定。降维技术通常旨在找到一个低秩近似,以捕捉 Col(A) 中的大部分结构。
- 零空间: 零空间识别对线性变换 Ax 的输出没有影响的输入组合(例如,特征值)。如果 Nul(A) 包含非零向量 (vector),则意味着不同的输入组合可以导致相同的输出。在解像 Ax=b 这样的方程组时,如果存在解,非平凡的零空间表示有无限多个解。这与模型中的参数 (parameter)可识别性等问题相关。例如,如果回归中设计矩阵的零化度大于零,则模型系数不会唯一确定。
通过分析从数据集中得到的矩阵的列空间、零空间和秩,我们能更好地理解特征之间的关系、模型的能力以及潜在问题,例如冗余或解的不唯一性。这些思想构成了后面会介绍的更高级技术的基础,包括SVD等矩阵分解。