Regularization - Week_3_part2

Solving the Problem of Overfitting 


The Problem of Overfitting

我們在使用hypothesis function在擬合y的值的時候,會有三種狀況發生分別如下面圖所示:

最左邊的是underfitting的狀況,中間是擬合剛好的狀況,最右邊是overfitting的狀況。uderfitting也稱之為high bias的狀況,就是hypothesis並沒有適當的擬合資料的趨勢。是因為擬合的函示太過簡單或者是因為使用太少的特徵。而overfitting也稱之為high variance,其hypothesis是可以擬合目前所取得的資料集,但卻沒辦法一般化(generalized)到新的資料,是因為其擬合函數太過複雜導致有著跟資料無相關的曲線和角度。

上述這三種狀況都適用於linear regression 和 logistic regression,下面提出一些方法來避免發生overfitting的狀況:

  • 減少特徵(feature)的數量:
  1. 手動挑選那些特徵需要留下
  2. 使用model去挑選演算法
  • 正規化:
  1. 保留所有的特徵,但是減少了參數θj的magnitude
  2. 正規化一樣也可以運作得很好,當我們有一些有用的特徵時。
--------------------------------------------------------------------------------------------------------------------------

Cost Function

如果我們過度擬合我們的hypothesis function,我們可以利用減少hypothesis function裡面項目的權重來減少他們對hypothesis function的影響,如下圖所示:




要是想其cost function不受到過度擬合的影響,可以在cost function裡面加上正規化項,來最小化其 theta parameter,其數學式如下方:


--------------------------------------------------------------------------------------------------------------------------

Regularized Linear Regression

我們可以運用正規化此技巧到linear regression 和logistic regression的問題中,首先我們在此節先談線性回歸的問題該如何把正規化技巧運用至其中。

  • Gradient Descent
在gradient descent中,我們把 θ0 從公式中分離出來,因為我們在正規化的時候是沒有penalize θ0 ,公式改寫成下面的數學式:


  • Normal Equation
在normal equation中,我們也是加入一些新的項目,扣掉第一列的第一欄是0的話,其中L矩陣基本上就是一個(n+1)*(n+1)單位矩陣,R是個實數,下面為其數學式:


--------------------------------------------------------------------------------------------------------------------------

Regularized Logistic Regression

我們使用可以正規化linear regression的方法運用在logistic regression上,主要是避免過度擬合運用在分類的問題上,像下圖的例子裡,藍色實線就是過度擬合,粉紅色實線就擬合得剛好。


還記得我們logistic regression的價值函式是如何表達嗎?!這邊幫大家複習一下:


正規化其價值函數後,其加入一個正規化項:


其正規化項θ值從1到n,若是在計算其gradient descent應該同時更新兩條算式,如下圖:



--------------------------------------------------------------------------------------------------------------------------

P.S 在Coursera中MACHINE LEARNING的課程中,要注意Octave或Matlab的矩陣操作,可以多利用互動式直譯器進行矩陣的測試與操作,否則容易搞錯。例如:sum (theta.^2) = transpose(theta) * theta

下面這是我在coursera第三周課程上,程式作業裡遇到問題的論壇討論貼文(需登入coursera):

留言

這個網誌中的熱門文章

在jupyter notebook中同時使用pyhton2和python3

Recommender Systems - Week_9_part2

Machine Learning System Design - Week_6_ part2