iT邦幫忙

0

陪我一起讀ML L1-機器學習的本質:我們真正在最小化什麼?

  • 分享至 

  • xImage
  •  

一、範式轉移

傳統軟體開發是 規則 + 資料 = 答案:工程師寫好規則,程式吃資料吐答案。機器學習反過來,是 資料 + 答案 = 規則:給它大量輸入與對應答案,讓它自己歸納出規則(模型)。

但這裡有個陷阱:只在「看過的資料」上答對,並沒有意義。查表就能做到。機器學習的真正目標,是對沒見過的資料也答對。換句話說,我們要逼近的是產生資料的那個未知分佈,而不是記住訓練集。

二、真正想最小化的:期望風險

設樣本空間為 X,標籤空間為 Y,資料來自未知的聯合分佈 P(X,Y)。

模型從假設空間 H 中挑選映射函數 f: X → Y,單樣本損失函數為:L(y, f(x))
模型的理論性能由 期望風險(泛化誤差)決定: R(f) = E[L(Y, f(X))]= ∫ L(y, f(x)) P(x, y) dx dy,其中積分範圍為 X × Y。

它衡量的是函數 f 在「整個真實世界」資料分佈上的平均表現。問題在於,P(X,Y) 客觀存在但完全未知,因此這個積分無法直接計算。

三、退而求其次:經驗風險

我們手上只有由獨立同分佈(i.i.d.)抽樣得到的訓練集: D = {(x₁,y₁),...,(xₙ,yₙ)}

因此以樣本平均近似期望值: Rₑₘₚ(f) = (1/N) Σᵢ₌₁ᴺ L(yᵢ,f(xᵢ)),並以 經驗風險最小化(ERM) 作為學習準則: min₍f∈H₎ Rₑₘₚ(f)。根據大數法則,對於 固定的 f,當 N → ∞ 時,Rₑₘₚ(f) → Rₑₓₚ(f)(依機率收斂)。

看起來很美好,但請特別注意「固定的」這三個字。

四、陷阱:ERM 的估計是樂觀的

ERM 是在 看過資料之後 才挑選函數 f,而挑中的正是在這份訓練資料上碰巧表現最好的那個。

因此,這樣選出的 f,其經驗風險往往會偏低,大數法則便無法直接保證它的泛化能力。
以最簡單的情況為例:

  • 假設空間 H 為有限集合。
  • 損失函數的取值介於 [0, 1]。

根據 Hoeffding 不等式(Hoeffding Inequality)與聯集上界,以至少 1 − δ 的機率,H 中 所有 函數 f 同時滿足:
R_exp(f) ≤ R_emp(f) + √((ln|H| + ln(1/δ)) / (2N))

右側第二項稱為經驗風險與真實風險之間的誤差上界,它揭露了兩個重要現象:

  1. 樣本越多(N 越大),誤差上界越小。
  2. 假設空間越大(|H| 越大),誤差上界越大。

因此,當 N 有限而 H 的容量過大時,例如:

  • 高次多項式模型
  • 容量過大的神經網路
  • 缺乏正則化(Regularization)的模型

總能找到某個函數 f,使訓練誤差幾乎降到 0,但在未看過的資料上表現很差。

這種現象稱為 過擬合(Overfitting)。

最極端的例子是「查表學習」:

  • 訓練誤差 = 0
  • 泛化能力接近 0

模型只是記住了所有訓練樣本,卻沒有真正學到資料背後的規律。

對於無限大的假設空間,理論上無法再直接使用 ln|H| 來衡量模型複雜度,因此會改用:

  • VC Dimension(VC 維度)
  • Rademacher Complexity(拉德馬赫複雜度)
  • Covering Number(覆蓋數)

等容量度量(Capacity Measure)取代。

雖然數學工具不同,但得到的核心結論完全一致:

模型越複雜,若沒有足夠的資料或適當的限制,越容易發生過擬合,導致訓練誤差很低而泛化誤差很高。

五、對策:結構風險最小化(Structural Risk Minimization, SRM)

既然問題來自模型容量過大,那麼除了考慮訓練誤差之外,也應將模型複雜度納入優化目標:
R_srm(f) = R_emp(f) + λ · Ω(f)
其中:

  • R_emp(f):模型對訓練資料的擬合程度,即經驗風險。
  • Ω(f):模型複雜度的懲罰項(Regularization Term),例如權重平方和、決策樹葉節點數等。
  • λ > 0:正則化係數(Regularization Parameter)。

λ 的大小反映了對模型複雜度的容忍程度:

  • λ 越大,越傾向選擇簡單模型。
    • 偏差(Bias)增加
    • 方差(Variance)降低
  • λ 越小,越傾向追求訓練資料上的完美擬合。
  • 當 λ = 0 時,便退化為經驗風險最小化。

常見的複雜度懲罰包括:

  • L2 正則化:Ω(f) = ||w||²
  • L1 正則化:Ω(f) = ||w||₁
  • 決策樹:以葉節點數或樹深度作為複雜度指標
  • 神經網路:以權重大小、模型參數量或其他容量控制方式衡量

嚴格來說,Vapnik 提出的結構風險最小化並不只是加入一個懲罰項,而是在一系列巢狀假設空間中進行模型選擇:

H₁ ⊂ H₂ ⊂ H₃ ⊂ ...

每個假設空間都具有不同的模型容量,再根據理論泛化誤差上界選擇最適合的模型。

不過在實務上,SRM 最常見的表現形式就是各種正則化方法,因此通常寫成:

R_srm(f) = R_emp(f) + λ · Ω(f)

這其實就是 奧坎剃刀(Occam's Razor) 的數學化表達:

在解釋能力相近的情況下,應優先選擇較簡單的模型。

然而,「較簡單的模型比較好」本身其實是一種預設立場。

為什麼我們有理由偏好簡單模型?
為什麼較複雜的模型不一定更接近真實世界?

這個問題將在下一篇介紹的 沒有免費午餐定理 中得到更深刻的回答。

source: https://github.com/datawhalechina/pumpkin-book/releases#release-v2.0.0


*提醒邦友,使用第三方服務/API 時,請務必評估資安風險與隱私保護
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言