(一)矩陣乘法
摘錄自:CodingLabs - PCA的數學原理
作者 張洋 | 發佈於 2013-06-22
1.內積與投影
下面先來看一個高中就學過的向量運算:內積。兩個維數相同的向量的內積被定義為:
內積運算將兩個向量映射為一個實數。其計算方式非常容易理解,但是其意義並不明顯。下面我們分析內積的幾何意義。假設和是兩個維向量,我們知道維向量可以等價表示為維空間中的一條從原點發射的有向線段,為了簡單起見我們假設和均為二維向量,則,。則在二維平面上和可以用兩條發自原點的有向線段表示,見下圖:
好,現在我們從點向所在直線引一條垂線。我們知道垂線與的交點叫做在上的投影,再設與的夾角是,則投影的矢量長度為,其中是向量的模,也就是線段的標量長度。
注意這裡我們專門區分了矢量長度和標量長度,標量長度總是大於等於0,值就是線段的長度;而矢量長度可能為負,其絕對值是線段長度,而符號取決於其方向與標準方向相同或相反。
到這裡還是看不出內積和這東西有什麼關係,不過如果我們將內積表示為另一種我們熟悉的形式:
現在事情似乎是有點眉目了:與的內積等於到的投影長度乘以的模。再進一步,如果我們假設的模為1,即讓,那麼就變成了:
也就是說,設向量的模為1,則與的內積值等於向所在直線投影的矢量長度!這就是內積的一種幾何解釋,也是我們得到的第一個重要結論。在後面的推導中,將反覆使用這個結論。
2.基
下面我們繼續在二維空間內討論向量。上文說過,一個二維向量可以對應二維笛卡爾直角坐標系中從原點出發的一個有向線段。例如下面這個向量:
在代數表示方面,我們經常用線段終點的點坐標表示向量,例如上面的向量可以表示為,這是我們再熟悉不過的向量表示。
不過我們常常忽略,只有一個本身是不能夠精確表示一個向量的。我們仔細看一下,這裡的3實際表示的是向量在x軸上的投影值是3,在y軸上的投影值是2。也就是說我們其實隱式引入了一個定義:以x軸和y軸上正方向長度為1的向量為標準。那麼一個向量實際是說在x軸投影為3而y軸的投影為2。注意投影是一個矢量,所以可以為負。
更正式的說,向量(x,y)實際上表示線性組合:
不難證明所有二維向量都可以表示為這樣的線性組合。此處和叫做二維空間中的一組基。
所以,要準確描述向量,首先要確定一組基,然後給出在基所在的各個直線上的投影值,就可以了。只不過我們經常省略第一步,而默認以(1,0)和(0,1)為基。
我們之所以默認選擇(1,0)和(0,1)為基,當然是比較方便,因為它們分別是x和y軸正方向上的單位向量,因此就使得二維平面上點坐標和向量一一對應,非常方便。但實際上任何兩個線性無關的二維向量都可以成為一組基,所謂線性無關在二維平面內可以直觀認為是兩個不在一條直線上的向量。
例如,(1,1)和(-1,1)也可以成為一組基。一般來說,我們希望基的模是1,因為從內積的意義可以看到,如果基的模是1,那麼就可以方便的用向量點乘基而直接獲得其在新基上的坐標了!實際上,對應任何一個向量我們總可以找到其同方向上模為1的向量,只要讓兩個分量分別除以模就好了。例如,上面的基可以變為和。
現在,我們想獲得(3,2)在新基上的坐標,即在兩個方向上的投影矢量值,那麼根據內積的幾何意義,我們只要分別計算(3,2)和兩個基的內積,不難得到新的坐標為。下圖給出了新的基以及(3,2)在新基上坐標值的示意圖:
另外這裡要注意的是,我們列舉的例子中基是正交的(即內積為0,或直觀說相互垂直),但可以成為一組基的唯一要求就是線性無關,非正交的基也是可以的。不過因為正交基有較好的性質,所以一般使用的基都是正交的。
3. 基變換的矩陣表示
下面我們找一種簡便的方式來表示基變換。還是拿上面的例子,想一下,將(3,2)變換為新基上的坐標,就是用(3,2)與第一個基做內積運算,作為第一個新的坐標分量,然後用(3,2)與第二個基做內積運算,作為第二個新坐標的分量。實際上,我們可以用矩陣相乘的形式簡潔的表示這個變換:
太漂亮了!其中矩陣的兩行分別為兩個基,乘以原向量,其結果剛好為新基的坐標。可以稍微推廣一下,如果我們有m個二維向量,只要將二維向量按列排成一個兩行m列矩陣,然後用「基矩陣」乘以這個矩陣,就得到了所有這些向量在新基下的值。例如(1,1),(2,2),(3,3),想變換到剛才那組基上,則可以這樣表示:
於是一組向量的基變換被乾淨的表示為矩陣的相乘。
一般的,如果我們有M個N維向量,想將其變換為由R個N維向量表示的新空間中,那麼首先將R個基按行組成矩陣A,然後將向量按列組成矩陣B,那麼兩矩陣的乘積AB就是變換結果,其中AB的第m列為A中第m列變換後的結果。
數學表示為:
其中是一個行向量,表示第個基,是一個列向量,表示第個原始數據記錄。
特別要注意的是,這裡R可以小於N,而R決定了變換後數據的維數。也就是說,我們可以將一N維數據變換到更低維度的空間中去,變換後的維度取決於基的數量。因此這種矩陣相乘的表示也可以表示降維變換。
上述分析給矩陣相乘找到了一種物理解釋:兩個矩陣相乘的意義是將右邊矩陣中的每一列列向量變換到左邊矩陣中每一行行向量為基所表示的空間中去。更抽象的說,一個矩陣可以表示一種線性變換。很多同學在學線性代數時對矩陣相乘的方法感到奇怪,但是如果明白了矩陣相乘的物理意義,其合理性就一目了然了。
推薦閱讀: