DennyQi's Log

09 奇异值分解(SVD)

对称矩阵的谱分解

我们知道实对称矩阵是可对角化的,有

S=QΛQS=Q \Lambda Q^\top

其中QQ是标准正交矩阵,Λ\Lambda是由特征值构成的对角矩阵。设Q=[v1vn]Q=\begin{bmatrix}v_1 & \cdots & v_n\end{bmatrix},就有S=[v1vn][λ1000λ2000λn][v1vn]S=\left[\begin{array}{lll} \boldsymbol{v}_{1} & \ldots & \boldsymbol{v}_{n} \end{array}\right]\left[\begin{array}{cccc} \lambda_{1} & 0 & \cdots & 0 \\ 0 & \lambda_{2} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_{n} \end{array}\right]\left[\begin{array}{c} \boldsymbol{v}_{1}^{\top} \\ \vdots \\ \boldsymbol{v}_{n}^{\top} \end{array}\right],把每个vv看作整体运用分块矩阵的乘法,就得到

S=λ1v1v1+λ2v2v2++λnvnvnS=\lambda_{1} \boldsymbol{v}_{1} \boldsymbol{v}_{1}^{\top}+\lambda_{2} \boldsymbol{v}_{2} \boldsymbol{v}_{2}^{\top}+\cdots+\lambda_{n} \boldsymbol{v}_{n} \boldsymbol{v}_{n}^{\top}

这就是对称矩阵的谱分解,本质上就是对角化的另外一种表示方式。

而由于QQ是可逆的,rank(Λ)=rank(S)\text{rank}(\Lambda)=\text{rank}(S)。而rank(Λ)\text{rank}(\Lambda)就是非零特征值的个数。在谱分解的表达式中,我们可以直接抹掉特征值为0的项,如果rank(S)\text{rank}(S)很小,那么谱分解表达式的复杂度就很小。更精确地,用矩阵表示SS需要n2n^2个数字,而用谱分解来表示SS只需要(n+1)rank(S)(n+1) \cdot \text{rank}(S)个数字。在rank(S)\text{rank}(S)远小于nn的时候复杂度减小了一个数量级。这使得谱分解在图像压缩等领域有广泛的应用

一般矩阵的奇异值分解(SVD)

对于非对称的矩阵,也有一种类似地分解方式。此时的“对角化”不用特征值而变成了“奇异值”。对于矩阵Am×nA_{m \times n},假如rank(A)=r\text{rank}(A)=r,那么我们我们可以找到标准正交的矩阵Um×m,Vn×nU_{m \times m},V^\top _{n \times n},以及矩阵Σn×n=[Dr×r000]\Sigma_{n \times n}=\begin{bmatrix}D_{r \times r} & 0 \\ 0 & 0\end{bmatrix}(其中D=[σ1000σ2000σr]D=\left[\begin{array}{cccc} \sigma_{1} & 0 & \cdots & 0 \\ 0 & \sigma_{2} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \sigma_{r} \end{array}\right]σi\sigma_i就是奇异值),使得能够成立

A=UΣVA=U\Sigma V^\top

用类似的方法展开有

A=σ1u1v1+σ2u2v2++σrurvrA=\sigma_{1} \boldsymbol{u}_{1} \boldsymbol{v}_{1}^{\top}+\sigma_{2} \boldsymbol{u}_{2} \boldsymbol{v}_{2}^{\top}+\cdots+\sigma_{r} \boldsymbol{u}_{r} \boldsymbol{v}_{r}^{\top}

可以发现,复杂度从nmnm降为了(n+m+1)rank(A)(n+m+1) \cdot \text{rank}(A)

事实上我们注意到,奇异值分解是谱分解(即一般的对角化)的一种推广。因此奇异值与特征值有很密切的关系。当AA退化为对称方阵的时候,奇异值就是特征值。

我们可以证明,AA的奇异值恰好是矩阵AAA^\top A的特征值的算术平方根!

AAA^\top A是个对称矩阵。我们知道,一个矩阵是否是正定的,即它的特征值是否恒为正,与这个矩阵的二次型是否恒为正是充分必要的。我们很容易验证AAA^\top A的二次型始终是正的,因为xAAx=(Ax)(Ax)=(Ax)20x^\top A^\top Ax=(Ax)^\top (Ax)=(Ax)^2 \geq 0。唯一需要注意的是,由于AA不一定列满秩,等于0的等号是可能取到的。因此我们或许不能说AAA^\top A是正定的,只能说它是“半正定”的。用完全类似的方法,我们可以验证AAA^\top A的所有特征值都是非负的。AAA^\top A的非零特征值就是它的全部正特征值,而由于非零特征值个数就等于矩阵的秩,因此AAA^\top A恰好有rank(AA)\text{rank}(A^\top A)个正的特征值。

我们在讨论投影矩阵的时候证明过rank(A)=rank(AA)\text{rank}(A)=\text{rank}(A^\top A)。由于rank(A)=rank(AA)\text{rank}(A)=\text{rank}(A^\top A),那么如果做代换AAA \to A^\top,就会得到rank(A)=rank((A)A)\text{rank}(A^\top) = \text{rank}((A^\top) ^\top A^\top)。而由于行秩等于列秩,这告诉我们rank(A)=rank(AA)\text{rank}(A)=\text{rank}(AA^\top)。所以,rank(A)=rank(AA)=rank(AA)\text{rank}(A)=\text{rank}(A^\top A)=\text{rank}(AA^\top)

现在我们知道,AAA^\top A恰好有rank(A)\text{rank}(A)个正的特征值。我们很容易验证,AAAA^\top也是“半正定阵”,它也恰好有rank(A)\text{rank}(A)个正的特征值。

我们设AAA^\top Arr个特征值λ1,λr\lambda_1,\cdots \lambda_r,并且实对称矩阵的代数重数等于几何重数,对应地我们可以找到rr个线性独立的特征向量。更进一步,这rr个向量可以是两两正交的单位向量(因为不同特征值对应的特征向量一定是正交的,而同一个特征值的特征子空间里一定能够选出正交基),设为v1,,vrv_1,\cdots,v_r

我们可以验证:1λ1Av1,,1λrAvr\dfrac{1}{\sqrt{\lambda_{1}}} A \boldsymbol{v}_{1}, \ldots, \dfrac{1}{\sqrt{\lambda_{r}}} A \boldsymbol{v}_{r}是互相标准正交的:首先,(1λiAvi)2=viAAviλi\left(\dfrac{1}{\sqrt{\lambda_{i}}} A \boldsymbol{v}_{i}\right)^2=\dfrac{v_i^\top A^\top A v_i}{\lambda_i},由于AAvi=λiviA^\top Av_i=\lambda_iv_i,因此vi(AAvi)λi=viλiviλi\dfrac{v_i^\top (A^\top A v_i)}{\lambda_i}=\dfrac{v_i^\top \lambda_i v_i}{\lambda_i} =(vi)2=1=(v_i)^2=1。同时,(1λiAvi)(1λjAvj)=viAAvjλiλj=viλjvjλiλj=0\left(\dfrac{1}{\sqrt{\lambda_{i}}} A \boldsymbol{v}_{i}\right)\left(\dfrac{1}{\sqrt{\lambda_{j}}} A \boldsymbol{v}_{j}\right)=\dfrac{v_i^\top A^\top A v_j}{\sqrt{\lambda_i\lambda_j}}=\dfrac{v_i^\top \lambda_j v_j}{\sqrt{\lambda_i\lambda_j}}=0。此时我们发现,1λiAvi=1λiA(AAviλi)=AA(1λiλiAvi)\dfrac{1}{\sqrt{\lambda_{i}}} A \boldsymbol{v}_{i}=\dfrac{1}{\sqrt{\lambda_i}}A\left(\dfrac{A^\top Av_i}{\lambda_i}\right)=AA^\top\left(\dfrac{1}{\lambda_{i}\sqrt{\lambda_{i}}} A \boldsymbol{v}_{i}\right),整理得到

AA(1λiAvi)=λi(1λiAvi)AA^\top \left(\dfrac{1}{\sqrt{\lambda_{i}}} A \boldsymbol{v}_{i}\right)=\lambda_i \left(\dfrac{1}{\sqrt{\lambda_{i}}} A \boldsymbol{v}_{i}\right)

这意味着,1λiAvi\dfrac{1}{\sqrt{\lambda_{i}}} A \boldsymbol{v}_{i}恰好是矩阵AAAA^\top(注意不是AAA^\top A)的特征向量,而每个AAA^\top A的特征值λi\lambda_i恰好也是AAAA^\top的特征值!直觉上我们已经感受到,AAA^\top AAAAA^\top有完全相同的特征值,但我们还需要小心的验证这个断言。我们已经知道这两个矩阵拥有“相同种类”的特征值,但还不知道每个数值的特征值个数是否相同。其实这也是容易验证的,因为我们已经知道viv_i是线性独立的,1λiAvi\dfrac{1}{\sqrt{\lambda_{i}}} A \boldsymbol{v}_{i}也是线性独立的。每个viv_i占了一维来对应λi\lambda_i,而每个1λiAvi\dfrac{1}{\sqrt{\lambda_{i}}} A \boldsymbol{v}_{i}也占了一维来对应λi\lambda_i。因此每个λi\lambda_iAAA^\top AAAAA^\top中的维数(即代数重数和几何重数,它们是相等的)是相等的。综上,AAA^\top AAAAA^\top有完全相同的特征值。

v1,,vrv_1,\cdots,v_r可以扩展为Rn\R^n的一组基v1,,vnv_1,\cdots,v_n,同时依然保证它们是标准正交的特征向量,对于每个ii都有AAvi=λiviA^\top A v_i=\lambda_iv_i。同时,我们令ui=1λiAviu_i=\dfrac{1}{\sqrt{\lambda_{i}}} A \boldsymbol{v}_{i},同时把u1,,uru_1,\cdots,u_r也扩展为Rm\R^m的一组基u1,,umu_1,\cdots,u_m,同时保证它们是两两正交的单位向量。于是我们令V=[v1vn],U=[u1um]V = \begin{bmatrix}v_1 & \cdots & v_n\end{bmatrix},U=\begin{bmatrix}u_1 & \cdots & u_m\end{bmatrix},令σi=λi\sigma_i=\sqrt{\lambda_i},就有:

AV=[u1urur+1um][λ1λr00]AV=\left[\begin{array}{llllll} \boldsymbol{u}_{1} & \ldots & \boldsymbol{u}_{r} & \boldsymbol{u}_{r+1} & \ldots & \boldsymbol{u}_{m} \end{array}\right]\left[\begin{array}{cccccc} \sqrt{\lambda_{1}} & & & & & \\ & \ddots & & & & \\ & & \sqrt{\lambda_{r}} & & & \\ & & & 0 & & \\ & & & & \ddots & \\ & & & & & 0 \end{array}\right]

这是容易验证的,因为只需验证Avi=λiuiAv_i=\sqrt{\lambda_i}u_i。对于iri \leq rλiui=Avi\sqrt{\lambda_i}u_i=Av_i,对于i>ri>rAvi=λivi=0Av_i=\lambda_i v_i=0。这样我们就证明了(1)(1)式!

SVD中的矩阵与基

由于A=σ1u1v1+σ2u2v2++σrurvrA=\sigma_{1} \boldsymbol{u}_{1} \boldsymbol{v}_{1}^{\top}+\sigma_{2} \boldsymbol{u}_{2} \boldsymbol{v}_{2}^{\top}+\cdots+\sigma_{r} \boldsymbol{u}_{r} \boldsymbol{v}_{r}^{\top},我们容易发现AA的每个列向量都是u1,,uru_1,\cdots,u_r的线性组合,因此有C(A)span{u1,,ur}C(A) \subseteq \text{span}\{u_1,\cdots,u_r\},而因为dim(C(A))=r\dim(C(A))=r,因此就有C(A)=span{u1,,ur}C(A)=\text{span}\{u_1,\cdots,u_r\}。因此{u1,,ur}\{u_1,\cdots,u_r\}就是C(A)C(A)的一组基!

对于vr+1..nv_{r+1 ..n},任意一个乘在奇异值分解式上就会得到Avi=σ1u1v1vi+σ2u2v2vi++σrurvrviAv_i=\sigma_{1} \boldsymbol{u}_{1} \boldsymbol{v}_{1}^{\top}v_i+\sigma_{2} \boldsymbol{u}_{2} \boldsymbol{v}_{2}^{\top}v_i+\cdots+\sigma_{r} \boldsymbol{u}_{r} \boldsymbol{v}_{r}^{\top}v_i,而vjvi=0v_j ^\top v_i=0对于j[r]j \in [r]是恒成立的,因此Avi=0Av_i=0对于i>ri > r是恒成立的,因此viN(A)v_i \in N(A)。而dim(N(A))=nr\dim(N(A))=n-r,因此{vr+1,,vn}\{v_{r+1} ,\cdots,v_n\}就是N(A)N(A)的一组基!

如果对A=UΣVA=U\Sigma V^\top取转置,那么A=VΣUA^\top = V \Sigma U^\top,套用相同的结论就会得到{v1,,vr}\{v_1,\cdots,v_r\}C(A)C(A^\top)的一组基,{ur+1,,um}\{u_{r+1} ,\cdots,u_m\}N(A)N(A^\top )的一组基。

由此可见,我们在SVD过程中就已经得到了C(A),N(A),C(A),N(A)C(A),N(A),C(A^\top),N(A^\top)的标准正交基。

拟合

直线拟合

给出Rn\R^n中的mm个点a1,,ama_1,\cdots,a_m(点和向量是等价的),要想找到一条直线(用单位向量ww表示),使得所有点到直线的距离平方和最小,这就是直线的拟合问题。

考虑aia_iww上的投影pip_i,那么我们要最小化i[n]di2=i[n]ai2i[n]pi2\sum\limits_{i \in [n]}d_i^2=\sum\limits_{i \in [n]}a_i^2-\sum\limits_{i \in [n]}p_i^2就等价于最大化i[n]pi2\sum\limits_{i \in [n]}p_i^2。而pi2=(wai)2p_i^2=(w \cdot a_i)^2。如果我们构造矩阵A=[a1am]A=\begin{bmatrix}a_1^\top \\ \vdots \\ a_m^\top \end{bmatrix},那么我们只需最大化(Aw)2(Aw)^2,即最大化Aw\|Aw\|

神奇的是,Aw\|Aw\|的最大值恰好是AA的最大的奇异值σ1\sigma_1。我们知道σ1=λ1\sigma_1=\sqrt{\lambda_1},如果我们把v1v_1乘在奇异值分解的表达式上就会得到Av1=σ1u1v1v1+σ2u2v2v1++σrurvrv1=σ1u1Av_1=\sigma_{1} \boldsymbol{u}_{1} \boldsymbol{v}_{1}^{\top}v_1+\sigma_{2} \boldsymbol{u}_{2} \boldsymbol{v}_{2}^{\top}v_1+\cdots+\sigma_{r} \boldsymbol{u}_{r} \boldsymbol{v}_{r}^{\top}v_1=\sigma_{1} \boldsymbol{u}_{1},因此(Av1)2=σ12u12=σ12(Av_1)^2=\sigma_1^2u_1^2=\sigma_1^2,即取w=v1w=v_1时刚好取到最大值。那么下面我们只需证明对于任意的ww都有(Aw)2σ12(Aw)^2 \leq \sigma_1^2

我们考虑这样一个事实:假如qiq_i是一组标准正交基,那么对于任意的向量vv我们可以写出v=c1q1++cnqnv=c_1q_1+\cdots+c_nq_n,把它乘开一定得到v2=i[n]ci2v^2=\sum\limits_{i \in [n]}c_i^2,即标准正交基下向量的长度和其坐标向量的长度是相等的。

我们取出奇异值分解式中的v1,,vnv_1, \cdots,v_n,那么有w=c1v1++cnvnw=c_1v_1+\cdots+c_nv_n。由于viv_i是标准正交基,因此i[n]ci2=w2=1\sum\limits_{i \in [n]}c_i^2=\|w\|^2=1。我们把ww乘在奇异值分解式上,得到

#x27; in math mode at position 276: …l{v}_{n}\right)$̲$=\sum\limits_{…" style="color:#cc0000">A \boldsymbol{w} =\left(\sigma_{1} \boldsymbol{u}_{1} \boldsymbol{v}_{1}^{\top}+\sigma_{2} \boldsymbol{u}_{2} \boldsymbol{v}_{2}^{\top}+\cdots+\sigma_{r} \boldsymbol{u}_{r} \boldsymbol{v}_{r}^{\top}\right)\left(c_{1} \boldsymbol{v}_{1}+\cdots+c_{n} \boldsymbol{v}_{n}\right)$=\sum\limits_{i \in[r], j \in[n]} \sigma_{i} c_{j} \boldsymbol{u}_{i} \boldsymbol{v}_{i}^{\top} \boldsymbol{v}_{j}=\sum\limits_{i \in[r]} \sigma_{i} c_{i} \boldsymbol{u}_{i} ,因此得到AwAwu1,,umu_1,\cdots,u_m这组基下的坐标为(σ1c1,,σrcr,0,,0)(\sigma_1c_1,\cdots,\sigma_rc_r,0,\cdots,0)。因为uiu_i是标准正交基,因此Aw2=i[r]σi2ci2\|Aw\|^2=\sum\limits_{i \in [r]}\sigma_i^2c_i^2。可以这样放缩:Aw2=i[r]σi2ci2i[r]σ12ci2=σ12i[r]ci2=σ12\|Aw\|^2=\sum\limits_{i \in [r]}\sigma_i^2c_i^2 \leq \sum\limits_{i \in [r]}\sigma_1^2c_i^2=\sigma_1^2\sum\limits_{i \in [r]}c_i^2=\sigma_1^2,证毕。

子空间拟合

同直线拟合类似,现在我们要找到一个子空间,使得给出Rn\R^n中的mm个点a1,,ama_1,\cdots,a_m到子空间WW的距离平方和最小。为了找到这样的子空间,只需要找到WW的一组基w1,,wkw_1,\cdots,w_k。而aia_iWW的距离平方就是ai2a_i^2减去其在WW上的投影向量的平方(我们曾经在正交性中证明过这一点),因此要最小化这个距离平方和,就是最大化i[m]pi2\sum\limits_{i \in [m]}p_i^2

我们也曾经证明过,如果我们选取WW的标准正交基,就一定满足pi=j[k]wjwjaip_i=\sum\limits_{j \in [k]}w_j w_j^\top a_i,即一个向量在某个子空间上的投影恰好等于其在标准正交基的每个向量上的投影之和,“正交”是具有这种“独立性”的。于是,pi=j[k](wjai)wjp_i=\sum\limits_{j \in [k]}(w_j^\top a_i)w_j,这可以理解为pip_i{w1..k}\{w_{1..k}\}这组基下的坐标是(w1ai,,wkai)(w_1^\top a_i,\cdots,w_k^\top a_i)。再次根据标准正交基下向量的长度和其坐标向量的长度相等,得到pi2=j[k](wjai)2p_i^2=\sum\limits_{j \in [k]}(w_j^\top a_i)^2

所以我们要最大化i[m]j[k](wjai)2\sum\limits_{i \in [m]}\sum\limits_{j \in [k]}(w_j^\top a_i)^2。交换下标,得到j[k]i[m](wjai)2\sum\limits_{j \in [k]}\sum\limits_{i \in [m]}(w_j^\top a_i)^2。再次构造矩阵A=[a1am]A=\begin{bmatrix}a_1^\top \\ \vdots \\ a_m^\top \end{bmatrix},那么i[m](wjai)2=i[m](aiwj)2=(Awj)2\sum\limits_{i \in [m]}(w_j^\top a_i)^2=\sum\limits_{i \in [m]}(a_i^\top w_j)^2=(Aw_j)^2。问题转化为最大化j[k](Awj)2\sum\limits_{j \in [k]}(Aw_j)^2

这个问题其实与“直线拟合”的问题是类似的,直线拟合中我们只要选出一个ww来使得(Aw)2(Aw)^2最大,现在我们本质上就是要选出kk个两两正交的单位向量,使得所有的(Awi)2(Aw_i)^2之和最大。我们发现,我们是可以“贪心”地来选wiw_i,因为我们将会看到这种最大化是“无后效性”的。我们从w1w_1依次选到wkw_k,当我们选w1w_1时,我们证明过(Aw1)2(Aw_1)^2最大不可能超过奇异值中最大的那个的平方,并且最大值恰好在w1=v1w_1=v_1时取到,我们就这么选;而当我们选w2w_2时,对可选的向量有了要求,我们不能再次选v1v_1或与v1v_1共线的向量了,因此“很有可能”不能再次取到最大值σ12\sigma_1^2了,我们只能选取和v1v_1正交的向量,即w2w_2必须落在span{v1}\text{span}\{v_1\}的正交补空间里。

我们可以归纳地看这个问题,wkw_k只能在span{v1,,vk1}\text{span}\{v_1,\cdots,v_{k-1}\}的正交补空间里选,而这个正交补空间地一组基就是{vk,,vn}\{v_k,\cdots,v_n\}。那么wkw_k一定能写成线性组合wk=ckvk++cnvnw_k=c_kv_{k}+\cdots+c_nv_n。那么根据SVD的表达式(假设σi\sigma_i已经从大到小排序)

(Awk)2=[(σ1u1v1+σ2u2v2++σrurvr)(ckvk++cnvn)]2=[ckσkuk++crσrur]2σk2[ckuk++crur]2=σk2i=krci2σk2\begin{aligned}(A \boldsymbol{w}_k)^2 & =[\left(\sigma_{1} \boldsymbol{u}_{1} \boldsymbol{v}_{1}^{\top}+\sigma_{2} \boldsymbol{u}_{2} \boldsymbol{v}_{2}^{\top}+\cdots+\sigma_{r} \boldsymbol{u}_{r} \boldsymbol{v}_{r}^{\top}\right)\left(c_kv_{k}+\cdots+c_nv_n\right)]^2\\&=[c_k\sigma_ku_k+\cdots+c_r\sigma_ru_r]^2 \\ & \leq \sigma_k^2[c_ku_k+\cdots+c_ru_r]^2 \\&=\sigma_k^2 \sum\limits_{i=k}^{r}c_i^2\\& \leq\sigma_k^2\end{aligned}

这意味着,每一次选取我们的结果都不能超过σk2\sigma_k^2。因此选取kk次,结果一定不能超过j[k]σi2\sum\limits_{j \in [k]}\sigma_i^2。而恰好,当wi=viw_i=v_i时全都取到等号。

如果k>rk>r,则肯定至少能选到一个子空间包含所有的aia_i,因此距离为0

伪逆矩阵

我们只对方阵定义过逆矩阵,并且这个方阵还必须是满秩的。 而对于一般的长方形的不满秩的矩阵,我们可以利用奇异值分解定义“伪逆矩阵”。

根据SVD有A=UΣVA=U\Sigma V^\top,那么定义A+=VΣ+UA^+=V\Sigma^+ U^\topAA的伪逆矩阵,其中Σ+\Sigma^+中的奇异值为Σ\Sigma中的倒数。我们容易验证,AA乘以A+A^+就会得到一个类似于单位矩阵的矩阵,它只有左上角的rank(A)\text{rank}(A)个数为1,其余为0。

伪逆矩阵最小二乘法

在最小二乘法中,如果AA是列满秩的,那么有最小二乘解x^=(AA)1Ab\hat{x}=(A^\top A)^{-1}A^\top b。而如果AA不是列满秩的,那么AAA^\top A不可逆,我们不能直接用AA,而是必须在C(A)C(A)中找到新的基AA',得到新的关于列满秩的AA'得到最小二乘解x^=(AA)1Ab\hat{x'}=(A'^\top A')^{-1}A'^\top b

利用伪逆矩阵,我们可以直接给出最小二乘解x+=A+bx^+ = A^+ b。我们知道bAx\|b-Ax\|取最小值当且仅当Ax=pAx=p,其中ppbbC(A)C(A)上的投影。最小二乘法就是找这个投影。所以,其实我们只需验证Ax+=pAx^+=p

由奇异值分解及伪逆矩阵的定义可得

AA+b=UΣVVΣ+Ub=UΣΣ+UbAA^+b=U\Sigma V^\top V \Sigma^+ U^\top b=U \Sigma \Sigma^{+} U^\top b

=[u1um][σ10000σr0000000000][σ110000σr10000000000][u1um]b=\begin{bmatrix} u_1 & \cdots & u_m \end{bmatrix}\left[\begin{array}{cccccc} \sigma_{1} & \cdots & 0 & 0 & \cdots & 0 \\ \vdots & \ddots & \vdots & \vdots & \ddots & \vdots \\ 0 & \cdots & \sigma_{r} & 0 & \cdots & 0 \\ 0 & \cdots & 0 & 0 & \cdots & 0 \\ \vdots & \ddots & \vdots & \vdots & \ddots & \vdots \\ 0 & \cdots & 0 & 0 & \cdots & 0 \end{array}\right]\left[\begin{array}{cccccc} \sigma_{1}^{-1} & \cdots & 0 & 0 & \cdots & 0 \\ \vdots & \ddots & \vdots & \vdots & \ddots & \vdots \\ 0 & \cdots & \sigma_{r}^{-1} & 0 & \cdots & 0 \\ 0 & \cdots & 0 & 0 & \cdots & 0 \\ \vdots & \ddots & \vdots & \vdots & \ddots & \vdots \\ 0 & \cdots & 0 & 0 & \cdots & 0 \end{array}\right]\begin{bmatrix} u_1^\top\\ \vdots \\ u_m^\top \end{bmatrix}b

=[u1um][1000010000000000][u1um]b=\begin{bmatrix} u_1 & \cdots & u_m \end{bmatrix}\left[\begin{array}{cccccc} 1 & \cdots & 0 & 0 & \cdots & 0 \\ \vdots & \ddots & \vdots & \vdots & \ddots & \vdots \\ 0 & \cdots & 1 & 0 & \cdots & 0 \\ 0 & \cdots & 0 & 0 & \cdots & 0 \\ \vdots & \ddots & \vdots & \vdots & \ddots & \vdots \\ 0 & \cdots & 0 & 0 & \cdots & 0 \end{array}\right]\begin{bmatrix} u_1^\top\\ \vdots \\ u_m^\top \end{bmatrix}b

=[u1ur00][u1um]b=i[r]uiuib=\begin{bmatrix} u_1 & \cdots & u_r & 0 & \cdots & 0 \end{bmatrix}\begin{bmatrix} u_1^\top\\ \vdots \\ u_m^\top \end{bmatrix}b=\sum\limits_{i \in [r]}u_iu_i^\top b

Q=[u1ur]Q=\begin{bmatrix} u_1 & \cdots & u_r \end{bmatrix},则得到AA+b=QQbAA^+b=QQ^\top b。而我们证明过{u1..r}\{u_{1..r}\}C(A)C(A)的一组基,因此QQbQQ^\top b就是bbC(A)C(A)上的投影,因此AA+b=pAA^+ b=p

伪逆矩阵唯一性

由于U,VU,V的选取不唯一,我们要问A+A^+是否唯一?

对于一个一般的矩阵AAAx=bAx=b的最小二乘解xx是不唯一的,因为AA不一定满秩,线性组合出投影有不止一种方法。根据x+=A+bx^+ = A^+bx+=σ11v1u1b++σr1vrurbx^+=\sigma_1^{-1}v_1u_1^\top b+\cdots+\sigma_r^{-1}v_ru_r^\top b,因此x+x^+v1vrv_1 \cdots v_r的线性组合,即x+C(A)x^+ \in C(A^\top)。而Ax=Ax+Ax=Ax^+,因此有xx+N(A)x-x^+ \in N(A)。而C(A)C(A^\top)N(A)N(A)为正交补空间,因此有x+(xx+)x^+ \bot (x-x^+)。于是x2=(xx++x+)2=(xx+)2+(x+)2x^2 = (x-x^++x^+)^2 = (x-x^+)^2+(x^+)^2。那么对于所有xx+x \neq x^+,一定有x+<x\|x^+\| < \|x\|。也就是说,伪逆矩阵求出的x+x^+是所有最小二乘解里长度最短那一个,这也意味着这样最短的向量只有它一个,因为所有与它不相等的最小二乘解都比它更长。x+x^+一定是唯一的。

假设有两个不同的伪逆矩阵A1+,A2+A^+_1,A^+_2,那么由于x+x^+的唯一性要求A1+b=A2+bA^+_1 b = A^+_2b,而这对于所有bb都成立,因此有A1+=A2+A_1^+ = A_2^+。所以伪逆矩阵是唯一的。