學習算法的預測誤差, 或者說泛化誤差(generalization error)可以分解爲三個部分: 偏差(bias), 方差(variance) 和噪聲(noise). 在估計學習算法性能的過程中, 我們主要關注偏差與方差. 因爲噪聲屬於不可約減的誤差 (irreducible error).
首先拋開機器學習的範疇, 從字面上來看待這兩個詞:
偏差.
這裏的偏指的是 偏離 , 那麼它偏離了什麼到導致了誤差? 潛意識上, 當談到這個詞時, 我們可能會認爲它是偏離了某個潛在的 “標準”, 而這裏這個 “標準” 也就是真實情況 (ground truth). 在分類任務中, 這個 “標準” 就是真實標籤 (label).
方差.
很多人應該都還記得在統計學中, 一個隨機變量的方差描述的是它的離散程度, 也就是該隨機變量在其期望值附近的 波動程度 . 取自維基百科一般化的方差定義:
如果 XX 的轉置.
先從下面的靶心圖來對方差與偏差有個直觀的感受, 我對原圖 [^3] 進行了重繪:
假設紅色的靶心區域是學習算法完美的正確預測值, 藍色點爲每個數據集所訓練出的模型對樣本的預測值, 當我們從靶心逐漸向外移動時, 預測效果逐漸變差.
很容易看出有兩副圖中藍色點比較集中, 另外兩幅中比較分散, 它們描述的是方差的兩種情況. 比較集中的屬於方差小的, 比較分散的屬於方差大的情況.
再從藍色點與紅色靶心區域的位置關係, 靠近紅色靶心的屬於偏差較小的情況, 遠離靶心的屬於偏差較大的情況.
有了直觀感受以後, 下面來用公式推導泛化誤差與偏差與方差, 噪聲之間的關係.
符號 | 涵義 |
---|---|
xx 的 期望預測 輸出 |
泛化誤差
以迴歸任務爲例, 學習算法的平方預測誤差期望爲:
方差
在一個訓練集 DD 的 期望預測 爲:
上面的期望預測也就是針對 不同 數據集 DD 的預測值取其期望, 也被叫做 average predicted 1.
使用樣本數相同的不同訓練集產生的方差爲:
噪聲
噪聲爲真實標記與數據集中的實際標記間的偏差:
偏差
期望預測與真實標記的誤差稱爲偏差(bias), 爲了方便起見, 我們直接取偏差的平方:
對算法的期望泛化誤差進行分解:
不要被上面的公式嚇到, 其實不復雜, 在已知結論的情況下, 瞭解每一項的意義, 就是一個十分簡單的證明題而已, 藍色部分是對上面對應的等價替換, 然後對其展開後, 紅色部分剛好爲 0.
對最終的推導結果稍作整理:
至此, 繼續來看一下偏差, 方差與噪聲的含義 [^2]:
偏差.
偏差度量了學習算法的期望預測與真實結果的偏離程序, 即 刻畫了學習算法本身的擬合能力 .
方差.
方差度量了同樣大小的訓練集的變動所導致的學習性能的變化, 即 刻畫了數據擾動所造成的影響 .
噪聲.
噪聲表達了在當前任務上任何學習算法所能達到的期望泛化誤差的下界, 即 刻畫了學習問題本身的難度 . 巧婦難爲無米之炊, 給一堆很差的食材, 要想做出一頓美味, 肯定是很有難度的.
想當然地, 我們希望偏差與方差越小越好, 但實際並非如此. 一般來說, 偏差與方差是有衝突的, 稱爲偏差-方差窘境 (bias-variance dilemma).
給定一個學習任務, 在訓練初期, 由於訓練不足, 學習器的擬合能力不夠強, 偏差比較大, 也是由於擬合能力不強, 數據集的擾動也無法使學習器產生顯著變化, 也就是欠擬合的情況;
隨着訓練程度的加深, 學習器的擬合能力逐漸增強, 訓練數據的擾動也能夠漸漸被學習器學到;
充分訓練後, 學習器的擬合能力已非常強, 訓練數據的輕微擾動都會導致學習器發生顯著變化, 當訓練數據自身的、非全局的特性被學習器學到了, 則將發生過擬合.
參考資料:
- Bias variance tradeoff 公式圖解 .
[^2]: <<機器學習>>, 周志華, 2.5 節偏差與方差.
[^3]: Understanding the Bias-Variance Tradeoff ↩