演算法工程師修仙之路:吳恩達機器學習(六)
吳恩達機器學習筆記及作業程式碼實現中文版
第五章 正則化
過擬合問題
-
線性迴歸和邏輯迴歸能夠有效地解決許多問題,但是當將它們應用到某些特定的機器學習應用時,會遇到過擬合(over-fitting)的問題,可能會導致它們效果很差。
-
正則化(regularization)的技術,它可以改善或者減少過度擬合問題。
-
如果我們有非常多的特徵,我們通過學習得到的假設可能能夠非常好地適應訓練集(代價函式可能幾乎為 0),但是可能會不能推廣到新的資料。
-
如果我們發現了過擬合問題:
- 丟棄一些不能幫助我們正確預測的特徵。可以是手工選擇保留哪些特徵,或者使用一些模型選擇的演算法來幫忙(例如 PCA)。
- 正則化。保留所有的特徵,但是減少引數的大小。
- 丟棄一些不能幫助我們正確預測的特徵。可以是手工選擇保留哪些特徵,或者使用一些模型選擇的演算法來幫忙(例如 PCA)。
代價函式
-
一般來說,正是那些高次項導致了過擬合的產生,所以如果我們能讓這些高次項的係數接近於 0 的話,我們就能很好的擬合了。
-
假如我們有非常多的特徵,我們並不知道其中哪些特徵我們要懲罰,我們將對所有的特徵進行懲罰,並且讓代價函式最優化的軟體來選擇這些懲罰的程度。這樣的結果是得到了一個較為簡單的能防止過擬合問題的假設: 。其中 又稱為正則化引數( Regularization Parameter)。根據慣例,我們不對 進行懲罰。
-
如果選擇的正則化引數 過大, 則會把所有的引數都最小化了,導致模型變成 。
-
如果我們令 的值很大的話,為了使 Cost Function 儘可能的小,所有的 的值(不包括 )都會在一定程度上減小。
-
若 的值太大了, 那麼 (不包括 )都會趨近於 0,這樣我們所得到的只能是一條平行於x軸的直線。所以對於正則化,我們要取一個合理的 的值,這樣才能更好的應用正則化。
線性迴歸的正則化
-
正則化線性迴歸的代價函式為: 。
-
如果我們要使用梯度下降法令這個代價函式最小化,因為我們未對 進行正則化,所以梯度下降演算法將分兩種情形:
- 。
- 。
-
對上面的演算法中 時的更新式子進行調整可得: