向量空间是线性代数中的基本结构。在这些空间中,存在着更小且独立的结构。设想一下我们熟悉的3D空间 R3。在这个空间中,可以想象穿过原点的平面和直线。它们不只是任意点的集合;它们拥有与所属大空间相同的基本特性。这些特殊的子集被称为子空间。
形式上,如果向量空间 V 的一个子集 W 在 V 上定义的相同加法和标量乘法运算下,其本身也构成一个向量空间,那么 W 就被称为一个子空间。虽然检查所有向量空间公理可能显得繁琐,但有一个更简单的检验方法。V 的一个非空子集 W 是一个子空间,当且仅当它满足以下三个条件:
- 包含零向量: V 的零向量必须也在 W 中。(0∈W)
- 对加法封闭: 对于 W 中任意两个向量 u 和 v,它们的和 u+v 必须也在 W 中。
- 对标量乘法封闭: 对于 W 中任意向量 u 和任意标量 c,标量乘积 c⋅u 必须也在 W 中。
我们通过一些几何直观来解释这些条件。
几何视角:穿过原点的直线和平面
考虑 R2,即标准的二维笛卡尔平面。
- 一条穿过原点的直线: 考虑所有满足 y=2x 的向量 (x,y) 组成的集合 W。
- 它包含零向量吗?是的,(0,0) 满足 0=2×0。
- 它对加法封闭吗?设 u=(x1,2x1) 和 v=(x2,2x2) 是直线上两个向量。它们的和是 u+v=(x1+x2,2x1+2x2)=(x1+x2,2(x1+x2))。这个结果向量的 y 分量仍等于其 x 分量的两倍,因此它也在这条线上。W 对加法封闭。
- 它对标量乘法封闭吗?设 u=(x1,2x1) 在直线上,c 为任意标量。则 c⋅u=(cx1,c(2x1))=(cx1,2(cx1))。这个向量也满足条件 y=2x,因此它在直线上。W 对标量乘法封闭。
由于所有三个条件都成立,直线 y=2x 是 R2 的一个子空间。
R2 中穿过原点的直线满足子空间条件。它包含原点,并且对线上任意两个向量进行相加或对线上向量进行标量乘法,结果都在同一条线上。
-
一条不穿过原点的直线呢? 例如,所有满足 y=2x+1 的向量 (x,y) 组成的集合 W′。这个集合不满足第一个条件:零向量 (0,0) 不在 W′ 中,因为 0=2(0)+1。因此,这条直线不是 R2 的一个子空间。零向量必须属于任何子空间的要求是基本的。
-
整个空间 R2 也是其自身的子空间。 它显然满足所有条件。
-
只包含零向量 {0} 的集合也是一个子空间。 这通常被称为平凡子空间。
类似地,在 R3 中,穿过原点 (0,0,0) 的直线和平面都是子空间。由 ax+by+cz=0 定义的平面是子空间,而平面 ax+by+cz=d(并且 d=0)则不是,因为它不包含原点。
代数例子
考虑向量空间 V=R3。设 W 是所有形如 (x,y,0) 的向量的集合,在这里 x 和 y 是任意实数。从几何上看,这代表了3D空间中的xy平面。我们来严格检验这些条件:
- 零向量: R3 中的零向量是 (0,0,0)。这符合 (x,y,0) 的形式,其中 x=0 和 y=0。所以,零向量在 W 中。
- 对加法封闭: 设 u=(x1,y1,0) 和 v=(x2,y2,0) 是 W 中任意两个向量。它们的和是 u+v=(x1+x2,y1+y2,0+0)=(x1+x2,y1+y2,0)。结果仍然是一个第三分量为零的向量,这证实了 u+v 也在 W 中。
- 对标量乘法封闭: 设 u=(x1,y1,0) 在 W 中,c 为任意标量(一个实数)。则 c⋅u=(cx1,cy1,c⋅0)=(cx1,cy1,0)。这个结果向量的第三分量也为零,所以 c⋅u 在 W 中。
由于所有三个条件都满足,集合 W(xy平面)确实是 R3 的一个子空间。
子空间在机器学习中的作用
理解子空间不仅仅是理论练习;它对数据结构和算法行为提供了有价值的认识:
- 特征子空间: 设想你的数据集有许多特征(例如,每个数据点有数百个测量值),这意味着你的数据向量存在于一个高维空间 Rn 中。如果你进行特征选择或特征工程,你可能会选择使用一个较小的特征集。数据在使用这个特征子集表示时,实际上就处于原始特征空间的一个子空间内。这个子空间的属性,例如它的维度(我们稍后会讨论),与所选特征的复杂性和冗余度直接相关。例如,主成分分析 (PCA) 明确寻找一个低维子空间来捕获数据中大部分的方差。
- 解空间: 求解线性方程组时,特别是形如 Ax=0 的齐次系统,所有可能的解向量 x 构成的集合是一个子空间。这被称为矩阵 A 的零空间(或核)。理解这个子空间对于分析模型拟合(如线性回归中)出现的线性系统的解的唯一性很重要。
- 流形假设: 尽管经常处理非线性结构,但机器学习中的流形假设表明,复杂的高维数据(如图像或自然语言嵌入)通常集中于嵌入在更高维环境空间中的低维流形附近。虽然流形通常是弯曲的,但它们的局部结构有时可以用平坦的子空间(切空间)来近似。子空间为思考表现出低维结构的数据提供了基本的线性代数依据,即使该结构并非全局平坦。
判断给定向量集合是否构成子空间需要验证这三个封闭属性。如果其中任何一个属性不满足(例如,集合不包含零向量,或集合中两个向量相加得到一个不在集合内的向量),那么它就不是一个子空间。这种系统性的检查有助于我们对大向量空间中有结构的子集进行分类和分析,这对理解数据变换、降维方法以及各种机器学习模型的行为是基本的。