2.5 偏差與方差
對學習算法除了通過實驗估計其泛化性能,人們往往還希望了解它“為什么”具有這樣的性能。“偏差–方差分解”(bias-variance decomposition)是解釋學習算法泛化性能的一種重要工具。
偏差–方差分解試圖對學習算法的期望泛化錯誤率進行拆解。我們知道,算法在不同訓練集上學得的結果很可能不同,即便這些訓練集是來自同一個分布。對測試樣本x,令yD為x在數據集中的標記,y為x的真實標記,f(x;D)為訓練集D上學得模型f在x上的預測輸出。以回歸任務為例,學習算法的期望預測為

使用樣本數相同的不同訓練集產生的方差為

噪聲為

期望輸出與真實標記的差別稱為偏差(bias),即

為便于討論,假定噪聲期望為零,即D[yD-y]=0。通過簡單的多項式展開合并,可對算法的期望泛化誤差進行分解:

于是,

也就是說,泛化誤差可分解為偏差、方差與噪聲之和。
回顧偏差、方差、噪聲的含義:偏差(2.40)度量了學習算法的期望預測與真實結果的偏離程度,即刻畫了學習算法本身的擬合能力;方差(2.38)度量了同樣大小的訓練集的變動所導致的學習性能的變化,即刻畫了數據擾動所造成的影響;噪聲(2.39)則表達了在當前任務上任何學習算法所能達到的期望泛化誤差的下界,即刻畫了學習問題本身的難度。偏差–方差分解說明,泛化性能是由學習算法的能力、數據的充分性以及學習任務本身的難度所共同決定的。給定學習任務,為了取得好的泛化性能,則需使偏差較小,即能夠充分擬合數據,并且使方差較小,即使得數據擾動產生的影響小。
一般來說,偏差與方差是有沖突的,這稱為偏差–方差窘境(bias-variance dilemma)。圖2.9給出了一個示意圖。給定學習任務,假定我們能控制學習算法的訓練程度,則在訓練不足時,學習器的擬合能力不夠強,訓練數據的擾動不足以使學習器產生顯著變化,此時偏差主導了泛化錯誤率;隨著訓練程度的加深,學習器的擬合能力逐漸增強,訓練數據發生的擾動漸漸能被學習器學到,方差逐漸主導了泛化錯誤率;在訓練程度充足后,學習器的擬合能力已非常強,訓練數據發生的輕微擾動都會導致學習器發生顯著變化,若訓練數據自身的、非全局的特性被學習器學到了,則將發生過擬合。

圖2.9 泛化誤差與偏差、方差的關系示意圖