AI時代系列(3) 機器學習三部曲: 🔹 第一部:《機器學習 —— AI 智慧的啟航》
55/100 第六週:模型評估與優化
55. 模型正則化(L1/L2 正則化) 📏 懲罰過度學習,讓模型學會適當的「簡約美」!
模型正則化(L1/L2 正則化) 📏
懲罰過度學習,讓模型學會適當的「簡約美」!
________________________________________
🔎 一、什麼是模型正則化(Regularization)?
• 正則化是 抑制過擬合(Overfitting) 的關鍵技巧
• 透過在損失函數中加入「懲罰項」,限制模型權重大小,讓模型不會過度記住雜訊
• 核心概念:讓模型「簡單一點、規則一點」,學會重點而非細節
________________________________________
🌟 二、數學概念與公式
🔢 標準損失函數:
Loss=原本的損失(如 MSE)+λ×正則化項
其中:
原本的損失:常見如 MSE(均方誤差)、交叉熵等
λ(lambda):正則化強度的係數,越大表示越強的懲罰力度
正則化項:L1或 L2用來抑制模型複雜度、防止過擬合
________________________________________
🧠 三、兩大經典正則化方法
方法 公式 特色 適用情境
L1 正則化(Lasso) ∑w )
L2 正則化(Ridge) ∑w^2
✅ 讓權重變小但不會變 0
✅ 模型更平滑穩定 預防過擬合、適合連續性特徵
________________________________________
📈 四、L1 與 L2 正則化效果比較
L1(Lasso)與 L2(Ridge)是兩種常見的正則化方法,用於抑制模型過擬合。L1 正則化會讓部分權重變成 0,因此具有良好的特徵選擇能力,適合處理高維資料或特徵過多的情境;相對地,L2 正則化則會將權重平均地縮小,但不會讓它們歸零,因此模型較平滑但特徵選擇能力較弱。前者常用於 Lasso Regression,後者則應用於 Ridge Regression。選擇哪一種方法,需視資料特性與建模需求而定。
________________________________________
💻 五、Python 示範(以線性回歸為例)
import numpy as np
import matplotlib.pyplot as plt
# ✅ 解決負號與中文字亂碼問題
plt.rcParams['font.family'] = 'Microsoft JhengHei' # Windows 請用此字體
# plt.rcParams['font.family'] = 'PingFang TC' # macOS 可使用此字體
# plt.rcParams['font.family'] = 'Noto Sans CJK TC' # Linux 常見開源中文字體
plt.rcParams['axes.unicode_minus'] = False # ✅ 正確顯示負號(避免顯示為方塊)
# 權重範圍
w = np.linspace(-2, 2, 400)
# L1 與 L2 正則化懲罰項
l1_penalty = np.abs(w)
l2_penalty = w ** 2
# 繪圖
plt.figure(figsize=(8, 5))
plt.plot(w, l1_penalty, label='L1 正則化:|w|', color='orange', linewidth=2)
plt.plot(w, l2_penalty, label='L2 正則化:w²', color='blue', linewidth=2)
plt.axhline(0, color='gray', linewidth=0.5)
plt.axvline(0, color='gray', linewidth=0.5)
# 加入標題與軸標籤
plt.title("模型正則化(L1 vs L2)📏")
plt.xlabel("權重 w")
plt.ylabel("正則化懲罰值")
plt.legend()
plt.grid(True)
plt.tight_layout()
plt.show()
這段程式碼用圖形化方式比較了 L1(Lasso)與 L2(Ridge)正則化的懲罰效果,展示它們如何對模型權重 𝑤產生不同的影響。透過 NumPy 生成一組從 -2 到 2 的權重範圍,並分別計算 L1與 L2的懲罰值,再以 Matplotlib 繪圖。圖中可見 L1 呈現尖銳的 V 形、具有稀疏化能力,L2 則是光滑的 U 形、適合平滑縮小權重。此外,程式也設定中文字體與負號正確顯示,確保圖表在繁體中文環境下無亂碼,適合用於教學與模型正則化觀念說明。
________________________________________
🎯 六、正則化對模型的影響
✅ 減少模型對資料雜訊的敏感度
✅ 提升模型泛化能力,面對新資料也能穩定表現
✅ 讓模型學會「簡約美」:只學最關鍵的特徵,而非每個細節都死背
________________________________________
🌈 七、進階補充:Elastic Net
• 結合 L1 + L2 優點
• 兼具特徵選擇與平滑效果
• 適用於特徵多且有關聯性的數據集
________________________________________
📌 總結金句:
📏 正則化 = 模型的自律機制,適當「懲罰」過度複雜,讓 AI 懂得收斂與簡化!
________________________________________