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

    上節中,咱們講了正規方程。在這節中,咱們將學習正規方程以及不可逆性。本節的概念較爲深刻,因此能夠將它看做是選學材料。算法

    咱們要討論的問題以下:機器學習

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

        若是懂一點線性代數的知識,咱們就會知道有些矩陣可逆,而有些矩陣不可逆。咱們稱不可逆的矩陣稱爲奇異或退化矩陣。其實XTX不可逆的狀況不多發生,在Octave裏,若是你用pinv(X' *X) *X' *y來計算θ,事實上咱們會獲得正解。在Octave裏有兩個函數能夠求解矩陣的逆,一個被稱爲pinv,另外一個被稱爲inv。可是只要你使用pinv函數,它就能計算出你想要的θ值(即便矩陣XTX不可逆)。學習

    矩陣XTX不可逆一般有兩種最多見的緣由。spa

  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的推導過程blog

     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列的矩陣。im

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

          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. 若是沒有多餘的特徵,就要檢查是否是有過多的特徵。若是特徵數實在太多了,在少一些不影響的狀況下,咱們能夠刪除一些特徵或者考慮使用正規化方法
相關文章
相關標籤/搜索