欠擬合,過擬合及正則化


在設計Machine Learning系統時,我們很難從系統運行之前就得知系統的“復雜程度”。在線性回歸中,我們可以將此問題等同為:使用幾維參數,是否需要涉及更復雜的多項式,以及本文的一個新概念—Regularization Parameter。本文,將討論Underfit,Overfit基本理論,及如何改進系統復雜度,使其能夠使其在准確擬合現有訓練樣例的情況下,盡可能准確預測新數據。

 

Underfit(欠擬合)和Overfit(過擬合)

首先要確定的兩個概念是Underfit(欠擬合)和Overfit(過擬合),也被稱作high bias和high viarance。在表征線性回歸模型的下面的三張圖中,左圖使用一條直線來作為模型,很明顯無論如何調整起始點和斜率,該直線都不可能很好的擬合給定的五個訓練樣例,更不要說給出的新數據;右圖使用了高階的多項式,過於完美的擬合了訓練樣例,當給出新數據時,很可能會產生較大誤差;而中間的模型則剛剛好,既較完美的擬合訓練樣例,又不過於復雜,基本上描繪清晰了在預測房屋價格時Size和Prize的關系。

對於邏輯回歸,同樣存在此問題,如下圖:

解決欠擬合或過擬合的思路

1、增減模型的參數維度。如利用線性回歸預測房屋價格的例子中,增加“卧室數量”,“停車位數量”,“花園面積”等維度以解決欠擬合,或相應的減少維度去解決過擬合。

2、增減多項式維度,比如將加入高階多項式來更好地擬合曲線,用以解決欠擬合,或者降階去處理過擬合。

3、調整Regularization Parameter。在不改變模型參數維度和多項式維度的情況下,單純的調整Regularization Parameter同樣可以有效改變模型對數據的擬合程度。

 

Regularization Parameter

在之前做邏輯回歸的Octave仿真時,就用到了該參數,我們可以看到在計算Cost Function時,加入了一項theta'*theta*lambda/(2*m),此項即為調整項。整理后的邏輯回歸Cost Function和梯度下降求theta的表達式為如下形式:

 

線性回歸的Cost Function也是類似形式:

 

無論是哪一種模型,lambda的取值對於能否改進模型的表現都有很重要的作用。試想如果lambda取值過大,那么cost function的取值就近似於Regularization Parameter的取值,即為一條直線了,這同樣是一種Underfit,而如果lambda取值過小,則對於cost function而言沒有任何作用。在下篇文章中,會詳細講解如何評估模型表現及選取lambda的值。

 


免責聲明!

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



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