机器学习:矩阵的秩和矩阵的四个子空间

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shinian1987/article/details/84037921

最近又特意翻看了一下 MIT 的那本经典的《线性代数》,对矩阵的秩和矩阵的四个子空间有了更加深刻的理解。

给定一个矩阵 A R m × n A \in R^{m \times n} ,这个矩阵的行列向量可以构成四个子空间,分别是 column space,row space,null space 以及 left-null space,矩阵有行,列两个维度,如果是列向量,那么就是 m × 1 m\times1 维,如果看成是行向量,就是 n × 1 n\times1 维,矩阵的列向量 span 成矩阵的列空间,而矩阵的行向量 span 成行空间,这个直接从矩阵的行列向量就可以得到。

而矩阵的 null space 和 left-null space,就需要进一步的求解了,矩阵的 null space 就是所有使得线性方程组 A x = 0 \mathbf{A}\mathbf{x}=0 成立的,所有向量 x \mathbf{x} 构成的空间,而 left-null space,是使得线性方程组 A T y = 0 \mathbf{A}^{T}\mathbf{y}=0 成立的所有向量 y \mathbf{y} 构成的空间。

在 MIT 的《线性代数》中,对矩阵 A \mathbf{A} 的秩,即 rank 有三个层面的解读:

  • 矩阵的秩为 r r ,表示线性方程组 A x \mathbf{A}\mathbf{x} 中有 r r 个 pivot,pivot 表示不可消去的变量,这是从数值的角度理解
  • 矩阵的秩为 r r ,也表示矩阵 A \mathbf{A} r r 个线性无关的行向量或者列向量,这是从向量的角度来理解
  • 矩阵的秩为 r r ,也表示矩阵的行空间或者列空间的“维度”为 r r ,这是最高一层的含义了,从空间的角度来理解。

可能前面的两个定义还比较好理解,而第三个定义,空间的“维度”,可能一眼看上去不太好理解。我们知道,三维空间的维度是 3,四维空间的维度是 4, n n 维空间的维度是 n n ,这里的维度是我们通常理解的物理定义上的维度,而在数学上,“维度” 还有更广泛的定义,“维度” 在线性代数里,更多的时候表示的是 span 该空间所需要的基向量的个数,而基向量,就是我们通常所说的线性无关的向量,矩阵的秩为 r r ,意味着矩阵的行,列空间里最多只有 r r 个线性无关的向量,所以该空间的维度为 r r

我们知道矩阵的列向量是 m × 1 m\times1 的向量,所以矩阵的列空间是 R m \mathbf{R}^{m} 中的一个子空间,矩阵的行向量是 n × 1 n \times 1 的向量,所以矩阵的行空间是 R n \mathbf{R}^{n} 中的一个子空间,矩阵的行列空间的维度都是 r r ,也就是矩阵的秩,而矩阵的 null space 的维度是 n r n-r ,矩阵的 left-null space 的维度是 m r m-r 。所以总结起来就是,如果 A R m × n \mathbf{A} \in R^{m \times n} 的秩为 r r ,那么:

  • 矩阵 A \mathbf{A} 的列空间 C ( A ) C(\mathbf{A}) 的维度为 r r ,是 R m \mathbf{R}^{m} 中的一个子空间
  • 矩阵 A \mathbf{A} 的行空间 C ( A T ) C(\mathbf{A}^{T}) 的维度为 r r ,是 R n \mathbf{R}^{n} 中的一个子空间
  • 矩阵 A \mathbf{A} 的 null 空间 N ( A ) N(\mathbf{A}) 的维度为 n r n-r ,是 R n \mathbf{R}^{n} 中的一个子空间
  • 矩阵 A \mathbf{A} 的 left-null 空间 N ( A T ) N(\mathbf{A}^{T}) 的维度为 m r m-r ,是 R m \mathbf{R}^{m} 中的一个子空间

矩阵的行空间和矩阵的 null space 是互相垂直的,同理,矩阵的列空间和矩阵的 left-null space 也是互相垂直的。这个比较好理解,假设 A x = 0 \mathbf{A}\mathbf{x}=\mathbf{0} 有非零解,也就是矩阵的 null space 存在,很显然, A \mathbf{A} 中的每一行都和 x \mathbf{x} 相乘为 0,所以 A \mathbf{A} 中 的每一行都和 x \mathbf{x} 互相垂直,所以 A \mathbf{A} 的行空间与 A \mathbf{A} 的 null-space 是互相垂直的,同理也可以得到列空间与 left-null space 是互相垂直的。

下面来看看矩阵的行空间的维度为什么和矩阵的 null-space 的维度 “互补”,假设矩阵 A \mathbf{A} 是一个 2 × 4 2\times 4 的矩阵如下:

A = [ 1 0 2 3 0 1 3 2 ] \mathbf{A} = \begin{bmatrix} 1 & 0 & 2 & 3 \\ 0 & 1 & 3 & 2 \end{bmatrix}

A \mathbf{A} 的秩为 2,所以矩阵的行空间的“维度”是 2,矩阵的 null space 是 R 4 \mathbf{R}^{4} 中的一个子空间,假设 null-sapce 的向量为 x = { x 1 , x 2 , x 3 , x 4 } T \mathbf{x} = \{ x_1, x_2, x_3, x_4 \}^{T} x 1 , x 2 x_1, x_2 就是我们所说的 pivot,而 x 3 , x 4 x_3, x_4 就是我们所说的自由变量,我们随便取值,代入原方程都可以得到相应的解, x 1 , x 2 x_1, x_2 是由 x 3 , x 4 x_3, x_4 来决定的,这两个自由变量组成的向量维度为 2,所以 null-space 的 “维度” 也是 2。换成另外一个矩阵:

A = [ 1 0 2 3 4 0 1 3 2 5 ] \mathbf{A} = \begin{bmatrix} 1 & 0 & 2 & 3 & 4 \\ 0 & 1 & 3 & 2 & 5 \\ \end{bmatrix}

A \mathbf{A} 的秩还是为 2,所以矩阵的行空间的“维度”是 2,矩阵的 null space 是 R 5 \mathbf{R}^{5} 中的一个子空间,矩阵 pivot 的个数是 2,而自由变量的个数变成了 3, 而 3 个自由变量组成的向量的维度是 3,所以 null space 的维度是 3,所以矩阵行空间的维度与 null space 的维度之和总是等于矩阵行向量的维度。这两个空间互相垂直,并且维度之和等于 n n ,所以说这两个空间的基向量 span 起了整个 n n 维空间。

猜你喜欢

转载自blog.csdn.net/shinian1987/article/details/84037921