1. 程式人生 > >偏差方差分解

偏差方差分解

ilo 個數 度量 lin 等價 重復 測試 控制 tab

偏差方差分解 (誤差分解)

先引入一個問題: Machine Learning 與 Curve Fitting 的區別是什麽?1

Curve Fitting 是使用所有的數據擬合一條曲線; 而 Machine Learning 是采用真實世界中采樣的一小部分數據,並且我們希望我們的模型能夠對於未知數據有不錯的泛化性能.因此涉及到Bias-Variance的權衡.

學習算法的預測誤差, 或者說泛化誤差(generalization error)可以分解為三個部分: 偏差(bias), 方差(variance) 和噪聲(noise). 在估計學習算法性能的過程中, 我們主要關註偏差與方差. 因為噪聲屬於不可約減的誤差 (irreducible error).

下面來用公式推導泛化誤差與偏差與方差, 噪聲之間的關系.

符號 涵義
\(\mathbf{x}\) 測試樣本
\(D\) 數據集
\(y_{D}\) \(\mathbf{x}\) 在數據集中的標記
\(y\) \(\mathbf{x}\) 的真實標記
\(f\) 訓練集 \(D\) 學得的模型
\(f(\mathbf{x}; D)\) 由訓練集 \(D\) 學得的模型 \(f\)\(\mathbf{x}\) 的預測輸出
\(\bar{f}(\mathbf{x})\) 模型 \(f\)\(\mathbf{x}\)期望預測 輸出

泛化誤差

以回歸任務為例, 學習算法的平方預測誤差期望為:

\begin{equation}
Err(\mathbf{x}) = E\left[\left( y - f(\mathbf{x}; D) \right)^2\right]
\end{equation}

方差

在一個訓練集 \(D\) 上模型 \(f\) 對測試樣本 \(\mathbf{x}\) 的預測輸出為 \(f(\mathbf{x}; D)\), 那麽學習算法 \(f\) 對測試樣本 \(\mathbf{x}\)期望預測 為:

\begin{equation}
\overline{f}(\mathbf{x}) = E_D\left[f\left(\mathbf{x}; D\right)\right]

\end{equation}

上面的期望預測也就是針對 不同 數據集 \(D\), \(f\)\(\mathbf{x}\) 的預測值取其期望, 也被叫做 average predicted.

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

\begin{equation}
\rm{var}(\mathbf{x}) = E_D\left[\left( f(\mathbf{x}; D) - \overline{f}(\mathbf{x}) \right)^2\right]
\end{equation}

噪聲

噪聲為真實標記與數據集中的實際標記間的偏差:

\begin{equation}
\varepsilon^2 = E_D\left[ (y_D - y)^2 \right]
\end{equation}

偏差

期望預測與真實標記的誤差稱為偏差(bias), 為了方便起見, 我們直接取偏差的平方:

\begin{equation}
\rm{bias}^2(\mathbf{x}) = \left( \overline{f}(\mathbf{x}) - y \right)^2
\end{equation}

對算法的期望泛化誤差進行分解:

技術分享圖片

上面的公式2藍色部分是對上面對應的等價替換, 然後對其展開後, 紅色部分剛好為 0.

對最終的推導結果稍作整理:

技術分享圖片

至此, 繼續來看一下偏差, 方差與噪聲的含義 3:

偏差、方差、噪聲

  1. 偏差:度量了模型的期望預測和真實結果的偏離程度,刻畫了模型本身的擬合能力
  2. 方差:度量了同樣大小的訓練集的變動所導致的學習性能的變化,即刻畫了數據擾動所造成的影響
  3. 噪聲:表達了當前任務上任何模型所能達到的期望泛化誤差的下界,刻畫了學習問題本身的難度

偏差-方差窘境(bias-variance dilemma)

為了得到泛化性能好的模型,我們需要使偏差較小,即能充分擬合數據,並且使方差小,使數據擾動產生的影響小。但是偏差和方差在一定程度上是有沖突的,這稱作為偏差-方差窘境。

下圖給出了在模型訓練不足時,擬合能力不夠強,訓練數據的擾動不足以使學習器產生顯著變化,此時偏差主導泛化誤差,此時稱為欠擬合現象。當隨著訓練程度加深,模型的擬合能力增強,訓練數據的擾動慢慢使得方差主導泛化誤差。當訓練充足時,模型的擬合能力非常強,數據輕微變化都能導致模型發生變化,如果過分學習訓練數據的特點,則會發生過擬合。

  • 針對欠擬合,我們提出集成學習的概念並且對於模型可以控制訓練程度,比如神經網絡加多隱層,或者決策樹增加樹深。
    增加模型的叠代次數;更換描述能力更強的模型;生成更多特征供訓練使用;降低正則化水平。
  • 針對過擬合,我們需要降低模型的復雜度,提出了正則化懲罰項。
    擴增訓練集;減少訓練使用的特征的數量;提高正則化水平。

隨著模型復雜度的提升, 偏差逐漸減小, 方差逐漸增大. 最佳的模型復雜度是在 Total Error 最小的時候, 該點導數為0. 由於 Err=variance+bias+noise, 所以在拐點處:4

\[ \newcommand{\dif}{\mathop{}\!\mathrm{d}} \frac{\dif\text{Bias}}{\dif\text{Complexity}} = - \frac{\dif\text{Variance}}{\dif\text{Complexity}} \]

給出了尋找最優平衡點的數學描述。若模型復雜度大於平衡點,則模型的方差會偏高,模型傾向於過擬合;若模型復雜度小於平衡點,則模型的偏差會偏高,模型傾向於過擬合。

技術分享圖片

Bias-Variance Tradeoff 理論意義

  • 能夠讓我們更好地認識模型的復雜度, 指導我們對模型的改進方向.
  • 偏差-方差分解實用價值很有限. 偏差和方差並不能夠真正的被計算,因為我們不知道數據的真實分布. 偏置-方差分解依賴於對所有的數據集求平均,而在實際應用中我們只有一個觀測數據集。

K折交叉驗證與Bias-Variance關系

為什麽K-fold Cross Validation中的k值會影響偏差和方差呢?

K折交叉驗證重復k次地把數據集分成訓練集和測試集,K值越大,每次劃分的訓練集就越大,估計模型的期望\(E[\hat f]\)就越接近整個數據集的真實模型f,因此模型偏差就越小。 5

參考資料:


  1. http://www.learnopencv.com/bias-variance-tradeoff-in-machine-learning/?

  2. 偏差與方差?

  3. 《機器學習》, 周誌華, 2.5 節偏差與方差.?

  4. Understanding the Bias-Variance Tradeoff?

  5. 機器學習中的Bias(偏差),Error(誤差),和Variance(方差)有什麽區別和聯系??

偏差方差分解