機器學習-正則化(理論)

    正則化即爲對學習算法的修改,旨在減小泛化偏差而不是訓練偏差。web

過擬合問題

    

    先來講一下擬合的概念,擬合併非特指某一種方法,而是指一種數據處理的方式。簡單的說就是你有一組數據,覺着這組數據和一個已知的函數很類似,爲了獲得這個最能表示這組數據特徵的函數,經過擬合(具體的方法不少哦)這種方式求得參數。算法

    對於擬合的表現,可分爲三種狀況:
微信

  • 欠擬合編輯器

    沒法很好的擬合訓練集中的數據,預測值和實際值誤差很大。特徵選少了時易出現這類狀況。(相似上課不學習,下課都不會)
函數

  • 優良的擬合   學習

    不管是訓練集數據仍是不在訓練集中的預測數據,都能給出較爲正確的結果。spa

  • 過擬合
    .net

    能很好的擬合訓練集中的數據,可是對於不在訓練集中的新數據偏差會很大,泛化能力弱。這類狀況出現於特徵選多了。3d

PS:泛化能力指學習模型對新數據的預測能力。orm


    線性模型中的擬合狀況:


  • 左圖欠擬合。

  • 右圖過擬合。


    邏輯分類模型中的擬合狀況。

  • 左圖欠擬合。

  • 右圖過擬合。

    爲了度量擬合表現,有兩個概念須要知道:

  • 誤差(bias)

    值模型的預測值和實際值的偏離程度。誤差越大,預測值偏離真實值越厲害。

  • 方差(variance)

    指模型預測值的離散程度或變化範圍。方差越大,數據的分佈越分散,函數波動越大,泛化能力越差。方差低意味着擬合曲線的穩定性高,波動小。


    據此,咱們有對同一數據的各種擬合狀況以下圖:

    由上圖可知:高誤差意味着欠擬合,高方差意味着過擬合。


    咱們應儘可能使得擬合模型處於低方差(較好地擬合數據)狀態且同時處於低誤差(較好地預測新值)的狀態。


    實際狀況中咱們的學習算法常常會用到不少特徵,當有這麼多特徵的時候,咱們的繪圖也會變得很困難,經過可視化來決定保留哪些特徵變量也更難。好比預測房價,可能有不少不少的特徵跟房價都有關係,可是咱們卻只有不多的訓練數據,就會出現過分擬合的問題。


    避免過擬合的方法有:

  • 減小特徵的數量

  1. 手動選取需保留的特徵

  2. 使用模型選擇算法來選取合適的特徵。

PS:減小特徵的方式易丟失有用的特徵信息。

  • 正則化

  1. 可保留全部參數(許多有用的特徵都能輕微影響結果)。

  2. 減小懲罰各參數大小(magnitude),以減輕各參數對模型的影響程度。

PS:當有不少參數對於模型只有輕微影響時,正則化方法的表現很好


代價函數的正則化


    不少時候因爲特徵數量過多,容易出現過擬合,可是咱們又很難選出不要的特徵或者全部特徵對咱們都相當重要,這時候應用正則化方法就是個很好的選擇啦。

    爲了保留各個參數的信息,修改代價函數爲:

    上述公式中咱們在代價函數中加入了θ3和θ4的懲罰項。若是要最小化懲罰函數J(θ),那麼勢必要減少θ3和θ4的值,從而使得1000*θ3的平方和1000*θ4的平方這兩項值很小,能夠說這時θ3和θ4的值會變得很是小,能夠說近似沒有,假設函數變得簡單了,從而在保留各個參數的條件下避免了過擬合問題。

    經過上面的介紹咱們知道,有時候沒法肯定移除哪一個特徵時,能夠經過更改代價函數J(θ)來避免過擬合,可是決定減小哪一個θ參數也是一個問題,這裏咱們能夠統一懲罰除θ0以外的全部參數。

PS:這是種約定俗成的作法,和懲罰包括θ0在內的全部參數其實沒有任何區別。

    改進後的代價函數J(θ):

    其中:

  • λ:正則化參數,相似於學習速率,也須要咱們自行對其選擇一個合適的值,λ>0。

  • 不懲罰參數θ0。

  • 是正則化項。

    λ在上述公式中起着學習效率的做用。

  • 過大

  1. 致使模型欠擬合。(θ1至θj所有近似於0,假設函數可能變成近似等於θ0的一條直線。)

  2. 沒法正常除去過擬問題。

  3. 梯度降低可能沒法收斂。

  • 太小

  • 沒法避免過擬合。(等於沒有)


    在全部可能選擇的模型中,可以很好地解釋已知數據而且十分簡單纔是最好的模型,也就是應該選擇的模型。


    正則化是結構風險最小化策略的實現,是去過擬合問題的典型方法,雖然看起來多了個一參數多了一重麻煩,可是有自動選取正則化參數的方法(後文會介紹)。模型越複雜,正則化參數值就越大。


線性迴歸的正則化


    應用正則化的線性迴歸梯度降低算法:

    也能夠移項獲得更新表達式的另外一種表示形式

    至關於θj乘以比1小一點的數(好比0.99),咱們每次都把參數縮小一點,而後進行和以前同樣的更新操做。


    應用正則化的標準方程法:

    這裏簡單介紹一下標準方程法。

    對於一些線性迴歸的問題,用標準方程法求解參數θ的最優值會更好。

    要使得J(θ)最小,即爲最低點,則使

    最終公式(特徵矩陣X、輸出矩陣Y、特徵參數矩陣θ帶入J(θ)中進行推導便可):

    梯度降低缺點:

  1. 須要選擇學習效率α。(須要不斷嘗試)

  2. 須要迭代不少次。

    梯度降低優勢:

  1. 在特徵很是多的時候能很好運行。


    標準方程法缺點:

  1. 若是特徵很是多就會計算很慢。

    標準方程法缺點:

  1. 不須要學習效率和迭代,更加方便快捷。


    吳恩達教授本身的經驗:特徵一萬如下使用標準方程法,一萬左右會考慮使用梯度降低法,一萬以上使用梯度降低法。


    使用計算出來的θ,可使得代價函數J(θ)最小化,這時候的J(θ)是沒有通過正則化的。

    正則化後的方程:

    

    

    其中:

  1. λ·L:正則化項。(λ>0)

  2. L:第一行第一列爲0的n+1維單位矩陣。

    Python表示:


    正則化能夠解決正規方程法中不可逆的問題,即增長了λ·L正則項後,能夠保證XTX+λ·L可逆,即使XTX不可逆。

    這裏擴展一下正規方程法中公式中(XTX)可能存在不可逆的狀況,不可逆矩陣稱爲奇異矩陣或退化矩陣。

    XTX出現不可逆的狀況其實不多發生。

    若是XTX不可逆,一般有兩種最多見的緣由:

  • 因爲某種緣由,學習問題包含了多餘的特徵。

    例如:在預測房價時有兩個特徵,一個是x1以平方英尺爲單位的房子的面積,一個是x2以平方米爲單位的房子的面積。由於1米等於3.28英尺,x1=3.28的平方*x2。兩個特徵不能像這樣用線性方程聯繫起來,這樣XTX將是不可逆的。

  • 有太多的特徵(m<=n,即特徵數量大於樣本數量)

    

    若是發現XTX是不可逆的,建議看特徵中是否有一些多餘的特徵,相似x1和x2這樣線性相關的,能夠刪除一個沒必要要二者都保留,直到沒有多餘特徵爲止。若是沒有對於特徵,咱們要檢查一下特徵數量,若是特徵數量實在太多,少一點又不會影響的話,咱們要刪除一些特徵或者考慮正則化。

    總之出現不可逆矩陣的狀況極少發生。


Logistic迴歸的正則化


    爲邏輯迴歸的代價函數添加正則化項:

  

    從而有應用正則化的邏輯迴歸梯度降低算法:


本文分享自微信公衆號 - 小啦的學習筆記(woshiguolala)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索