[斯坦福大學2014機器學習教程筆記]第四章-正規方程在矩陣不可逆情況下的解決方法(選學)


    上節中,我們講了正規方程。在這節中,我們將學習正規方程以及不可逆性。本節的概念較為深入,所以可以將它看作是選學材料。

    我們要討論的問題如下:

        當我們計算θ=(XTX)-1XTy的時候,萬一矩陣XTX是不可逆的話怎么辦?

        如果懂一點線性代數的知識,我們就會知道有些矩陣可逆,而有些矩陣不可逆。我們稱不可逆的矩陣稱為奇異或退化矩陣。其實XTX不可逆的情況很少發生,在Octave里,如果你用pinv(X' *X) *X' *y來計算θ,事實上我們會得到正解。在Octave里有兩個函數可以求解矩陣的逆,一個被稱為pinv,另一個被稱為inv。但是只要你使用pinv函數,它就能計算出你想要的θ值(即使矩陣XTX不可逆)。

    矩陣XTX不可逆通常有兩種最常見的原因。

  1. 第一個原因是:如果由於某些原因,你的學習問題包含了多余的特征。例如,在預測住房價格時,如果x1是以平方英尺為單位的房子面積,x2是以平方米為單位的房子面積。因為1米等於3.28英尺,所以這兩個特征值將始終滿足x1=(3.28)2*x2。如果你在線性代數上非常熟練,你會知道這兩個特征是不是可以像這樣用一個線性方程聯系起來。如果這樣的話,矩陣XTX是不可逆的。
  2. 第二個原因是:你在運行的學習算法有很多特征值(m≤n)。例如,現在有10個訓練樣本(即m=10),但有100個調整數量(即n=100)。接着你要找到合適的n+1維參數向量θ,這意味着你要從10個訓練樣本中你要找到一個101維的參數向量,有時會成功,但這並不是一個好主意。因為我們之后將會看到要配置101個參數時,10個訓練樣本還是有點少。稍后我們將看到為什么配置很多參數時,這些數據會太少了。但是,當我們碰到m≤n這種情況的時候,我們會看能否刪除某些特征,或者使用一種叫做正則化的方法(在后面的課程將會講到,在這個方法中,即使你有一個相對比較小的訓練樣本,它可以讓你使用很多的特征,配置很多參數)。

 [增加內容]θ=(XTX)-1XTy的推導過程

     J(θ)=(1/2m)Σ(hθ(xi)-yi)2  (i從1一直加到m)

    其中,hθ(x)=θT0x01x12x2+……+θnxn

    將向量表達形式轉為矩陣表達形式,我們有J(θ)=(1/2)(Xθ-y)2,其中X為m行n列的矩陣,θ為n行1列的矩陣。

    下面對J(θ)進行如下變換:

          J(θ)=(1/2)(Xθ-y)T(Xθ-y)

                =(1/2)(XTθT-yT)(Xθ-y)

                =(1/2)(θTXTXθ-θTXTy-yTXθ-yTy)

    接下來對J(θ)求偏導,要用到dAB/dB=AT,dXTAX=2AX。

    所以有:對J(θ)求偏導 = (1/2)(2XTXθ-XTy-(yTX)T-0)

                                        = (1/2)(2XTXθ-XTy-yXT-0)

                                        = XTXθ-XTy

    令XTXθ-XTy=0,則有θ=(XTX)-1XTy。

或者吳恩達的斯坦福機器學習公開課cs229 第二節課后半段的推導過程如下:

 


 

總結:

    如果你發現矩陣XTX是奇異矩陣或者是不可逆的,我們可以做的是:

  1. 看特征里是否有一些多余的特征。類似我們在上面舉的x1和x2,是線性相關的或者互為線性函數的。如果確實有一些多余的特征,我們可以刪除其中一個,無須兩個特征都保留。刪除至沒有多余的特征為止。
  2. 如果沒有多余的特征,就要檢查是不是有過多的特征。如果特征數實在太多了,在少一些不影響的情況下,我們可以刪除一些特征或者考慮使用正規化方法


免責聲明!

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



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