我注意到幾乎所有很棒的機器學習 達人往往是很精於理解偏差跟變異 偏差跟變異是一種很容易學習但很難駕馭的概念 即使您想您已經看了偏差及變異的基本概念 還會有一些新的您意想不到的概念出現 在深度學習時代 另一種趨勢比較 少討論到的是稱為偏差變異權衡 您或許聽過偏差變異權衡 但在深度學習時代比較少權衡 所以我們還是解決偏差 還是解決變異 但我們比較少有關偏差變異權衡 我們來看這是什麼意思 我們看一個資料集像這樣 如果您用一條直線來配合這些資料 也許用羅吉斯迴歸分析來配合它 這不是很配這些資料 所以這是一種高偏差的類別 我們說這個模型低適這些資料 相反地 如果您用極度複雜的分類器 也許深度神經網路 或者神經網路用很多的隱藏單元 也許您可以完美的配合這些資料 但這看起來也不像是好的配適 這是一種高變異的分類器而這樣會過適這些資料 而也許有一些分類器介於其中 有中度的複雜性 也許是一條曲線像這樣 看起來更合理的配適這些資料 我們稱它為剛剛好,它是介於中間 所以在 2D 的例子像這樣 只有兩個特徵 X-1 跟 X-2 您可以畫這些資料來視覺化它們的偏差及變異 在高維度的問題中 您不能畫這些資料來視覺化這些邊界 取而代之, 有一些不同的量測 我們用來試著理解偏差及變異 繼續我們的貓圖片辨識例子 這是一個正面的例子,這是一個負面的例子 兩個重要的數字來理解偏差跟變異會是 訓練集誤差及開發集誤差 為了便於討論 假設您能夠辨識貓的相片 這是一般人都可以完全做到的, 對吧? 假設說您的訓練集誤差是 1%, 而您的開發集誤差 為了便於討論 假設說是 11% 在這個例子中 您在訓練集做得很好 但您在開發集就相對做得比較差 看起來您也許過適於訓練集 或許您沒能一般化得很好 到整個交叉驗證集, 也就是開發集 所以如果您有這樣的例子 我們會說這個有高的變異 所以看著訓練集誤差跟開發集誤差 您能夠診斷您的演算法有高的變異 假設您測量您的訓練集誤差跟開發集誤差 而得到不同的結果 假設您的訓練集誤差是 15% 我將訓練集誤差寫在上面的列上 而您的開發集誤差是 16% 在這個狀況下, 假設人類大致能達到 0% 誤差 人類可以看看這些照片,直接判斷是不是貓 然後看到這個演算法甚至在 訓練集做得不是很好 所以如果甚至在訓練集 對資料配合得不是很好 那這是低適於這些資料 所以這個演算法有高的偏差 但相反的, 這個實際上 在開發集上一般化得很好 它在開發集的表現只有 比在訓練集差一個百分點 所以這個演算法有高偏差的問題 因為它甚至不配適在訓練集上 這是相當類似於我們 前一張投影片的最左邊 現在, 有另一個例子 假設您有 15% 的訓練集誤差 所以這是很高的偏差 但當您衡量開發集時, 情況更糟 也許是 30% 在這種情況下,我會診斷該演算法具有高的偏差 因為在訓練集做得不是很好, 而且有高的變異 所以這真的是兩個世界裡最差的狀況 最後一個例子 如果您有 0.5% 訓練集誤差 跟 1% 開發集誤差 也許我們的使用者很高興 您有一個貓咪分類器只有 1% 誤差 我們同時有低的偏差及低的變異 一個細微之處,我只簡要地提及 我們會留到以後的影片 再來詳細討論 這種分析是基於假設 人類幾乎可以達到 0% 誤差 或更一般來講, 最佳誤差 有時候也稱為基本誤差 所以最佳誤差將近 0% 我在這段影片 不想深入探討這個 但實際上最佳誤差或是 基本誤差高很多 假設說是 15%, 那當您看這個分類器 15% 實際上是很合理的在訓練集上 就不會當它是高的偏差同時變異也很低 所以如何分析偏差跟變異 當沒有分類器可以做得很好時, 舉個例子 如果您有很模糊的照片 即使人類或者 沒有一個系統可以做得很好時 也許基本誤差高很多 這時一些細節對於 如何做分析也會改變 但除此細節之外 重點是看著 您的訓練集誤差會讓您感覺到 資料配適做得如何 至少在訓練集上 所以可以告訴您是否有偏差的問題 然後看著您的誤差有多高 當您從訓練集到開發集時 這應該會給您一些感覺 有關變異問題有多糟 所以您從訓練集一般化到 開發集時做得好不好 給您一些有關 變異的感覺 所有這些都基於一個假設 就是基本誤差是相當 小的而且您的訓練集跟您的開發集 都是從同一分佈抽樣出來的 如果違反這些假設 您可以有一些更複雜的分析 我們會在以後影片中談到 在前面的投影片中 您看到高偏差, 高變異的樣子 我猜您對於一個 好的分類器有一些感覺 同時高偏差跟高變異的樣子如何? 這是一種兩個世界裡 最糟的狀況 您記得, 我們說一個分類器像這樣 那您的分類器有高的偏差 因為它低適了這些資料 這會是一種將近線性的分類器 所以低適了這些資料 我們用紫色來畫 如果您的分類器做很奇怪的事 那這也其實過適了這些資料 所以我用紫色畫的 有高偏差同時也有高變異 有高的偏差因為 將近是一個線性分類器 並不是很配適這些資料 像是這個二次曲線的形狀 但有著相當彈性在中間 它為了包含這個例子 跟這個例子, 過適於這兩個例子 所以這個分類器有高的偏差 因為它幾乎是線性的 您需要的也許是 曲線函數或者二次函數 而那也有高的變異 因為它太彈性的 去配適這兩個誤標的例子 或者在中間的異常值 如果這看起來很做作 這個例子是有點做作 在二度空間 但在高維度的輸入時 您實際上會得到 高偏差在一些區域裡 跟高變異在一些區域裡 所以這樣的分類器是可能的 在高維度輸入時 似乎會比較不做作 總結一下, 您看到了 如何看待您演算法的誤差在 訓練集上跟演算法誤差在開發集上 診斷是否有高偏差或高變異的問題 也許同時有,或者同時沒有 依據是否您的演算法 承受著偏差或者變異 實際上有不同的方式 來試著解決 在下一段影片, 我們將談到 所謂的機器學習的基本食譜 讓您有系統化地 改進您的演算法 依據是否有高偏差 或者高變異問題 讓我們進入下一段影片