文章目錄
-
- 【機器學習】偏差-方差分解
【機器學習】偏差-方差分解
這差不多是對課堂閱讀材料的翻譯,友善自己加深了解,也是督促自己好好學習。因為是自己翻譯的,是以存在學術名詞翻譯不準确的情況,希望大家看見之後能夠指出。下面是正文部分:
在本章節之前對線性回歸模型的讨論中,我們一直假設基函數的形式和數量是固定的。但正如第一章中提到的那樣,當訓練資料集規模有限而模型又比較複雜的時候,極大似然法或最小二乘法會導緻嚴重的過拟合。然而我們又不能簡單地通過限制基函數的數量來避免過拟合,因為這樣的話就會削弱模型的靈活性,進而錯過資料中本可以獲得的一些有用資訊。盡管引入正則化可以對多參數模型的過拟合問題進行管控。但這又帶來了一個新的問題,即如何确定正則化參數 λ \lambda λ。尋求使正則化誤差方程最小的權重 ω \omega ω和 λ \lambda λ顯然是不可行的,這樣隻能得到一個非正則化的解,此時 λ = 0 \lambda=0 λ=0
正如我們在前面章節看見的那樣,過拟合是極大似然法的一個不好的特性,但當我們在貝葉斯設定中對參數進行精化後,過拟合現象并未出現。在本章中,我們将在一定程度上考慮模型複雜度的貝葉斯觀點。在此之前,我們先了解一下模型複雜度的頻率主義觀點,即bias-variance權衡。
在前面我們針對回歸問題對決策理論進行了讨論。我們讨論了各種不同的損失函數,并且知道一旦給定條件分布 p ( t ∣ x ) p(t|x) p(t∣x),所有損失函數都能得到一個與之相關的最優預測。其中平方損失函數(square loss function) 是最受歡迎的,因為它的最優預測是由條件期望給出的,用 h ( x ) h(x) h(x)l來表示:

在這裡,非常有必要比較一下決策理論中的平方損失函數和模型參數的最大似然法中産生的平方和誤差函數(sum-of squares error function)。我們将采用比最小二乘更複雜一些的技術,例如正則化或完全貝葉斯方法來确定條件分布 p ( t ∣ x ) p(t|x) p(t∣x)。這些方法都能和平方損失函數結合起來進行預測。
在前面章節已經介紹過,期望平方損失可以寫成如下形式:
式子的第二部分由資料的固有噪聲引起,表示期望損失的最小值。第一部分取決于我們對函數 y ( x ) y(x) y(x)的選擇。我們要找到一個使這部分值最小的一個解,因為這部分是非負的,最小隻能為0。如果我們有無限的資料和算力,原則上說,我們可以找到任何精确度的回歸方程 h ( x ) h(x) h(x)。實際上我們隻有一個資料集 D D D, 裡面隻有有限的 N N N個資料點,是以我們無法準确得到回歸方程 h ( x ) h(x) h(x)。
如果我們用一個參數方程 y ( x , w ) y(x,w) y(x,w)對 h ( x ) h(x) h(x)進行模組化,在貝葉斯觀點中,可以用 w w w上的後驗分布來表述模型的不确定性。然而,頻率主義的方法為基于資料集 D D D對 w w w進行點估計。并通過一個思維實驗來解釋其中的不确定性:假設我們有大量規模為 N N N的資料集,都獨立于 p ( t , x ) p(t,x) p(t,x)。對于任意一個資料集 D D D,我們可以運作我們的學習算法,并且得到一個預測函數 h ( x ) h(x) h(x)。不同的資料集将會給出不同的預測函數的平方損失值。最終我們根據平均值來評判這個學習算法的性能。
考慮上式第一部分的被積函數:
因為受到 D D D的影響,是以我們取總體上各資料集的均值。如果我們加上和減去 E D [ y ( x , D ) ] \mathbb{E}_{D}[y(x,D)] ED[y(x,D)],然後展開,就會得到:
現在我們來求這個表達式關于 D D D的期望,并注意,最後一項消失了:
上式的第一部分就是偏差,表示所有資料集的平均預測值與期待的回歸函數之間的差異度。第二部分是方差,用來描述獨立資料集在均值周圍的波動程度,是以也能反映 y ( x , D ) y(x,D) y(x,D)對某個特定資料集的敏感程度。
下面來講一個簡單的例子。考慮一個單輸入 x x x,然後把上面的展開式帶入到最開始 E [ L ] \mathbb{E}[L] E[L]的表達式,得到下列期望平方損失的表達式:
其中:
我們的目标是使期望損失 E [ L ] \mathbb{E}[L] E[L]最小。我們會發現,這裡存在偏差和方差的權衡:柔性模型低偏差高方差,而相對剛性的模型高地方差高偏差。能在二者之間達到一個平衡的模型是最好的預測模型。這裡我們産生 L = 100 L=100 L=100 個資料集,每個資料集的 N = 25 N=25 N=25,均獨立于正弦曲線 h ( x ) = s i n ( 2 π x ) h(x)=sin(2\pi x) h(x)=sin(2πx)。對每個資料集 D ( l ) D^{(l)} D(l),我們通過最小化 E [ L ] \mathbb{E}[L] E[L]來拟合一個帶有24個高斯基函數的模型,并得到相應的預測函數 y ( l ) ( x ) y^{(l)}(x) y(l)(x),如下圖所示:
左列顯示不同 l n λ ln\lambda lnλ下的拟合結果(為了更清晰,隻顯示了20個集合的拟合結果)。右欄顯示了100個拟合值的平均值(紅色),以及生成資料集的正弦函數(綠色)。很明顯,第一排的拟合結果的方差小而偏差大,最後一排的拟合結果的偏差小而方差大。注意,對于參數數量M = 25的複雜模型,多個解取平均的結果對回歸函數的拟合非常好,這表明取平均值可能是一個不錯的過程。 實際上,多重解的權重平均是貝葉斯方法的核心。雖然平均是關于參數的後驗分布的,而不是關于多個資料集的。
下面對這個例子給出定量分析。平均預測函數如下:
偏差平方和方差如下:
根據上面的式子,給出各個變量受 l n λ ln\lambda lnλ影響的曲線畫出下圖:
從圖上也可得到和前面肉眼判斷一樣的結果。
盡管偏差方差分解從一個頻率的角度,對模型複雜度問題給出了有意思的解讀,其實踐意義比較有限。因為偏差方差分解是基于對許多資料集總體求平均的結果上的,然而實際中,我們一般隻有一個可觀資料集。假如我們有大量具有給定大小的獨立訓練集,我們最好将它們組合成單個大型訓練集,這當然會降低對給定模型複雜性的過拟合程度。
鑒于這些局限性,我們将在下一節讨論線性基函數模型的貝葉斯處理,它不僅為過度拟合問題提供了強有力的見解,而且還提供了解決模型複雜性問題的實用技術。