【線性代數】如何尋找一個投影矩陣


引言

想一下,在什么情況下可能需要將一個向量往一個子空間投影。在MIT的線代課程中,Gilbert教授給出了一種場景:即我們想要求解\(Ax=b\),但是\(b\)不在\(A\)的列空間中,此時我們希望在\(A\)的列空間中找一個離\(\overrightarrow{b}\)最近的向量\(\overrightarrow{f}\),求解\(A\hat{x}=f\),借由\(\hat{x}\)給出\(x\)的近似解。
矩陣乘法可以表示向量的線性變換,所以本篇筆記的主要內容是記錄找到一個投影矩陣\(P\)的方法,通過左乘它完成向量對某一個子空間的投影,將向量\(\overrightarrow{b}\)轉換為另一個向量\(\overrightarrow{f}\)。即:\(P\overrightarrow{b}=\overrightarrow{f}\)

平面上的投影

現在的情況如圖所示,我們先來試着推導一下在平面中實現投影的投影矩陣長什么樣子。我們想要將向量$\overrightarrow{b}$往$\overrightarrow{a}$上投影,現在已經在圖上做出了投影的結果,即$\overrightarrow{f}$。那么,首先因為它倆是共線關系有:$$ \begin{equation} \overrightarrow{f}=λ\overrightarrow{a} \end{equation}$$ 其次:$$ \begin{equation} (\overrightarrow{f}-\overrightarrow{b})\perp{\overrightarrow{a}} \end{equation}$$ 知曉這兩個關系,我們大概能推導出我們的結果了。將(2)的關系寫成矩陣乘法的形式,應該有$$ \begin{equation} a^{\mathrm{T}}(λa-b)=0 \end{equation}$$ 化簡一下,去掉括號有$$ \begin{equation} λa^{\mathrm{T}}a=a^{\mathrm{T}}b \end{equation}$$ 由於$a^{\mathrm{T}}a$是一個數,兩邊除以它可以推出$$ \begin{equation} λ = \frac{a^{\mathrm{T}}b}{a^{\mathrm{T}}a} \end{equation}$$ 然后再把得到的λ代回到(1)中,我們已經可以寫出一個投影矩陣了:$$ \begin{equation} f = aλ = a\frac{a^{\mathrm{T}}b}{a^{\mathrm{T}}a} = \frac{\ a\ a^{\mathrm{T}}}{a^{\mathrm{T}}a}b \end{equation}$$ 我們已經得到了一個投影矩陣了,那就是$$ \begin{equation} P = \frac{\ a\ a^{\mathrm{T}}}{a^{\mathrm{T}}a} \end{equation}$$我們給這個矩陣一個符號$P$。不得不說我們上面推導過程中$a$和$b$放置的位置都是有選擇的,要不然不會這么順利推出投影矩陣。但是好在我們已經得出了結果。

平面上的投影矩陣P

所以現在來看下P的性質:

  1. 觀察P我們會發現這是一個對稱矩陣,即\(P^{\mathrm{T}}=P\)
  2. \(rank(P)=1\)
  3. \(P\)的列空間是什么,它的列空間是向量\(\overrightarrow{a}\)所在的一條過原點的直線。一個矩陣對應的列空間定義為矩陣內列向量的線性組合,很顯然這些線性組合得到的向量都落在這條直線上。
  4. 而且還有一個很有意思的性質,即\(P^2=P\)。實際推導一下很快得出結果,而且從幾何角度想,左乘兩次P矩陣相當於往\(P\)的列空間投影兩次,第一次投影在\(f\)的位置上了,而\(f\)本身就在\(P\)的列空間中,再往\(P\)的列空間投影顯然還在\(f\)這個位置,就是它本身。

所以到這里為止,我知道了在\(R^2\)中,一個向量\(\overrightarrow{b}\)左乘上一個投影矩陣\(P\)相當於往投影矩陣\(P\)所在的列空間\(C(P)\)投影,能得到一個處於子空間\(C(P)\)中的向量\(\overrightarrow{f}\)。並且,只要我們知道\(C(P)\)的一組基,就能求出\(P\),比如在上面的例子中,這組基是單個向量\(\overrightarrow{a}\)

三維空間上的投影

二維空間可能並說明不了什么問題,讓我們試試三維,憑我們從小到大的數學直覺,一般認為三維比二維空間更有說服力,而且能將一些結論推向高維。下面還是畫一個在三維空間的抽象圖:

這個圖可能不是很好看,反正就是表達有一個平面,一個向量\(\overrightarrow{b}\)對着它投影得到\(\overrightarrow{f}\)。這里的平面是\(R^3\)中的一個子空間,顯然它由一組基張成。這組基由兩個線性無關的3維向量\(\overrightarrow{a_1},\overrightarrow{a_2}\)組成,將它們寫成矩陣的形式為\(A=[\overrightarrow{a_1} \ \overrightarrow{a_2}]\),它是一個3x2的矩陣。那么還是老樣子,仿照二維空間得出投影矩陣的流程,我們先要從圖中找出向量對應的關系。第一點,\(\overrightarrow{f}\)\(C(A)\)中,因此$$
\begin{equation}
f=A\hat{x}
\end{equation}$$
寫成\(\hat{x}\)是為了與引言對應起來。同時,既然\(\overrightarrow{f}\)\(\overrightarrow{b}\)的投影向量,$$\begin{equation}
(\overrightarrow{f}-\overrightarrow{b})\perp{C(A)}
\end{equation}$$其中\(C(A)\)是矩陣A對應的列空間,在這里即那個平面。當然也可以表示成$$
\begin{equation}
\left {
\begin{array}{lr}
a_1^{\mathrm{T}}(b-A\hat{x})=0 \
a_2^{\mathrm{T}}(b-A\hat{x})=0 \
\end{array}
\right.
\end{equation}

\[將它重新寫回矩陣的形式有 \]

\begin{equation}
\left
\begin{matrix}
a_1^{\mathrm{T}}\
a_2^{\mathrm{T}}
\end{matrix}
\right
=\left[
\begin{matrix}
0\
0
\end{matrix}
\right]
\end{equation}

\[也就是 \]

\begin{equation}
A^{\mathrm{T}}(b-A\hat{x})=0
\end{equation}

\[酷,我們先不急着展開(12),研究一下這個等式。所以$b-A\hat{x}$在哪個向量子空間中?它應該在$A^{\mathrm{T}}$的零空間中,也就是在$A$的左零空間中。 等等,在這里平面是$A$對應的列空間,而$b-A\hat{x}$處於$A$對應的左零空間。我們知道$b-A\hat{x}\perp{平面}$,所以矩陣對應的左零空間與列空間正交。而這個本身就是一個性質:矩陣對應的左零空間與列空間是正交的(這個在四個基本子空間的筆記中有證明)。所以我們無意間證明了這個性質。 現在我們可以展開(12)等到我們一直想要知道的投影矩陣了。展開移項得到\]

\begin{equation}
A^{\mathrm{T}}b=A^{\mathrm{T}}A\hat{x}
\end{equation}

\[通過移項我們最終能得到這么一個等式\]

\begin{equation}
\hat{x}=(A^{\mathrm{T}}A)^{-1}A^{\mathrm{T}}b
\end{equation}$$
好吧,看起來(13)->(14)這里有點不怎么嚴謹,為什么\(A^{\mathrm{T}}A\)一定可逆,它會不會不可逆?答案是\(A^{\mathrm{T}}A\)一定可逆。

\(A^{\mathrm{T}}A\)可逆的證明

我們前面已經知道\(rank(A)=2\),即\(A\)的列向量線性無關,所以\(Ax=0\)僅有0解。現在我們試着探究\(A^{\mathrm{T}}A\)的對應的零空間Nul(\(A^{\mathrm{T}}A\))。假設v是零空間中的一員。那么有$$(A^{\mathrm{T}}A)v=0$$,那么左邊式子左乘\(v^{\mathrm{T}}\)上式仍成立,即$$v^{\mathrm{T}}(A^{\mathrm{T}}A)v=0$$改變括號的位置,我們能得到$$(Av)^{\mathrm{T}}(Av)=0$$要使上式成立,僅在\(Av=0\)下才可能。而在一開始就說了,A的零空間僅有零向量,也就是說v=0時,\((A^{\mathrm{T}}A)v=0\)才會成立。所以\(A^{\mathrm{T}}A\)的零空間也僅有零向量,\(A^{\mathrm{T}}A\)對應的列向量線性無關,\(rank(A^{\mathrm{T}}A)=3\),行列滿秩,矩陣可逆。

回到投影矩陣的求解

接着回到上面得到的(14)式,將它代回到(8)中,我們就能得到夢寐已久想知曉的投影矩陣了。我們將這個等式寫出來:$$
\begin{equation}
f=A(A^{\mathrm{T}}A)^{-1}A^{\mathrm{T}}b
\end{equation}$$
所以向量b的左邊就是我們要求的投影矩陣P了,我們將勞動成果單獨寫出來$$
\begin{equation}
P=A(A^{\mathrm{T}}A)^{-1}A^{\mathrm{T}}
\end{equation}$$
額,(16)式太復雜了,俺們將它化解一下吧。去掉括號,合並一下,得到了...單位矩陣\(I\)。不,肯定哪里出錯了。是的,一開始給定的A是3x2的矩陣,A並不是方陣,所以並不能去掉括號得到\(A^{-1}\)。太好了,我們的成果保住了。

那么再來思考下,我們是在假設A是方陣的情況下,得到投影矩陣化簡的最終形式是單位陣。嗯...仔細思考一下,這十分合理。我們一開始就是要將向量\(\overrightarrow{b}\)往A的列空間投影,那么現在A是個3x3的方陣,A張開的列空間就是三維空間\(R^3\)。一個\(R^3\)中的向量往\(R^3\)投影就是它本身,這個解釋聽起來很合理。

那么看來不能將(16)式化簡了。我們再來將它和平面空間中得到的投影矩陣(7)對比一下。它們有相同的性質,比如都是對稱矩陣,或者\(P^2=P\)。而且它們的形式也很相近。

好吧,我們最終得到了能將三維空間中將一個向量\(\overrightarrow{b}\)往一個子空間映射的投影矩陣\(P\)。矩陣乘法\(Pb\)的結果就是在這個子空間中有一個向量\(\overrightarrow{f}\),它是由\(\overrightarrow{b}\)投影得到。

總結

這個結論應該能被推向高維,即如果A不是3x2的矩陣,比如是4x3的矩陣。那么投影的過程就是四維空間中的一個向量\(\overrightarrow{b}\)往其中的一個三維子空間投影。這個子空間由3個線性無關的4維向量\(\overrightarrow{e_1},\overrightarrow{e_2},\overrightarrow{e_3}\)張成,將它們寫在一起能得到一個矩陣\(A=[e_1,e_2,e_3]\)。再借由(16)我們能得到投影矩陣\(P\),作矩陣乘法,我們就能得到一個向量\(\overrightarrow{f}\),它在子空間中,並且是向量\(\overrightarrow{b}\)往三維子空間投影的結果。

並且,我們觀察(13)式知曉了如果一個方程組\(Ax=b\)是無解的,可以在等式左右兩側同時左乘\(A^{\mathrm{T}}\),即\(A^{\mathrm{T}}Ax=A^{\mathrm{T}}b\)求出方程的近似解\(\hat{x}\).


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM