L15-子空间投影

linear-algebra

L15-子空间投影

参考

Projection 投影在现实中是指将一个物体轮廓映射到一个平面上。

投影到直线

在直角平面坐标系中,将向量 bb 投影到由向量 aa 所指定的直线上,就是指在直线上寻找一个点,使得它与向量 bb 的端点最近

那么从直角坐标系的原点到这个点所代表的向量 pp,就是向量 bb 在直线上的投影

而由它们的差所得的向量 e=bpe=b-p 就称为误差

向量 b 在 a 上的投影
向量 b 在 a 上的投影

提示

可以将向量 pp 理解为是 bb 在向量 aa (所张成的空间)上的近似值。

而向量 ee 就是近似值与原值的误差 error,在下文称它为误差向量

投影结果向量 pp 在直线上,所以可以用向量 aa(的倍数)表示为 p=xap=xa

根据几何性质(点到直线的距离,即过这一点做目标直线的垂线,由这一点至垂足的距离),误差向量 ee 与向量 aa 正交/垂直,根据向量正交的性质可知它们的乘积 ea=0ea=0

以矩阵的形式表示

aTe=aT(bp)=aT(bxa)=0a^{T}e=a^{T}(b-p)=a^{T}(b-xa)=0

其中向量 aa 和向量 ee 都是列向量

提示

该(投影)规则可以推广到更高的维度

化简以上等式,由于在 xaTa=aTbxa^{T}a=a^{T}b 等式中,根据向量相乘的规则可知 aTaa^{T}a 两个向量相乘的结果是一个数字(标量),所以可以进一步进行化简,最终求解得到系数 xx 的值为

x=aTbaTax=\frac{a^{T}b}{a^{T}a}

则投影结果向量 p=xap=xa 也可以写作 p=axp=ax(因为 xx 是系数,改变它与向量相乘的顺序不会影响结果)为

p=aaTbaTap=a\frac{a^{T}b}{a^{T}a}

观察投影结果向量的构成式子(由向量 aa 及其转置和向量 bb 构成)可以得到以下特点:

  • 当向量 bb 改变时投影结果向量 pp 也会随之改变,例如将向量 bb 增大为原来的 2 倍,则投影也会改为 2 倍
  • 当向量 aa 改变时投影结果向量 pp 并不会改变(该变动由于分式上下都存在 aa 向量而相互「抵消」)

结合几何图形更容易理解,即将向量 bb 的模长增长,那么它的投影也会变长;而改变向量 aa 的模长,并不会影响其指定的直线,即投影位置并不变,所以投影向量也不变。

观察投影结果向量 p=aaTbaTa=aaTaTab\displaystyle{p=a\frac{a^{T}b}{a^{T}a}=\frac{aa^{T}}{a^{T}a}b} 其结构就像是一个矩阵作用于向量 bb 使其映射到向量 aa 上,得到投影结果 pp(小写),那么这个矩阵称为投影矩阵 PP(大写)

说明

投影矩阵 PP 就是一个作用于向量 bb 的矩阵(以相乘的方式)

PbPb 将该向量 bb 映射到目标空间中,得到投影向量

则投影矩阵 PP 的值为

P=aaTaTaP=\frac{aa^{T}}{a^{T}a}
区别

投影矩阵 PP 与投影结果向量 pp 是不同的

Matrix:P=aaTaTaVector:p=aaTbaTaMatrix: P=\frac{aa^{T}}{a^{T}a} \\ Vector: p=a\frac{a^{T}b}{a^{T}a}

投影矩阵 PP 是用大写字母表示,而投影结果向量 pp 是用小写字母表示的

另外需要留意的一点是,虽然投影矩阵 PP 的分子分母由相同的元素构成,但是根据矩阵相乘的规则,不同的相乘顺序得到的结果也不同,分母是行向量与列向量相乘 aTaa^{T}a 得到一个数字(标量,其值等价于向量模的平方 a2\Vert a \Vert ^{2}),分子 aaTaa^{T} 是列向量与行向量相乘得到一个矩阵,所以不可以对分式进行化简消去。

归纳总结

根据以上的推导得到 3 条关于(一维空间)向量投影的重要式子:

  • 系数 xx(在投影结果向量 p=xap=xa 中的系数)x=aTbaTax=\frac{a^{T}b}{a^{T}a}
  • 投影结果向量 p=xap=xap=aaTbaTap=a\frac{a^{T}b}{a^{T}a}
  • 投影矩阵 PPP=aaTaTaP=\frac{aa^{T}}{a^{T}a}

当投影矩阵 P=aaTaTa\displaystyle{P=\frac{aa^{T}}{a^{T}a}} 作用于向量 bb 时(即与向量相乘 PbPb,得到投影结果向量 pp),以矩阵与列向量相乘的角度来考虑,PbPb 就是矩阵 PP 的各列按照 bb 进行线性组合,所以得到的结果向量 pp 实际在投影矩阵的列空间 C(P)C(P)

因此对于任意向量 bb 所对应的一系列 PbPb 值就构成矩阵 PP 的列空间,由于投影都会在(由向量 aa 所指定的)直线上,所以矩阵 PP 的列空间 C(P)C(P) 的维度就是 11,即秩 rank=1rank=1,而且向量 aa 是该空间的一个基。

提示

根据《L11-矩阵空间、秩 1 矩阵和小世界图》这一节课的内容:

通过 uvTuv^T 相乘(其中 uuvv 都是列向量,所以 vTv^T 是行向量)构成的矩阵,由于各行,以及各列都是线性相关的,所以结果矩阵的秩为 r=1r=1

再结合投影矩阵的公式 P=aaTaTa\displaystyle{P=\frac{aa^{T}}{a^{T}a}} 其中 aaTaa^{T} 就是符合 uvTuv^T 结构,以矩阵与列向量(虽然 aTa^{T} 是一个行向量)相乘的角度考虑,就是 aa 矩阵的各列根据 aTa^{T}(的各列)进行线性组合,得到的矩阵(的列空间)依然在原矩阵 aa 中。

投影矩阵 PP 具有以下特性:

  • PT=PP^{T}=P 投影矩阵是对称矩阵
    证明

    投影矩阵 P=aaTaTa\displaystyle{P=\frac{aa^{T}}{a^{T}a}} 的式子中,分母两个元素相乘的结果是一个数字,所以考虑分子的 aaTaa^{T} 是否为对称矩阵即可

    PT=(aaTaTa)T=(aT)TaTaTa=aaTaTa=P\begin{aligned} P^{T}&=(\frac{aa^{T}}{a^{T}a})^{T} \\ &=\frac{(a^{T})^{T}a^{T}}{a^{T}a} \\ &=\frac{aa^{T}}{a^{T}a} \\ &=P \end{aligned}

    所以投影矩阵 PP 是对称矩阵

  • P2=PP^{2}=P 投影矩阵的平方等于其自身
    证明

    因为 PbPb 的作用是将向量 bb 投影到向量 aa 所在的直线上,那么投影结果向量 pp 就在该直线上。

    如果再将所得的向量投影到 aa 所在的直线上 PpPp,因为 pp 本来就在直线上,所以(二次投影)结果依然得到第一次投影的结果向量,即 Pp=P(Pb)=P2b=PbPp=P(Pb)=P^{2}b=Pb

投影到平面

将投影的目标对象维度提高,由直线变成平面(即从向量变成矩阵),以探究更高维度的投影规律。

平面 AA 由向量 a1a_{1} 和向量 a2a_{2} 张成。向量 bb 并不在平面上,将该向量投影到平面上,投影结果向量是 pp

由于平面是由(列向量)向量 a1a_{1} 和向量 a2a_{2} 构成的,所以可以用一个矩阵来表示 A=[a1a2]A=\begin{bmatrix} a_{1} & a_{2} \end{bmatrix}

提示

因为这两个向量张成了平面,所以它们是线性独立的,那么该矩阵的列空间 C(A)C(A) 的一组基就是由这两个向量 a1a_{1}a2a_{2} 构成的。

由于向量 bb 的投影向量 pp 在平面上,所以投影向量可以用基向量来表示,即 p=x1^a1+x2^a2p=\hat{x_{1}}a_{1}+\hat{x_{2}}a_{2},也可以写成矩阵形式 p=Ax^p=A\hat{x}

提示

由于向量 bb 的投影向量 pp 在平面上,所以可以将投影过程理解为将向量「压在」在特定的空间中。

对于该示例,就是将向量 bb 「压在」矩阵 AA 的列空间中

那么误差向量 e=bpe=b-p 就是 e=bAx^e=b-A\hat{x},因为误差向量与平面垂直,所以误差向量 ee 也分别和该平面的一组基向量 a1a_{1}a2a_{2} 正交,那么与它们的内积就是零,所以可以得到一组等式

{a1Te=a1T(bAx^)=0a2Te=a2T(bAx^)=0\begin{aligned} \left\{\begin{matrix} a^{T}_{1}e=a^{T}_{1}(b-A\hat{x})=0 \\ a^{T}_{2}e=a^{T}_{2}(b-A\hat{x})=0 \end{matrix}\right. \end{aligned}

其中向量 a1a_{1}a2a_{2}eebb 都是列向量

将以上的一组等式写成矩阵形式

[a1Ta2T](bAx^)=[00]\begin{bmatrix} a^{T}_{1} \\ a^{T}_{2} \end{bmatrix} (b-A\hat{x})= \begin{bmatrix} 0 \\ 0 \end{bmatrix}

可简化为 AT(bAx^)=0A^{T}(b-A\hat{x})=0

提示

观察 AT(bAx^)=0A^{T}(b-A\hat{x})=0 等式

其中 bAx^b-A\hat{x} 就是误差向量 ee,所以等式也可以写成 ATe=0A^{T}e=0,即误差向量 ee 在矩阵 ATA^{T} 的零空间 N(AT)N(A^{T}) 中,也可以理解为误差向量 ee 在矩阵 AA 的左零空间 N(AT)N(A^{T})

而根据矩阵的四个子空间的正交关系,左零空间 N(AT)N(A^{T}) 与列空间 C(A)C(A) 正交,所以误差向量与列空间垂直 eC(A)e \perp C(A),这也就表示误差向量与平面垂直,这也正是符合事实。

化简以上等式 AT(bAx^)=0A^{T}(b-A\hat{x})=0 得到 ATAx^=ATbA^{T}A\hat{x}=A^{T}b

对比

投影到平面与投影到直线的场景类似,所以得到的方程式也是类似的 aT(bxa)=0a^{T}(b-xa)=0

可以化简得到 xaTa=aTbxa^{T}a=a^{T}b 因为其中的 aTaa^{T}a一个数字(标量),所以可以进行除法运算,最终可以求得 x=aTbaTax=\displaystyle{\frac{a^{T}b}{a^{T}a}}

投影到平面化简得到 ATAx^=ATbA^{T}A\hat{x}=A^{T}b 但是其中的 ATAA^{T}A 是尺寸为 n×mn \times m 的矩阵与尺寸为 m×nm \times n 的矩阵相乘,得到则是一个 n×nn \times n 的矩阵(而不是一个标量)

(无法直接进行除法运算)所以应该在等式两边乘上逆矩阵 (AAT)1(AA^{T})^{-1} 进行化简

进一步求解可得系数 x^\hat{x} 的值为

x^=(AAT)1ATb\hat{x}=(AA^{T})^{-1}A^{T}b

则投影结果向量 pp

p=Ax^=A(ATA)1ATbp=A\hat{x}=A(A^{T}A)^{-1}A^{T}b

那么投影矩阵 PP(大写)就是

P=A(ATA)1ATP=A(A^{T}A)^{-1}A^{T}

以上式子一般都不可以再进一步化简

注意

虽然根据相乘矩阵的逆矩阵的运算规则 (AB)1=B1A1(AB)^{-1}=B^{-1}A^{-1} 可以将上面的式子进行化简,但是这个运算规则的前提是矩阵 AA 和矩阵 BB 自身都需要有相应的逆矩阵才成立,即矩阵 AABB 要是可逆才行

而在该示例中,矩阵 AA 一般是一个长方形矩阵(行不满秩),即 AA 是一个不可逆矩阵,所以一般无法对 (ATA)1(A^{T}A)^{-1} 进一步化简

假如矩阵 AA 刚好是一个可逆方阵,那么投影矩阵 P=A(ATA)1AT=AA1(AT)1AT=IP=A(A^{T}A)^{-1}A^{T}=AA^{-1}(A^{T})^{-1}A^{T}=I 就正好是单位矩阵

在这种特殊的情况下,向量 bb 的投影 Pb=bPb=b 就是其自身,因为投影结果向量在矩阵 AA 的列空间中,也就是说向量 bb 本来就在矩阵的列空间 C(A)C(A) 中,那么矩阵 AA 列满秩,其列空间本身就是包含了整个 Rn\mathbb{R}^{n} 空间

归纳总结

根据以上的推导得到 3 条关于(高维空间)向量投影的重要式子:

  • 系数 xx(在投影结果向量 p=Ax^p=A\hat{x} 中的系数):
x^=(ATA)1ATb\hat{x}=(A^{T}A)^{-1}A^{T}b
  • 投影结果向量 p=Ax^p=A\hat{x}
p=Ax^=A(ATA)1ATbp=A\hat{x}=A(A^{T}A)^{-1}A^{T}b
  • 投影矩阵 PP
P=A(ATA)1ATP=A(A^{T}A)^{-1}A^{T}

和投影到直线的投影向量一样,投影到平面的投影矩阵 PP 同样具有以下特性:

  • PT=PP^{T}=P
    证明

    投影矩阵是对称矩阵

    由于在 A(ATA)1ATA(A^{T}A)^{-1}A^{T} 中,ATAA^{T}A 本身就是一个 n×nn \times n 的对称矩阵,再根据相乘矩阵的转置的规则可以得到

    (A(ATA)1AT)T=(AT)T(ATA)1AT=A(ATA)1AT(A(A^{T}A)^{-1}A^{T})^{T}=(A^{T})^{T}(A^{T}A)^{-1}A^{T}=A(A^{T}A)^{-1}A^{T}

    该式子的转置与其本身相等,所以投影矩阵 PP 是一个对称矩阵

  • P2=PP^{2}=P
    证明

    投影矩阵的平方等于其自身

    可以从几何的角度来考虑,连续的两次投影的投影结果不变(因为第一次投影得到的向量就在目标空间中,而对目标空间中的向量进行投影,得到的结果等于其自身)

    通过等式也可以证明

    P2=[A(ATA)1AT][A(ATA)1AT]=A(ATA)1ATA(ATA)1AT\begin{aligned} P^{2}&=[A(A^{T}A)^{-1}A^{T}][A(A^{T}A)^{-1}A^{T}] \\ &=A(A^{T}A)^{-1}{\color{Red} A^{T}A(A^{T}A)^{-1}}A^{T} \end{aligned}

    其中红色标记的部分的乘积为单位矩阵 II,所以最后可以得到

    P2=A(ATA)1AT=PP^{2}=A(A^{T}A)^{-1}A^{T}=P

投影的应用

对于方程组 Ax=bAx=b 一般等式的数量都比较多,即系数矩阵 AA 是一个长方形矩阵,这种情况下方程组一般是无解的,因为 AxAx 的结果是在 AA 的列空间中,但是 bb 则不一定在列空间 C(A)C(A) 中。

此时可以「改变」bb,通过最小的变动得到 pp,使得 pp 是在列空间 C(A)C(A) 中,则对于 Ax^=pA\hat{x}=p 方程组,其解 x^\hat{x} 就是最优解

这里的关键是怎最小的变动去「改变」 bb 得到 pp,其实就是通过投影的方式,即向量 pp 就是向量 bb 在矩阵 AA 的列空间 C(A)C(A) 的投影


课堂上介绍了一个使用场景:通过最小二乘法 Least Squared Fitting by a Line 求出一条直线,用于拟合一系列的点

三个点和一条拟合直线
三个点和一条拟合直线

上图有三个点 (1,1)(1, 1)(2,2)(2, 2)(3,2)(3, 2) 使用一条直线 b=c+Dtb=c+Dt 对它们进行拟合,即求出 CCDD 使得直线尽可能地接近这三个数据点

先假设这三个点都经过直线,将它们分别带入直线方程,可以得到一个方程组

{C+D=1C+2D=2C+D=2\left\{\begin{matrix} C+D=1 \\ C+2D=2 \\ C+D=2 \end{matrix}\right.

以矩阵形式表示

[111213][CD]=[123]\begin{bmatrix} 1 & 1 \\ 1 & 2 \\ 1 & 3 \end{bmatrix} \begin{bmatrix} C \\ D \end{bmatrix}= \begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix}

但是实际上以上的方程组是无解的(可以通过化简或观察几何图像来判断,即无法找到一条直线完全经过 3 个点)

可以在等式两边乘上 ATA^{T} 使得系数矩阵方阵,则新的方程组可能有解(该解 x^\hat{x} 就是原方程组的 xx 最优解)

ATAx^=ATbA^{T}A\hat{x}=A^{T}b

Copyright © 2024 Ben

Theme BlogiNote

Icons from Icônes