1. 程式人生 > >機器學習:矩陣的秩和矩陣的四個子空間

機器學習:矩陣的秩和矩陣的四個子空間

最近又特意翻看了一下 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