[TOC]
[林軒田]13-過擬合的危害
什么是過擬合
如下圖我們本來想要的是藍色的二次曲線,取了五個點,但是我們使用紅色的四次曲線穿過這5個點,使得 $$ E_{in} $$ 很小
但是我們從圖像上可以看到 $$ E_{out} $$ 是很大的。
overFitting:
fitting指的是通過學習使得 $$ E_{in} $$ 很小。
overFitting表示 雖然$$ E_{in} $$很小,但是
$$ E_{out} $$卻很大。
underFitting:
做得不夠好, $ E_{in} $ 較大
過擬合的原因
- 使用的模型比較復雜,
- 有噪聲存在
- 數據量有限
從下面的例子我們可以發現,即使我們知道數據是由比較高的次數的多項式生成的,在取得的樣本里面有一些noise,我們依然可以用比較低的次數的多項式得到比較fitting的結果。
concession for advantage.(以退為進)
那么為什么會這樣呢,我們可以從下面的數據量多模型的影響找到答案。
我們就發現 對于相同的N $$ H_2 $$ 比$$ H_{10} $$的Eout要小。有noise的情況下由于 數據量的影響2次多項式比10次多項式效果好。
在灰色的區域,低次多項式比高次效果要好。
當我們需要學的情況比較復雜的時候,實際上這個復雜度也造成了noise.比如用二次多項式和10次多項式,而我們的目標是50次多項式 ,結果2次多項式依然勝出。
下面的情形都會導致簡單的模型比復雜的模型效果好。
精確實驗探究overfit程度的影響因素
三個變數 目標函數多項式的次數、高斯噪聲的強度、數據量
stochastic noise:隨機噪聲,指的是添加的噪聲
deterministic noise:確定性噪聲,指的是目標多項式次數較高(模型復雜)帶來的噪聲。
excessive power:指的是目標多項式比較低,但是使用的模型卻比較復雜造成的。
deterministic 噪聲
下圖中的灰色區域表示的就是目標多項式復雜度與使用的模型復雜度不一樣的時候產生的noise。這個noise與隨機噪聲的區別有兩個
- 與模型的復雜度相關,模型越復雜可能與f的差距越小
- 對于某個給定的點是確定的值,不像隨機噪聲隨著高斯函數的隨機變化(因為本來沒有噪聲)
如果你自己的理解能力比較差,學習的時候就從你能接受的目標學期,這樣灰色區域就比較小了。:)
計算deterministic噪聲的方法就是計算目標函數和當前能使用的次數多項式集里面使得Ein最小的那一個多項式之間的差距。
過擬合的解決辦法
- 從簡單的模型開始
- 數據清洗(修改標簽或者刪除pruning),去除噪聲
- 數據提示data hinting,(人工合成數據,來增大N)
- 正則化 規范化 加上懲罰函數比如 L2
- 驗證法
我們希望增大數據量,但是有的時候,數據量并不好獲得,那么我們可以考慮一下 數據提示data hinting.
data hinting:有時數據資料無法收集太多,那么我們可以從現有的資料,或者你對這個問題的了解去產生新的或者更多的資料,也就是給機器學習算法多一點的提示。
比如,我們做手寫數字識別,但是樣本很少。我們就可以把有的數據改一下成為新的數據。比如把數字‘3’向左稍微的挪一下,把某數據稍微的旋轉一下,以此獲得新數據。但是這有缺點,因為我們所有的模型都是假設數據服從iid條件的,即所有數據都是獨立的,服從同一分布的。我們這樣修改,一定要小心,要不然構造的虛擬樣本不服從原來分布就不好了。
hinting可以理解為有科學根據地捏造數據。