下面讨论 m × n m\times n m×n的秩为 r r r的矩阵
对于不同情况,讨论逆矩阵
两侧逆矩阵 2-sided inverse
这也是一般所说的“逆矩阵”的含义
方阵
A
\boldsymbol{A}
A满秩
r
=
m
=
n
r=m=n
r=m=n,那么有
A
−
1
A
=
A
A
−
1
=
I
\boldsymbol{A}^{-1} \boldsymbol{A}^{=} \boldsymbol{A} \boldsymbol{A}^{-1}=\boldsymbol{I}
A−1A=AA−1=I,其中
A
−
1
\boldsymbol{A}^{-1}
A−1为两侧逆矩阵(简称逆矩阵)
更一般的,对于长方形的矩阵,可以推广逆矩阵的概念,得到单侧逆
单边逆 one-sided inverse
一般的
n
×
m
n\times m
n×m长方形矩阵,不可能有两侧逆矩阵
原因:假如矩阵向量相乘得到零向量
A
x
=
0
\mathbf A\mathbf x=\mathbf 0
Ax=0,对应于降维的线性变换,没有逆矩阵能够还原这个过程;
因此我们说:零空间的存在(
A
\boldsymbol{A}
A的零空间和
A
T
\boldsymbol{A}^T
AT的零空间中有非零向量)毁掉了逆矩阵,而长方形矩阵
A
\boldsymbol{A}
A和
A
T
\boldsymbol{A}^T
AT总有一个的零空间维数不为0(
n
−
r
≠
0
或
m
−
r
≠
0
n-r\neq 0或m-r\neq 0
n−r=0或m−r=0)
具体在下面的四个子空间讨论的部分还会讲到
左逆矩阵 Left inverse
矩阵
A
\boldsymbol{A}
A列满秩
r
=
n
≤
m
r=n\leq m
r=n≤m,存在左逆矩阵
A
left
−
1
\boldsymbol{A}_{\text {left }}^{-1}
Aleft −1,满足
A
left
−
1
n
×
m
A
m
×
n
=
I
n
×
n
{\boldsymbol{A}_{\text {left }}^{-1}}_{n\times m} \boldsymbol{A}_{m\times n}=\boldsymbol{I}_{n\times n}
Aleft −1n×mAm×n=In×n;
其中左逆矩阵
A
left
−
1
=
(
A
T
A
)
−
1
A
T
\boldsymbol{A}_{\text {left }}^{-1}=\left(\boldsymbol{A}^{T} \boldsymbol{A}\right)^{-1} \boldsymbol{A}^{T}
Aleft −1=(ATA)−1AT(注意,实际上有很多左逆,这里写出的是其中一个)
前置知识:
对于长方形矩阵, A T A \boldsymbol{A}^{T} \boldsymbol{A} ATA是很好的观察对象;
A T A \boldsymbol{A}^{T} \boldsymbol{A} ATA至少为半正定矩阵;当 A \boldsymbol{A} A列满秩 r = n r=n r=n时, A T A \boldsymbol{A}^{T} \boldsymbol{A} ATA正定,进而行列式大于0、满秩、可逆
详见线性代数学习笔记8-4:正定矩阵
证明:
假如
A
\boldsymbol{A}
A列满秩
r
=
n
r=n
r=n,则
(
A
T
A
)
n
×
n
(\boldsymbol{A}^{T} \boldsymbol{A})_{n\times n}
(ATA)n×n满秩
r
=
n
r=n
r=n、可逆,则有
(
A
T
A
)
−
1
A
T
A
=
I
\left(\boldsymbol{A}^{T} \boldsymbol{A}\right)^{-1} \boldsymbol{A}^{T} \boldsymbol{A}=\boldsymbol{I}
(ATA)−1ATA=I
由上式可得,
A
\boldsymbol{A}
A的左逆矩阵
A
left
−
1
=
(
A
T
A
)
−
1
A
T
\boldsymbol{A}_{\text {left }}^{-1}=\left(\boldsymbol{A}^{T} \boldsymbol{A}\right)^{-1} \boldsymbol{A}^{T}
Aleft −1=(ATA)−1AT
注意,上面介绍的左逆矩阵,也是最小二乘法能够奏效的核心所在
之前说过,根据最小二乘法, A x = b \mathbf A \boldsymbol x=\boldsymbol b Ax=b无解时,转而求解 A T A x ^ = A T b \mathbf A^T\mathbf A \hat{\boldsymbol x}=\mathbf A^T\boldsymbol b ATAx^=ATb,该方程的解 x ~ \tilde{\boldsymbol x} x~会是“最优解”
实际上,其理论依据就在于,当 A \mathbf A A列满秩 r = n r=n r=n时, A T A \mathbf A^T \mathbf A ATA为正定矩阵,进而可逆(后一个方程必有解)
详见线性代数学习笔记8-4:正定矩阵、最小二乘法与半正定矩阵A^T A
后面将会看到,当 A \mathbf A A不是列满秩时,我们需要用伪逆矩阵来求最小范数解
右逆矩阵 Right inverse
矩阵
A
\boldsymbol{A}
A行满秩
r
=
m
≤
n
r=m\leq n
r=m≤n,存在右逆矩阵
A
right
−
1
\boldsymbol{A}_{\text {right }}^{-1}
Aright −1,满足
A
m
×
n
A
right
−
1
n
×
m
=
I
m
×
m
\boldsymbol{A}_{m\times n}{\boldsymbol{A}_{\text {right}}^{-1}}_{n\times m} =\boldsymbol{I}_{m\times m}
Am×nAright−1n×m=Im×m;
其中右逆矩阵
A
right
−
1
=
A
T
(
A
A
T
)
−
1
\boldsymbol{A}_{\text {right}}^{-1}=\boldsymbol{A}^{T}\left( \boldsymbol{A\boldsymbol{A}^{T}}\right)^{-1}
Aright−1=AT(AAT)−1(注意,实际上有很多右逆,这里写出的是其中一个)
证明思路和过程类似上面,即基于 A A T \boldsymbol{A\boldsymbol{A}^{T}} AAT的良好性质展开研究
右乘左逆矩阵/左乘右逆矩阵,会发生什么
首先给出结论:右乘左逆矩阵/左乘右逆矩阵,无法得到单位阵 I \boldsymbol I I,而是得到 A \boldsymbol A A列空间/行空间的投影矩阵
对于列满秩
r
=
n
≤
m
r=n\leq m
r=n≤m(存在左逆)的情况,右乘左逆矩阵的结果为:
A
A
left
−
1
=
A
(
A
T
A
)
−
1
A
T
\boldsymbol{A}\boldsymbol{A}_{\text {left }}^{-1}=\boldsymbol{A}\left(\boldsymbol{A}^{T} \boldsymbol{A}\right)^{-1} \boldsymbol{A}^{T}
AAleft −1=A(ATA)−1AT
这正是将
R
m
\boldsymbol{R}^m
Rm空间中的向量投影到
A
\boldsymbol{A}
A的列空间(维度
r
r
r)的投影矩阵
P
m
×
m
=
A
(
A
T
A
)
−
1
A
T
\boldsymbol{P}_{m\times m}=\boldsymbol{A}\left(\boldsymbol{A}^{T} \boldsymbol{A}\right)^{-1} \boldsymbol{A}^{T}
Pm×m=A(ATA)−1AT
- 若希望 A A left − 1 = I \boldsymbol{A}\boldsymbol{A}_{\text {left }}^{-1}=\boldsymbol I AAleft −1=I,那么等价于要求上述投影矩阵为单位阵(无需投影),对应于 A \boldsymbol{A} A的列空间本身就是整个 R m \boldsymbol{R}^m Rm空间的情况,即 r = m r=m r=m的情况(行列都满秩的方阵,与假设不符)
- 可见,左逆矩阵不可能同时满足“右逆”,即右乘左逆矩阵无法得到单位阵 I \boldsymbol I I,因此 n × m n\times m n×m长方形矩阵不可能有两侧逆矩阵
同理,左乘右逆矩阵得到 A right − 1 A = A T ( A A T ) − 1 A = P n × n \boldsymbol{A}_{\text {right }}^{-1}\boldsymbol{A}= \boldsymbol{A}^{T}\left(\boldsymbol{A}\boldsymbol{A}^{T}\right)^{-1}\boldsymbol{A}=\boldsymbol{P}_{n\times n} Aright −1A=AT(AAT)−1A=Pn×n,这就是将 R n \boldsymbol{R}^n Rn空间中的向量投影到 A \boldsymbol{A} A的行空间(维度 r r r)的投影矩阵
可见,右逆矩阵矩阵不可能同时满足“左逆”,即左乘右逆逆矩阵无法得到单位阵 I \boldsymbol I I
小结:逆矩阵存在性与四个子空间的关系
首先,回顾四个子空间的图像如下
其中,行空间和零空间互为正交补;列空间和左零空间互为正交补
-
方阵 A \boldsymbol{A} A满秩 r = m = n r=m=n r=m=n,有两侧逆
矩阵 A \boldsymbol{A} A的零空间维度 n − r = 0 n-r=0 n−r=0、左零空间维度 m − r = 0 m-r=0 m−r=0(只有零向量);
-
矩阵 A \boldsymbol{A} A列满秩 r = n ≤ m r=n\leq m r=n≤m,只有左逆
矩阵 A \boldsymbol{A} A的零空间维度 n − r = 0 n-r=0 n−r=0
-
矩阵 A \boldsymbol{A} A行满秩 r = m ≤ n r=m\leq n r=m≤n,只有右逆
矩阵 A \boldsymbol{A} A的左零空间 N ( A T ) N(\boldsymbol{A}^T) N(AT)维度 m − r = 0 m-r=0 m−r=0(只有零向量);
-
矩阵 A \boldsymbol{A} A行列都不满秩,即 r < m r<m r<m且 r < n r<n r<n
矩阵 A \boldsymbol{A} A的零空间维度 n − r > 0 n-r>0 n−r>0、左零空间维度 m − r > 0 m-r>0 m−r>0
零空间和左零空间都存在,导致了逆矩阵、左逆、右逆都不存在,由此引入伪逆,记为 A + \boldsymbol{A}^+ A+,下面详细介绍
伪逆矩阵Pseudo-inverse / M-P广义逆
规律:零空间的存在,导致了逆矩阵不存在
实际上, A \boldsymbol{A} A是将行空间中向量一一映射到列空间的变换,而“逆矩阵”就是将列空间中向量一一反向映射到行空间的变换
对于 R n \mathbf R^n Rn中的所有向量 x \mathbf x x,可以划分为两部分:
- 位于 A \mathbf A A的零空间中的 x \mathbf x x满足 A x = 0 \mathbf A\mathbf x=\mathbf 0 Ax=0; x \mathbf x x映射为零向量,这个映射不可逆(零向量与任意矩阵相乘得到零向量)
- 位于 A \mathbf A A的行空间中的 x \mathbf x x满足 A x = u ( u ≠ 0 ) \mathbf {A}\boldsymbol x=\mathbf u(\mathbf u\neq0) Ax=u(u=0),行空间中的 x \mathbf x x映射为 A \mathbf A A的列空间中的一个非零向量 u = A x \mathbf u=\mathbf A\mathbf x u=Ax,且这个映射为一一映射,是可逆的(视为对 A \mathbf A A的列向量的线性组合);
可以归纳规律:零空间的存在(
A
\boldsymbol{A}
A的零空间和
A
T
\boldsymbol{A}^T
AT的零空间中有非零向量)导致逆矩阵不存在
原因:
-
从四个子空间角度:
A. 若零空间不存在,以在行空间和列空间之间建立一一映射,矩阵可逆
B. 零空间存在时,零空间中的 x \mathbf x x满足 A x = 0 \mathbf A\mathbf x=\mathbf 0 Ax=0,对应于降维的线性变换,没有逆矩阵能够还原这个过程,此时只能找到伪逆/M-P广义逆 A + \boldsymbol{A}^+ A+,广义逆使得行空间中的向量 x \boldsymbol{x} x可以被还原 A + A x = x \boldsymbol{A}^+\boldsymbol{A}\boldsymbol{x}=\boldsymbol{x} A+Ax=x,而零空间中的向量 x \boldsymbol{x} x被 A \boldsymbol{A} A映射为零向量后,只能被 A + \boldsymbol{A}^+ A+再次映射为零向量: A + A x = 0 \boldsymbol{A}^+\boldsymbol{A}\boldsymbol{x}=\boldsymbol{0} A+Ax=0
-
从SVD角度(若矩阵的SVD为 A = U Σ V T \boldsymbol{A}=\boldsymbol{U} \boldsymbol{\Sigma} \boldsymbol{V}^{T} A=UΣVT):
四个子空间和SVD的关系:
矩阵的SVD为 A m × n = U m × m Σ m × n V n × n T \boldsymbol{A}_{m\times n} =\boldsymbol{U}_{m\times m} \boldsymbol{\Sigma}_{m\times n} \boldsymbol{V}^{T}_{n\times n} Am×n=Um×mΣm×nVn×nT
图中红色部分对应的是 A \mathbf {A} A的行空间中的第一部分标准正交基 v i ( i = 1 , 2 , . . . , r ) \mathbf{v}_{i}(i=1,2,...,r) vi(i=1,2,...,r),线性变换 A \mathbf {A} A将其映射生成到列空间到中的一组标准正交基,满足 A v i = σ i u i \mathbf {A}\mathbf v_i=\sigma_i \mathbf u_i Avi=σiui, σ i \sigma_i σi组成了红色部分的对角矩阵 Σ ^ r × r \hat{\mathbf \Sigma}_{r\times r} Σ^r×r
图中蓝色部分对应零空间中的第二部分标准正交基 v i ( i = r + 1 , r + 2 , . . . , n ) \mathbf v_i(i=r+1,r+2,...,n) vi(i=r+1,r+2,...,n),满足 A v i = 0 \mathbf {A}\mathbf v_i=0 Avi=0,对应 Σ \boldsymbol{\Sigma} Σ中的右下角零元素(这部分对应了将零空间的向量映射到零向量 A v i = 0 \mathbf {A}\mathbf v_i=0 Avi=0)总之,行/列不满秩,导致了 Σ \boldsymbol{\Sigma} Σ出现右下角的0元素部分,进而矩阵和其他矩阵相乘就不可得到单位阵(从而不存在逆矩阵),这再次对应了前面说的“零空间的存在使得逆矩阵不存在”
M-P广义逆
由上,矩阵 A \boldsymbol{A} A行列都不满秩( r < m r<m r<m且 r < n r<n r<n)时,既没有左逆也没有右逆,此时我们能找到的“最好的逆”就是伪逆矩阵
满秩方阵才有逆矩阵;
当矩阵不满秩/矩阵不是方阵,则只有"伪逆/广义逆",这是逆矩阵的推广
若矩阵
A
\boldsymbol{A}
A的SVD为
A
=
U
Σ
V
T
\boldsymbol{A}=\boldsymbol{U} \boldsymbol{\Sigma} \boldsymbol{V}^{T}
A=UΣVT,那么伪逆矩阵
A
+
=
V
Σ
+
U
T
\boldsymbol{A}^{+}=\boldsymbol{V} \boldsymbol{\Sigma}^{+} \boldsymbol{U}^{T}
A+=VΣ+UT
伪逆满足:
- A A + A = A \boldsymbol{A} \boldsymbol{A}^{+} \boldsymbol{A}=\boldsymbol{A} AA+A=A
- A + A A + = A + \boldsymbol{A}^{+} \boldsymbol{A} \boldsymbol{A}^{+}=\boldsymbol{A}^{+} A+AA+=A+
- A A + = ( A A + ) T \boldsymbol{A} \boldsymbol{A}^{+}=\left(\boldsymbol{A} \boldsymbol{A}^{+}\right)^{T} AA+=(AA+)T
- A + A = ( A + A ) T \boldsymbol{A}^{+} \boldsymbol{A}=\left(\boldsymbol{A}^{+} \boldsymbol{A}\right)^{T} A+A=(A+A)T
伪逆矩阵的原理:从SVD角度理解
我们从SVD的视角来拆解问题:现在希望求一个伪逆,其与原矩阵的乘积尽可能接近单位阵;
但要注意,当行列都不满秩(
r
<
m
r<m
r<m且
r
<
n
r<n
r<n)时,矩阵与其他矩阵相乘,不可能得到单位阵,只能尽可能接近;
做SVD后 A = U Σ V T \boldsymbol{A}=\boldsymbol{U} \boldsymbol{\Sigma} \boldsymbol{V}^{T} A=UΣVT:
-
A. 若 A \boldsymbol{A} A满秩, A = U [ σ 1 ⋱ σ r ] n × n V T \boldsymbol{A}=\boldsymbol{U}\left[\begin{array}{lll} \sigma_{1} & &\\ & \ddots &\\ & & \sigma_{r} \end{array}\right]_{n\times n}\boldsymbol{V}^{T} A=U σ1⋱σr n×nVT,则矩阵可逆:逆矩阵为 A − 1 = V Σ − 1 U T \boldsymbol{A}^{-1}=\boldsymbol{V}\boldsymbol{\Sigma}^{-1}\boldsymbol{U}^{T} A−1=VΣ−1UT
-
B. 若 A \boldsymbol{A} A行/列不满秩, A = U [ σ 1 0 σ 2 ⋱ 0 0 ] m × n V T \boldsymbol{A}=\boldsymbol{U}\begin{bmatrix} \sigma _1 & & & 0\\ & \sigma _2 & & \\ & & \ddots & \\ 0 & & &0 \end{bmatrix}_{m\times n}\boldsymbol{V}^{T} A=U σ10σ2⋱00 m×nVT(由于上述的零空间的存在, Σ \boldsymbol{\Sigma} Σ的右下角出现0元素),这从根本上决定了 A \boldsymbol{A} A与其他矩阵相乘,不可能得到单位阵,寻找M-P广义逆,应保证它与原矩阵的乘积尽可能接近单位阵,故M-P广义逆 A + = V Σ + U T \boldsymbol{A}^{+}=\boldsymbol{V}\boldsymbol{\Sigma}^{+}\boldsymbol{U}^{T} A+=VΣ+UT,其中 Σ + = [ 1 σ 1 0 1 σ 2 ⋱ 0 0 ] n × m \boldsymbol {\varSigma ^ + } =\begin{bmatrix} \frac{1}{\sigma _1} & & & 0\\ & \frac{1}{\sigma _2} & & \\ & & \ddots & \\ 0 & & &0 \end{bmatrix}_{n\times m} Σ+= σ110σ21⋱00 n×m,满足 Σ + Σ = [ 1 0 1 ⋱ 0 0 ] n × n {\boldsymbol \varSigma ^ + }\boldsymbol \varSigma = \begin{bmatrix} 1 & & & 0\\ & 1 & & \\ & & \ddots & \\ 0 & & &0 \end{bmatrix}_{n\times n} Σ+Σ= 101⋱00 n×n和 Σ Σ + = [ 1 0 1 ⋱ 0 0 ] m × m \boldsymbol \varSigma{\boldsymbol \varSigma ^ + } = \begin{bmatrix} 1 & & & 0\\ & 1 & & \\ & & \ddots & \\ 0 & & &0 \end{bmatrix}_{m\times m} ΣΣ+= 101⋱00 m×m
i.e. 构造伪逆矩阵的思路是,尽量使 Σ Σ + \boldsymbol{\Sigma}\boldsymbol{\Sigma}^{+} ΣΣ+和 Σ + Σ \boldsymbol{\Sigma}^{+}\boldsymbol{\Sigma} Σ+Σ中的左上角的r阶对角阵为单位阵(虽然不能得到整个单位阵,但尽量接近单位阵;而 Σ Σ + = Σ + Σ = I \boldsymbol{\Sigma}\boldsymbol{\Sigma}^{+}=\boldsymbol{\Sigma}^{+}\boldsymbol{\Sigma}=\boldsymbol I ΣΣ+=Σ+Σ=I就是矩阵可逆的情况)
实际上,有很多的伪逆矩阵 Σ + \boldsymbol{\Sigma}^{+} Σ+都能满足上述要求(因为 Σ \boldsymbol{\Sigma} Σ有右下角的0元素部分,不管 Σ + \boldsymbol{\Sigma}^{+} Σ+如何,这部分的乘积结果都是0),我们这里选择的是其中最简洁、不参杂多余非零元素的一个伪逆矩阵
右乘左逆矩阵/左乘右逆矩阵,会发生什么
对于 A = U Σ V T \boldsymbol{A}=\boldsymbol{U} \boldsymbol{\Sigma} \boldsymbol{V}^{T} A=UΣVT
A \boldsymbol{A} A左乘伪逆矩阵,得到 A A + = U Σ V T V Σ + U T = U Σ Σ + U T \boldsymbol{A}\boldsymbol{A}^{+}=\boldsymbol{U} \boldsymbol{\Sigma} \boldsymbol{V}^{T}\boldsymbol{V} \boldsymbol{\Sigma}^{+} \boldsymbol{U}^{T}=\boldsymbol{U} \boldsymbol{\Sigma}\boldsymbol{\Sigma}^{+} \boldsymbol{U}^{T} AA+=UΣVTVΣ+UT=UΣΣ+UT,其中 Σ Σ + \boldsymbol{\Sigma}\boldsymbol{\Sigma}^{+} ΣΣ+左上角包含一个单位阵,如上;
A \boldsymbol{A} A右乘伪逆矩阵,得到 A + A = V Σ + U T U Σ V T = V Σ + Σ V T \boldsymbol{A}^{+}\boldsymbol{A}=\boldsymbol{V} \boldsymbol{\Sigma}^{+} \boldsymbol{U}^{T}\boldsymbol{U} \boldsymbol{\Sigma} \boldsymbol{V}^{T}=\boldsymbol{V} \boldsymbol{\Sigma}^{+}\boldsymbol{\Sigma} \boldsymbol{V}^{T} A+A=VΣ+UTUΣVT=VΣ+ΣVT,其中 Σ + Σ \boldsymbol{\Sigma}^{+}\boldsymbol{\Sigma} Σ+Σ左上角包含一个单位阵,如上;
矩阵 左乘/右乘 伪逆矩阵,都不能得到单位阵,但是能得到投影矩阵(类似上面的右乘左逆矩阵)
- 右乘伪逆,得到投影矩阵 A A + \boldsymbol{A}\boldsymbol{A}^{+} AA+(将向量投影到 A \boldsymbol{A} A的列空间);
例如,对于 A A + x = U Σ Σ + U T x \boldsymbol{A}\boldsymbol{A}^{+}\mathbf x=\boldsymbol{U} \boldsymbol{\Sigma}\boldsymbol{\Sigma}^{+} \boldsymbol{U}^{T}\mathbf x AA+x=UΣΣ+UTx
U T x \boldsymbol{U}^{T}\mathbf x UTx得到向量 x \mathbf x x在 U \boldsymbol{U} U这个单位正交基上的坐标;
再乘以 Σ Σ + \boldsymbol{\Sigma}\boldsymbol{\Sigma}^{+} ΣΣ+(左上角为r阶单位阵)相当于只保留向量 x \mathbf x x在 U \boldsymbol{U} U这个单位正交基上中属于 A \boldsymbol{A} A列空间(r维)的那部分;
最后再乘以单位正交基 U \boldsymbol{U} U,就是 x \mathbf x x在 A \boldsymbol{A} A列空间的投影了
- 左乘伪逆,得到投影矩阵 A + A \boldsymbol{A}^{+}\boldsymbol{A} A+A(将向量投影到 A \boldsymbol{A} A的行空间);
- 投影矩阵 Σ Σ + \boldsymbol{\Sigma}\boldsymbol{\Sigma}^{+} ΣΣ+和 Σ + Σ \boldsymbol{\Sigma}^{+}\boldsymbol{\Sigma} Σ+Σ的SVD中,左上角都包含一个单位阵,这接近于真正可逆的情况
对比上面的左逆矩阵:矩阵左乘左逆矩阵得到单位阵;右乘左逆矩阵得到将 R m \mathbf R^m Rm中的向量投影到列空间的投影矩阵;
这里无论左乘/右乘伪逆,都只能得到一个投影矩阵,但这已经伪逆能做到的最好结果
- 投影矩阵 Σ Σ + \boldsymbol{\Sigma}\boldsymbol{\Sigma}^{+} ΣΣ+和 Σ + Σ \boldsymbol{\Sigma}^{+}\boldsymbol{\Sigma} Σ+Σ能将问题带入很好的空间中(即带入行空间和列空间,而排除了零空间/左零空间)