Skip to content

第三十四讲:左右逆和伪逆

前面我们涉及到的逆(inverse)都是指左、右乘均成立的逆矩阵,即A1A=I=AA1。在这种情况下,m×n矩阵A满足m=n=rank(A),也就是满秩方阵。

左逆(left inserve)

记得我们在最小二乘一讲(第十六讲)介绍过列满秩的情况,也就是列向量线性无关,但行向量通常不是线性无关的。常见的列满秩矩阵A满足m>n=rank(A)

列满秩时,列向量线性无关,所以其零空间中只有零解,方程Ax=b可能有一个唯一解(bA的列空间中,此特解就是全部解,因为通常的特解可以通过零空间中的向量扩展出一组解集,而此时零空间只有列向量),也可能无解(b不在A的列空间中)。

另外,此时行空间为Rn,也正印证了与行空间互为正交补的零空间中只有列向量。

现在来观察ATA,也就是在m>n=rank(A)的情况下,n×m矩阵乘以m×n矩阵,结果为一个满秩的n×n矩阵,所以ATA是一个可逆矩阵。也就是说(ATA)1ATA=I成立,而大括号部分的(ATA)1AT称为长方形矩阵A的左逆

Aleft1=(ATA)1AT

顺便复习一下最小二乘一讲,通过关键方程ATAx^=ATbAleft1被当做一个系数矩阵乘在b向量上,求得b向量投影在A的列空间之后的解x^=(ATA)1ATb。如果我们强行给左逆左乘矩阵A,得到的矩阵就是投影矩阵P=A(ATA)1AT,来自p=Ax^=A(ATA)1AT,它将右乘的向量b投影在矩阵A的列空间中。

再来观察AAT矩阵,这是一个m×m矩阵,秩为rank(AAT)=n<m,也就是说AAT是不可逆的,那么接下来我们看看右逆。

右逆(right inverse)

可以与左逆对称的看,右逆也就是研究m×n矩阵A行满秩的情况,此时n>m=rank(A)。对称的,其左零空间中仅有零向量,即没有行向量的线性组合能够得到零向量。

行满秩时,矩阵的列空间将充满向量空间C(A)=Rm,所以方程Ax=b总是有解集,由于消元后有nm个自由变量,所以方程的零空间为nm维。

与左逆对称,再来观察AAT,在n>m=rank(A)的情况下,m×n矩阵乘以n×m矩阵,结果为一个满秩的m×m矩阵,所以此时AAT是一个满秩矩阵,也就是AAT可逆。所以AAT(AAT)=I,大括号部分的AT(AAT)称为长方形矩阵的右逆

Aright1=AT(AAT)

同样的,如果我们强行给右逆右乘矩阵A,将得到另一个投影矩阵P=AT(AAT)A,与上一个投影矩阵不同的是,这个矩阵的A全部变为AT了。所以这是一个能够将右乘的向量b投影在A的行空间中。

前面我们提及了逆(方阵满秩),并讨论了左逆(矩阵列满秩)、右逆(矩阵行满秩),现在看一下第四种情况,m×n矩阵A不满秩的情况。

伪逆(pseudo inverse)

m×n矩阵A,满足rank(A)<min(m, n),则

  • 列空间C(A)Rm, dimC(A)=r,左零空间N(AT)Rm, dimN(AT)=mr,列空间与左零空间互为正交补;
  • 行空间C(AT)Rn, dimC(AT)=r,零空间N(A)Rn, dimN(A)=nr,行空间与零空间互为正交补。

现在任取一个向量x,乘上A后结果Ax一定落在矩阵A的列空间C(A)中。而根据维数,xRn, AxRm,那么我们现在猜测,输入向量x全部来自矩阵的行空间,而输出向量Ax全部来自矩阵的列空间,并且是一一对应的关系,也就是Rnr维子空间到Rmr维子空间的映射。

而矩阵A现在有这些零空间存在,其作用是将某些向量变为零向量,这样Rn空间的所有向量都包含在行空间与零空间中,所有向量都能由行空间的分量和零空间的分量构成,变换将零空间的分量消除。但如果我们只看行空间中的向量,那就全部变换到列空间中了。

那么,我们现在只看行空间与列空间,在行空间中任取两个向量x, yC(AT),则有AxAy。所以从行空间到列空间,变换A是个不错的映射,如果限制在这两个空间上,A可以说“是个可逆矩阵”,那么它的逆就称作伪逆,而这个伪逆的作用就是将列空间的向量一一映射到行空间中。通常,伪逆记作A+,因此Ax=(Ax), y=A+(Ay)

现在我们来证明对于x,yC(AT), xy,有Ax,AyC(A), AxAy

  • 反证法,设Ax=Ay,则有A(xy)=0,即向量xyN(A)
  • 另一方面,向量x,yC(AT),所以两者之差xy向量也在C(AT)中,即xyC(AT)
  • 此时满足这两个结论要求的仅有一个向量,即零向量同时属于这两个正交的向量空间,从而得到x=y,与题设中的条件矛盾,得证。

伪逆在统计学中非常有用,以前我们做最小二乘需要矩阵列满秩这一条件,只有矩阵列满秩才能保证ATA是可逆矩阵,而统计中经常出现重复测试,会导致列向量线性相关,在这种情况下ATA就成了奇异矩阵,这时候就需要伪逆。

接下来我们介绍如何计算伪逆A+

其中一种方法是使用奇异值分解,A=UΣVT,其中的对角矩阵型为Σ=[σ1σ2[0]],对角线非零的部分来自ATA, AAT比较好的部分,剩下的来自左/零空间。

我们先来看一下Σ矩阵的伪逆是多少,这是一个m×n矩阵,rank(Σ)=rΣ+=[1σ11σr[0]],伪逆与原矩阵有个小区别:这是一个n×m矩阵。则有ΣΣ+=[11[0]]m×mΣ+Σ=[11[0]]n×n

观察ΣΣ+Σ+Σ不难发现,ΣΣ+是将向量投影到列空间上的投影矩阵,而Σ+Σ是将向量投影到行空间上的投影矩阵。我们不论是左乘还是右乘伪逆,得到的不是单位矩阵,而是投影矩阵,该投影将向量带入比较好的空间(行空间和列空间,而不是左/零空间)。

接下来我们来求A的伪逆:

A+=VΣ+UT

本站没有备案,因为不需要备案