歡迎來到正規化(Regularisation)的世界!
你好!今天我們將深入探討 CS2 機器學習課程中一個至關重要的部分:正規化(Regularisation)。如果你曾遇過模型在訓練數據上表現完美,但一遇到新數據就慘不忍睹的情況,那麼你已經碰上了過度擬合(Overfitting)的問題。而正規化正是我們解決這個問題的秘密武器。
你可以把正規化想像成模型的「限速器」。它能防止模型變得過於複雜,避免它死記硬背數據中的噪聲(noise),確保模型在現實世界的預測中依然有效。
什麼是過度擬合?為什麼會發生?
在高度參數化(highly parameterised)的模型中(即包含大量變數或特徵的模型),模型擁有很高的靈活性。它會試圖穿過訓練集中的每一個數據點。雖然聽起來不錯,但實際上這是一個問題。
比喻:想像你在準備考試,方法是把歷屆試題的答案一字不漏地背下來。如果真正的考試題目只是稍微改動了一下數字,你就會卡住,因為你沒有學到背後的邏輯,只是背下了噪聲。這就是過度擬合。
快速回顧:偏差與變異數的權衡(Bias-Variance Trade-off)
- 高變異數(High Variance):模型對訓練集中的細微波動太過敏感(過度擬合)。
- 高偏差(High Bias):模型過於簡單,未能捕捉到潛在的趨勢(欠擬合 Underfitting)。
- 正規化能幫助我們找到「最佳平衡點」,透過稍微增加一點偏差,來大幅降低變異數。
核心概念:加入懲罰項(Penalty)
在標準迴歸(例如普通最小平方法 OLS)中,我們試圖最小化殘差平方和(Residual Sum of Squares, RSS):
\( RSS = \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 \)
而在正規化中,我們不僅關注誤差,還關注係數(\(\beta\))的大小。我們會在成本函數中加入一個懲罰項。我們的新目標是最小化:
\( \text{Cost} = RSS + \text{Penalty} \)
透過對較大的係數進行懲罰,我們能抑制模型過度依賴單一特徵,或變得過於複雜。
1. 嶺迴歸(Ridge Regression,L2 正規化)
在嶺迴歸中,懲罰項與係數的平方成正比。
公式:
\( \text{Minimise } \sum_{i=1}^{n} (y_i - \beta_0 - \sum_{j=1}^{p} \beta_j x_{ij})^2 + \lambda \sum_{j=1}^{p} \beta_j^2 \)
嶺迴歸的關鍵特點:
- 使用 L2 範數(L2 norm)(平方項)。
- 它會將係數縮減至趨近於零,但永遠不會使其完全變為零。
- 當你有許多變數,且每個變數對結果都有微小影響時,它非常有效。
如果數學看起來很嚇人,別擔心! 只要記住:嶺迴歸會保留你所有的變數,但會調低它們的「音量」。
2. 套索迴歸(Lasso Regression,L1 正規化)
LASSO 的全稱是最小絕對收縮與選擇算子(Least Absolute Shrinkage and Selection Operator)。在這裡,懲罰項與係數的絕對值成正比。
公式:
\( \text{Minimise } \sum_{i=1}^{n} (y_i - \beta_0 - \sum_{j=1}^{p} \beta_j x_{ij})^2 + \lambda \sum_{j=1}^{p} |\beta_j| \)
套索迴歸的關鍵特點:
- 使用 L1 範數(L1 norm)(絕對值)。
- 變數選擇:與嶺迴歸不同,套索迴歸可以強制某些係數完全變為零。
- 這有效地從你的模型中「刪除」了無用的變數,留給你一個更簡單、更容易解釋的模型。
記憶小撇步:
Lasso = Less variables(變數較少,它會切掉不需要的變數!)
Ridge = Retains all variables(保留所有變數,只是讓它們變小。)
關鍵重點:
如果你懷疑只有少數變數真正重要,請使用 Lasso。如果你認為所有變數都對結果有一點貢獻,請使用 Ridge。
調控參數:Lambda (\(\lambda\))
無論在嶺迴歸還是套索迴歸中,我們都有一個符號 \(\lambda\)。這被稱為調控參數(tuning parameter)(或複雜度參數)。它控制我們對模型懲罰的程度。
\(\lambda\) 的運作方式:
- 如果 \(\lambda = 0\):懲罰項消失。我們回到了標準的 OLS 迴歸(過度擬合風險高)。
- 如果 \(\lambda \to \infty\):懲罰變得極大。所有係數(截距項除外)都將收縮至零(欠擬合風險高)。
- 目標:我們使用交叉驗證(Cross-Validation)等技術,找出能最小化測試誤差的最佳 \(\lambda\) 值。
你知道嗎?
在進行正規化之前,將數據進行標準化(Standardising)是必不可少的!因為我們在懲罰 \(\beta\) 的大小,如果變數的尺度不同(例如:年齡以年計算 vs. 薪資以千元計算),它們在沒有調整到同一尺度時會受到不公平的懲罰。
常見錯誤提示
1. 忘記標準化:如上所述,請務必標準化你的預測變數,使它們的平均值為 0,標準差為 1。
2. 懲罰截距項:通常我們不會對截距項(\(\beta_0\))應用懲罰。我們希望模型可以自由地上下平移。
3. 以為 Lasso 總是更好:雖然 Lasso 提供了更簡單的模型,但如果存在許多微小且活躍的訊號,Ridge 在預測準確度上通常表現更好。
快速回顧區
正規化總結:
1. 目標:減少參數眾多模型中的過度擬合現象。
2. 方法:在 RSS 成本函數中加入懲罰項(\(\lambda\))。
3. 嶺迴歸 (L2):將 \(\beta\) 縮減至接近零。保留所有變數。適合處理許多微小效應。
4. 套索迴歸 (L1):可將 \(\beta\) 縮減至精確為零。執行變數選擇。適合稀疏效應。
5. 選擇:使用交叉驗證來選擇最佳的 \(\lambda\)。
最後的鼓勵
正規化是精算師機器學習工具箱中最實用的工具之一。它讓我們從單純地在圖表上畫出一條線,轉向建立在未見過的數據上依然表現穩健的模型。請繼續練習這些公式,並記住「限速器」的比喻——這一切都是為了掌控風險!