筆記 | 吳恩達新書《Machine Learning Yearning》

這本書共112頁,內容不多,偏向於工程向,有很多不錯的細節,在此記錄一下。

0 書籍獲取

關注微信公衆號“機器學習煉丹術”,回覆【MLY】獲取pdf

1 測試集與訓練集的比例

2 誤差分析

  • 誤差分析我感覺是一個成熟的AIer必備的能力。俗話說數據決定準確率的上線,模型只是在逼近這個值。模型效果的提升首先是需要去看數據樣本的,把分類錯誤的樣本一個一個看一看,然後心中自己會給出判斷:是否有可能減少這種分類錯誤的樣本?如何減少?

【也許心中沒有這樣的判斷,但是看一看錯誤的樣本是很重要的。一般看100例分類錯誤樣本就算很多了】

這裏我給出自己遇到的幾種常見的誤差分析的結論:

  • 最基礎的也是最嚴重的問題:標註錯誤。看錯誤的樣本的時候很容易發現原因是標註錯誤。
  • 樣本爲某種新類別,訓練集中沒有對應樣本。貓狗分類樣本中,假如有一種狗耳朵的貓,而這種品種在訓練集中從來沒有出現過或者數量很少;
  • 分類錯誤的樣本可能圖像質量不好;
  • ......

3 方差與偏差

這一塊說的很好,之前只知道模型有方差和偏差,但是不清楚:什麼是模型的方差,什麼是模型的偏差。

  • 偏差:算法在訓練集上的誤差;
  • 方差:算法在測試集上的表現和訓練集上相差多少。

假設你希望構建一個誤差爲 5% 的貓識別器。而目前的訓練集錯誤率爲 15%,開發集(驗證集)錯誤率爲 16%。

  • 在上面的例子中,偏差爲15%,方差爲1%

在看幾個例子:

這裏還需要提出來一個最優錯誤率的概念

  • 世界上最好的算法,應該有什麼樣的錯誤率。比方說,貓狗分類,最好的算法“大腦”可以100%的分類正確,所以這個最優錯誤率爲0%;如果是一個語音識別,人類會因爲噪音問題識別率只有14%,那麼最優錯誤率就是14%。
  • 對於上面的例子,假設這個語音識別問題的訓練錯誤率15%,開發錯誤率30%,那麼我們不能說這個模型存在高偏差和高方差,因爲最優錯誤率就是不可避免偏差,可避免偏差只有1%,所以同樣的偏差方差在不同的最優錯誤率下,要做不同的判斷。這種情況下,語音識別算法爲低偏差和高方差。

3.1 避免偏差的技術

3.2 避免方差的技術

4 判斷增加數據是否有效

【就是繪製驗證集的準確率和樣本數量之間的曲線】

4.1 增加數據有效

  • 這張圖中的綠線,是期望錯誤率,我們希望模型可以實現什麼的精度;
  • 可以看到,隨着數據集的增加,精度是越來越好的,所以後期我們還可以增加樣本。

4.2 增加數據無效

  • 這張圖中,可以看到增加數據集可坑並不會有很好的提升了。

通常,我們還會增加一條曲線訓練誤差曲線,單獨的驗證誤差曲線可能存在波動和噪音。

  • 從這個圖中,我們可以確定,增加數據並不能起到很好的效果了。
  • 藍色的訓練誤差只會隨着數據的增加而不斷上升
  • 紅色的驗證誤差通常是高於藍色的訓練誤差。
  • 之前提到的偏差,爲training error和desired performance之間的差值;
  • 之前提到的方差,爲dev error和training error之間的距離。

4.3 其他情況

  • 藍色訓練誤差曲線相對較低,紅色的開發誤差曲線比藍色訓練誤差高得多。因此,偏差很小,但方差很大。添加更多的訓練數據可能有助於縮小開發誤差和訓練誤差之間的差距。
  • 這種情況下,訓練誤差很大,它比期望的性能水平要高得多,開發誤差也比訓練誤差大得多。 因此,學習算法有着明顯的偏差和方差。此時你必須找到一種方法來減少算法中的偏差和方差。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章