1. 程式人生 > >機器學習筆記05:正則化(Regularization)、過擬合(Overfitting)

機器學習筆記05:正則化(Regularization)、過擬合(Overfitting)

說明:文章中的所有圖片均屬於Stanford機器學習課程

(一)過擬合問題(The Problem of Overfitting)

不管是在線性迴歸還是在邏輯迴歸中,我們都會遇到過擬合的問題。先從例子來看看什麼是過擬合。

i.線性迴歸中的過擬合

還是以房價預測為例,來看幾張張圖片:

1.欠擬合(Underfitting)

這裡寫圖片描述

上圖中,我們用一條直線 hθ(x)=θ0+θ1x 來擬合訓練集中資料,但是明顯何以看出的是,房價不會隨面積成比例地增長,這種情況,稱之為欠擬合

2.過擬合(Overfitting)

這裡寫圖片描述

如上圖所示,我們用一條高次的曲線 hθ(x)=θ0+θ1x+
θ2x2+θ3x3+θ4x4
來擬合訓練集中的資料,因為引數過多,對訓練集的匹配度太高、太準確,以至於在後面的預測過程中可能會導致預測值非常偏離合適的值,預測非常不準確,這就是過擬合

3.合適的擬合(Properfitting)

這裡寫圖片描述

如上圖,如果選用一條合適的曲線,比如說拋物線 hθ(x)=θ0+θ1x+θ2x2 來擬合上面的訓練集就非常的合適。這就是一個比較恰當的假設函式(hypothesis function)

所以,總結一下,一般在實際應用中不會遇到欠擬合的情況。而過擬合卻會經常出現。一盤情況下,過擬合(Overfitting)就是:如果我們使用了太多的特徵(features)

來訓練一個假設函式,就會使其對訓練集的匹配度非常高(誤差幾乎為零:J(θ)=12mmi=1(θTx(i)y(i))2),但是不能推廣到其他未知資料上,也就是對於訓練集之外的輸入,不能做出正確的預測。

ii.邏輯迴歸中的過擬合

再來看看邏輯迴歸中的過擬合問題,以腫瘤預測為例。

1.欠擬合(Underfitting)

這裡寫圖片描述

上圖中是在邏輯迴歸的樣本中,用一條直線 z=θ0+θ1x+θ2x 來擬合訓練集,明顯效果不夠理想。這種情況是欠擬合

2.過擬合(Overfitting)

這裡寫圖片描述

而這張圖,用了一個高次假設函式來擬合,使得每個樣本都嚴格地分局於決策邊界(decision boundary)
的兩側,這種情況叫做過擬合

3.合適的擬合(Properfitting)

這裡寫圖片描述

而上面這個二次假設函式則比較合適的擬合了訓練集中的資料。

iii.處理過擬合(Addressing overfitting)

面對過擬合問題,我們可以像在線性迴歸中 Debug 誤差函式(hypothesis function)那樣來畫圖糾錯。以房價預測為例,假設有樣本選取了太多的特徵:

features representation
x1 size of house
x2 no. of bedrooms
x3 no. of floors
x4 age of house
x5 average income in neighborhood
x6 kitchen size
x100 traffic situation


然後我們訓練出來了一個假設函式 hθ(x) 假若發現我們訓練得到的假設函式對於新的輸入,其預測非常的不好。我們可以將其影象畫出來,如果像下圖中那樣過於匹配訓練集中的資料,可能就是過擬合了。其原因大多是因選取了太多的特徵(features)。

這裡寫圖片描述

通常,有兩種主要的辦法來處理過擬合為題:

1.減少特徵的數量
減少特徵數量又包括 人工手動減少特徵數量使用模型選擇演算法,後者會在後面的文章中講到。

2.正則化
正則化(Regularization)則不會減少特徵的數量,因為我們可能真的需要很多特徵,但是此方法會使某個特徵 θj 的值減小,而且當特徵數量很多時,正則化也能工作得很好。後面會具體闡述。

(二)誤差函式(Cost Function)

現在我們就來講一講正則化(Regularization)。首先,看一下之前的兩張圖片:

這裡寫圖片描述

上面的左圖是一個恰當的擬合,其假設函式是一個二次函式(quadratic function);而右圖是過擬合的情況,其假設函式是一個四次函式(quartic function)。那怎麼能夠在不刪除特徵(不減少特徵)的情況下,處理過擬合情況呢。方法如下:

假設我們的假設函式hθ(x)=θ0+θ1x+θ2x2+θ3x3+θ4x4 。與左圖相比,因為三次項和四次項導致了過擬合的現象,所以們可以懲罰三次項和四次項,具體方法是在誤差函式中加入懲罰項:

J(θ)=12m[i=1m(hθ(x(i))y(i))2+1000θ23+1000θ24] 其中1000是我任意寫的一個比較大的數字。在加入懲罰項之後,梯度下降就變成了: θj=θjαθjJ(θ)=θjα1m[i=1m(hθ(x(i))y(i))x(i)j+

相關推薦

機器學習筆記05(Regularization)(Overfitting)

說明:文章中的所有圖片均屬於Stanford機器學習課程 (一)過擬合問題(The Problem of Overfitting) 不管是在線性迴歸還是在邏輯迴歸中,我們都會遇到過擬合的問題。先從例子來看看什麼是過擬合。 i.線性迴歸中的過擬合

吳恩達機器學習(五)(解決問題)

目錄 0. 前言 學習完吳恩達老師機器學習課程的正則化,簡單的做個筆記。文中部分描述屬於個人消化後的理解,僅供參考。 0. 前言 在分類或者回歸時,通常存在兩個問題,“過擬合”(overfitting)和“欠擬合”(underfitting). 過擬

吳恩達深度學習筆記(31)-為什麼可以防止

為什麼正則化有利於預防過擬合呢?(Why regularization reduces overfitting?) 為什麼正則化有利於預防過擬合呢?為什麼它可以減少方差問題?我們通過兩個例子來直觀體會一下。 左圖是高偏差,右圖是高方差,中間是Just Right,這幾張圖我們在前面

機器學習筆記4Regularization

機器學習筆記4:正則化(Regularization) Andrew Ng機器學習課程學習筆記4 過擬合與欠擬合   線性擬合時,有兩種擬合效果不好的情況,分別是過擬合與欠擬合。   過擬合(overfitting),也叫高方差(variance)。主要是擬合曲線過於彎曲,雖然

[知乎]機器學習中使用來防止是什麼原理?

我們相當於是給模型引數w 添加了一個協方差為1/alpha 的零均值高斯分佈先驗。 對於alpha =0,也就是不新增正則化約束,則相當於引數的高斯先驗分佈有著無窮大的協方差,那麼這個先驗約束則會非常弱,模型為了擬合所有的訓練資料,w可以變得任意大不穩定。alph

機器學習(五)--------(Regularization)

技術分享 應用 regular 邏輯 ima 好的 parameter 大小 機器學習 過擬合(over-fitting) 欠擬合 正好 過擬合 怎麽解決 1.丟棄一些不能幫助我們正確預測的特征。可以是手工選擇保留哪些特征,或者使用一 些模型選擇的算法來幫忙(例如 PC

方法/防止提高泛化能力的方法L1和L2 regularization資料集擴增dropout

正則化方法:防止過擬合,提高泛化能力 在訓練資料不夠多時,或者overtraining時,常常會導致overfitting(過擬合)。其直觀的表現如下圖所示,隨著訓練過程的進行,模型複雜度增加,在training data上的error漸漸減小,但是在驗證集上的e

為什麼可以減小?(收藏)

1.cs231n課程筆記 2.吳恩達老師課程筆記 特徵變數過多會導致過擬合,為了防止過擬合會選擇一些比較重要的特徵變數,而刪掉很多次要的特徵變數。但是,如果我們實際上卻希望利用到這些特徵資訊,所以可以新增正則化項來約束這些特徵變數,使得這些特徵變數的權重很小,接近於0,這樣既能保留這些特徵變數,又不至

為什麼能夠降低

我們通過實驗發現正則化能幫助減少過擬合。這是令人高興的事,然而不幸的是,我們沒有明顯的證據證明為什麼正則化可以起到這個效果!一個大家經常說起的解釋是:在某種程度上,越小的權重複雜度越低,因此能夠更簡單且更有效地描繪資料,所以我們傾向於選擇這樣的權重。儘管這是個很簡短的解釋,卻

Coursera | Andrew Ng (02-week-1-1.5)—為什麼可以減少

該系列僅在原課程基礎上部分知識點添加個人學習筆記,或相關推導補充等。如有錯誤,還請批評指教。在學習了 Andrew Ng 課程的基礎上,為了更方便的查閱複習,將其整理成文字。因本人一直在學習英語,所以該系列以英文為主,同時也建議讀者以英文為主,中文輔助,以便後期

python學習筆記9表達式

使用 引入 常用 常用的正則表達式 需要 style pan 表達式 span 一、簡介   正則表達式就是用來查找字符串的;用來匹配一些比較復雜的字符串。   使用正確表達式需要引入re模塊 (regular定期的有規律的)    二、匹配字符串的方法

CS229 Machine Learning學習筆記:Note 5(與模型選擇)

n) 不重復 所有 交叉 war 比例 class 搜索 machine 模型選擇 假設目前有d個學習模型構成的集合\(\mathcal M=\{M_1,\cdots,M_d\}\),訓練集S,下面介紹幾種選取模型的方法 Hold-out cross validation(

吳恩達機器學習 - 邏輯迴歸的 吳恩達機器學習 - 邏輯迴歸的

原 吳恩達機器學習 - 邏輯迴歸的正則化 2018年06月19日 15:07:25 離殤灬孤狼 閱讀數:181 更多

吳恩達深度學習筆記(32)-DropoutDropout Regularization

dropout 正則化(Dropout Regularization) 除了L2正則化,還有一個非常實用的正則化方法——“Dropout(隨機失活)”,我們來看看它的工作原理。 假設你在訓練上圖這樣的神經網路,它存在過擬合,這就是dropout所要處理的,我們複製這個神經網路,dr

coursera-斯坦福-機器學習-吳恩達-

正則化(Regularization) 1.1 過擬合的問題 參考視訊: 7 - 1 - The Problem of Overfitting (10 min).mkv 到現在為止,我們已經學習了幾種不同的學習演算法,包括線性迴歸和邏輯迴歸,它們能夠有效地解決許多問題,但是當將它們應用到

Coursera NG 機器學習 第五週 bias Vs variance Python實現

ex5.py import scipy.optimize as op import numpy as np from scipy.io import loadmat from ex5modules import * #Part 1: Loading and visuali

Python 學習筆記表示式

一、正則表示式的概念 1.使用單個字串來描述匹配一系列符合某個句法規則的字串; 2.是對字串操作的一種邏輯公式; 3.其應用場景為處理文字和資料; 4.正則表示式的執行過程:依次拿出表示式和文字中的字串比較,如果每個字元都能匹配成功,則匹配成功;否則匹配失敗。 二、re模

Python學習筆記26表示式

使用 ? 和 * 萬用字元來查詢硬碟上的檔案。? 萬用字元匹配檔名中的 0 個或 1 個字元,而 * 萬用字元匹配零個或多個字元。像 data(\w)?\.dat 這樣的模式將查詢下列檔案: data.dat data

python爬蟲學習筆記6表示式及re庫

正則表示式 語法 常用操作符 re庫 import re re庫的主要功能函式 re.search() re.search(pattern,string,f

機器學習筆記04邏輯迴歸(Logistic regression)分類(Classification)

說明:本文章所有圖片均屬於Stanford機器學課程,轉載請註明出處 面對一些類似迴歸問題,我們可以通過線性迴歸方法來擬合一個函式,以此來預測資料,但它的輸出是連續的。有時候呢,我們需要一種方法給出一個判定結果,例如”同意(agree)”、”不同意