過擬合是機器學習中常見的問題之一,指的是一個模型由於過度復雜造成在訓練集中表現良好而在測試集中表現很差的現象,通常是由於參數過多導致數據相對變小造成的。這是因為在采用極大似然估計的方式進行參數的點估計的時候,復雜的模型總是擬合出更好的結果。但是由於模型過於復雜,它的泛化能力並不一定好。頻率派通常采用加一個正規項和交叉驗證的方式處理過擬合問題。與此相對的貝葉斯學派用貝葉斯的方法給出一種自然的方法進行模型選擇, 找到一個復雜度適中的模型,同時避免了過擬合和欠擬合問題,不需要預先留出一部分數據進行驗證。
這里我們所說的模型是指給定數據集的概率分布,用M表示。一個模型的參數越多認為越復雜,模型比較指從不同參數的模型中選出最合適的那一個。貝葉斯模型比較成功的地方在於不是對參數進行點估計,而是邊緣化模型中的參數(求和或者積分)從而直接對不同復雜度的模型進行直接比較。復雜的模型雖然可以更好的擬合出給定數據集,但是也為此付出了代價,因此並不是模型越復雜越好,下面對其原理進行分析。
用D表示訓練集,表示參數個數為i的模型,現在我們需要比較
和
的大小,用貝葉斯方法計算后驗概率
,如下:
對於不同的模型,我們假設其先驗概率相等,因此后驗概率的比較,取決於
,稱為邊緣似然函數或者模型證據。邊緣似然函數可以通過邊緣化似然函數的參數項得到:
現在我們分析並非復雜模型的邊緣似然函數也一定高。我們作如下假設:
1. 參數的先驗概率是均勻的,寬度是,那么我們有
;
2. 參數的后驗概率分布在寬度范圍內的概率密度是
;
得到如下結果:
取對數以后得到如下結果:
上式中的第一項表示了用后驗概率對模型的擬合程度,第二項是一個懲罰項。因為我們總有,所以第二項是一個負數,當我們得到的數據越多,后驗概率確定,第二項越小。上面考慮的是一個參數的情況,如果有M個參數,那么第二項要乘以一個M。可以看出,雖然模型復雜度的增加提高了第一項,但是也降低了第二項。因此我們需要找到一個平衡點,這個平衡點就是復雜度適中的模型。
這個過程可以進一步通過下圖表示:
該圖來自prml
因為簡單的模型只能產生簡單的數據,復雜的模型參數多,不僅可以產生簡單的數據,同時可以產生復雜的數據。當給定的一個數據集后,簡單的模型由於表現能力差,使用邊緣似然函數比較小,同時由於過於復雜的模型可以產生更多的復雜數據,那么它產生該特定數據的概率就會相對變小,因此它的邊緣似然函數同樣不大。只有復雜度適中的模型的邊緣似然函數最大。
最后指出,按照貝葉斯模型比較的方法,通常會獲得正確的模型。假設一個數據是由產生的,我們計算貝葉斯因子的期望值,其中貝葉斯因子的定義為
,
上面正是相對熵的定義,相對熵是恆大於等0的,因此貝葉斯因子是一個非負數,從平均來看,貝葉斯模型選擇正確的模型。
參數資料:
1. pattern recognition and machine learning