機器學習之——歸一化

之前我們討論了幾個機器學習的模型,線性迴歸模型(Linear Regression)邏輯迴歸模型(Logistic Regression),這一次我們討論一下關於模型數據擬合的問題以及歸一化方法(Regularization)

過擬合問題(The Problem of Overfitting)

如果我們有非常非常多的特徵,我們通過學習得到的假設可能會非常適應訓練集(代價函數的值可能幾乎爲0),但是這樣的假設能不能推廣使用到新的數據呢?下面有一些例子:


從左至右來看,第一個模型是一個線性模型,擬合度很低,也稱作低度擬合(Underfitting),不能很好地適應我們的訓練集;第三個模型,是一個四次方的模型,屬於過度擬合,雖然能夠很好地適應我們的訓練集數據,但是在新輸入變量進行預測的時候,可能效果會很差;而第二個模型,似乎是最合適的模型。

分類問題(Classification)中,也存在這樣的問題:


最後一個模型就是過度擬合的情況。

那麼問題出現了,如果我們發現了這樣過度擬合的情況,如何處理?

思考後,有兩種方式:

1,丟棄一些不能幫助我們正確預測的特徵。

  • 可能是手工選擇保留哪些特徵
  • 或者使用一些模型選擇的算法來幫忙(例如 PCA)
2,歸一化

  • 保留所有的特徵,但是減少參數的大小(Magnitude)

歸一化代價函數(Regularization Cost Function)

上面的迴歸問題中,如果我們使用的模型是:


我們決定要減小ø3和ø4的大小,我們需要做的就是修改代價函數,在其中ø3和ø4的身上,設置一些懲罰(Punishment)。這樣做的話,我們在嘗試最小化代價時,也需要將這個懲罰代入考慮中,並最終導致選擇小一些的ø3和ø4 。 修改之後的代價函數如下:


這樣,通過代價函數選擇出的ø3和ø4對整個預測結果的影響就比之前小了很多。

加入我們有非常多的特徵,我們並不知道其中哪些特徵是我們要懲罰的,我們將對所有特徵進行懲罰,並且讓代價函數最優化的方法來選擇懲罰的程度。這樣的結果,就得到了一個較爲簡單的能夠防止過度擬合問題的假設:


其中λ又稱爲歸一化參數(Regularization Parameter)

這裏注意:根據慣例,我們不會對ø0進行懲罰。

經過歸一化處理的模型與原模型的對比可能如下圖:


如果選擇的歸一化參數λ過大,就會把所有參數都最小化了,這樣導致模型hø(x)=ø0也就是上圖中的紅色直線的情況,數據就屬於低度擬合。

下回我們討論,線性邏輯模型的歸一化和邏輯迴歸模型的歸一化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章