对称矩阵的谱分解
我们知道实对称矩阵是可对角化的,有
S=QΛQ⊤
其中Q是标准正交矩阵,Λ是由特征值构成的对角矩阵。设Q=[v1⋯vn],就有S=[v1…vn]λ10⋮00λ2⋮0⋯⋯⋱⋯00⋮λnv1⊤⋮vn⊤,把每个v看作整体运用分块矩阵的乘法,就得到
S=λ1v1v1⊤+λ2v2v2⊤+⋯+λnvnvn⊤
这就是对称矩阵的谱分解,本质上就是对角化的另外一种表示方式。
而由于Q是可逆的,rank(Λ)=rank(S)。而rank(Λ)就是非零特征值的个数。在谱分解的表达式中,我们可以直接抹掉特征值为0的项,如果rank(S)很小,那么谱分解表达式的复杂度就很小。更精确地,用矩阵表示S需要n2个数字,而用谱分解来表示S只需要(n+1)⋅rank(S)个数字。在rank(S)远小于n的时候复杂度减小了一个数量级。这使得谱分解在图像压缩等领域有广泛的应用
一般矩阵的奇异值分解(SVD)
对于非对称的矩阵,也有一种类似地分解方式。此时的“对角化”不用特征值而变成了“奇异值”。对于矩阵Am×n,假如rank(A)=r,那么我们我们可以找到标准正交的矩阵Um×m,Vn×n⊤,以及矩阵Σn×n=[Dr×r000](其中D=σ10⋮00σ2⋮0⋯⋯⋱⋯00⋮σr,σi就是奇异值),使得能够成立
A=UΣV⊤
用类似的方法展开有
A=σ1u1v1⊤+σ2u2v2⊤+⋯+σrurvr⊤
可以发现,复杂度从nm降为了(n+m+1)⋅rank(A)
事实上我们注意到,奇异值分解是谱分解(即一般的对角化)的一种推广。因此奇异值与特征值有很密切的关系。当A退化为对称方阵的时候,奇异值就是特征值。
我们可以证明,A的奇异值恰好是矩阵A⊤A的特征值的算术平方根!
A⊤A是个对称矩阵。我们知道,一个矩阵是否是正定的,即它的特征值是否恒为正,与这个矩阵的二次型是否恒为正是充分必要的。我们很容易验证A⊤A的二次型始终是正的,因为x⊤A⊤Ax=(Ax)⊤(Ax)=(Ax)2≥0。唯一需要注意的是,由于A不一定列满秩,等于0的等号是可能取到的。因此我们或许不能说A⊤A是正定的,只能说它是“半正定”的。用完全类似的方法,我们可以验证A⊤A的所有特征值都是非负的。A⊤A的非零特征值就是它的全部正特征值,而由于非零特征值个数就等于矩阵的秩,因此A⊤A恰好有rank(A⊤A)个正的特征值。
我们在讨论投影矩阵的时候证明过rank(A)=rank(A⊤A)。由于rank(A)=rank(A⊤A),那么如果做代换A→A⊤,就会得到rank(A⊤)=rank((A⊤)⊤A⊤)。而由于行秩等于列秩,这告诉我们rank(A)=rank(AA⊤)。所以,rank(A)=rank(A⊤A)=rank(AA⊤)。
现在我们知道,A⊤A恰好有rank(A)个正的特征值。我们很容易验证,AA⊤也是“半正定阵”,它也恰好有rank(A)个正的特征值。
我们设A⊤A有r个特征值λ1,⋯λr,并且实对称矩阵的代数重数等于几何重数,对应地我们可以找到r个线性独立的特征向量。更进一步,这r个向量可以是两两正交的单位向量(因为不同特征值对应的特征向量一定是正交的,而同一个特征值的特征子空间里一定能够选出正交基),设为v1,⋯,vr。
我们可以验证:λ11Av1,…,λr1Avr是互相标准正交的:首先,(λi1Avi)2=λivi⊤A⊤Avi,由于A⊤Avi=λivi,因此λivi⊤(A⊤Avi)=λivi⊤λivi =(vi)2=1。同时,(λi1Avi)(λj1Avj)=λiλjvi⊤A⊤Avj=λiλjvi⊤λjvj=0。此时我们发现,λi1Avi=λi1A(λiA⊤Avi)=AA⊤(λiλi1Avi),整理得到
AA⊤(λi1Avi)=λi(λi1Avi)
这意味着,λi1Avi恰好是矩阵AA⊤(注意不是A⊤A)的特征向量,而每个A⊤A的特征值λi恰好也是AA⊤的特征值!直觉上我们已经感受到,A⊤A和AA⊤有完全相同的特征值,但我们还需要小心的验证这个断言。我们已经知道这两个矩阵拥有“相同种类”的特征值,但还不知道每个数值的特征值个数是否相同。其实这也是容易验证的,因为我们已经知道vi是线性独立的,λi1Avi也是线性独立的。每个vi占了一维来对应λi,而每个λi1Avi也占了一维来对应λi。因此每个λi在A⊤A和AA⊤中的维数(即代数重数和几何重数,它们是相等的)是相等的。综上,A⊤A和AA⊤有完全相同的特征值。
v1,⋯,vr可以扩展为Rn的一组基v1,⋯,vn,同时依然保证它们是标准正交的特征向量,对于每个i都有A⊤Avi=λivi。同时,我们令ui=λi1Avi,同时把u1,⋯,ur也扩展为Rm的一组基u1,⋯,um,同时保证它们是两两正交的单位向量。于是我们令V=[v1⋯vn],U=[u1⋯um],令σi=λi,就有:
AV=[u1…urur+1…um]λ1⋱λr0⋱0
这是容易验证的,因为只需验证Avi=λiui。对于i≤r,λiui=Avi,对于i>r,Avi=λivi=0。这样我们就证明了(1)式!
SVD中的矩阵与基
由于A=σ1u1v1⊤+σ2u2v2⊤+⋯+σrurvr⊤,我们容易发现A的每个列向量都是u1,⋯,ur的线性组合,因此有C(A)⊆span{u1,⋯,ur},而因为dim(C(A))=r,因此就有C(A)=span{u1,⋯,ur}。因此{u1,⋯,ur}就是C(A)的一组基!
对于vr+1..n,任意一个乘在奇异值分解式上就会得到Avi=σ1u1v1⊤vi+σ2u2v2⊤vi+⋯+σrurvr⊤vi,而vj⊤vi=0对于j∈[r]是恒成立的,因此Avi=0对于i>r是恒成立的,因此vi∈N(A)。而dim(N(A))=n−r,因此{vr+1,⋯,vn}就是N(A)的一组基!
如果对A=UΣV⊤取转置,那么A⊤=VΣU⊤,套用相同的结论就会得到{v1,⋯,vr}是C(A⊤)的一组基,{ur+1,⋯,um}是N(A⊤)的一组基。
由此可见,我们在SVD过程中就已经得到了C(A),N(A),C(A⊤),N(A⊤)的标准正交基。
拟合
直线拟合
给出Rn中的m个点a1,⋯,am(点和向量是等价的),要想找到一条直线(用单位向量w表示),使得所有点到直线的距离平方和最小,这就是直线的拟合问题。
考虑ai在w上的投影pi,那么我们要最小化i∈[n]∑di2=i∈[n]∑ai2−i∈[n]∑pi2就等价于最大化i∈[n]∑pi2。而pi2=(w⋅ai)2。如果我们构造矩阵A=a1⊤⋮am⊤,那么我们只需最大化(Aw)2,即最大化∥Aw∥。
神奇的是,∥Aw∥的最大值恰好是A的最大的奇异值σ1。我们知道σ1=λ1,如果我们把v1乘在奇异值分解的表达式上就会得到Av1=σ1u1v1⊤v1+σ2u2v2⊤v1+⋯+σrurvr⊤v1=σ1u1,因此(Av1)2=σ12u12=σ12,即取w=v1时刚好取到最大值。那么下面我们只需证明对于任意的w都有(Aw)2≤σ12
我们考虑这样一个事实:假如qi是一组标准正交基,那么对于任意的向量v我们可以写出v=c1q1+⋯+cnqn,把它乘开一定得到v2=i∈[n]∑ci2,即标准正交基下向量的长度和其坐标向量的长度是相等的。
我们取出奇异值分解式中的v1,⋯,vn,那么有w=c1v1+⋯+cnvn。由于vi是标准正交基,因此i∈[n]∑ci2=∥w∥2=1。我们把w乘在奇异值分解式上,得到
#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}
,因此得到
Aw在
u1,⋯,um这组基下的坐标为
(σ1c1,⋯,σrcr,0,⋯,0)。因为
ui是标准正交基,因此
∥Aw∥2=i∈[r]∑σi2ci2。可以这样放缩:
∥Aw∥2=i∈[r]∑σi2ci2≤i∈[r]∑σ12ci2=σ12i∈[r]∑ci2=σ12,证毕。
子空间拟合
同直线拟合类似,现在我们要找到一个子空间,使得给出Rn中的m个点a1,⋯,am到子空间W的距离平方和最小。为了找到这样的子空间,只需要找到W的一组基w1,⋯,wk。而ai到W的距离平方就是ai2减去其在W上的投影向量的平方(我们曾经在正交性中证明过这一点),因此要最小化这个距离平方和,就是最大化i∈[m]∑pi2。
我们也曾经证明过,如果我们选取W的标准正交基,就一定满足pi=j∈[k]∑wjwj⊤ai,即一个向量在某个子空间上的投影恰好等于其在标准正交基的每个向量上的投影之和,“正交”是具有这种“独立性”的。于是,pi=j∈[k]∑(wj⊤ai)wj,这可以理解为pi在{w1..k}这组基下的坐标是(w1⊤ai,⋯,wk⊤ai)。再次根据标准正交基下向量的长度和其坐标向量的长度相等,得到pi2=j∈[k]∑(wj⊤ai)2。
所以我们要最大化i∈[m]∑j∈[k]∑(wj⊤ai)2。交换下标,得到j∈[k]∑i∈[m]∑(wj⊤ai)2。再次构造矩阵A=a1⊤⋮am⊤,那么i∈[m]∑(wj⊤ai)2=i∈[m]∑(ai⊤wj)2=(Awj)2。问题转化为最大化j∈[k]∑(Awj)2。
这个问题其实与“直线拟合”的问题是类似的,直线拟合中我们只要选出一个w来使得(Aw)2最大,现在我们本质上就是要选出k个两两正交的单位向量,使得所有的(Awi)2之和最大。我们发现,我们是可以“贪心”地来选wi,因为我们将会看到这种最大化是“无后效性”的。我们从w1依次选到wk,当我们选w1时,我们证明过(Aw1)2最大不可能超过奇异值中最大的那个的平方,并且最大值恰好在w1=v1时取到,我们就这么选;而当我们选w2时,对可选的向量有了要求,我们不能再次选v1或与v1共线的向量了,因此“很有可能”不能再次取到最大值σ12了,我们只能选取和v1正交的向量,即w2必须落在span{v1}的正交补空间里。
我们可以归纳地看这个问题,wk只能在span{v1,⋯,vk−1}的正交补空间里选,而这个正交补空间地一组基就是{vk,⋯,vn}。那么wk一定能写成线性组合wk=ckvk+⋯+cnvn。那么根据SVD的表达式(假设σi已经从大到小排序)
(Awk)2=[(σ1u1v1⊤+σ2u2v2⊤+⋯+σrurvr⊤)(ckvk+⋯+cnvn)]2=[ckσkuk+⋯+crσrur]2≤σk2[ckuk+⋯+crur]2=σk2i=k∑rci2≤σk2
这意味着,每一次选取我们的结果都不能超过σk2。因此选取k次,结果一定不能超过j∈[k]∑σi2。而恰好,当wi=vi时全都取到等号。
如果k>r,则肯定至少能选到一个子空间包含所有的ai,因此距离为0
伪逆矩阵
我们只对方阵定义过逆矩阵,并且这个方阵还必须是满秩的。 而对于一般的长方形的不满秩的矩阵,我们可以利用奇异值分解定义“伪逆矩阵”。
根据SVD有A=UΣV⊤,那么定义A+=VΣ+U⊤为A的伪逆矩阵,其中Σ+中的奇异值为Σ中的倒数。我们容易验证,A乘以A+就会得到一个类似于单位矩阵的矩阵,它只有左上角的rank(A)个数为1,其余为0。
伪逆矩阵最小二乘法
在最小二乘法中,如果A是列满秩的,那么有最小二乘解x^=(A⊤A)−1A⊤b。而如果A不是列满秩的,那么A⊤A不可逆,我们不能直接用A,而是必须在C(A)中找到新的基A′,得到新的关于列满秩的A′得到最小二乘解x′^=(A′⊤A′)−1A′⊤b。
利用伪逆矩阵,我们可以直接给出最小二乘解x+=A+b。我们知道∥b−Ax∥取最小值当且仅当Ax=p,其中p是b在C(A)上的投影。最小二乘法就是找这个投影。所以,其实我们只需验证Ax+=p。
由奇异值分解及伪逆矩阵的定义可得
AA+b=UΣV⊤VΣ+U⊤b=UΣΣ+U⊤b
=[u1⋯um]σ1⋮00⋮0⋯⋱⋯⋯⋱⋯0⋮σr0⋮00⋮00⋮0⋯⋱⋯⋯⋱⋯0⋮00⋮0σ1−1⋮00⋮0⋯⋱⋯⋯⋱⋯0⋮σr−10⋮00⋮00⋮0⋯⋱⋯⋯⋱⋯0⋮00⋮0u1⊤⋮um⊤b
=[u1⋯um]1⋮00⋮0⋯⋱⋯⋯⋱⋯0⋮10⋮00⋮00⋮0⋯⋱⋯⋯⋱⋯0⋮00⋮0u1⊤⋮um⊤b
=[u1⋯ur0⋯0]u1⊤⋮um⊤b=i∈[r]∑uiui⊤b
设Q=[u1⋯ur],则得到AA+b=QQ⊤b。而我们证明过{u1..r}是C(A)的一组基,因此QQ⊤b就是b在C(A)上的投影,因此AA+b=p。
伪逆矩阵唯一性
由于U,V的选取不唯一,我们要问A+是否唯一?
对于一个一般的矩阵A,Ax=b的最小二乘解x是不唯一的,因为A不一定满秩,线性组合出投影有不止一种方法。根据x+=A+b,x+=σ1−1v1u1⊤b+⋯+σr−1vrur⊤b,因此x+是v1⋯vr的线性组合,即x+∈C(A⊤)。而Ax=Ax+,因此有x−x+∈N(A)。而C(A⊤)与N(A)为正交补空间,因此有x+⊥(x−x+)。于是x2=(x−x++x+)2=(x−x+)2+(x+)2。那么对于所有x=x+,一定有∥x+∥<∥x∥。也就是说,伪逆矩阵求出的x+是所有最小二乘解里长度最短那一个,这也意味着这样最短的向量只有它一个,因为所有与它不相等的最小二乘解都比它更长。x+一定是唯一的。
假设有两个不同的伪逆矩阵A1+,A2+,那么由于x+的唯一性要求A1+b=A2+b,而这对于所有b都成立,因此有A1+=A2+。所以伪逆矩阵是唯一的。