機器學習08 正則化

2021-07-29 19:09:19 字數 2743 閱讀 7257

一,為什麼要使用正則化

到現在為止,我們已經學習了幾種不同的學習演算法,包括線性回歸和邏輯回歸,它們能夠有效地解決許多問題,但是當將它們應用到某些特定的機器學習應用時,會遇到過度擬合(over-fitting)的問題,可能會導致它們效果很差。在這篇博文中,我將為你解釋什麼是過度擬合問題,我們將談論一種稱為正則(regularization)的技術,它可以改善或者減少過度擬合問題。如果我們有非常多的特徵,我們通過學習得到的假設可能能夠非常好地適應訓練集(代價函式可能幾乎為 0),但是可能會不能推廣到新的資料。下圖是乙個回歸問題的例子:

第乙個模型是乙個線性模型,欠擬合,不能很好地適應我們的訓練集;第三個模型是乙個四次方的模型,過於強調擬合原始資料,而丟失了演算法的本質:**新資料。我們可以看出,若給出乙個新的值使之**,它將表現的很差,是過擬合,雖然能非常好地適應我們的訓練集但在新輸入變數進行**時可能會效果不好;而中間的模型似乎最合適。

分類問題中也存在這樣的問題:

就以多項式理解,x 的次數越高,擬合的越好,但相應的**的能力就可能變差。

問題是,如果我們發現了過擬合問題,應該如何處理?

1. 丟棄一些不能幫助我們正確**的特徵。可以是手工選擇保留哪些特徵,或者使用一些模型選擇的演算法來幫忙(例如 pca)

2. 正則化。

保留所有的特徵,但是減少引數的大小(magnitude)。

二,正則化的原理

上面的回歸問題中如果我們的模型是:

我們可以從之前的事例中看出,正是那些高次項導致了過擬合的產生,所以如果我們能讓這些高次項的係數接近於 0 的話,我們就能很好的擬合了。

所以我們要做的就是在一定程度上減小這些引數 θ 的值,這就是正則化的基本方法。我

們決定要減少 θ3  和 θ4  的大小,我們要做的便是修改代價函式,在其中 θ3 和 θ4  設定一點懲罰。這樣做的話,我們在嘗試最小化代價時也需要將這個懲罰納入考慮中,並最終導致選擇較小一些的 θ3  和 θ4。修改後的代價函式如下:

其中 λ 又稱為正則化引數(regularization parameter)。

注:根據慣例,我們不對 θ0 進行懲罰。經過正則化處理的模型與原模型的可能對比如下圖所示:

如果選擇的正則化引數 λ 過大,則會把所有的引數都最小化了,導致模型變成 hθ(x)=θ0也就是上圖中紅色直線所示的情況,造成欠擬合。那為什麼增加的一項就可以使 θ 的值減小呢?

因為如果我們令λ

的值很大的話,為了使

cost function 

盡可能的小,所有的

θ 的值(不

包括θ0)都會在一定程度上減小。

若λ的值太大了,那麼

θ(不包括

θ0)都會趨近於

0,這樣我們所得到的只能是一條

平行於x 

軸的直線。

所以對於正則化,我們要取乙個合理的λ的值,這樣才能更好的應用正則化。

回顧一下代價函式,為了使用正則化,讓我們把這些概念應用到到線性回歸和邏輯回歸

中去,那麼我們就可以讓他們避免過度擬合了。

三,線性回歸的正則化

對於線性回歸的求解,我們之前推導了兩種學習演算法:一種基於梯度下降,一種基於正規方程。正則化線性回歸的代價函式為:

每次跟新θ時,再減少θ的額外值就是正則化的核心原理

我們同樣也可以利用正規方程來求解正則化線性回歸模型,方法如下所示:

圖中的矩陣尺寸為 (n+1)*(n+1)。

四,邏輯回歸的正則化

自己計算導數同樣對於邏輯回歸,我們也給代價函式增加乙個正則化的表示式,得到代價函式:

要最小化該代價函式,通過求導,得出梯度下降演算法為:

五,總結以及後面博文內容

目前大家對機器學習演算法可能還只是略懂,但是一旦你精通了線性回歸、高階優化演算法和正則化技術,坦率地說,你對機器學習的理解可能已經比許多任務程師深入了。現在,你已經有了豐富的機器學習知識,目測比那些矽谷工程師還厲害,或者用機器學習演算法來做產品。接下來的博文中,我們將學習乙個非常強大的非線性分類器,無論是線性回歸問題,還是邏輯回歸問題,都可以構造多項式來解決。你將逐漸發現還有更強大的非線性分類器,可以用來解決多項式回歸問題。我們接下來將將學會,比現在解決問題的方法強大 n 倍的學習演算法。

本博文參閱史丹福大學

吳恩達(andrew ng)

機器學習

機器學習正則化

設p 1的實 數,p norm 定義為 x i 1 n xi p 1 p 1.1 這裡寫描述 如果方陣a是非奇異的,那麼a的conditio nnumber定義為 a a a 1 condition number是乙個矩陣穩定性或者敏感度的度量。矩陣的condition number在1附近,那麼它...

機器學習 正則化

為了增加模型的泛化能力,避免模型出現過擬合的現象,我們經常會加入正則化處理 當模型偏差較低,但是方差很大,尤其在輸入的維數較高時,很容易出現過擬合現象,當加入正則項,模型損失了一部分偏差,卻大大降低了模型的方差 l1和l2正則是我們經常用到的方法。l1正則 這種方法的結果會讓引數向量中許多元素趨於0...

機器學習正則化

正則化項可以是模型引數向量的範數 首先,範數是指推廣到高維空間中的模,給定向量x x1,x2,x3,xn 常用的向量的範數如下 l0範數 向量非零元素的個數 l1範數 向量各個元素絕對值之和 l2範數 向量各個元素的平方和然後求平方根 lp範數 向量各個元素絕對值的p次方求和然後求1 p次方 l正則...