当前位置: 华文星空 > 知识

【4.2】投影与最小二乘法

2022-09-25知识

你能求出 \vec{b}=\begin{bmatrix}2\\3\\4\end{bmatrix} 在 z 轴和 xy 平面的投影(projection)吗?分别向 z 轴和 xy 平面做垂线,不难得出 \vec{b} 在 z 轴的投影 p_{1}=\begin{bmatrix}0\\0\\4\end{bmatrix} , \vec{b} 在 xy 平面的投影 p_{2}=\begin{bmatrix}2\\3\\0\end{bmatrix} 。前瞻性的多说一句,因为 z 轴和 xy 平面互为正交补,所以 p_{1} 和 p_{2} 正交,且 p_{1}+p_{2}=\vec{b} 。

投影包含了两层意思:

  • 正交关系。 无论投影到直线或是平面或是更高维空间,矢量与投影的差称为误差,误差一定和投影空间正交。
  • 最短距离。 矢量与投影空间中所有矢量距离最近的那个,就是它在该空间的投影,那个最短距离的平方就是最小平方误差。
  • 上面例子的投影空间分别是 z 轴和 xy 平面,它们太特殊,现在我们看看一般情况下如何求投影:

    问题一:求 \vec{b} 在直线 \vec{a} 方向的投影。

    有一条过原点且沿着 \vec{a}=\begin{bmatrix}a_{1}\\a_{2}\\...\\a_{n}\end{bmatrix} 方向的直线,我们要求 \vec{b}=\begin{bmatrix}b_{1}\\b_{2}\\...\\b_{n}\end{bmatrix} 在这条直线的投影 \vec{p} 。因为 \vec{p} 和 \vec{a} 共线,所以 \vec{p}=x\vec{a} 。 求投影的关键就是要利用正交性: \vec{b}-\vec{p} 和 \vec{a} 正交。 \vec{b}-\vec{p} 是原矢量和投影的差,代表误差,通常用字母 \vec{e} 表示。从几何角度我们就可以知道投影意味着 \vec{e} 和 \vec{a} 正交,即 \vec{a}\cdot\vec{e}=0 。根据正交关系立刻可以得出 \vec{a}\cdot (\vec{b}-\vec{p})=0\Rightarrow\vec{a} \cdot (\vec{b}-x\vec{a})=0\Rightarrow x=\frac{\vec{a}\cdot \vec{b}}{\vec{a}\cdot\vec{a}}=\frac{\vec{a}^{T}\vec{b}}{\vec{a}^{T}\vec{a}} ,我们率先求出了系数 x , x 表达式中分子分母是两个点乘,结果都是标量数字,所以 x 也如我们所料是个数字。那么相应的投影 \vec{p}=\frac{\vec{b}\cdot\vec{a}}{\vec{a}\cdot\vec{a}}\vec{a} ,它和 \vec{a} 同方向,它是 \vec{a} 的 x 倍。事实上,投影还可以看作 \vec{p}=\frac{\vec{a}^{T}\vec{b}}{\vec{a}^{T}\vec{a}}\vec{a}=(\frac{\vec{a}\vec{a}^{T}}{\vec{a}^{T}\vec{a}})\vec{b} ,其中 \vec{b} 前面的部分 \frac{\vec{a}\vec{a}^{T}}{\vec{a}^{T}\vec{a}} 不再是数字,而是个矩阵,记为 P ,即 \vec{p}=P\vec{b} ,求一个矢量的投影,就是对这个矢量进行线性变换,也就是用矩阵乘矢量。投影矩阵 P 只和 \vec{a} 有关, P=\frac{\vec{a}\vec{a}^{T}}{\vec{a}^{T}\vec{a}} 。

    我们看一个具体例子。将 \vec{b}=\begin{bmatrix}1\\1\\1\end{bmatrix} 投影到 \vec{a}=\begin{bmatrix}1\\2\\2\end{bmatrix} 所在直线,系数 x=\frac{\vec{a}^{T}\vec{b}}{\vec{a}^{T}\vec{a}}=\frac{5}{9} ,投影 \vec{p}=x\vec{a}=\frac{5}{9}\begin{bmatrix}1\\2\\2\end{bmatrix} 。我们可以验证一下 \vec{e}=\vec{b}-\vec{p}=\begin{bmatrix}\frac{4}{9}\\-\frac{1}{9}\\-\frac{1}{9}\end{bmatrix} ,\vec{e}\cdot \vec{a}=\begin{bmatrix}\frac{4}{9}\\-\frac{1}{9}\\-\frac{1}{9}\end{bmatrix}\cdot\begin{bmatrix}1\\2\\2\end{bmatrix}=\vec{0} , \vec{e} 与 \vec{a} 正交。

    投影矩阵P=\frac{\vec{a}\vec{a}^{T}}{\vec{a}^{T}\vec{a}}=\frac{1}{9}\begin{bmatrix}1\\2\\2\end{bmatrix}\begin{bmatrix}1&2&2\end{bmatrix}=\frac{1}{9}\begin{bmatrix}1&2&2\\2&4&4\\2&4&4\end{bmatrix} ,它是个对称阵。 P 可以投影任何矢量到 \vec{a} 所在直线,例如本例中 \vec{p}=P\vec{b}=\frac{1}{9}\begin{bmatrix}1&2&2\\2&4&4\\2&4&4\end{bmatrix}\begin{bmatrix}1\\1\\1\end{bmatrix}=\begin{bmatrix}\frac{5}{9}\\\frac{10}{9}\\\frac{10}{9}\end{bmatrix} 。

    如果 \vec{b}=\vec{a} ,则有 x=1 ,矢量投影到自身仍是它本身。如果 \vec{b} 和 \vec{a} 正交,那么 \vec{b}\cdot\vec{a}=0 ,所以 x=0,\vec{p}=0 ,矢量在与它正交方向的投影为0。如果 \vec{a} 变为 2\vec{a} , P 是不变的,因为直线仍然是那条直线,所以投影和投影矩阵都不会改变,这是合乎预期的(但 x 会改变)。 P^{2}=\frac{\vec{a}\vec{a}^{T}}{\vec{a}^{T}\vec{a}}\frac{\vec{a}\vec{a}^{T}}{\vec{a}^{T}\vec{a}}=\frac{\vec{a}(\vec{a}^{T}\vec{a})\vec{a}^{T}}{(\vec{a}^{T}\vec{a})^{2}}=\frac{\vec{a}\vec{a}^{T}}{\vec{a}^{T}\vec{a}}=P , 再投影一次是不会改变投影的,这也符合常识。

    问题二:求 \vec{b} 在以 a_{1},a_{2}..a_{n} 为基的子空间 S 的投影。

    我们把 a_{1},a_{2}..a_{n} 作为矩阵 A 的列,这样一来以 a_{1},a_{2}..a_{n} 为基的子空间 S 就是矩阵的列空间 C(A) , \vec{b} 在 C(A) 的投影 \vec{p} 是 C(A) 中的矢量,自然可以表示成 Ax ,确定了 x 就知道了投影。 求解的关键依然是正交性:误差 \vec{e}=\vec{b}-\vec{p} 与 S 中所有矢量正交,等效于 \vec{e} 与 S 的基 a_{1},a_{2}..a_{n} 正交: \vec{a_{1}}^{T}\vec{e}=0,\vec{a_{2}}^{T}\vec{e}=0,...\vec{a_{n}}^{T}\vec{e}=0 , 用矩阵乘法表示为 A^{T}\vec{e}=A^{T}(b-Ax)=0 , \vec{e} A 的左零空间中,我们通常改写为 A^{T}Ax=A^{T}b 。让我们停留片刻消化一下这个方程:本来 \vec{b} 不在 C(A) 中, Ax=b 无解;现在我们两边乘 A^{T} 改求 A^{T}Ax=A^{T}b ,这样解得的 x 作为系数对 A 的列线性组合得到的 Ax 是 C(A) 内最「接近」 \vec{b} 的矢量,也就是 \vec{b} 在 C(A) 的投影。

    现在我们来求解。根据 A^{T}Ax=A^{T}b 解得 x=(A^{T}A)^{-1}A^{T}b , 进而得到投影\vec{p}=Ax=A(A^{T}A)^{-1}A^{T}b ,投影矩阵 P=A(A^{T}A)^{-1}A^{T} 。

    细心的读者一定会在 (A^{T}A)^{-1} 这里停下来思考。 A^{T}A 是方阵,但它一定可逆吗?事实上我们在之前的文章中一再的证明过一个结论: A^{T}A 和 A 有相同的零空间。 当 A 的列线性独立, Ax=0 便只有 0 解,那么 (A^{T}A)x=0 也只有零解,即 A^{T}A 可逆。换句话说, 只要 A 的列线性独立,A^{T}A 就可逆。

    投影矩阵 P=A(A^{T}A)^{-1}A^{T} 也颇具迷惑性。读者或许会想起矩阵相乘然后求逆的公式 (A^{T}A)^{-1}=A^{-1}(A^{T})^{-1} ,然后得出 P=A(A^{T}A)^{-1}A^{T}=AA^{-1}(A^{T})^{-1}A^{T}=I ,矢量在任意子空间的投影 P\vec{b}=I\vec{b}=\vec{b} ,这显

    < style data-emotion-css="19xugg7"> .css-19xugg7{position:absolute;width:100%;bottom:0;background-image:linear-gradient(to bottom,transparent,#ffffff 50px);} < style data-emotion-css="12cv0pi"> .css-12cv0pi{box-sizing:border-box;margin:0;min-width:0;height:100px;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:absolute;width:100%;bottom:0;background-image:linear-gradient(to bottom,transparent,#ffffff 50px);}
    < style data-emotion-css="1pr2waf"> .css-1pr2waf{font-size:15px;color:#09408e;}
    编辑于 2022-09-25 21:48
    < style data-emotion-css="ch8ocw"> .css-ch8ocw{position:relative;display:inline-block;height:30px;padding:0 12px;font-size:14px;line-height:30px;color:#1772F6;vertical-align:top;border-radius:100px;background:rgba(23,114,246,0.1);}.css-ch8ocw:hover{background-color:rgba(23,114,246,0.15);}
    < style data-emotion-css="1xlfegr"> .css-1xlfegr{background:transparent;box-shadow:none;} < style data-emotion-css="1gomreu"> .css-1gomreu{position:relative;display:inline-block;}
    几何学