下面的內容是臺灣大學李宏毅老師2016年的機器學習課程第5課 Where does the error come from? 的筆記。
輔助記憶:模型可以看成是範圍有限的某個參數空間(二維的參數空間是平面),訓練的過程就是在這個空間中尋找一點,簡單的模型空間範圍有限,複雜的模型空間範圍更大,更可能包含我們尋找的目標函數。
一些不成體系的文字
一般地,訓練模型在測試數據上的誤差主要來源於兩個方面,一個是模型的誤差(bias),另一個是模型的方差(variance)。
在測試數據上,較複雜的模型不一定能夠取得很好的性能。
我們訓練得到的模型 只是對於真實函數 的一種估計(當然實際中並不知道 的表達式)。
我們訓練得到的函數只是參數空間中的一個點,舉個例子,比如我們的假設集(hypothesis set)爲 ,那麼我們需要確定的參數只有兩個,因此我們的參數空間就是某個平面(比如說一個圓),而我們最終求得的函數只是這個平面上的一點,因此訓練得到的函數可以看成是參數空間中的一點。
誤差(Bias)的結論
越是簡單的模型,其誤差就越大;而越是複雜的模型,其誤差就越小。可以這麼解釋,簡單模型的參數空間的取值範圍較小,可能不包括目標函數的參數取值;與之相反,複雜模型的參數空間的取值範圍較大,可能會包含目標函數的參數取值。
方差(Variance)的結論
越是簡單的模型,其方差就越小,極端的情況就是 ,此時的方差爲 ;與之相反,越是複雜的模型,其方差就越大。可以這麼解釋,簡單模型的參數空間的取值範圍很小,因此無論最後取什麼值,各個取值之間的“距離”都不會太大;而複雜模型的參數空間的取值範圍很大,因此各個取值之間的“距離”是存在比較大的差異的。總而言之,越簡單的模型越不易受到訓練數據的影響。
誤差 v.s. 方差
在實際中,最好在兩種誤差之間進行權衡,使得總的誤差最小。
應對方法
對於欠擬合(Underfitting),即誤差(Bias)較大的情況:
- 重新選擇一個更加複雜的模型
- 添加更多的特徵
對於過擬合(Overfitting),即方差(Variance)較大的情況:
- 更多的數據(理想情況)
- 正則化