{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 第三十四讲:左右逆和伪逆\n", "\n", "前面我们涉及到的逆(inverse)都是指左、右乘均成立的逆矩阵,即$A^{-1}A=I=AA^{-1}$。在这种情况下,$m\\times n$矩阵$A$满足$m=n=rank(A)$,也就是满秩方阵。\n", "\n", "## 左逆(left inserve)\n", "\n", "记得我们在最小二乘一讲(第十六讲)介绍过列满秩的情况,也就是列向量线性无关,但行向量通常不是线性无关的。常见的列满秩矩阵$A$满足$m>n=rank(A)$。\n", "\n", "列满秩时,列向量线性无关,所以其零空间中只有零解,方程$Ax=b$可能有一个唯一解($b$在$A$的列空间中,此特解就是全部解,因为通常的特解可以通过零空间中的向量扩展出一组解集,而此时零空间只有列向量),也可能无解($b$不在$A$的列空间中)。\n", "\n", "另外,此时行空间为$\\mathbb{R}^n$,也正印证了与行空间互为正交补的零空间中只有列向量。\n", "\n", "现在来观察$A^TA$,也就是在$m>n=rank(A)$的情况下,$n\\times m$矩阵乘以$m\\times n$矩阵,结果为一个满秩的$n\\times n$矩阵,所以$A^TA$是一个可逆矩阵。也就是说$\\underbrace{\\left(A^TA\\right)^{-1}A^T}A=I$成立,而大括号部分的$\\left(A^TA\\right)^{-1}A^T$称为长方形矩阵$A$的左逆\n", "\n", "$$A^{-1}_{left}=\\left(A^TA\\right)^{-1}A^T$$\n", "\n", "顺便复习一下最小二乘一讲,通过关键方程$A^TA\\hat x=A^Tb$,$A^{-1}_{left}$被当做一个系数矩阵乘在$b$向量上,求得$b$向量投影在$A$的列空间之后的解$\\hat x=\\left(A^TA\\right)^{-1}A^Tb$。如果我们强行给左逆左乘矩阵$A$,得到的矩阵就是投影矩阵$P=A\\left(A^TA\\right)^{-1}A^T$,来自$p=A\\hat x=A\\left(A^TA\\right)^{-1}A^T$,它将右乘的向量$b$投影在矩阵$A$的列空间中。\n", "\n", "再来观察$AA^T$矩阵,这是一个$m\\times m$矩阵,秩为$rank(AA^T)=nm=rank(A)$。对称的,其左零空间中仅有零向量,即没有行向量的线性组合能够得到零向量。\n", "\n", "行满秩时,矩阵的列空间将充满向量空间$C(A)=\\mathbb{R}^m$,所以方程$Ax=b$总是有解集,由于消元后有$n-m$个自由变量,所以方程的零空间为$n-m$维。\n", "\n", "与左逆对称,再来观察$AA^T$,在$n>m=rank(A)$的情况下,$m\\times n$矩阵乘以$n\\times m$矩阵,结果为一个满秩的$m\\times m$矩阵,所以此时$AA^T$是一个满秩矩阵,也就是$AA^T$可逆。所以$A\\underbrace{A^T\\left(AA^T\\right)}=I$,大括号部分的$A^T\\left(AA^T\\right)$称为长方形矩阵的右逆\n", "\n", "$$A^{-1}_{right}=A^T\\left(AA^T\\right)$$\n", "\n", "同样的,如果我们强行给右逆右乘矩阵$A$,将得到另一个投影矩阵$P=A^T\\left(AA^T\\right)A$,与上一个投影矩阵不同的是,这个矩阵的$A$全部变为$A^T$了。所以这是一个能够将右乘的向量$b$投影在$A$的行空间中。\n", "\n", "前面我们提及了逆(方阵满秩),并讨论了左逆(矩阵列满秩)、右逆(矩阵行满秩),现在看一下第四种情况,$m\\times n$矩阵$A$不满秩的情况。\n", "\n", "## 伪逆(pseudo inverse)\n", "\n", "有$m\\times n$矩阵$A$,满足$rank(A)\\lt min(m,\\ n)$,则\n", "\n", "* 列空间$C(A)\\in\\mathbb{R}^m,\\ \\dim C(A)=r$,左零空间$N\\left(A^T\\right)\\in\\mathbb{R}^m,\\ \\dim N\\left(A^T\\right)=m-r$,列空间与左零空间互为正交补;\n", "* 行空间$C\\left(A^T\\right)\\in\\mathbb{R}^n,\\ \\dim C\\left(A^T\\right)=r$,零空间$N(A)\\in\\mathbb{R}^n,\\ \\dim N(A)=n-r$,行空间与零空间互为正交补。\n", "\n", "现在任取一个向量$x$,乘上$A$后结果$Ax$一定落在矩阵$A$的列空间$C(A)$中。而根据维数,$x\\in\\mathbb{R}^n,\\ Ax\\in\\mathbb{R}^m$,那么我们现在猜测,输入向量$x$全部来自矩阵的行空间,而输出向量$Ax$全部来自矩阵的列空间,并且是一一对应的关系,也就是$\\mathbb{R}^n$的$r$维子空间到$\\mathbb{R}^m$的$r$维子空间的映射。\n", "\n", "而矩阵$A$现在有这些零空间存在,其作用是将某些向量变为零向量,这样$\\mathbb{R}^n$空间的所有向量都包含在行空间与零空间中,所有向量都能由行空间的分量和零空间的分量构成,变换将零空间的分量消除。但如果我们只看行空间中的向量,那就全部变换到列空间中了。\n", "\n", "那么,我们现在只看行空间与列空间,在行空间中任取两个向量$x,\\ y\\in C(A^T)$,则有$Ax\\neq Ay$。所以从行空间到列空间,变换$A$是个不错的映射,如果限制在这两个空间上,$A$可以说“是个可逆矩阵”,那么它的逆就称作伪逆,而这个伪逆的作用就是将列空间的向量一一映射到行空间中。通常,伪逆记作$A^+$,因此$Ax=(Ax),\\ y=A^+(Ay)$。\n", "\n", "现在我们来证明对于$x,y\\in C\\left(A^T\\right),\\ x\\neq y$,有$Ax,Ay\\in C(A),\\ Ax\\neq Ay$:\n", "\n", "* 反证法,设$Ax=Ay$,则有$A(x-y)=0$,即向量$x-y\\in N(A)$;\n", "* 另一方面,向量$x,y\\in C\\left(A^T\\right)$,所以两者之差$x-y$向量也在$C\\left(A^T\\right)$中,即$x-y\\in C\\left(A^T\\right)$;\n", "* 此时满足这两个结论要求的仅有一个向量,即零向量同时属于这两个正交的向量空间,从而得到$x=y$,与题设中的条件矛盾,得证。\n", "\n", "伪逆在统计学中非常有用,以前我们做最小二乘需要矩阵列满秩这一条件,只有矩阵列满秩才能保证$A^TA$是可逆矩阵,而统计中经常出现重复测试,会导致列向量线性相关,在这种情况下$A^TA$就成了奇异矩阵,这时候就需要伪逆。\n", "\n", "接下来我们介绍如何计算伪逆$A^+$:\n", "\n", "其中一种方法是使用奇异值分解,$A=U\\varSigma V^T$,其中的对角矩阵型为$\\varSigma=\\left[\\begin{array}{c c c|c}\\sigma_1&&&\\\\&\\ddots&&\\\\&&\\sigma_2&\\\\\\hline&&&\\begin{bmatrix}0\\end{bmatrix}\\end{array}\\right]$,对角线非零的部分来自$A^TA,\\ AA^T$比较好的部分,剩下的来自左/零空间。\n", "\n", "我们先来看一下$\\varSigma$矩阵的伪逆是多少,这是一个$m\\times n$矩阵,$rank(\\varSigma)=r$,$\\varSigma^+=\\left[\\begin{array}{c c c|c}\\frac{1}{\\sigma_1}&&&\\\\&\\ddots&&\\\\&&\\frac{1}{\\sigma_r}&\\\\\\hline&&&\\begin{bmatrix}0\\end{bmatrix}\\end{array}\\right]$,伪逆与原矩阵有个小区别:这是一个$n\\times m$矩阵。则有$\\varSigma\\varSigma^+=\\left[\\begin{array}{c c c|c}1&&&\\\\&\\ddots&&\\\\&&1&\\\\\\hline&&&\\begin{bmatrix}0\\end{bmatrix}\\end{array}\\right]_{m\\times m}$,$\\varSigma^+\\varSigma=\\left[\\begin{array}{c c c|c}1&&&\\\\&\\ddots&&\\\\&&1&\\\\\\hline&&&\\begin{bmatrix}0\\end{bmatrix}\\end{array}\\right]_{n\\times n}$。\n", "\n", "观察$\\varSigma\\varSigma^+$和$\\varSigma^+\\varSigma$不难发现,$\\varSigma\\varSigma^+$是将向量投影到列空间上的投影矩阵,而$\\varSigma^+\\varSigma$是将向量投影到行空间上的投影矩阵。我们不论是左乘还是右乘伪逆,得到的不是单位矩阵,而是投影矩阵,该投影将向量带入比较好的空间(行空间和列空间,而不是左/零空间)。\n", "\n", "接下来我们来求$A$的伪逆:\n", "\n", "$$A^+=V\\varSigma^+U^T$$" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.1" } }, "nbformat": 4, "nbformat_minor": 0 }