几何直观#
有两个向量 a 和 b。从 b 的终点向 a 所在的直线做一条垂线,垂足与原点之间的这段向量,就是 b 在 a 方向上的投影向量(记作 projab)。
关于二维投影的计算#
TIP⟨a,b⟩=a⋅b=a1b1+a2b2+⋯+anbn=aTb=bTa
投影的长度 d 为:
d=∥b∥cosθ根据点积定义 a⋅b=∥a∥∥b∥cosθ,可以写出:
d=∥a∥a⋅b投影向量的方向和 a 一致,所以用长度 d 乘以 a 的单位向量 ∥a∥a:
projab=(∥a∥a⋅b)∥a∥a=∥a∥2a⋅ba由于 ∥a∥2=aTa 且 a⋅b=aTb,我们可以重写公式:
projab=aTaaaTb这里 P=aTaaaT 被称为投影矩阵。
投影到子空间#
有一个 k 维子空间 W,由 k 个线性无关的向量 {w1,w2,…,wk} 生成,记作 A=[w1,w2,…,wk]。对于任意向量 b,我们想找到它在 W 上的投影 projWb。
也就是说,我们要找到 W 中的一个向量 p=Ax,使得 p 与 b 之间的距离最小:
projWb=p∈Wargmin∥b−Ax∥22这是关于变量 x 的无约束优化问题。通过求导并设为零,我们可以得到:
∂x∂∥b−Ax∥22=∂x∂(b−Ax)T(b−Ax)=∂x∂(bTb−2bTAx+xTATAx)=−2ATb+2ATAx=0得到:(就是正规方程)因为 A 的列向量线性无关,所以 ATA 可逆(是一个gram矩阵):
ATAx=ATb⇒x=(ATA)−1ATb所以:
projWb=Ax=A(ATA)−1ATb投影矩阵为:
P=A(ATA)−1AT核心性质#
投影矩阵不是随便一个方阵都能叫的,它必须满足这些性质:
2. 正交投影是对称的#
PT=P如果投影的方向是正交于目标子空间的(也就是我们一直在做的“垂直线”投影),那么投影矩阵还是对称矩阵。
3. 特征值只能是 0 或 1#
由于 P2=P,对于任何特征向量 v 和对应的特征值 λ,我们有:
P2v=Pv⇒P(Pv)=Pv⇒P(λv)=λv⇒λ2v=λv特征值 1 对应的特征向量是子空间本身的向量(投影后不变)。
特征值 0 对应的特征向量是被“消灭”的方向(与子空间正交的方向)。
4. 秩等于迹,等于子空间的维数#
因为特征值只有 1 和 0,矩阵的迹就是特征值 1 的个数,也就是投影到的子空间的维数。
rank(P)=trace(P)=k5. 互补关系#
如果 P 是投影矩阵,那么 I−P 也是一个投影矩阵,且它投影到的子空间与 P 投影到的子空间是互补的(也就是正交的)。换句话说,如果 P 投影到子空间 W,那么 I−P 就投影到 W 的正交补空间。
6. 几何分解#
对于任意向量 b,我们可以将它分解为两部分:一部分是它在子空间 W 上的投影 projWb,另一部分是它与子空间 W 正交的部分 b−projWb:
b=projWb+(b−projWb)
一些注意事项#
正交性:向量 b 与其投影向量之差 (b−projab) 必然与 a 正交(垂直)。这是线性代数中最重要的误差处理逻辑。
从优化角度看投影:如果想把向量投影到一个仿射空间,寻找平面内距离原始向量最近的点。这可以看作一个有约束的优化问题,用拉格朗日乘数法求解:
x,y∈Rn,则点y到集合S={x∣Ax=b,A∈Rm×n,rank(A)=m<n}的投影是什么?投影点p是集合S中距离y最近的点,即:p=x∈Sargmin∥y−x∥22,s.t.Ax=b使用拉格朗日乘数法求解:L(x,λ)=∥y−x∥22+λT(Ax−b)对x求导并设为零:∂x∂L=−2(y−x)+ATλ=0⇒x=y+21ATλ将x代入约束条件Ax=b中:A(y+21ATλ)=b⇒λ=2(AAT)−1(b−Ay)最终得到投影点p的表达式:p=y−AT(AAT)−1(Ay−b)p=(I−AT(AAT)−1A)y+AT(AAT)−1b从结果看出,投影矩阵 P=I−AT(AAT)−1A
单位向量简化:如果 a 是单位向量(长度为 1),那么公式直接简化为:
projab=(a⋅b)a=(aTb)a