ML(附錄3)——過擬合與欠擬合

過擬合與欠擬合

  咱們但願機器學習獲得好的模型,該模型可以從訓練樣本中找到一個可以適應潛在樣本的廣泛規律。然而,若是機器學習學的「太好」了,以致把樣本的自身特色看成潛在樣本的通常特性,這就使得模型的泛化能力(潛在樣本的預測能力)降低,從而致使過擬合。反之,欠擬合就是學習的「太差」,連訓練樣本都沒有學好。網絡

  欠擬合容易處理,好比在決策樹中擴展分支,在神經網絡中增長訓練輪數,須要重點關注的是麻煩的過擬合。機器學習

  當訓練數據不多時,若是使用了過多的特徵,將會致使過擬合:函數

  圖三是一個明顯的過擬合,它使用了高階多項式增長一些特新特徵,獲得的複雜曲線將樣本學些的「太好」了,以致失去了泛化性。學習

正則化

  若是發生了過擬合問題,能夠經過做圖來觀察,可是當遇到不少變量時,畫圖將變得困難,此時咱們應該如何處理?spa

  一種經常使用的辦法是減小變量的選取,好比對於房價的預測,影響房價的特徵可能有上百個,但其中的某些特徵對結果的影響很小,例如鄰居的收入,此時就能夠去掉這些影響較小的變量。這類作法很是有效,可是其缺點是當你捨棄一部分特徵變量時,你也捨棄了問題中的一些信息。也許全部的特徵對於預測房價都是有用的,咱們實際上並不想捨棄一些特徵。3d

  另外一種方法就是正則化,特容許咱們保留全部的特徵變量。視頻

  當咱們有不少特徵變量時,其中每個變量都能對預測產生一點影響,在下圖中,若是用一個二次函數來擬合這些數據,那麼它給了咱們一個對數據很好的擬合。然而,若是咱們用一個更高次的多項式去擬合,最終將獲得一個過擬合的複雜曲線。對象

  若是學習策略是平方和損失函數,那麼咱們的目的就是找到合適的θ使得J(θ)最小化:blog

 

  應對過擬合的策略就是加上懲罰項,從而使θ3和θ4足夠小:get

  1000 只是隨便寫的某個較大的數字。如今,由於1000θ32和1000θ42會使J(θ)變得很大,爲了最小化J(θ),須要使θ3≈0,θ4≈0,這樣將獲得一個近似二次函數的新函數,這會是一個更好的模型函數。最終,咱們恰當地擬合了數據,所使用的正是二次函數加上一些貢獻很小的特徵項x3和x4 (它們對應權重接近0)。

  上面的方法就是正則化的思路,若是特徵值對應一個較小的權重,那麼最終將會獲得一個簡單的假設。

  在上面的例子中,因爲咱們知道x3和x4是重點懲罰對象(對結果影響較小),因此只懲罰它們,可是若是有不少特徵,而且咱們不知道如何選擇關聯度更好的參數,如何縮小參數的數目等等,應該如何處理呢?

  由於咱們並不知道是哪個或哪幾個要去縮小,所以在正則化裏,須要減少代價函數中的全部特徵值:

 

  上式中n是特徵的個數,λ是正則化參數。須要注意的是,懲罰項從θ1開始。按照慣例,咱們沒有去懲罰 θ0,所以 θ0 的值是大的,但在實踐中不管是否包括θ0,差別都不大。

   稱爲正則化項,其目標有兩個:但願假設可以很好地適應訓練集,想要保持參數值較小。λ的目的就是控制兩者之間的平衡,從而保持假設的形式相對簡單,以免過分的擬合。

  對J(θ)求偏導:

  若是使用梯度降低:

 

  若是λ很小,則喪失了正則化的意義,至關於全部懲罰項都接近於0,這又將致使過擬合;若是λ 很大,將會很是大地懲罰參數θ1 θ2 θ3 θ4 …,最終會使全部這些參數都接近於零,致使欠擬合,以下圖所示:

 

  若是咱們這麼作,至關於去掉了θj≈0對應的特徵,只留下了一個簡單的假設,這個假設只能代表房屋價格等於 θ0 的值,相似於擬合了一條水平直線,對於數據來講這就是一個欠擬合,它不會去趨向大部分訓練樣本的任何值。

其它方法

  上面的正則化方法實際上被稱爲L2正則化(L2 regularization),其原型是新損失函數等於原損失函數加上正則化項,其中J0(θ)表示原損失函數:

 

  對θj求導:

 

  此外還有L1正則化(L1 regularization):

  L1正則假設特徵是拉普拉斯分佈,能夠保證模型的稀疏性,也就是某些參數等於0;L1正則化導出的稀疏性質已被普遍用於特徵選擇,能夠從可用的特徵子集中選擇有意義的特徵。

  L2正則假設特徵是高斯分佈,一般傾向讓權值儘量小,最後構造一個全部參數都比較小的模型。由於通常認爲參數值小的模型比較簡單,能適應不一樣的數據集,也在必定程度上避免了過擬合現象。參數足夠小,數據偏移得多一點也不會對結果形成什麼影響,能夠說「抗擾動能力強」。

  此外,還有early stopping、數據集擴增(Data augmentation)、dropout等方法可以下降過擬合。

 

  參考:

  Ng視頻《Logistic Regression》

  周志華《機器學習》

  《機器學習導論》

 


  做者:我是8位的

  出處:http://www.cnblogs.com/bigmonkey

  本文以學習、研究和分享爲主,如需轉載,請聯繫本人,標明做者和出處,非商業用途! 

  掃描二維碼關注公衆號「我是8位的」

  

相關文章
相關標籤/搜索