過度配適:模型複雜度

上一單元介紹了以下模型,該模型會將測試集合中的許多樹木歸類錯誤:

圖 16. 與圖 13 相同的圖片。這是一個複雜的形狀,會將許多樹木歸類錯誤。
圖 16。 前一個單元中發生問題的複雜模型。

上述模型包含許多複雜的形狀。較簡單的模型是否能更妥善地處理新資料?假設您將複雜模型替換為極為簡單的模型,也就是一條直線。

圖 17. 直線模型可有效區分出生病的樹木和健康的樹木。
圖 17。 更簡單的模型。

簡單模型在處理新資料時,比複雜模型更能推廣。也就是說,簡單模型在測試集上的預測結果比複雜模型更準確。

簡單一直以來都是複雜的剋星。事實上,人們偏好簡單的設計,可追溯至古希臘時代。幾個世紀後,十四世紀的修士威廉·奧坎 (William of Occam) 將簡單的概念正式化,形成了「奧坎剃刀法」哲學。這項理念仍是許多科學 (包括機器學習) 的重要基礎原則。

練習:測試您的理解程度

您正在建立物理方程式。下列哪個公式較符合奧坎姆剃刀法?
含有十二個變數的公式。
含有三個變數的公式。
您正在進行全新的機器學習專案,即將選取第一個功能。您應該選擇多少個功能?
挑選 4 到 6 個看似具有強大預測力的特徵。
挑選 1 到 3 個看似具有強大預測力的特徵。
請盡可能選擇多項特徵,以便開始觀察哪些特徵具有最強的預測能力。

正則化

機器學習模型必須同時達成兩個相互衝突的目標:

  • 適當地調整資料。
  • 盡可能簡單地將資料套用。

要讓模型保持簡單,一種方法是對複雜的模型施加懲罰,也就是在訓練期間強制模型變得更簡單。對複雜模型施加懲罰是一種正規化

損失和複雜性

到目前為止,本課程建議的訓練目標只有將損失降到最低,也就是:

minimize(loss)

如您所見,專注於盡量減少損失的模型往往會過度擬合。更優質的訓練最佳化演算法可將損失和複雜度降至最低:

minimize(loss + complexity)

但不幸的是,損失和複雜度通常成反比。隨著複雜度的增加,損失率會降低。複雜度降低時,損失會增加。您應該找到合理的中間值,讓模型可同時針對訓練資料和實際資料做出良好預測。也就是說,模型應在損失和複雜度之間取得合理的平衡。

什麼是複雜度?

您已經瞭解了幾種量化損失的方法。您如何量化複雜度?透過以下練習開始探索:

練習:檢查你的直覺

到目前為止,我們對「複雜度」的定義仍相當模糊。您認為下列哪個想法是合理的複雜度指標?
複雜度是模型中所有特徵偏差的函式。
複雜度是模型權重的函式。
複雜度是模型權重平方的函式。