当前位置:   article > 正文

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

子空间估计和秩

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

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

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

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

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

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

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

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

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

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

A = [ 1 0 2 3 0 1 3 2 ] \mathbf{A} =

[1amp;0amp;2amp;30amp;1amp;3amp;2]
A=[10012332]

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

A = [ 1 0 2 3 4 0 1 3 2 5 ] \mathbf{A} =

[1amp;0amp;2amp;3amp;40amp;1amp;3amp;2amp;5]
A=[1001233245]

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/320321
推荐阅读
相关标签
  

闽ICP备14008679号