【机器学习】025--矩阵与映射中的“逆”

Posted by ShawnD on August 23, 2020

分析映射的逆过程

逆矩阵

对于⼀个 m×n 的矩阵,乘法 y=Ax 的作⽤就是将向量从 n 维原空间中的 x 坐标位置,映射到 m 维⽬标空间的 y 坐标位置,这是正向映射的过程。那么,如果已知结果向量的坐标 y 去反推原向量的坐标 x,这个过程就称 之为 逆映射 ,因为逆映射也是⼀种映射过程,因此表征逆映射的矩阵,我们称之为:$A^{-1}$

和反函数进⾏类⽐

我们来看最简单的⼀次函数:y=f(x)=ax+b,x 的取值范围为整个实数域,指定某个具体的 x,我们就能得到对应的 y,y 的取值范围也是整个实数域。那么反过来,我们看看其反函数的形式:$x = f^{-1}(y) = \frac{y - b}{a}$, 试图通过结果y, 来找到对应的x。

但是, 这有一个重要的前提条件, 就是$a \neq 0$。

我们通过 y=ax+b,实现了从 x 到 y 的映射,但是必须基于$a \neq 0$的前提条件下,我们才能通过$x = \frac{y - b}{a}$,将 y 重新映射回 x。因为当 a=0 时,y=0x+b,此时正⽅向上的映射$x \Rightarrow y$仍然存在,⽆论 x 取任何数,最终的映射结果都是 y=b,但是反⽅向$y \Rightarrow x$的映射就不存在了。

⼀⽅⾯当 y=b 的时候,有⽆穷多种 x 的取值可能,显然⽆法完成映射。另⼀⽅⾯,当$y \neq b$的时候,找不到满⾜等式条件的 x 值,因此映 射也是不存在的。

矮胖矩阵(列 > ⾏)的映射不可逆

映射压缩了空间

第一种情况时矩阵$A$将向量$x = [x_1, x_2, …, x_n]^T$映射到$y = [y_1. y_2, …, y_m]^T$, 其中$n > m$。

我们举个实际的例⼦,即 A 是⼀个 2*3 的矩阵,我们上⼀讲讨论过,如果矩阵 A 的三个列向量共⾯不共线,则该矩阵将⼀ 个$R^3$空间压缩成⼀个⼆维平⾯,如果三个列向量共线,则经过映射最终将其压缩成⼀条直线。

这种映射的本质是将 x 所在的三维空间,映射到 y 所在的⼆维空间(或者是⼀维空间),对应了压缩扁平化的操作,即有多个 x 会被转移到同⼀个 y 上。

我们用一个例子来描述一下压缩这个过程, $A = \begin{bmatrix}1 & 1 & 0 \ 1 & 0 & 1\end{bmatrix}$, 我们聚焦映射后目标空间中的零向量$y = \begin{bmatrix}0 \ 0\end{bmatrix}$, 看看原空间中有多少向量会被映射到哪。

即:

\[Ax = \begin{bmatrix}1 & 1 & 0 \\ 1 & 0 & 1\end{bmatrix}\begin{bmatrix}x_1 \\ x_2 \\ x_3\end{bmatrix} = \begin{bmatrix}0 \\ 0\end{bmatrix}\]

展开得到:

\[x_1 + x_2 = 0 \\ x_1 + x_3 = 0\]

处理一下, 即在原始空间$R^3$中, 各成分满足$x_2 = x_3 = -x_1$的向量, 经过矩阵的映射, 都能映射到目标空间的原点上。 显而易⻅,原始空间⾥满⾜这个条件的向量有⽆穷多个,如图 所⽰,它们分布在⼀条直线上。

![](https://raw.githubusercontent.com/ShawnDong98/ShawnDong98.github.io/master/小书匠/1598149747856.png

这个图⾥揭⽰了⼀个现象:已知映射后在⼆维⽬标空间中的点 y,想寻找原空间中的出发点 x 在哪⾥?我们是⽆法判断出的。

因为,在映射过程中空间被矩阵 A 给压缩了,换句话说,⼀些信息在这个压缩映射的过程中丢失了,因此再也回不去了,所以这种形态的矩阵 A 所表⽰的映射 是不存在逆映射的,矩阵 A 也没有逆矩阵。

零空间的概念

我们由此引出⼀个概念,对于给定的矩阵 A,在映射的作⽤下满⾜ Ax=0 的 x 的集合称为 A 零空间,记作:N(A)。在上⾯的 那个例⼦中,满⾜ Ax=0 的 x 分布在⼀条直线上,因此 N(A) 的维度是 1 维的。

如果⼀个矩阵 A 存在着逆映射,则意味着其映射后的点是要能被唯⼀还原的,因此显然零空间 N(A) 对应的不能是⼀维直线、⼆维平⾯,而只能是⼀个点,也就是原始空间中的 0 向量,即如果⼀个矩阵可逆,它的 N(A) 必须 是 0 维的。

“⾼瘦”矩阵(⾏ > 列)的映射不可逆

⽬标空间⽆法被完全覆盖

“矮胖”矩阵在映射过程中,压缩了空间,丢失了信息,因此这个映射可谓是再也回不去了。那我们再看,如果映射的结果 向量 y 的维度⼤于原空间向量 x 的维度,例如在矩阵$\begin{bmatrix}1 & 0 \ 0 & 1 \ 0 & -1\end{bmatrix}$的作⽤下,将⼀个⼆维向量映射成⼀个三维向量,⼜是⼀个什么情况呢?

表⾯上看,我们似乎没有压缩空间,反而是把⼀个⼆维向量扩充成了三维向量,信息量应该更⼤了。点肯定能逆映射回原空间找到出发点。实际上⼀定能做到么?并不能,因为我们是把⼆维空间映射到⼀个三维空间,而仅凭 ⼆维空间的信息量就想把三维空间全部覆盖,根本不可能,最终的映射效果如图 所⽰。

从表⾯数字上看,之前的⼀个⼆维空间被映射到了三维空间⾥,但实际上我们发现,映射的结果实质上是⼀个“倾斜”的搭 在三维空间中的⼀个⾯,它是⼆维的。那么这个⼆维平⾯外的任意⼀点,都⽆法找到原空间中对应的出发点,因此⾼瘦矩阵 的逆映射⾃然也是不存在的。

列空间的概念

从这个例⼦中,我们⼜引出⼀个空间的概念,叫列空间。⼀个原始空间经过矩阵映射得到的对应空间,本质上就是该矩阵各 列所有线性组合的结果,我们称之为列空间 C(A)。在这个 3×2 的矩阵$A = \begin{bmatrix}1 & 0 \ 0 & 1 \ 0 & -1\end{bmatrix}$的例子中, 映射的目标空间是三维的$R^3$空间, 而列空间是$R^3$中的一个二维平面。

⽅阵逆映射的讨论

⾸先很简单,必须先得是⼀个⽅阵。

在矩阵 A 是 n 阶⽅阵的前提下,以下条件都与可逆性等价:

  • 矩阵 A 的零空间的维数为 0,或列空间的维数为 n;
  • 列向量$a_1, a_2, …, a_n$线性⽆关。