1. 程式人生 > >重溫線性代數(1)——線性組合

重溫線性代數(1)——線性組合

        線性代數是數學中的基礎,也是十分重要的數學工具。在接觸機器學習之後,我逐漸認識到了線性代數的重要性,矩陣運算,優化求解,都離不開線性代數的知識。同時,我也發現了自己數學基礎的嚴重不足,急需好好重學一遍線性代數,為之後的學習打好基礎。因此,“重溫線性代數”這個系列就誕生了。或許大家會覺得這個系列的內容稍微基礎了點,但學習就是如此,一遍又一遍,腳踏實地,溫故知新,每次學習都會有新的收穫。

        離開了大學的課堂,但還好現在有琳琅滿目的網路公開課課程。我選擇學習的是網上頗受讚賞的MIT "Introdution to Linear Algebra"課程,由Gilbert Strang主講。參考書目為Strang編寫的《Introduction to Linear Algebra》4th edition。目前為止,我覺得這門課給我提供了不少新的有趣的思路,是我之前學習線性代數的時候沒有思考過的,值得一學。

——————————————————————————————————————————————————————————————————

        本文涉及的內容是課程視訊的前5課,對應的是書中的前兩章Introduction to Vectors 和 Solving Linear Equations。由於這兩章的內容最為基礎,我不會詳細地介紹書的內容(我也沒看),只是根據課程視訊總結一些有趣的points。

        這一部分讓我印象最深的有兩點:

  1. 如何看待矩陣相乘AX:AX 可以看作矩陣A中列向量的組合(各列向量的組合權重即為x中各項的值);
  2. 如何看待消元法:消元法可以看作將矩陣A分解為 A = LU。
        以下慢慢道來。

1、線性組合

       我們先來看以下一個簡單的包含兩個未知數,兩個方程的方程組:                 該方程組可以通過矩陣表示:AX = b。其中  為係數矩陣,X為包含未知數的向量,b也是一個向量。         我們可以有兩種角度對這個方程組進行幾何解釋。第一種是按照行的角度來看(Row Picture),即逐個看方程組中的每個方程。對於二元方程組而言,很明顯,每一個方程代表著一條直線,而兩條直線的角點則是方程組的解。        值得關注的是另一種解釋方式,即以列向量的角度來看(Column Picture)。我們可以將方程組寫成以下形式:
        
       可以清楚地看到,AX實際上將A中的兩列按照x, y的權重進行組合,即AX is a combination of colums of A。因此,求解該方程組,即使在尋找一個合適的權重係數組合,使其組合結果等於右側向量的值。若用向量圖來表示則更加直觀:
       線性組合是理解矩陣乘積的新思路,也是課程中老師一直在強調的內容,值得再三回味。

2、置換、轉置、逆

       置換(permutation)包括行變換和列變換。對於矩陣思路來說,行變換可以通過對矩陣A左乘一個置換矩陣實現,相對的,列變換可以通過對矩陣A右乘一個置換矩陣實現。置換矩陣P實際上就是一個行(列)重新排列的的單位陣,比如置換矩陣第一行和第三行的置換矩陣為:          
        置換矩陣有以下有趣的性質:,即

        轉置的定義相信大家十分清楚。所謂對稱矩陣即是其轉置等於其本身的矩陣。大家想想有什麼方法可以快速得到一個對稱矩陣呢?以下提供一種有趣的方法:矩陣  一定是一個對稱矩陣,其證明也非常簡單。

        如果有:,我們則說為矩陣A的逆矩陣。矩陣A的逆矩陣不一定存在,以下便是其中一種特殊情況:如果能夠找到一個非零向量x使Ax = 0成立,則矩陣A不可逆。利用反證法,我們將等式兩邊同時左乘即證明該結論。

        求解一個可逆矩陣A的逆矩陣的基本方法是Gauss-Jordan方法,即將矩陣  通過消元法得到 ,則矩陣B則為矩陣A的逆矩陣。證明方法如下:

        設消元矩陣為E,則有

        因此 ,可得

        所以 。   證畢。

        一個小性質:

3、消元法

       消元法是求解線性方程組的基本方法,通過消元得到一個上三角矩陣(對角線一下元素都為零)U,然後通過回代得到各個未知數的解。消元法的具體方法在此不再敘述,但這裡我們用矩陣的思想重新解讀一下消元法。

       需要注意的是,當使用消元法得到主元為零時(主元即對角線上的元素),消元法將會失效。在某些情況下,我們可以通過行交換消除這種主元為零的情況,這樣消元法仍然是有效的。我們先考慮不需要進行行交換,消元法仍然有效的情況。

        消元法實際上就是在作行變換:

        

         然而實際上,我們有一種更加合理的方式對此進行理解,即將A進行分解得:

         

         其中L為下三角矩陣,U為上三角矩陣。結合以上兩個式子,我們可以看到L其實是E的逆:。通俗的理解該等式,矩陣A可以通過消元得到的上三角陣U通過消元的逆操作L得到。

         使用L的好處是:消元時的乘數可以直接反映在L當中(multipliers go directly into L),我們舉個例子來充分理解上述問題。我們對以下矩陣進行消元:

          

          按照常規方法,我們需要兩步:1、用第二行減去3倍的第一行;2、用第三行減去2倍的第二行。得到上三角矩陣:

         

          採用矩陣的思路,我們可得消元矩陣分別為:

                              

         而L矩陣則為:

           

         可見L中只反映了消元乘數3和2,比E更具有合理性。

         對於需要作行交換的情況,上述分解式即變為:,其中P為置換矩陣。

4、小結

        本文的內容的確比較基礎,也比較簡單,但其中的兩個重點還是值得玩味的。將矩陣乘法看作矩陣中向量的線性組合,既有著非常直觀的幾何意義,也揭露了矩陣運算的實質。而利用矩陣分解的思路解釋消元法則能夠用矩陣的思路對消元操作進行理解。接下來的一章將開始接觸到線性代數的“核心”:向量空間和子空間,相信會有更多的收穫和更深刻的理解,值得期待!