2020-5-18 吳恩達-改善深層NN-w1 深度學習的實用層面(1.2 偏差-欠擬合(訓練集)/方差-過擬合(驗證集))

1.視頻網站:mooc慕課https://mooc.study.163.com/university/deeplearning_ai#/c
2.詳細筆記網站(中文):http://www.ai-start.com/dl2017/
3.github課件+作業+答案:https://github.com/stormstone/deeplearning.ai

本節課將介紹如何通過訓練誤差和驗證集誤差判斷算法偏差或方差是否偏高。

DL的誤差問題,一個趨勢是對偏差和方差的權衡研究甚淺,你可能聽說過這兩個概念,但DL的誤差很少權衡二者,我們總是分別考慮偏差和方差,卻很少談及偏差和方差的權衡問題(bias-variance trade-off)。

1. 二維數據集

例1,高偏差,欠擬合
在這裏插入圖片描述

觀察上圖數據集。
如果給這個數據集擬合一條直線(蘭色),可能得到一個邏輯迴歸擬合,但它並不能很好地擬合該數據,這是高偏差(high bias)的情況,我們稱爲“欠擬合”(underfitting)。

例2,高方差,過擬合
在這裏插入圖片描述

觀察上圖數據集。
如果我們擬合一個非常複雜的分類器,比如深度NN或含有隱藏單元的NN,可能就非常適用於這個數據集,但是這看起來也不是一種很好的擬合方式,分類器方差較高(high variance),數據過擬合(overfitting)。

例3,適度擬合
在這裏插入圖片描述

觀察上圖數據集。
是複雜程度適中,數據擬合適度的分類器,這個數據擬合看起來更加合理,我們稱之爲“適度擬合”(just right)是介於過度擬合和欠擬閤中間的一類。

2. 高維數據集

上面3個例子都是隻有x1和x2兩個特徵的二維數據集,我們可以繪製數據,將偏差和方差可視化。在多維空間數據中,繪製數據和可視化分割邊界無法實現,但我們可以通過幾個指標,來研究偏差和方差。

在這裏插入圖片描述

觀察上圖,左邊是貓y=1,右邊不是y=0
理解偏差和方差的兩個關鍵數據是訓練集誤差(Train set error)和驗證集誤差(Dev set error)。

例4,高方差,過擬合
爲了方便論證,假設

  • 我們可以肉眼辨別圖片中的小貓,且不會出錯。即人的錯誤率爲0%。
  • 假設訓練集誤差是1%
  • 假設驗證集誤差是11%。

可以看出訓練集設置得非常好,而驗證集設置相對較差。
我們可能過度擬合了訓練集,在某種程度上,驗證集並沒有充分利用交叉驗證集的作用,像這種情況,我們稱之爲“高方差”。

通過查看訓練集誤差和驗證集誤差,我們便可以診斷算法是否具有高方差。也就是說衡量訓練集和驗證集誤差就可以得出不同結論。

例5,高偏差,欠擬合
爲了方便論證,假設

  • 我們可以肉眼辨別圖片中的小貓,且不會出錯。即人的錯誤率爲0%。
  • 訓練集誤差是15%
  • 驗證集誤差是16%

算法並沒有在訓練集中得到很好訓練。
如果訓練數據的擬合度不高,就是數據欠擬合,就可以說這種算法偏差高。相反,它對於驗證集產生的結果卻是合理的,驗證集中的錯誤率只比訓練集的多了1%,所以這種算法偏差高,因爲它甚至不能擬合訓練集,這與例1的圖片相似。

例6,高偏差,高方差
假設

  • 訓練集誤差是15%,偏差相當高
  • 驗證集的評估結果更糟糕,錯誤率達到30%,

在這種情況下,我們認爲這種算法偏差高,因爲它在訓練集上結果不理想,而且方差也很高,這是方差偏差都很糟糕的情況。

例7,低偏差,低方差
假設

  • 訓練集誤差是0.5%
  • 驗證集誤差是1%

貓咪分類器只有1%的錯誤率,偏差和方差都很低。

例4-例7都是基於假設預測的,假設人眼辨別的錯誤率接近0%。一般來說,最優誤差也被稱爲貝葉斯誤差

如果最優誤差或貝葉斯誤差非常高,比如15%。我們再看看例5這個分類器(訓練誤差15%,驗證誤差16%),15%的錯誤率對訓練集來說也是非常合理的,偏差不高,方差也非常低。

3. 高誤差-貝葉斯誤差

當所有分類器都不適用時,如何分析偏差和方差呢?–後面課程介紹
比如,圖片很模糊,即使是人眼,或者沒有系統可以準確無誤地識別圖片,在這種情況下,最優誤差(貝葉斯誤差)會更高,那麼分析過程就要做些改變了。

通過查看訓練集誤差,我們可以判斷數據擬合情況。
當完成訓練集訓練,開始使用驗證集驗證時,我們可以判斷方差是否過高。

以上分析的前提都是假設基本誤差很小,訓練集和驗證集數據來自相同分佈,如果沒有這些假設作爲前提,分析過程更加複雜,我們將會在稍後課程裏討論。

4. 高偏差和高方差

例8,高偏差,高方差
在這裏插入圖片描述

觀察上圖。這個圖是例1圖片的變化。
藍色線是例1中邏輯迴歸結果的欠擬合分割線–高偏差。
我們增加一條紫色線,它會過度擬合部分數據,所以現在這個紫色線表示的分類器具有高偏差和高方差,偏差高是因爲它有部分幾乎是一條線性分類器,並未擬合數據。

在這裏插入圖片描述

看上面這個圖會更加清楚一點。
圖中標註了一個叉和一個圈這2個樣本被二次曲線過度擬合。
採用曲線函數或二次元函數靈活性非常高,但是容易產生高偏差。(就如上圖,顯然訓練時候錯誤會很低,但是驗證的錯誤率就會高了,因爲過度擬合了。)

總結一下,圖中的這個分類器

  • 偏差很高,因爲它幾乎是線性的
  • 採用曲線函數或二次元函數會產生高方差,因爲它曲線靈活性太高以致擬合了這兩個錯誤樣本和中間這些活躍數據。

這看起來有些不自然,從兩個維度上看都不太自然,但對於高維數據,有些數據區域偏差高,有些數據區域方差高。所以在高維數據中採用這種分類器看起來就不會那麼牽強了。

總結

我們講了如何通過分析在訓練集上訓練算法產生的誤差和驗證集上驗證算法產生的誤差來診斷算法是否存在高偏差和高方差。是否兩個值都高,或者兩個值都不高,根據算法偏差和方差的具體情況決定接下來你要做的工作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章