正交投影──威力強大的線代工具

本文的閱讀等級:中級

具有內積功能的向量空間簡稱為內積空間,線性代數中許多重要理論和應用都從內積空間衍生出來,例如基底正交化,QR 分解,最小平方法,矩陣譜定理,甚至奇異值分解 (singular value decomposition) 也和內積空間密切相關。在內積空間中,最重要的運算除了內積本身,另一個威力強大的代數工具就是將任意向量分解為正交分量之和的正交投影 (orthogonal projection)。本文介紹兩個推導正交投影矩陣方法,第一個是歸納法,從一道簡單的幾何問題開始──將向量投影至一直線,繼續推廣可導出至一般子空間的正交投影。這個方法較具幾何直觀,適宜初學者學習。另一個方法是將正交性質加入向量空間的斜投影,再利用矩陣代數推導正交投影矩陣。本文內容限定實幾何向量空間 \mathbb{R}^n,如欲延伸至 \mathbb{C}^n,僅需將轉置 (\cdot)^T 改為共軛轉置 (\cdot)^\ast

 
見下圖,考慮 \mathbb{R}^n 中兩向量 \mathbf{z}\mathbf{x}\neq\mathbf{0},直線 \mathcal{L}\mathbf{x} 所生成 (span),如何計算 \mathbf{z} 至直線 \mathcal{L} 的正交投影?請注意本文的向量皆為行向量 (column vector)。

正交投影至一直線

\mathbf{p}=\alpha\mathbf{x} 為投影量,\alpha 是待決定的純量。根據正交投影的定義,殘餘量 \mathbf{z}-\mathbf{p}=\mathbf{z}-\alpha\mathbf{x} 必定與 \mathbf{x} 正交 (垂直),亦即 \mathbf{x}\mathbf{z}-\alpha\mathbf{x} 的內積為零,

\mathbf{x}^T(\mathbf{z}-\alpha\mathbf{x})=0

展開上式得到唯一解 \alpha=\frac{\mathbf{x}^{T}\mathbf{z}}{\mathbf{x}^T\mathbf{x}}。使用矩陣乘法結合律,

\displaystyle  \mathbf{p}=\frac{\mathbf{x}^{T}\mathbf{z}}{\mathbf{x}^{T}\mathbf{x}}\mathbf{x}=\frac{1}{\mathbf{x}^{T}\mathbf{x}}(\mathbf{x}^T\mathbf{z})\mathbf{x}=\frac{1}{\mathbf{x}^{T}\mathbf{x}}\mathbf{x}(\mathbf{x}^T\mathbf{z})=\frac{1}{\mathbf{x}^{T}\mathbf{x}}(\mathbf{x}\mathbf{x}^T)\mathbf{z}=\frac{\mathbf{x}\mathbf{x}^{T}}{\mathbf{x}^{T}\mathbf{x}}\mathbf{z}

其中 \mathbf{x}\mathbf{x}^T 是一個 n\times n 階矩陣,稱為外積 (outer product)。令 Pn 階投影方陣滿足 \mathbf{p}=P\mathbf{z}。上式表明

P=\displaystyle\frac{\mathbf{x}\mathbf{x}^{T}}{\mathbf{x}^{T}\mathbf{x}}

向量 \mathbf{z} 可分解為投影至直線 \mathcal{L} 的分量 \mathbf{p} 與殘餘量 \mathbf{z}-\mathbf{p}=(I-P)\mathbf{z},且 \mathbf{p}\perp(\mathbf{z}-\mathbf{p})。殘餘量 (I-P)\mathbf{z} 屬於正交補餘 \mathcal{L}^{\perp}I-P 也就是 \mathcal{L}^{\perp} 的正交投影矩陣。

 
運用同樣方法可以將向量 \mathbf{z} 正交投影至線性獨立向量集 \{\mathbf{x}_1,\ldots,\mathbf{x}_k\} 所生成的子空間 \mathcal{X}。設正交投影量為 \mathbf{p}=\alpha_1\mathbf{x}_1+\cdots+\alpha_k\mathbf{x}_k\alpha_i 由正交條件決定:\mathbf{x}_i^{T}(\mathbf{z}-\mathbf{p})=0i=1,\ldots,k。令 n\times k 階矩陣 X=\begin{bmatrix}    \mathbf{x}_1&\cdots&\mathbf{x}_k    \end{bmatrix}。寫出 \mathbf{p}=X\boldsymbol{\alpha},其中 \boldsymbol{\alpha}=(\alpha_1,\ldots,\alpha_k)^T,上述 k 個條件式可表示成矩陣形式,如下:

\begin{aligned}  \begin{bmatrix}    \mathbf{x}_1^{T}\\    \vdots\\    \mathbf{x}_k^T    \end{bmatrix}(\mathbf{z}-X\boldsymbol{\alpha})&=X^{T}(\mathbf{z}-X\boldsymbol{\alpha})=\mathbf{0}\end{aligned}

整理得到 X^{T}X\boldsymbol{\alpha}=X^{T}\mathbf{z}。因為 X 有線性獨立的行向量,\text{rank}X=k。再利用實矩陣秩性質 \text{rank}(X^TX)=\mathrm{rank}X=k (見“利用 Grammian 矩陣證明行秩等於列秩”),得知 X^{T}Xk 階可逆方陣,\boldsymbol{\alpha} 有唯一解:

\boldsymbol{\alpha}=(X^{T}X)^{-1}X^{T}\mathbf{z}

也就得出正交投影量

\begin{aligned}  \mathbf{p}&=X\boldsymbol{\alpha}=X(X^{T}X)^{-1}X^{T}\mathbf{z}\end{aligned}

上式同時給出了正交投影至子空間 \mathcal{X}n 階方陣:

P=X(X^{T}X)^{-1}X^{T}

同樣地,至正交補空間 \mathcal{X}^{\perp} 的正交投影矩陣為 I-P

 
\mathcal{X}=\mathbb{R}^n,則 n\times n 階矩陣 Xn 個線性獨立的行向量。在此情況下,X 為可逆方陣,故 P=X(X^TX)^{-1}X^T=XX^{-1}(X^T)^{-1}X^T=I_n。若 \mathcal{X}=\{\mathbf{0}\}X 未定義,不過我們仍可推斷 P=0

 
下面我們介紹另一個推演正交投影矩陣的方法。在“直和與投影”一文,我們導出了在向量空間 \mathbb{R}^n=\mathcal{X}\oplus\mathcal{Y} 中沿著 \mathcal{Y}\mathcal{X} 的投影矩陣,設 \mathbf{x}_1,\ldots,\mathbf{x}_k\mathcal{X} 的基底,而 \mathbf{y}_1,\ldots,\mathbf{y}_{n-k}\mathcal{Y} 的基底。令 n\times n 階可逆矩陣

\begin{bmatrix}    X&Y    \end{bmatrix}=\begin{bmatrix}    \mathbf{x}_1&\cdots&\mathbf{x}_k&\mathbf{y}_1&\cdots&\mathbf{y}_{n-k}    \end{bmatrix}

斜投影矩陣算式為

P=\begin{bmatrix}    X&0    \end{bmatrix}\begin{bmatrix}    X&Y    \end{bmatrix}^{-1}

接下來的工作是在正交投影的條件下計算 \begin{bmatrix}    X&Y    \end{bmatrix}^{-1},亦即解出 k\times n 階矩陣 A(n-k)\times n 階矩陣 B 使得

\begin{bmatrix}    A\\    B    \end{bmatrix}\begin{bmatrix}    X&Y    \end{bmatrix}=\begin{bmatrix}    I_k&0\\    0&I_{n-k}    \end{bmatrix}

以分塊矩陣乘法展開可得 AX=I_kAY=0BY=I_{n-k}BX=0AX 的左逆矩陣,BY 的左逆矩陣。

 
在一般情況下,AB 並不具有簡單公式,但如果 P 為正交投影矩陣,則可以化簡得 AB 公式。若 \mathcal{Y}\mathcal{X} 的正交補餘,\mathcal{Y}=\mathcal{X}^{\perp},也就是說,對於任意 ij\mathbf{x}_i\perp\mathbf{y}_j,以矩陣乘法表示為

\begin{aligned}  \begin{bmatrix}    \mathbf{x}_1^T\\    \vdots\\    \mathbf{x}_{k}^{T}    \end{bmatrix}\begin{bmatrix}    \mathbf{y}_1&\cdots&\mathbf{y}_{n-k}    \end{bmatrix}&=X^{T}Y=0\end{aligned}

取轉置也有 Y^{T}X=0。又因為 XY 的行向量都是線性獨立的,故 \mathrm{rank}X^{T}X=k\mathrm{rank}Y^TY=n-kX^TXY^TY 皆為可逆矩陣。綜合以上結果,不難驗證

\begin{aligned}  A&=(X^{T}X)^{-1}X^{T}\\  B&=(Y^{T}Y)^{-1}Y^{T}.\end{aligned}

因此,

\begin{aligned}  \begin{bmatrix}    X&Y    \end{bmatrix}^{-1}&=\begin{bmatrix}  A\\  B  \end{bmatrix}=\begin{bmatrix}    (X^{T}X)^{-1}X^{T}\\    (Y^{T}Y)^{-1}Y^{T}    \end{bmatrix}\end{aligned}

代入斜投影矩陣計算公式便導出正交投影矩陣:

\begin{aligned}  P&=\begin{bmatrix}    X&0    \end{bmatrix}\begin{bmatrix}    (X^{T}X)^{-1}X^{T}\\    (Y^{T}Y)^{-1}Y^{T}    \end{bmatrix}=X(X^{T}X)^{-1}X^{T}\end{aligned}

 
我們可以證明正交投影矩陣 PX 的行空間 (column space) 關係為 C(P)=C(X) 且零空間 (nullspace) 關係為 N(P)=N(X^T)。若 \mathbf{x}\in C(X),則 P\mathbf{x}=\mathbf{x},故 \mathbf{x}\in C(P),證明 C(X)\subseteq C(P)。若 \mathbf{x}\in C(P),必存在 \mathbf{y} 使得 \mathbf{x}=P\mathbf{y},換句話說,\mathbf{y} 通過 P 正交投影至 \mathbf{x},故 \mathbf{x}\in C(X),證明 C(P)\subseteq C(X)。合併以上結果,C(P)=C(X)。使用子空間的正交補餘關係,N(P)=C(P^T)^{\perp}N(X^T)=C(X)^{\perp}。又因為 P^T=PC(P)=C(X),推得 N(P)=C(P)^{\perp}=C(X)^{\perp}=N(X^T)

 
最後還要強調一點,不論是斜投影或正交投影,投影矩陣 P 與選擇的基底無關。假設兩個線性獨立向量集 \{\mathbf{x}_1,\ldots,\mathbf{x}_k\}\{\mathbf{w}_1,\ldots,\mathbf{w}_k\} 都生成出相同的子空間,這表示任意 \mathbf{x}_i 可以唯一表示成 \mathbf{w}_1,\ldots,\mathbf{w}_k 的線性組合,亦即存在唯一的 k 階可逆矩陣 B=[b_{ij}] 滿足

\begin{aligned}  X&=\begin{bmatrix}    \mathbf{x}_1&\cdots&\mathbf{x}_k    \end{bmatrix}=\begin{bmatrix}    \mathbf{w}_1&\cdots&\mathbf{w}_k    \end{bmatrix}\begin{bmatrix}    b_{11}&\cdots&b_{1k}\\    \vdots&\ddots&\vdots\\    b_{k1}&\cdots&b_{kk}    \end{bmatrix}=WB\end{aligned}

將上式代入正交投影矩陣,可得

\begin{aligned}  P&=X(X^TX)^{-1}X^{T}\\  &=WB(B^TW^TWB)^{-1}B^{T}W^{T}\\  &=WBB^{-1}(W^TW)^{-1}(B^{T})^{-1}B^{T}W^{T}\\  &=W(W^TW)^{-1}W^{T}.\end{aligned}

例如,向量空間 \mathbb{R}^3 的子空間 \mathcal{X} 有兩組基底:

\begin{aligned}  \mathfrak{B}_1&=\left\{\begin{bmatrix}    2\\    1\\    1\    \end{bmatrix},\begin{bmatrix}    1\\    1\\    1    \end{bmatrix}\right\}\\  \mathfrak{B}_2&=\left\{\begin{bmatrix}    1\\    0\\    0\    \end{bmatrix},\begin{bmatrix}    0\\    1\\    1    \end{bmatrix}\right\}.\end{aligned}

由基底 \mathfrak{B}_1 計算出投影矩陣為

\begin{aligned}  P_1&=\begin{bmatrix}    2&1\\    1&1\\    1&1    \end{bmatrix}\begin{bmatrix}    6&4\\    4&3    \end{bmatrix}^{-1}\begin{bmatrix}    2&1&1\\    1&1&1    \end{bmatrix}=\begin{bmatrix}    1&0&0\\    0&\frac{1}{2}&\frac{1}{2}\\[0.3em]    0&\frac{1}{2}&\frac{1}{2}    \end{bmatrix}\end{aligned}

由基底 \mathfrak{B}_2 計算出投影矩陣為

\begin{aligned}  P_2&=\begin{bmatrix}    1&0\\    0&1\\    0&1    \end{bmatrix}\begin{bmatrix}    1&0\\    0&2    \end{bmatrix}^{-1}\begin{bmatrix}    1&0&0\\    0&1&1    \end{bmatrix}=\begin{bmatrix}    1&0&0\\    0&\frac{1}{2}&\frac{1}{2}\\[0.3em]    0&\frac{1}{2}&\frac{1}{2}    \end{bmatrix}\end{aligned}

確認 P_1=P_2

 
顯然基底 \mathfrak{B}_2 給出較為簡單的算式,這個結果建議我們選擇正交基底。如果 X 包含正交行向量,X^TX 為對角矩陣 X^TX=\mathrm{diag}(\Vert\mathbf{x}_1\Vert^2,\ldots,\Vert\mathbf{x}_k\Vert^2),就有

\begin{aligned}  P&=X(X^TX)^{-1}X^{T}\\    &=\begin{bmatrix}    \mathbf{x}_1&\cdots&\mathbf{x}_k    \end{bmatrix}\begin{bmatrix}    (\mathbf{x}_1^T\mathbf{x}_1)^{-1}&~&~\\    ~&\ddots&~\\    ~&~&(\mathbf{x}_k^T\mathbf{x}_k)^{-1}    \end{bmatrix}\begin{bmatrix}    \mathbf{x}_1^T\\    \vdots\\    \mathbf{x}_k^T    \end{bmatrix}\\    &=\displaystyle\frac{\mathbf{x}_1\mathbf{x}_1^T}{\mathbf{x}_1^T\mathbf{x}_1}+\cdots+\frac{\mathbf{x}_k\mathbf{x}_k^T}{\mathbf{x}_k^T\mathbf{x}_k}.\end{aligned}

採用正交基底的優點是正交投影量的計算非常簡單,利用乘法結合律可得

\begin{aligned}  P\mathbf{z}&=\displaystyle\left(\frac{\mathbf{x}_1\mathbf{x}_1^T}{\mathbf{x}_1^T\mathbf{x}_1}+\cdots+\frac{\mathbf{x}_k\mathbf{x}_k^T}{\mathbf{x}_k^T\mathbf{x}_k}\right)\mathbf{z}\\  &=\frac{\mathbf{x}_1^T\mathbf{z}}{\mathbf{x}_1^T\mathbf{x}_1}\mathbf{x}_1+\cdots+\frac{\mathbf{x}_k^T\mathbf{z}}{\mathbf{x}_k^T\mathbf{x}_k}\mathbf{x}_k.\end{aligned}

又如果 X=Q 包含單範正交 (orthonormal) 行向量 \mathbf{q}_1,\ldots,\mathbf{q}_k,其中 \mathbf{q}_i^T\mathbf{q}_j=0i\neq j\mathbf{q}_i^T\mathbf{q}_j=1i=j,就有

\begin{aligned}  Q^{T}Q&=\begin{bmatrix}    \mathbf{q}_1^T\\    \vdots\\    \mathbf{q}_k^T    \end{bmatrix}\begin{bmatrix}    \mathbf{q}_1&\cdots&\mathbf{q}_k    \end{bmatrix}=\begin{bmatrix}    1&~&~\\    ~&\ddots&~\\    ~&~&1    \end{bmatrix}=I_k\end{aligned}

投影矩陣因此為

\begin{aligned}  P&=Q(Q^TQ)^{-1}Q^{T}=Q(I_k)^{-1}Q^T=QQ^{T}\\  &=\begin{bmatrix}    \mathbf{q}_1&\cdots&\mathbf{q}_k    \end{bmatrix}\begin{bmatrix}    \mathbf{q}_1^{T}\\    \vdots\\    \mathbf{q}_k^{T}    \end{bmatrix}=\mathbf{q}_1\mathbf{q}_1^T+\cdots+\mathbf{q}_k\mathbf{q}_k^{T},\end{aligned}

正交投影量則為

P\mathbf{z}=(\mathbf{q}_1^T\mathbf{z})\mathbf{q}_1+\cdots+(\mathbf{q}_k^T\mathbf{z})\mathbf{q}_k

 
欲進一步瞭解正交投影矩陣的性質,請參見“特殊矩陣 (5):冪等矩陣”。正交投影於最小平方法的應用,請見“從線性變換解釋最小平方近似”。正交投影與基底正交化,QR 分解,和矩陣譜定理的關係將另文說明。

繼續閱讀:
This entry was posted in 線性代數專欄, 內積空間 and tagged , , , , , , , , . Bookmark the permalink.

17 Responses to 正交投影──威力強大的線代工具

  1. student says:

    不好意思能夠協助解此題嗎

    Let A has three columns
    (1, 1,…, 1),
    ( t1,t2,t3…tm) ,
    ( [t1]^2, [t2]^2, [t3]^2, …[tm]^2 )
      
    Solve (AT)Ax = (AT)b
      
    (AT)為A的轉置矩陣

  2. ccjou says:

    你的問題稱為 polynomial curve fitting,概念很簡單但計算很繁雜,這個網站裡面說明的很清楚:

    http://mathworld.wolfram.com/LeastSquaresFittingPolynomial.html

    如果你有其他問題可以在交流園地發表,謝謝。

  3. VtripleV says:

    最近看youtube上量子力學開放課程的lectures,發現正交基底及正交投影矩陣的概念在量子力學的數學描述大量的使用,正交投影果然是威力強大.

  4. liang dai says:

    周老师,如果空间再一般一些,该如何做投影呢?比如该空间为Ax=b.

    我的方法就是构造一个优化问题 min norm(s-x) s.t. Ax = b

    可是物理意义不是很明显。 周老师可以妙法?

  5. ccjou says:

    你說的仿射空間的投影問題, 譬如說:給定 s\in V, V 是一向量空間, WV 的子空間, S 是子空間 W 再加上平移 b\neq 0, 我們想找出 x\in S=W+b 使得 \Vert s-x\Vert 極小.

    用點技巧, 先將 sS 全都減去 b, 這樣大家又都回到子空間來. 我們默想
    b\to 0, s\to(s-b), x\to(x-b)
    既然 xsS 的正交投影, 那 x-b 也就是 s-bW 的正交投影, 由上文給出方法可得正交投影至 W 的矩陣 P, 所以
    x-b=P(s-b) 推得 x=P(s-b)+b 即為 S 中最接近 s 的向量.

  6. liang dai says:

    这个倒是个不错的直观观点。谢谢周老师。

  7. Alumi says:

    周老師請問一下:
    正交投影矩陣為甚麼只能用在歐式空間且要求標準內積呢?

    • ccjou says:

      正交投影並不是只能應用於具有標準內積的歐氏幾何座標空間,正交投影適用於任何有限維或無限維內積空間 (賦予內積定義的向量空間),請參見下文:

      從幾何向量空間到函數空間

      兩個著名的非歐氏空間例子:
      Legendre 多項式:

      Legendre 多項式

      傅立葉級數:

      傅立葉級數 (上)

      • r2123b says:

        所以任何空間的投影向量皆可由P = A(A^HA)^-1A^H此矩陣算出來?

        即Proj b = P*b??

        • ccjou says:

          是的,但前提是(1)V是有限維內積空間,(2)能夠找到一組標準正交(orthonormal)基底B=\{\mathbf{e}_1,\ldots,\mathbf{e}_n\}。任一\mathbf{x},\mathbf{y}\in V可表示為
          \mathbf{x}=c_1\mathbf{e}_1+\cdots+c_n\mathbf{e}_n
          \mathbf{y}=d_1\mathbf{e}_1+\cdots+d_n\mathbf{e}_n
          所以內積為
          \left\langle \mathbf{x},\mathbf{y}\right\rangle=\left\langle c_1\mathbf{e}_1+\cdots+c_n\mathbf{e}_n,d_1\mathbf{e}_1+\cdots+d_n\mathbf{e}_n\right\rangle=\overline{c_1}d_1+\cdots+\overline{c_n}d_n=\mathbf{c}^H\mathbf{d}
          其中\mathbf{c}\mathbf{x}參考B的座標向量,\mathbf{d}\mathbf{y}參考B的座標向量。這樣你便將問題從原始向量空間V轉移至幾何座標空間\mathbb{C}^n,從此可以用MATLAB實現矩陣運算。一旦找出正交投影\mathbf{p}=\hbox{Proj}\mathbf{b},也就得到原始空間的對應向量p_1\mathbf{e}_1+\cdots+p_n\mathbf{e}_n

  8. Vahi Chen says:

    周老师您好,补充几点:(修正下公式显示,烦请周老师删除上一天评论)

    1. 方法一推广至子空间\mathcal{X}的过程中,在条件式表示为矩阵形式的公式中,向量\mathbf{x}_k漏写了转置上标\:^T

    2. 方法一从对直线\mathcal{L}的投影到对子空间\mathcal{X}的投影的推广过程中,为保持前后统一,利用正交性质时,对于前者可直接使用\mathbf{x}^T(\mathbf{z}-\alpha\mathbf{x})=0,而不是(\mathbf{z}-\alpha\mathbf{x})^T\mathbf{x}=0,这样后续的推导可省去对内积交换律\mathbf{z}^T\mathbf{x}=\mathbf{x}^T\mathbf{z}的使用。

    3. 针对正交投影矩阵P=X(X^TX)^{-1}X^T,显然因为X具有线性独立column vectors,所以X^TX是对称可逆方阵。如果X本身为可逆方阵(n=k),则此时投影矩阵P可化简为单位矩阵:P=XX^{-1}{(X^T)}^{-1}X^T=I_{n=k};但对于普通矩形矩阵(rectangular matrix)而言,上式不能进行简化,因为矩形矩阵X的逆矩阵X^{-1}不存在。

    • ccjou says:

      非常謝謝你。

      1. 已訂正。
      2. 這樣確實簡單多了。
      3. 這段討論已加進內文。

  9. 范智忠 says:

    想請教一下老師
    在幾何上,一個orthomal矩陣,是不是就代表了一個旋轉矩陣?

  10. Pingback: 正交投影──威力強大的線代工具 | 線代啟示錄 | Cruise

  11. Jack says:

    老師您好,
    請問1×1的矩陣是否能直接視為純量呢?
    對於alpha=(x^tz)/(x^tx)的寫法有點疑惑。

Leave a comment