吳恩達《機器學習》課程筆記——第八章:正則化

上一篇  ※※※※※※※※  【回到目錄】  ※※※※※※※※  下一篇html


8.1 過擬合問題

咱們首先來解釋一下什麼叫欠擬合和過擬合。算法

左邊的圖:該模型是一個線性模型,不能很好地擬合出訓練集,有較大的誤差,這就是欠擬合;ps:固然,對於數據集較爲簡單的狀況,咱們也能夠採起取對數等預處理方式,從而使得線性模型能較好的擬合出數據,但不太經常使用。微信

中間的圖:增長了一個特徵𝜃以後,該模型能夠較好的擬合出訓練集;機器學習

右邊的模型:增長過多的特徵𝜃,雖然模型很是好的擬合了,可是因爲過於強調去擬合訓練集的數據,丟失了算法的本質:預測新數據。當咱們拿該模型去預測其餘的測試集數據時,效果會較差,存在高方差問題,這就是過擬合。函數

除了迴歸問題,分類問題中也存在這樣的狀況:(從左到右依次爲欠擬合、擬合恰當、過擬合)學習

過擬合問題出現的根本緣由是特徵維度過多,模型假設過於複雜,參數過多,訓練數據過少,噪聲過多,致使擬合的函數完美的預測訓練集,但對新數據的測試集預測結果差。 過分的擬合了訓練數據,而沒有考慮到泛化能力。測試

所以,解決過擬合問題的方式有:優化

一、下降特徵維度:丟棄一些不能幫助咱們正確預測的特徵。能夠是手工選擇保留哪些特徵,或者使用一些模型選擇的算法來幫忙(例如 PCA);spa

二、正則化: 保留全部的特徵,可是減小這些特徵的大小(白話說叫讓多餘的特徵沒有存在感)。設計

三、增長訓練數據:使用較大的訓練數據也能夠減小過擬合問題,可是通常收集數據集比較麻煩。

 


8.2 代價函數

在上面的迴歸問題中,出現過擬合問題的模型爲:ℎ𝜃(𝑥) = 𝜃0 + 𝜃1𝑥1 + 𝜃2𝑥22 + 𝜃3𝑥33 + 𝜃4𝑥44  。從前面的三個例子中咱們知道,正是由於高階項致使了過擬合的產生,若是咱們能使這些高階項的係數(如𝜃3、𝜃4)變爲0的話,那麼就能夠較好的擬合了。

所以,必定程度上減少這些參數 𝜃 的值,就是正則化的基本方法。所以咱們將全部的特徵帶入懲罰過程,並讓代價函數的最優化程序來決定懲罰的程度。

修改後的代價函數:

其中,𝜆 稱爲正則化係數。注意:j 是從1開始的,咱們不對 𝜃0 進行懲罰。

增長正則化項可使 𝜃 減少的緣由在於:優化過程當中,爲了使代價函數儘量的小,在𝜆 的值較大的狀況下,全部的  𝜃 都得在必定程度上減少。

正則化後的模型與原模型對好比下:

 

若是 𝜆 取得過大,那麼全部的參數都最小化了,使得模型變成了 ℎ𝜃(𝑥) = 𝜃0 ,變成了欠擬合。因此對於正則化,咱們須要選取一個合理的  𝜆 。


8.3 線性迴歸的正則化

對於線性迴歸問題,咱們以前介紹過兩種學習算法:梯度降低和正規方程。接下來介紹將正則化加入到兩種學習算法中的細節。

一、梯度降低

由於未對𝜃0 進行正則化,所以梯度降低算法被分開處理(𝜃0 爲一部分,其餘的𝜃爲一部分):

整理第二個式子:

對於未增長正則化項的式子:

能夠看出:正則化線性迴歸的梯度降低,其變化主要在於:每次在原有的更新規則基礎上令 𝜃 值減小了一個額外的值。 

二、正規方程

咱們一樣也能夠利用正規方程來求解正則化線性迴歸模型:

公式中矩陣的維度爲:(n+1,n+1)。


8.4 Logistic迴歸的正則化

第七章中,咱們學習了多種優化算法:基礎的爲梯度降低,以及一些高級優化算法(見7.6)。

在這些高級優化算法中,你須要作的是設計好代價函數 J(𝜃) ,而後調用高級優化算法去最小化 J(𝜃) 。 

與線性迴歸同樣,咱們也須要修改代價函數,即在代價函數中添加正則化項:

一、梯度降低

 

這看起來和線性迴歸的梯度降低過程同樣,然而咱們須要注意的是:在邏輯迴歸中,h𝜃(x) = g(𝜃TX),與線性迴歸徹底不一樣。

二、高級優化算法

咱們依舊能夠用 fminuc 函數等高級優化算法來求解代價函數最小化的參數,值得注意的是參數𝜃0的更新規則與其餘狀況不一樣。


 

 

若是這篇文章幫助到了你,或者你有任何問題,歡迎掃碼關注微信公衆號:一刻AI  在後臺留言便可,讓咱們一塊兒學習一塊兒進步!

以上,就是吳恩達機器學習課程第八章的主要內容。

 

 

 

【重要提示】:本人機器學習課程的主要學習資料包括:吳恩達教授的機器學習課程和黃廣海博士的中文學習筆記。感謝吳恩達教授和黃廣海博士的知識分享和無私奉獻。做爲機器學習小白,計劃每週末記錄一週以來的學習內容,總結回顧。但願你們多多挑錯,也願個人學習筆記能幫助到有須要的人。

相關文章
相關標籤/搜索