繼續是機器學習課程的筆記,這節課會介紹歸一化的內容。
這節課會介紹乙個在機器學習過程中經常會遇到的問題–過擬合。通常,當我們有非常多的特徵,我們可以學習得到的假設可能非常好地適應訓練集,即代價函式可能幾乎是0,但是可能會不能推廣到新的資料,即泛化能力差,對於新的資料**結果不理想。這就是過擬合問題。而特徵非常多也是發生過擬合問題的乙個原因之一。
下面是乙個回歸問題,分別有3個模型,如下所示:
第乙個模型是乙個線性模型,低度擬合,不能很好地適應我們的訓練集;第三個模型是乙個四次方的模型,過度擬合,雖然能非常好地適應我們的訓練集,但在新輸入變數進行**時可能會效果不好;而中間的模型則是相對最合適的模型。
在回歸問題中會有過擬合問題,同樣在分類問題也是有過擬合的問題,例子如下所示:
同樣是第乙個模型是線性模型,只能低度擬合,而第三個模型是乙個過渡擬合的模型,對新輸入變數進行**時效果會不好,只有中間的模型是最合適的模型。
那麼,當發生過擬合的問題時,我們可以採取下面的措施來避免過擬合:
1. 丟棄一些不能幫助我們正確**的特徵:可以是手工選擇保留哪些特徵或者使用一些模型選擇的演算法來幫忙(例如pca);
2. 歸一化。保留所有的特徵,但是減小引數的大小。
在上述回歸問題的例子中,對於過擬合的模型是hθ
(x)=
θ0+θ
1x1+
θ2x2
2+θ3
x33+
θ4x4
4 。
我們決定要減少θ3
和θ4 的大小,我們要做的是修改代價函式,在其中對θ3
和θ4 設定一點懲罰。這樣做的話,我們在嘗試最小化代價時也需要將這個懲罰納入考慮中,並最終導致選擇較小的θ3
和θ4 。修改後的代價函式如下: mi
nθ12
m∑i=
1m((
hθ(x
(i)−
y(i)
)2+10000θ2
3+100000θ2
4)通過這樣的代價函式選擇出來的θ3
和θ4 對**結果的影響就會比之前小許多。
那麼假如我們有許多的特徵,我們並不知道其中哪些特徵需要懲罰,我們將對所有的特徵進行懲罰,並且讓代價函式最優化的軟體來選擇這些懲罰的程度。那麼代價函式如下所示: j(
θ)=1
2m[∑
i=1m
((hθ
(x(i
))−y
(i))
2+λ∑
j=1n
θ2j)
]其中
λ 又稱為歸一化引數。
注意:根據慣例,我們不對θ0
進行懲罰。
經過歸一化處理的模型與原模型的可能對比如下圖所示:
這裡如果選擇的歸一化引數
λ 過大,則會把所有的引數都最小化,導致模型變成hθ
(x)=
θ0,也就是上圖中紅色直線所示的情況,造成低度擬合。
梯度下降演算法
歸一化線性回歸的代價函式是: j(
θ)=1
2m[∑
i=1m
((hθ
(x(i
))−y
(i))
2+λ∑
j=1n
θ2j)
] 此時如要使用梯度下降法來令代價函式最小化,由於我們沒有對θ0
進行歸一化,所以梯度下降法將會分兩種情形:
repeat until convergence其中,對第二個更新的式子進行調整可得: θj
:=θj(
1−αλ
m)−α
1m∑i
=1m(
hθ(x
(i))
−y(i
))⋅x
(i)j
由該式子可以看出歸一化線性回歸的梯度下降演算法的變化在於,每次都在原有演算法更新規則的基礎上令
θ 值減少了乙個額外的值,這是因為1−
αλm<
1 ,而後面第二項式子跟沒有使用歸一化時候是一樣的。
正規方程
同樣,也可以使用正規方程來求解線性回歸模型。這裡做如下假設: x=
⎡⎣⎢⎢
⎢(x(
1))t
⋮(x(
m))t
⎤⎦⎥⎥
⎥y=⎡
⎣⎢⎢(
y(1)
)⋮(y
(m))
⎤⎦⎥⎥
這裡的x 是訓練集的矩陣,是乙個m∗
(n+1
)維矩陣,即有m個樣本,每個樣本有n+1個特徵(實際是n個特徵,但是每個樣本都新增了乙個x0
=1,而y
則是乙個(m
+1)∗
1維的向量,表示的是訓練樣本的標籤。
這裡要求解歸一化線性回歸模型的方法如下: θ=
(xtx
+λ⎡⎣
⎢⎢⎢⎢
⎢⎢⎢0
00⋮⋯
⋯10⋮
⋯01⋱
⋯⋯⋯⋮
⋯1⎤⎦
⎥⎥⎥⎥
⎥⎥⎥)
−1xt
y 這裡的矩陣是乙個(n
+1)∗
(n+1
) 大小,並且是乙個對角線上除了第一行外是1,例如當n=2時,這個矩陣就是[0
0001
0001
] 這個矩陣的得到是通過令∂∂
θjj(
θ)=0
對於邏輯回歸,我們也可以得到乙個歸一化的代價函式表示式: j(
θ)=−
1m[∑
i=1m
y(i)
logh
θ(x(
i))+
(1−y
(i)l
og(1
−hθ(
x(i)
))]+
λ2m∑
j=1n
θ2j
使用的梯度下降演算法如下所示:
repeat until convergence同樣,看上去也是與線性回歸的公式一樣,但是由於hθ
(x)=
g(θt
x),因此是與線性回歸不同的。
本節主要是介紹了過擬合的問題,這是由於特徵過多導致學習得到的模型非常擬合訓練集的資料,但是對於新的輸入資料卻得到不理想的**結果,解決這個問題的方法,乙個是減少特徵的數量,第二個就是使用歸一化來減小引數的大小。
因此後面分別介紹了歸一化代價函式,以及線性回歸和邏輯回歸中梯度下降演算法對於歸一化代價函式的計算公式。
筆記 機器學習之資料歸一化
在分類的時候需要進行資料歸一化 那麼為什麼要進行資料歸一化?像是腫瘤情況,當時間單位是天,大小單位是厘公尺,由於時間的跨度比大小的跨度差值大的太多,會導致樣本間的距離被時間所主導,同理,將時間變成以年為單位一樣會因為差值太大而導致模型不行 所謂的資料歸一化就是將所有的資料對映到同一尺度中 這說到了最...
機器學習之 歸一化
之前我們討論了幾個機器學習的模型,線性回歸模型 linear regression 和邏輯回歸模型 logistic regression 這一次我們討論一下關於模型資料擬合的問題以及歸一化方法 regularization 過擬合問題 the problem of overfitting 如果我們...
機器學習 資料歸一化
機器學習中,在資料預處理過程中,通過將資料歸一化可以加快梯度下降求最優解的速度,也有可能提高模型計算的精度。常用的歸一化方法主要有兩種 最值歸一化。比如把最大值歸一化成1,最小值歸一化成 1 或把最大值歸一化成1,最小值歸一化成0。適用於本來就分布在有限範圍內的資料。其中常用的方法有 線性比例變換法...