過度配適:模型複雜度

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

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

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

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

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

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

練習:測試您的理解程度

您正在建立物理方程式。下列哪個公式較符合奧坎姆剃刀法?
含有三個變數的公式。
三個變數比十二個變數更符合奧坎姆剃刀法則。
含有十二個變數的公式。
十二個變數似乎太複雜了,對吧? 有兩個最著名的物理公式 (F=ma 和 E=mc2),每個公式都只涉及三個變數。
您正在進行全新的機器學習專案,即將選取第一個功能。您應該選擇多少個功能?
挑選 1 到 3 個看似具有強大預測力的特徵。
資料收集管道最好一開始只包含一或兩個功能。這有助於您確認 ML 模型是否正常運作。 此外,當您根據幾項功能建立基準時,您會覺得自己正在進步!
挑選 4 到 6 個看似具有強大預測力的特徵。
您可能會最終使用這麼多功能,但還是建議您先從少數功能開始。功能越少,不必要的複雜性就越少。
請盡可能選擇多項特徵,以便開始觀察哪些特徵具有最強的預測能力。
從小規模開始。每項新功能都會為訓練資料集新增一個維度。當維度增加時,空間的體積會快速增加,導致可用的訓練資料變得稀疏。資料越稀疏,模型就越難學習實際重要特徵與標籤之間的關係。這種現象稱為「維度詛咒」。

正則化

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

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

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

損失和複雜性

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

$$\text{minimize(loss)}$$

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

$$\text{minimize(loss + complexity)}$$

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

什麼是複雜度?

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

練習:檢查你的直覺

到目前為止,我們對「複雜度」的定義仍相當模糊。您認為下列哪個想法是合理的複雜度指標?
複雜度是模型權重的函式。
是的,這是評估某些模型複雜度的一種方式。 這項指標稱為 L1 正規化。
複雜度是模型權重平方的函式。
是的,您可以透過這種方式評估部分模型的複雜度。這個指標稱為 L2 正則化
複雜度是模型中所有特徵偏差的函式。
偏差無法評估複雜度。