合集线性代数第 7 / 8 篇Lec 15 · 正交投影:从直线到子空间
约 20 分钟

Make This Lecture Immortal
承上启下的一节 Lecture,先 1D(投影到一条直线),再 nD(投影到一个子空间),最后引出"为什么要投影"(解 Ax=b 无解的情形,引出最小二乘),简洁精辟,Immortal!!
1D 投影——把 b 投到一条直线 a 上

投影向量 p 可以由正交条件 aT(b−xa)=0 求出
于是有以下计算与推断:
x=aTaaTb
p=xa=ax
这里我稍微有点疑惑:aTaaTba=?aaTaaTb。
等式成立,因为分式的结果是一个标量。把它写在 a 右侧,更容易整理出投影矩阵的形式。
p=aaTaaTb=aTaaaTb
p=Pb,P=aTaaaT
这里的重点是引出投影矩阵 P。
投影矩阵的性质
- P=aTaaaT。
- P2=P:投影一次之后,再投影不会改变结果。
- PT=P:aaT 是对称矩阵,而 aTa 是标量。
为什么需要投影?
- 方程 Ax=b 可能无解,因为 b 不一定在 A 的列空间中。
- 这时改为求解 Ax^=p,其中 p 是 b 在列空间上的投影。
- 我们追求的不是让 x^ 接近某个不存在的 x,而是让 Ax^ 尽可能接近 b。


从 1D 到 nD——投到一个子空间
经过下面几个步骤:
- Ax=b 无解时,退而求其次,让 Ax^ 尽可能接近 b。
- 令 p=Ax^ 为 b 在列空间 C(A) 上的投影。
- 误差 e=b−p 必须垂直于 C(A),因此 ATe=0。
- 代入 p=Ax^,得到正规方程 ATAx^=ATb。
如果 A 的列线性无关,ATA 可逆,于是:
x^=(ATA)−1ATb
p=Ax^=A(ATA)−1ATb=Pb
P=A(ATA)−1AT
为什么要投影?——解 Ax=b 无解的情形
这是 Strang 在 lec15 最后引出的"动机问题",也是连接到 lec16(最小二乘)的桥梁。
-
Ax=b 无解,意思就是 b 不在列空间 C(A) 里。
-
但我们仍然想得到一个"最佳近似解" x^,让 Ax^ 尽可能接近 b。
-
"最接近"在欧氏意义下就是最短的 e=b−Ax^——而最短的 e 一定垂直于 C(A),于是 ATe=0,展开就是 ATAx^=ATb,称为正规方程(normal equation)。
-
同一个公式,两个故事:从“投影”看是在列空间中寻找最近点;从“最小二乘”看是在最小化误差长度 ∥Ax−b∥。
在直线上投影给出 P=aTaaaT;在子空间上投影把 a 换成矩阵 A、把"除"换成"乘以逆",得到 P=A(ATA)−1AT。而投影的物理动机是:当 Ax=b 无解时,把 b 退到 C(A) 里最近的点 p 上去解——这就是最小二乘。
几个注意点
为什么 1D 时是"除以 aTa",nD 时却是"乘以 (ATA)−1"?
因为 aTa 是个标量(1×1),标量就是实数,可以直接除;而 ATA 是个 n×n 矩阵,"除"在矩阵世界里就是"乘以逆"。这两件事是一回事。
为什么 ATA 一定可逆?
不一定,因此不能不加条件地写出或直接计算 (ATA)−1。
如果 A 是可逆方阵,那么对每个 b,方程 Ax=b 都有唯一解,此时列空间就是整个输出空间,不需要先把 b 投影到更小的子空间。

当且仅当 A 的列线性无关时,ATA 可逆。
为什么垂直条件 ATe=0 变成了"e 垂直于 A 的每一列"?
因为 ATe 的每个分量,都是 e 与 A 的一列做内积。它等于零,正好说明 e 垂直于每一列,也就是 e∈N(AT)=C(A)⊥。