[机器学习笔记]Note5--归一化
繼續是機器學習課程的筆記,這節課會介紹歸一化的內容。
過擬合問題
這節課會介紹一個在機器學習過程中經常會遇到的問題–過擬合。通常,當我們有非常多的特征,我們可以學習得到的假設可能非常好地適應訓練集,即代價函數可能幾乎是0,但是可能會不能推廣到新的數據,即泛化能力差,對于新的數據預測結果不理想。這就是過擬合問題。而特征非常多也是發生過擬合問題的一個原因之一。
下面是一個回歸問題,分別有3個模型,如下所示:
第一個模型是一個線性模型,低度擬合,不能很好地適應我們的訓練集;第三個模型是一個四次方的模型,過度擬合,雖然能非常好地適應我們的訓練集,但在新輸入變量進行預測時可能會效果不好;而中間的模型則是相對最合適的模型。
在回歸問題中會有過擬合問題,同樣在分類問題也是有過擬合的問題,例子如下所示:
同樣是第一個模型是線性模型,只能低度擬合,而第三個模型是一個過渡擬合的模型,對新輸入變量進行預測時效果會不好,只有中間的模型是最合適的模型。
那么,當發生過擬合的問題時,我們可以采取下面的措施來避免過擬合:
1. 丟棄一些不能幫助我們正確預測的特征:可以是手工選擇保留哪些特征或者使用一些模型選擇的算法來幫忙(例如PCA);
2. 歸一化。保留所有的特征,但是減小參數的大小。
歸一化代價函數
在上述回歸問題的例子中,對于過擬合的模型是hθ(x)=θ0+θ1x1+θ2x22+θ3x33+θ4x44。
我們決定要減少θ3和θ4的大小,我們要做的是修改代價函數,在其中對θ3和θ4設置一點懲罰。這樣做的話,我們在嘗試最小化代價時也需要將這個懲罰納入考慮中,并最終導致選擇較小的θ3和θ4。修改后的代價函數如下:
通過這樣的代價函數選擇出來的θ3和θ4對預測結果的影響就會比之前小許多。
那么假如我們有許多的特征,我們并不知道其中哪些特征需要懲罰,我們將對所有的特征進行懲罰,并且讓代價函數最優化的軟件來選擇這些懲罰的程度。那么代價函數如下所示:
其中λ又稱為歸一化參數。
注意:根據慣例,我們不對 θ0進行懲罰。
經過歸一化處理的模型與原模型的可能對比如下圖所示:
這里如果選擇的歸一化參數λ過大,則會把所有的參數都最小化,導致模型變成hθ(x)=θ0,也就是上圖中紅色直線所示的情況,造成低度擬合。
歸一化線性回歸
梯度下降算法
歸一化線性回歸的代價函數是:
此時如要使用梯度下降法來令代價函數最小化,由于我們沒有對 θ0進行歸一化,所以梯度下降法將會分兩種情形:
Repeat until convergence{
}
其中,對第二個更新的式子進行調整可得:
由該式子可以看出歸一化線性回歸的梯度下降算法的變化在于, 每次都在原有算法更新規則的基礎上令θ值減少了一個額外的值,這是因為 1?αλm<1,而后面第二項式子跟沒有使用歸一化時候是一樣的。
正規方程
同樣,也可以使用正規方程來求解線性回歸模型。這里做如下假設:
這里的 X是訓練集的矩陣,是一個m?(n+1)維矩陣,即有m個樣本,每個樣本有n+1個特征(實際是n個特征,但是每個樣本都添加了一個 x0=1,而 y則是一個(m+1)?1維的向量,表示的是訓練樣本的標簽。
這里要求解歸一化線性回歸模型的方法如下:
這里的矩陣是一個 (n+1)?(n+1)大小,并且是一個對角線上除了第一行外是1,例如當n=2時,這個矩陣就是 [000?010?001]
這個矩陣的得到是通過令??θjJ(θ)=0所得到的,不過視頻中并沒有給出詳細的推導過程。
歸一化邏輯回歸
對于邏輯回歸,我們也可以得到一個歸一化的代價函數表達式:
使用的梯度下降算法如下所示:
Repeat until convergence{
}
同樣,看上去也是與線性回歸的公式一樣,但是由于hθ(x)=g(θTX),因此是與線性回歸不同的。
小結
本節主要是介紹了過擬合的問題,這是由于特征過多導致學習得到的模型非常擬合訓練集的數據,但是對于新的輸入數據卻得到不理想的預測結果,解決這個問題的方法,一個是減少特征的數量,第二個就是使用歸一化來減小參數的大小。
因此后面分別介紹了歸一化代價函數,以及線性回歸和邏輯回歸中梯度下降算法對于歸一化代價函數的計算公式。
總結
以上是生活随笔為你收集整理的[机器学习笔记]Note5--归一化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dreamweaver文字或图片如何添加
- 下一篇: 仅需一行代码,你的纯文本秒变Markdo