分类目录:《算法设计与分析》总目录
如果逆矩阵 A − 1 A^{-1} A−1存在,我们在《机器学习中的数学——单位矩阵和逆矩阵》中可以得到: A x = b Ax=b Ax=b对于每一个向量 b b b恰好存在一个解。但是,对于方程组而言,对于向量 b b b的某些值,有可能不存在解,或者存在无限多个解。存在多于一个解但是少于无限多个解的情况是不可能发生的;因为如果 x x x和 y y y都是某方程组的解,则 z = α x + ( 1 − α ) y z=\alpha x+(1-\alpha)y z=αx+(1−α)y(其中 α \alpha α取任意实数)也是该方程组的解。
为了分析方程有多少个解,我们可以将 A A A的列向量看作从原点出发的不同方向,确定有多少种方法可以到达向量 b b b。在这个观点下,向量 x x x中的每个元素表示我们应该沿着这些方向走多远,即 x i x_i xi表示我们需要沿着第 i i i个向量的方向走多远,即: A x = ∑ i x i A : , i Ax=\sum_ix_iA_{:,i} Ax=∑ixiA:,i一般而言,这种操作被称为线性组合。形式上,一组向量的线性组合,是指每个向量乘以对应标量系数之后的和,即: ∑ i c i v ( i ) \sum_ic_iv^{(i)} ∑iciv(i)。一组向量的生成子空间是原始向量线性组合后所能抵达的点的集合。
确定 A x = b Ax=b Ax=b是否有解相当于确定向量 b b b是否在 A A A列向量的生成子空间中。这个特殊的生成子空间被称为 A A A的列空间或者A的值域。
为了使方程 A x = b Ax=b Ax=b对于任意向量 b ∈ R m b\in R^m b∈Rm都存在解,我们要求 A A A的列空间构成整个 R m R^m Rm。如果 R m R^m Rm中的某个点不在 A A A的列空间中,那么该点对应的 b b b会使得该方程没有解。矩阵 A A A的列空间是整个 R m R^m Rm的要求,意味着 A A A至少有 m m m列,即 n ≥ m n\geq m n≥m。否则, A A A列空间的维数会小于 m m m。例如,假设 A A A是一个 3 × 2 3\times2 3×2的矩阵。目标 b b b是3维的,但是 x x x只有2维。所以无论如何修改 x x x的值,也只能描绘出 R 3 R^3 R3空间中的二维平面。当且仅当向量 b b b在该二维平面中时,该方程有解。
不等式 n ≥ m n\geq m n≥m仅是方程对每一点都有解的必要条件。这不是一个充分条件,因为有些列向量可能是冗余的。假设有一个 R 2 × 2 R^{2\times2} R2×2中的矩阵,它的两个列向量是相同的。那么它的列空间和它的一个列向量作为矩阵的列空间是一样的。换言之,虽然该矩阵有2列,但是它的列空间仍然只是一条线,不能涵盖整个 R 2 R^2 R2空间。
正式地说,这种冗余被称为线性相关。如果一组向量中的任意一个向量都不能表示成其他向量的线性组合,那么这组向量称为线性无关。如果某个向量是一组向量中某些向量的线性组合,那么我们将这个向量加入这组向量后不会增加这组向量的生成子空间。这意味着,如果一个矩阵的列空间涵盖整个 R m R^m Rm,那么该矩阵必须包含至少一组 m m m个线性无关的向量。
这是 A x = b Ax=b Ax=b对于每一个向量 b b b的取值都有解的充分必要条件。值得注意的是,这个条件是说该向量集恰好有 m m m个线性无关的列向量,而不是至少 m m m个。不存在一个 m m m维向量的集合具有多于 m m m个彼此线性不相关的列向量,但是一个有多于 m m m个列向量的矩阵有可能拥有不止一个大小为 m m m的线性无关向量集。
要想使矩阵可逆,我们还需要保证 A x = b Ax=b Ax=b对于每一个 b b b值至多有一个解。为此,我们需要确保该矩阵至多有 m m m个列向量。否则,该方程会有不止一个解。
综上所述,这意味着该矩阵必须是一个方阵,即 m = n m=n m=n,并且所有列向量都是线性无关的。一个列向量线性相关的方阵被称为奇异的。如果矩阵 A A A不是一个方阵或者是一个奇异的方阵,该方程仍然可能有解。但是我们不能使用矩阵逆去求解。