請注意: 本文是翻譯的一份學習資料,
中文版地址: https://dark417.github.io/MachineLearning/sv_bias_variance_tradeoff_ch/
英文原版請點選Wei的學習筆記: https://wei2624.github.io/MachineLearning/sv_bias_varience_tradeoff/。中文筆記將不斷和原作者的英文筆記同步內容,定期更新和維護。
在這一節中,我們重點討論偏差和誤差之間是如何相互關聯的。我們總想擁有0偏差和0方差,然而在實際中這是不可能的。因此,它們之間總會有權衡,一者多,另一者少。
1 偏差-方差間權衡 (Bias Variance Tradeoff)
我們將基於一些樣本訓練好的模型定義為,並且y為事實標籤。因此,均方差(mean squared error(MSE))可以定義為:
對於很高的均方差,我們有以下3種解釋:
過渡擬合(overfitting): 模型只在訓練樣本中表現良好,但是並不能很好地推廣適用到測試資料上。
欠擬合(underfitting): 模型訓練還不夠,或者沒有足夠的訓練資料,以至於模型不能很好的表示訓練資料的情況。
兩者都不: 資料的噪音(noise)太大。
我們將這些情況歸納為偏差-方差權衡(Bias-Variance Tradeoff)。
假設所有資料都來自於以下定義的相似的分佈: 其中噪音 。
儘管我們的目標是計算f,但我們只能透過從以上分佈所產生的樣本中訓練得到一個估值。因此, 是隨機的,因為它取決於隨機的,並且它也是的預測值。因此,得出是很合理的。
我們也可以計算MSE的期望:
第一項是我們無法處理的噪聲。高偏差意味著模型的學習效率很低,並且欠擬合。一個高度的方差代表著模型不能很好的概括更多普通的情況,同時代表過渡擬合。
2 誤差分析 (Error Aanalysis)
為了分析一個模型,我們應該首先將模型模組化。然後我們將每個模組的事實標籤代入到每一模組中,觀察每一個變化會如何影響整體模型的精確度。我們試圖觀察事實標籤中的哪個模組對模型系統的影響最大。以下是一個例子
組成 | 精確度 |
總體系統 | 85% |
預處理(移除背景) | 85.1% |
臉部識別 | 91% |
眼部分割 | 95% |
鼻子分割 | 96% |
嘴部分割 | 97% |
邏輯迴歸 | 100% |
表1:這個表給出了模組化對應的準確度
3 去除分析 (Ablative Analysis)
誤差分析試圖識別模型當前表現與完美表現之前的區別,而去除分析試圖識別基準線與當前模型之前的區別。去除分析非常重要,很多研究論文因為丟失了這部分而被拒絕。這個分析可以告訴我們模型的哪個部分是最具影響力的。
例如,假設我們有更多附加的特徵可以讓模型表現更好。我們想觀察透過每一次減少一個附加的特徵,模型的表現會減少多少。下面是一個例子
組成 | 準確率 |
總體系統 | 99.9% |
拼寫校對 | 99.0% |
傳送人特徵 | 98.9% |
郵件標題特徵 | 98.9% |
郵件正文特徵 | 95% |
Javascript解析器 | 94.5% |
圖片中的特徵點 | 94.0% |