1. 程式人生 > >28.通過學習曲線診斷偏差和方差 翻譯自 吳恩達新書-Machine Learning Yearning

28.通過學習曲線診斷偏差和方差 翻譯自 吳恩達新書-Machine Learning Yearning

我們已經瞭解了一些方法,可以算出有多少錯誤是來自於可避免得方差和偏差了。這些方法包括評估最優錯誤率、計算模型在訓練樣本集和開發樣本集上的錯誤率。下面我們討論兩外一項可獲得更多資訊得方法:繪製學習曲線。

學習曲線顯示出模型在開發資料集上的錯誤率與訓練樣本數量的關係。繪製這個曲線時,你需要設定不同的訓練樣本集大小。比如你有1000個樣本,你可以分別用100、200、300、……、1000個樣本來訓練模型。然後就可以繪製出模型在開發樣本集上的錯誤率與訓練樣本數量的對應關係了,比如下面這個例子: 模型錯誤率與樣本數量 從上圖可以看出,隨著訓練樣本數量的增多,模型在開發樣本集上的誤差在逐漸下降。

對於我們的模型來說,我們通常會有些“期望的錯誤率”,我們希望我們的模型最終能達到這一效果,比如:

  • 我們期望模型達到人類的水平,則人類能達到的錯誤率就是我們期望的錯誤率。
  • 如果我們的演算法服務於某些產品(比如貓咪分類),我們會有個大概的感覺,當模型達到什麼樣的水平時,使用者會有比較好的體驗。
  • 如果我們已經在某個應用上工作了很長時間,你應該能感覺出,下一季度/年度模型能達到的合理水平。

我們可以把期望水平加入到學習曲線中: 加入期望水平的學習曲線

你可以直接看出加入資料後,"開發錯誤率"離你期望的水平還差多遠。從上面的例子中可以看出,似乎增加訓練樣本集中樣本的數量,就可以讓演算法達到我們預期的水平了。

但是如果開發錯誤率變平了(不再下降了),你可以清晰的看出新增資料無助於你達到目標: 開發錯誤率曲線變平了 看看學習曲線就能幫助你發現收集更多的資料並無效果。而不是花費數月收集了兩倍資料後,才發現更多的資料並沒有用。學習曲線有個缺點是,如果你有更多的資料,它沒有辦法幫你準確的預測模型會達到什麼水平。還有個影象也可以幫你評估更多的資料對模型效能的影響,即:訓練錯誤率。