轉載請注明出處:http://www.cnblogs.com/ymingjingr/p/4271742.html
目錄
機器學習基石筆記1——在何時可以使用機器學習(1)
機器學習基石筆記2——在何時可以使用機器學習(2)
機器學習基石筆記3——在何時可以使用機器學習(3)(修改版)
機器學習基石筆記4——在何時可以使用機器學習(4)
機器學習基石筆記5——為什么機器可以學習(1)
機器學習基石筆記6——為什么機器可以學習(2)
機器學習基石筆記7——為什么機器可以學習(3)
機器學習基石筆記8——為什么機器可以學習(4)
機器學習基石筆記9——機器可以怎樣學習(1)
機器學習基石筆記10——機器可以怎樣學習(2)
機器學習基石筆記11——機器可以怎樣學習(3)
機器學習基石筆記12——機器可以怎樣學習(4)
機器學習基石筆記13——機器可以怎樣學得更好(1)
機器學習基石筆記14——機器可以怎樣學得更好(2)
機器學習基石筆記15——機器可以怎樣學得更好(3)
機器學習基石筆記16——機器可以怎樣學得更好(4)
十三、Hazard of Overfitting
過擬合的危害
13.1 What is Overfitting?
什么是過擬合?
假設一個輸入空間X是一維的,樣本點數量為5的回歸問題,其目標函數為二次函數,但是標記 包含噪音,因此標記表示為
。使用四次多項式轉換結合線性回歸求解該問題的權值向量w,得出
的唯一解,如圖13-1所示。
圖13-1 二次的目標函數與四次多項式的最優假設函數
從圖中不難得出該假設函數的 很大,因此四次的多項式函數有很差的泛化能力。
依據圖13-2中分析此問題,在VC維 變大時,
變小,但
變大,此種情況稱作過擬合(overfitting),意思為在訓練樣本上擬合做的很好,
非常小,但是過度了,使得泛化能力變差,導致
很大;當然還有一種情況是VC維
變小時,出現了
越來越小,同時
也越來越小,此種情況稱為欠擬合(underfitting)。其中如何解決欠擬合的問題已經在12.4節作了介紹, 不斷地提高多項式次數,使得VC維
提高,達到擬合的效果,但過擬合的問題更為復雜,以后的章節會更深入的探討。過擬合和壞的泛化有所不同,過擬合指的是
和
變化的過程,在
變小,
變大時稱為過擬合;而壞的泛化是在某一點,
很小,
很大。
圖13-2 VC維與錯誤率之間的關系
或許理解上還是有些困難,用一個類比的方式,便於人理解。將機器學習比作開車,如表13-1所示。
表13-1
機器學習 |
開車 |
過擬合 |
出車禍 |
使用過度的VC維 |
開得太快 |
噪音 |
顛簸的路面 |
數據量的大小 |
對路面狀況的觀察 |
其中第3~5行表示構成第2行的原因,即除了VC維度之外噪音和訓練數據的大小對過擬合都有影響。
13.2 The Role of Noise and Data Size
噪音與數據量所扮演的角色。
為了更直觀的解釋產生過擬合的因素,設計兩個實驗,分別設計兩個目標函數,一個10次多項式,另一個50次多項式,前者加上噪音,后者無噪音,生成如圖13-3所示的數據點。
圖13-3 a) 10次多項式加上噪音生成的訓練數據 b) 10次多項式沒有噪音生成的訓練數據
使用兩種不同的學習模型(二次式假設空間 與10次多項式假設空間
)分別根據以上兩個生成的訓練數據進行學習。
首先,使用兩種模型學習13-3a)生成的數據,兩種模型產生的最優假設如圖13-4所示,其中綠線表示二次模型學習得到的假設函數g, ,紅色表示10次模型學習得到的假設函數g,
。
圖13-4 兩種模型學習10次目標函數生成的數據
這兩個最優函數的錯誤率如表13-2所示,在上,顯然二次函數不如10次函數的錯誤率低,但是在
上,10次函數遠遠的高於2次函數(能夠知道
是因為已知目標函數,當然在現實中是不可能的),說明在做10次函數生成的訓練數據上,使用2次函數模型會得到效果更優的
。
表13-2兩種模型從10次目標函數生成數據產生的錯誤率
|
|
|
|
0.050 |
0.034 |
|
0.129 |
9.00 |
繼續使用這兩種模型對13-3 b)生成的數據進行學習,得到兩種假設函數如圖13-5所示。
圖13-5兩種模型學習50次目標函數生成的數據
這兩個最優函數的錯誤率如表13-3所示,在上,顯然二次函數不如10次函數的錯誤率低,但是在
上,10次函數遠遠的高於2次函數,說明在做50次函數生成的訓練數據上,使用2次函數模型會得到效果更優的
。
表13-3兩種模型從50次目標函數生成數據產生的錯誤率
|
|
|
|
0.029 |
0.00001 |
|
0.120 |
7680 |
難道在兩種情況下,從2次函數到10次函數都是過擬合?答案是對的。為什么二次式模型與目標函數的次數有很大差距反而比10次多項式模型學習能力還好?
要從學習鴻溝說起(learning curves),二次函數和10次函數的學習鴻溝如圖13-6所示。
圖13-6 a) 二次函數學習鴻溝 b) 10次函數學習鴻溝
從圖中可以看出,數據量少時,盡管2次假設的比10次函數的
大很多,但是2次假設中
和
的差距比10次假設小的多,因此在樣本點不多時,低次假設的學習泛化能力更強,即在灰色區域(樣本不多的情況下)中,高次假設函數發生了過擬合。
上述闡述了在含有噪音的情況下,低次多項式假設比和目標函數同次的多項式假設表現更好,那如何解釋在50次多項式函數中也是二次式表現好的現象呢?因為50次目標函數對於不論是2次假設還是10次假設都相當於一種含有噪音的情況(兩者都無法做到50次的目標函數,因此相當於含有噪音)。
13.3 Deterministic Noise
確定性噪音。
數據樣本由兩個部分組成,一是目標函數產生,和在此之上夾雜的噪音。其中假設噪音服從高斯分布,稱作高斯噪音,其強度為 ;目標函數使用復雜度
表示,即
次多項式函數。
不難看出過擬合和噪音強度、目標函數復雜度
(上節最后說明高次也是一種噪音形式)和訓練數據量N都有着密切的關系,以下通過固定某一參數對比其他兩個參數的方式,觀察每個參數對過擬合的影響,分為
和
。
為了體現各個參數的影響,通過編寫的程序完成一些規定的實驗,繪制成具體的圖像,便於理解。和上一節相同使用兩種學習模型測試,二次式模型和10次多項式模型,其最優假設函數分別表示為 ,
,錯誤率滿足
,並使用
作為過擬合的衡量。分別固定復雜度
和噪音強度
得到如圖13-7所示的兩幅圖。
圖13-7 a) 固定算法強度時
與N對擬合度的影響 b) 固定噪音強度
時
與N對擬合度的影響
圖13-7 a)表示在固定算法強度時 ,噪音強度
與樣本數據量N對擬合度的影響,圖中的顏色表示過擬合程度,深紅色的部分表示過擬合,藍色表示表現好,從圖中得知在噪音強度
越大與樣本數據量N越小時,過擬合越嚴重,有關高斯噪音產生的噪音又被稱作隨機噪音(stochastic noise);圖13-7 b)表示在固定噪音強度
時 ,算法強度
與樣本數據量N對擬合度的影響,從圖中得知在算法強度
越大且樣本數據量N越小時,過擬合越嚴重,在圖的左下角的表現,與圖13-7 a)的表現略有不同,即在算法強度
且數據量很小成三角形的區域,造成該現象的原因是此處選用的兩個模型是二次式與10次多項式,而在低於10次的目標函數中使用10次多項式模型學習,即產生了13.1節中提過的,過度的VC維使用,有關算法強度產生也相當於產生了噪音,稱作確定性噪音(deterministic noise)。
總結,造成嚴重過擬合現象的原因有四個:數據量N少,隨機噪音高,確定性噪音高,過量的VC維。
可能確定性噪音比較難於理解,通過圖13-8再做一次簡單的解釋。
圖13-8 確定性噪音示意圖
其中藍色曲線表示目標函數,紅色取消表示二次式函數模型學習到的曲線,其中紅色曲線的彎曲的形狀使用2次函數是不可能模仿的,因此就相當於一種噪音。為什么使用低次函數學習效果卻好呢?;這類似於教小孩學習學習簡單的問題反而有助於成長。
13.4 Dealing with Overfitting
處理過擬合。
回憶13.1節中的表13-1,,提到了產生過擬合的三種原因,本節提出防止出現過擬合的幾種情況,該情況與防止出車禍的應對措施作對比如表13-4所示。
表13-4 防止過擬合的措施與防止出車禍的措施的對比
從簡單的模型出發 |
開慢點 |
數據清理/裁剪(data cleaning/pruning) |
更准確的路況信息 |
數據提示(data hinting) |
獲取更多的路況信息 |
正則化(regularization) |
踩剎車 |
確認(validation) |
安裝儀表盤 |
從簡單模型出發的措施在前幾節中都有體現,不再贅述,本節主要介紹數據清理以及數據提示,而正則化和確認則在后面的章節介紹。
以手寫數字數據為例,介紹數據清理和數據裁剪,觀察圖13-9,手寫數字為1的使用 表示;手寫數字為5的使用
表示。其中在數字1中存在一個數字5的樣本點,即圖中左上角中的
,查看該樣本的原圖很難看出是數字5,類似這種離不同類別很近,離相同類別很遠的樣本,可以認為是噪音或者是離群點(outlier)。應對該種情況,有兩種措施可用:糾正標識號,即數據清理(data cleaning)的方式處理該情況;刪除錯誤樣本,即數據裁剪(data pruning)的方式處理。處理措施很簡單,但是發現樣本是噪音或離群點卻比較困難。
圖13-9 手寫數字的分布情況
繼續介紹數據提示,還是以手寫數字集為例,將如圖13-10所示的手寫數字集略作修改產生更多的手寫數字樣本,達到增加數據量N的目的。如將如下手寫數字略作旋轉(rotating)和平移(shifting),但要注意旋轉和平移的幅度都不能太大,如6轉180°就成了9。還需注意這種方式產生的虛擬樣本(virtual examples),不在符合獨立同分布,因此產生的虛擬樣本與實際樣本差距一定不宜太大。
圖13-10 手寫數字集