文章
合集线性代数第 7 / 8 篇

Lec 15 · 正交投影:从直线到子空间

lec15

Make This Lecture Immortal

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

1D 投影——把 b\mathbf{b} 投到一条直线 a\mathbf{a} 上

projection_1d_onto_line

投影向量 p\mathbf{p} 可以由正交条件 aT(b−xa)=0\mathbf{a}^T(\mathbf{b}-x\mathbf{a})=0 求出

于是有以下计算与推断:

x=aTbaTax = \dfrac{\mathbf{a}^T\mathbf{b}}{\mathbf{a}^T\mathbf{a}} p=xa=ax\mathbf{p} = x\mathbf{a} = \mathbf{a}x

这里我稍微有点疑惑:aTbaTaa=?aaTbaTa\dfrac{\mathbf{a}^T\mathbf{b}}{\mathbf{a}^T\mathbf{a}}\mathbf{a} \overset{?}{=} \mathbf{a}\dfrac{\mathbf{a}^T\mathbf{b}}{\mathbf{a}^T\mathbf{a}}。

等式成立,因为分式的结果是一个标量。把它写在 a\mathbf{a} 右侧,更容易整理出投影矩阵的形式。

p=aaTbaTa=aaTaTab\mathbf{p}=\mathbf{a}\dfrac{\mathbf{a}^T\mathbf{b}}{\mathbf{a}^T\mathbf{a}}=\dfrac{\mathbf{a}\mathbf{a}^T}{\mathbf{a}^T\mathbf{a}}\mathbf{b} p=Pb,P=aaTaTa\mathbf{p}=P\mathbf{b}, \qquad P=\dfrac{\mathbf{a}\mathbf{a}^T}{\mathbf{a}^T\mathbf{a}}

这里的重点是引出投影矩阵 PP。

投影矩阵的性质

  1. P=aaTaTaP=\dfrac{\mathbf{a}\mathbf{a}^T}{\mathbf{a}^T\mathbf{a}}。
  2. P2=PP^2=P:投影一次之后,再投影不会改变结果。
  3. PT=PP^T=P:aaT\mathbf{a}\mathbf{a}^T 是对称矩阵,而 aTa\mathbf{a}^T\mathbf{a} 是标量。

为什么需要投影?

  • 方程 Ax=bA\mathbf{x}=\mathbf{b} 可能无解,因为 b\mathbf{b} 不一定在 AA 的列空间中。
  • 这时改为求解 Ax^=pA\hat{\mathbf{x}}=\mathbf{p},其中 p\mathbf{p} 是 b\mathbf{b} 在列空间上的投影。
  • 我们追求的不是让 x^\hat{\mathbf{x}} 接近某个不存在的 x\mathbf{x},而是让 Ax^A\hat{\mathbf{x}} 尽可能接近 b\mathbf{b}。

craft02

why_we_project

从 1D 到 nD——投到一个子空间

经过下面几个步骤:

  1. Ax=bA\mathbf{x}=\mathbf{b} 无解时,退而求其次,让 Ax^A\hat{\mathbf{x}} 尽可能接近 b\mathbf{b}。
  2. 令 p=Ax^\mathbf{p}=A\hat{\mathbf{x}} 为 b\mathbf{b} 在列空间 C(A)C(A) 上的投影。
  3. 误差 e=b−p\mathbf{e}=\mathbf{b}-\mathbf{p} 必须垂直于 C(A)C(A),因此 ATe=0A^T\mathbf{e}=0。
  4. 代入 p=Ax^\mathbf{p}=A\hat{\mathbf{x}},得到正规方程 ATAx^=ATbA^TA\hat{\mathbf{x}}=A^T\mathbf{b}。

如果 AA 的列线性无关,ATAA^TA 可逆,于是:

x^=(ATA)−1ATb\hat{\mathbf{x}}=(A^TA)^{-1}A^T\mathbf{b} p=Ax^=A(ATA)−1ATb=Pb\mathbf{p}=A\hat{\mathbf{x}}=A(A^TA)^{-1}A^T\mathbf{b}=P\mathbf{b} P=A(ATA)−1ATP=A(A^TA)^{-1}A^T

为什么要投影?——解 Ax=bA\mathbf{x} = \mathbf{b} 无解的情形

这是 Strang 在 lec15 最后引出的"动机问题",也是连接到 lec16(最小二乘)的桥梁。

  • Ax=bA\mathbf{x} = \mathbf{b} 无解,意思就是 b\mathbf{b} 不在列空间 C(A)C(A) 里。

  • 但我们仍然想得到一个"最佳近似解" x^\hat{\mathbf{x}},让 Ax^A\hat{\mathbf{x}} 尽可能接近 b\mathbf{b}。

  • "最接近"在欧氏意义下就是最短的 e=b−Ax^\mathbf{e} = \mathbf{b} - A\hat{\mathbf{x}}——而最短的 e\mathbf{e} 一定垂直于 C(A)C(A),于是 ATe=0A^T\mathbf{e} = 0,展开就是 ATAx^=ATbA^TA\hat{\mathbf{x}} = A^T\mathbf{b},称为正规方程(normal equation)。

  • 同一个公式,两个故事:从“投影”看是在列空间中寻找最近点;从“最小二乘”看是在最小化误差长度 ∥Ax−b∥\|A\mathbf{x}-\mathbf{b}\|。

在直线上投影给出 P=aaTaTaP = \dfrac{\mathbf{a}\mathbf{a}^T}{\mathbf{a}^T\mathbf{a}};在子空间上投影把 a\mathbf{a} 换成矩阵 AA、把"除"换成"乘以逆",得到 P=A(ATA)−1ATP = A(A^TA)^{-1}A^T。而投影的物理动机是:当 Ax=bA\mathbf{x}=\mathbf{b} 无解时,把 b\mathbf{b} 退到 C(A)C(A) 里最近的点 p\mathbf{p} 上去解——这就是最小二乘。

几个注意点

为什么 1D 时是"除以 aTa\mathbf{a}^T\mathbf{a}",nD 时却是"乘以 (ATA)−1(A^TA)^{-1}"?

因为 aTa\mathbf{a}^T\mathbf{a} 是个标量(1×1),标量就是实数,可以直接除;而 ATAA^TA 是个 n×nn \times n 矩阵,"除"在矩阵世界里就是"乘以逆"。这两件事是一回事。

为什么 ATAA^TA 一定可逆?

不一定,因此不能不加条件地写出或直接计算 (ATA)−1(A^TA)^{-1}。

如果 AA 是可逆方阵,那么对每个 b\mathbf{b},方程 Ax=bA\mathbf{x}=\mathbf{b} 都有唯一解,此时列空间就是整个输出空间,不需要先把 b\mathbf{b} 投影到更小的子空间。

craft01

当且仅当 AA 的列线性无关时,ATAA^TA 可逆。

为什么垂直条件 ATe=0A^T\mathbf{e} = 0 变成了"e\mathbf{e} 垂直于 AA 的每一列"?

因为 ATeA^T\mathbf{e} 的每个分量,都是 e\mathbf{e} 与 AA 的一列做内积。它等于零,正好说明 e\mathbf{e} 垂直于每一列,也就是 e∈N(AT)=C(A)⊥\mathbf{e}\in N(A^T)=C(A)^\perp。