對於需要擬合的數據(x1,x2,x3…) 我們可以使用一個多項式取擬合這些數據 如果這些數據分佈 f(x) 爲二次函數
當我們使用一個好的VC dimension 即和原始分佈相似的VC dimension 那麼我們可以較好的擬合原始數據分別
當我們選擇的VC dimension較大的時候 我們同樣也可以很好的fit訓練數據 但是由於模型過於複雜 可能只是在給定的數據點處較好的擬合數據 泛化能力可能不會這麼好
overfitting可能性:
- 使用過大的VC dimension
- 數據存在noise
- 訓練樣本N數量過小
OverFiting 實驗:
對於訓練數據分佈 十次多項式加噪聲生成數據
使用50次多項式不加噪聲
對於上述兩個數據分佈 我們採用不同的模型取擬合這些數據分佈
- 使用二次多項式取擬合 十次多項式加noise 產生的數據
- 使用十次多項式取擬合 十次多項式加noise 產生的數據
可想而知 十次多項式的表達能力肯定是比二次多項式要強的 因此它對於Ein的擬合能力也是要比二次多項式來的強 如果沒有噪聲的存在 那麼十次多項式是可以在所有的數據分佈空間中完全擬合數據的 但是由於噪聲的存在 訓練所得十次多項式的係數 和原始生成數據的係數會有一定的差異
所以和二次多項式比 訓練所得的十次多項式 對數據擬合能力更強 但是擬合的是在噪聲存在的分佈下的 訓練數據 所以可能導致泛華結果更差
擬合50次多項式生成的數據
可見十次多項式擬合50次多項式的時候在Eout上表現也更差 參見下圖分佈數據和擬合數據的分佈
由此可見 即便知道目標函數是十次多項式 使用十次多項式去擬合也不見得結果會好
當資料量不夠多的時候
當N比較小的時候我們可以看到 H10所能夠產生的Eout是遠比H2要來的大的
總結overfitting發生的可能情況:
1.當數據量過小的時候 會發生
2. 左圖隨着數據Noise增加 會發生overfitting
3. 當目標函數的複雜度過大時 和上述分析一樣會發生overfitting
4. 因爲比較的是十次多項式和二次多項式 如果目標是十次多項式以下的時候也會出現overfitting
這裏解釋一下爲什麼目標函數過於複雜的時候也會帶來Noise 即 deterministic noise
如果在hypothesis set中不存在我們要尋找的那個f 這時和在某一個能夠擬合的f上加noise 十分相似
唯一不同的是這個noise不是隨機加的 而是和h有關 圖中灰色的區域即爲要求的noise
如何解決overfitting
- 從簡單的hypothesis做起
- 減小資料中的噪聲
- 增加資料數量或者其他信息
重點是要查找出outlier