上一單元介紹了以下模型,該模型會將測試集合中的許多樹木歸類錯誤:
上述模型包含許多複雜的形狀。較簡單的模型是否能更妥善地處理新資料?假設您將複雜模型替換為極為簡單的模型,也就是一條直線。
簡單模型在處理新資料時,比複雜模型更能推廣。也就是說,簡單模型在測試集上的預測結果比複雜模型更準確。
簡單一直以來都是複雜的剋星。事實上,人們偏好簡單的設計,可追溯至古希臘時代。幾個世紀後,十四世紀的修士威廉·奧坎 (William of Occam) 將簡單的概念正式化,形成了「奧坎剃刀法」哲學。這項理念仍是許多科學 (包括機器學習) 的重要基礎原則。
練習:測試您的理解程度
您正在建立物理方程式。下列哪個公式較符合奧坎姆剃刀法?
含有三個變數的公式。
三個變數比十二個變數更符合奧坎姆剃刀法則。
含有十二個變數的公式。
十二個變數似乎太複雜了,對吧?
有兩個最著名的物理公式 (F=ma 和 E=mc2),每個公式都只涉及三個變數。
您正在進行全新的機器學習專案,即將選取第一個功能。您應該選擇多少個功能?
挑選 1 到 3 個看似具有強大預測力的特徵。
資料收集管道最好一開始只包含一或兩個功能。這有助於您確認 ML 模型是否正常運作。
此外,當您根據幾項功能建立基準時,您會覺得自己正在進步!
挑選 4 到 6 個看似具有強大預測力的特徵。
您可能會最終使用這麼多功能,但還是建議您先從少數功能開始。功能越少,不必要的複雜性就越少。
請盡可能選擇多項特徵,以便開始觀察哪些特徵具有最強的預測能力。
從小規模開始。每項新功能都會為訓練資料集新增一個維度。當維度增加時,空間的體積會快速增加,導致可用的訓練資料變得稀疏。資料越稀疏,模型就越難學習實際重要特徵與標籤之間的關係。這種現象稱為「維度詛咒」。
正則化
機器學習模型必須同時達成兩個相互衝突的目標:
- 適當地調整資料。
- 盡可能簡單地將資料套用。
要讓模型保持簡單,一種方法是對複雜的模型施加懲罰,也就是在訓練期間強制模型變得更簡單。對複雜模型施加懲罰是一種正規化。
損失和複雜性
到目前為止,本課程建議的訓練目標只有將損失降到最低,也就是:
$$\text{minimize(loss)}$$
如您所見,專注於盡量減少損失的模型往往會過度擬合。更優質的訓練最佳化演算法可將損失和複雜度降至最低:
$$\text{minimize(loss + complexity)}$$
但不幸的是,損失和複雜度通常成反比。隨著複雜度的增加,損失率會降低。複雜度降低時,損失會增加。您應該找到合理的中間值,讓模型可同時針對訓練資料和實際資料做出良好預測。也就是說,模型應在損失和複雜度之間取得合理的平衡。
什麼是複雜度?
您已經瞭解了幾種量化損失的方法。您如何量化複雜度?透過以下練習開始探索: