機器學習模型的誤差分析
- V1.0
- 機器學習模型的衡量準則
- 概念引入
- 機器學習模型誤差分析
- 誤差出現的原因及消除
V1.0
機器學習模型的衡量準則
衡量機器學習模型的好壞可以考慮以下幾個方面:
-
偏差(Bias):
在充分訓練的情況下,機器學習模型是否能夠較好地擬合訓練數據,以反映真實規律。這些問題可以被稱為模型的能力,衡量這一問題的指標稱為偏差(Bias)。
-
方差(Variance):
在充分訓練的情況下,不同的機器學習模型對不同訓練數據集敏感程度不同。某些機器學習模型使用不同的訓練數據進行訓練,所得到的模型的輸出結果較為穩定。而某些機器學習模型使用不同的訓練數據進行訓練,所得到的模型的輸出結果不穩定,有較大波動,即對不同訓練數據的魯棒程度較低。衡量機器學習對訓練數據的魯棒程度這一問題的指標稱為方差(Variance)。
-
噪聲(Noise):
機器學習模型是為了擬合訓練數據,以達到反映真實數據規律的功能。在實際情況中,采集到的訓練數據往往不等于真實數據,訓練數據往往會包含隨機波動,因此會對模型的結果造成一定的誤差。訓練數據的隨機波動往往是因為測量方法限制、測量精度限制、標注錯誤等而產生的。衡量訓練數據中真實規律數據以外的隨機擾動的指標稱為噪聲(Noise)。
概念引入
為了對機器學習模型的誤差進行分析,需要明確以下幾個概念
-
f ^ ( x ) \space\hat{f}(x)\space ?f^?(x)?數據預測函數(Estimated function):
數據預測函數 f ^ ( x ) \space\hat{f}(x)\space ?f^?(x)?是通過訓練過程得到的機器學習模型,使用該模型對輸入數據進行預測。
同樣結構的機器學習模型,使用不同的訓練集和初始值以及訓練方法進行訓練,應該會得到有差異的結果。因此對預測函數的輸出結果求期望值 E ( f ^ ( x ) ) \space E(\hat{f}(x))\space ?E(f^?(x))?是有意義的,該期望值能夠反映不同訓練條件下,模型結果的平均水平。 -
y \space y\space ?y?觀測值(Observed Value):
使用觀測手段觀測所得到的數據,即訓練時模型使用的實際數據。觀測值是包含噪聲的真實數據,由于測量方法限制、測量精度限制、標注錯誤等原因會和真實值 f ( x ) \space f(x)\space ?f(x)?有偏差。觀測值 y \space y\space ?y?與真實函數 f ( x ) \space f(x)\space ?f(x)?的關系如下:
y = f ( x ) + ? y=f(x)+\epsilon y=f(x)+?其中 ? \space \epsilon\space ???是噪聲,噪聲的方差為 V a r ( ? ) = σ 2 \space{Var(\epsilon)}=\sigma^2 ?Var(?)=σ2。
-
f ( x ) \space f(x)\space ?f(x)?真實函數(True Function):
真實函數 f ( x ) \space f(x)\space ?f(x)?反映問題的數據的客觀真實規律,具體來說,即反映真實的數據輸入到輸出的映射規律,是理想的不包含噪聲的。采集的訓練數據往往是由真實數據及隨機擾動的噪聲 ? \space \epsilon\space ???兩部分組成的。
機器學習模型誤差分析
機器學習模型誤差可以分解為偏差、方差和噪聲3個部分,公式如下:
E [ ( f ^ ( x ) ? y ) 2 ] = Bias 2 ( f ^ ( x ) ) ? 偏差 + Var ( f ^ ( x ) ) ? 方差 + σ 2 ? 噪聲 E[(\hat{f}(x)-y)^2]=\underbrace{\text{Bias}^2(\hat{f}(x))}_{偏差}+\underbrace{\text{Var}(\hat{f}(x))}_{方差}+\underbrace{\sigma^2}_{噪聲} E[(f^?(x)?y)2]=偏差 Bias2(f^?(x))??+方差 Var(f^?(x))??+噪聲 σ2??
機器學習的誤差分析公式,在滿足噪聲獨立性、零均值噪聲和模型針對多個訓練集求期望時,公式是嚴謹的。這部分內容更加復雜,本文不進行探討,可以自行尋找資料研究。
-
偏差(Bias)
偏差反映了多次訓練模型預測結果與真實結果之間的系統性誤差。公式如下:
B i a s ( f ^ ( x ) ) = E [ f ^ ( x ) ] ? f ( x ) Bias(\hat{f}(x))=E[\hat{f}(x)]-f(x) Bias(f^?(x))=E[f^?(x)]?f(x)
公式理解:偏差即為預測模型的預測結果的期望與真實函數預測結果的差值。偏差反映了在充分訓練的情況下模型結構的能力。
偏差越小,說明模型擬合能力越強,更適用于該種問題。偏差越小,也有可能是過擬合的原因,此時通常會偏差小而方差大。偏差越大,說明預測模型的預測結果的系統性偏離了要擬合的訓練數據,無法有效反應真實規律。 -
方差(Variance)
方差反映了模型對不同的訓練數據是否魯棒。訓練數據的隨機波動會對模型訓練結果產生影響。方差的公式如下:
V a r ( f ^ ( x ) ) = E [ ( f ^ ( x ) ? E [ f ^ ( x ) ] ) 2 ] Var(\hat{f}(x))=E[(\hat{f}(x)-E[\hat{f}(x)])^2] Var(f^?(x))=E[(f^?(x)?E[f^?(x)])2]公式理解:方差為各個訓練集訓練結果 f ^ ( x ) \space \hat{f}(x)\space ?f^?(x)?分別減去所有預測結果的期望值 E [ f ^ ( x ) ] \space E[\hat{f}(x)] ?E[f^?(x)],每個差值 ( f ^ ( x ) ? E [ f ^ ( x ) ] ) \space (\hat{f}(x)-E[\hat{f}(x)])\space ?(f^?(x)?E[f^?(x)])?平方后求期望,即正常求方差的過程。
方差反映了模型對不同訓練數據的敏感程度。方差高,同樣的訓練程度,不同的訓練集訓練出的機器學習模型的預測結果差異大。這通常是由于模型訓練發生了過擬合,模型過多的擬合了訓練數據中的噪聲,造成其泛化能力下降。低方差的情況下,不同訓練集訓練出的模型預測結果更穩定。
-
噪聲(Noise)
噪聲是由于訓練數據本身包含的不可約誤差,給機器學習模型造成的誤差。由于噪聲的存在,導致采集到的訓練數據偏離真實數據,這些有噪聲的訓練數據會限制模型性能的上限。
誤差出現的原因及消除
-
高偏差的原因:
訓練不充分,或模型能力不足,可能是模型類型選擇不當或模型參數量不夠。解決方法:
– 選擇更合適的模型。
– 增加同種模型的復雜度或參數量。如線性回歸模型可使用多項式線性回歸,或神經網絡增加網絡層數和參數數量。 -
高方差的原因:
模型過于復雜,擬合能力過強,導致過度擬合了特定訓練數據或噪聲,導致其泛化能力差。解決方法:
– 可以進行模型簡化,例如神經網絡減少參數數量。
– 增加訓練數據量。
– 使用正則化手段,如L1、L2正則化。
– 使用集成學習方法。 -
噪聲出現的原因:
噪聲產生于數據生成過程中的不確定因素,所導致的訓練數據的隨機擾動。
噪聲產生的原因包括數據采集層面的原因,如攝像頭像素噪聲,聲音采集時的環境噪聲等。以及數據標注層面的噪聲,例如正負評論類別標注錯誤等。解決方法:
噪聲不可能完全消除,可以對數據進行處理盡量降低其影響。
– 可以使用更加魯棒的模型。
– 使用集成學習方法。