本章內容
- 6.1距離與範數
- 6.2損失函數
- 6.3最大概似與最大後驗
- 6.4支持向量機
- 6.5熵
- 6.6最小描述長度
- 6.7KL 散度與交叉熵
- 6.8參考資料
損失函數決定了模型「在意什麼樣的錯誤」:大誤差要重罰還是輕罰、分對但不夠有把握的資料算不算錯。選擇損失函數看似是工程上的細節,背後卻連著機率與資訊理論中幾個非常基本的概念。
這一章把這些概念串起來:平方損失其實是高斯雜訊下的最大概似估計,脊迴歸是加上高斯先驗的最大後驗估計,SVM 是鉸鏈損失加上 L2 正則化,而分類問題最常用的交叉熵,就是在最小化模型與資料分布之間的 KL 散度。
6.1距離與範數Distances & Norms
距離函數
距離函數(distance function,又稱度量 metric)d 衡量兩個點有多遠,必須滿足以下條件:
d(x,y)≥0,d(x,y)=0⟺x=yd(x,y)=d(y,x)d(x,z)≤d(x,y)+d(y,z)也就是非負、只有同一點的距離為 0、對稱,以及三角不等式。後面會看到,KL 散度不滿足其中的對稱性與三角不等式,因此不是距離。
Lp 範數
最常用的距離由 Lp 範數(norm)定義:
∥x∥p=(i=1∑d∣xi∣p)1/p,dp(x,y)=∥x−y∥pp=1 是曼哈頓距離,p=2 是歐幾里得距離,p→∞ 時則成為 maxi∣xi∣。只有 p≥1 時才是真正的範數;0<p<1 時三角不等式不成立,單位球也不再是凸的。L0 則是「非零元素的個數」,連 ∥αx∥=∣α∣∥x∥ 都不滿足,因此只能稱為偽範數(pseudo-norm)。
| 名稱 |
定義 |
是否為範數 |
作為懲罰項的凸性 |
| L0 |
非零元素個數 |
否(偽範數) |
非凸 |
| L1/2 |
(∑i∣xi∣1/2)2 |
否 |
非凸 |
| L1 |
∑i∣xi∣ |
是 |
凸 |
| L2 |
(∑ixi2)1/2 |
是 |
凸 |
為什麼凸性重要
函數 f 是凸函數(convex function),若對任意兩點與 λ∈[0,1] 都有
f(λx+(1−λ)y)≤λf(x)+(1−λ)f(y)幾何上就是「任兩點之間的弦都在函數圖形上方」。對二次可微的函數,這等價於二階導數非負(多變數時為 Hessian 矩陣半正定);但凸函數不一定可微,例如 ∣x∣ 在 0 沒有導數,仍然是凸函數。所有範數都是凸函數。
凸的損失加上凸的懲罰項,任何局部最小值都是全域最小值,最佳化既可靠又有效率。L0 懲罰最直接地鼓勵稀疏,但求解是組合問題,計算上不可行;L1 是最接近 L0 的凸替代(convex relaxation),既保有產生稀疏解的能力,又能有效求解,這正是套索迴歸(lasso)的基礎(見第 3 章與第 9 章)。
6.2損失函數Loss Functions
迴歸問題
令殘差 r=y−y^。三種最常見的迴歸損失:
- 平方損失(squared loss) r2:最小化它得到的是條件期望值。大誤差被平方放大,因此對離群值(outlier)非常敏感。
- 絕對損失(absolute loss) ∣r∣:最小化它得到的是條件中位數,對離群值穩健,但在 r=0 不可微。
- Huber 損失(Huber loss):小誤差時像平方損失,大誤差時像絕對損失。
Lδ(r)={21r2,δ(∣r∣−21δ),∣r∣≤δ∣r∣>δ在 ∣r∣=δ 處,兩段的函數值與斜率都相接,因此整體一階連續可微(二階導數在 ∣r∣=δ 處不連續);超過 δ 之後只隨誤差線性成長,單一離群值不會主導整個模型。δ 決定「多大的誤差算離群」。
分類問題
二元分類時令標籤 y∈{−1,+1}、模型輸出分數 f(x),並定義邊際(margin)m=yf(x):m>0 代表分對,m 越大代表越有把握。各種分類損失都可以寫成 m 的函數:
| 損失 |
公式 |
代表模型 |
特性 |
| 0-1 損失 |
I(m≤0) |
評估用 |
非凸、不連續,難以直接最佳化 |
| 邏輯損失 |
log(1+e−m) |
邏輯迴歸 |
凸且平滑,可解讀為機率 |
| 鉸鏈損失 |
max(0, 1−m) |
SVM |
凸,m≥1 時損失為 0 |
| 指數損失 |
e−m |
AdaBoost |
凸,對分錯的點懲罰極重 |
真正關心的是 0-1 損失(分錯幾筆),但它無法用梯度最佳化,因此實務上改用這些凸的替代損失(surrogate loss)。邏輯損失若改用 {0,1} 標籤與預測機率表示,就是二元交叉熵(見第 7 章);指數損失對大錯誤的懲罰成指數成長,這也是 AdaBoost 對雜訊敏感的原因(見第 5 章)。
6.3最大概似與最大後驗MLE & MAP
最大概似估計(MLE)
給定獨立同分布的資料 D={x1,…,xn} 與參數 θ,最大概似估計(Maximum Likelihood Estimation, MLE)選擇讓資料出現機率最大的參數:
θ^MLE=θargmax p(D∣θ)=θargmax i=1∑nlogp(xi∣θ)取對數是因為對數是單調函數,不改變最大值的位置,又能把連乘變成連加,數值上也更穩定。把它加上負號,就是我們熟悉的「最小化損失」:損失函數往往就是負對數概似。例如在線性迴歸中假設 yi=θ⊤xi+εi、εi∼N(0,σ2),則
−logp(y∣X,θ)=2σ21i=1∑n(yi−θ⊤xi)2+const最大化概似等於最小化平方誤差。同理,假設標籤服從伯努利分布,就會得到交叉熵損失。
最大後驗估計(MAP)
最大後驗估計(Maximum A Posteriori, MAP)在概似之外,再加上對參數的先驗信念 p(θ)。由貝氏定理 p(θ∣D)∝p(D∣θ)p(θ):
θ^MAP=θargmax [logp(D∣θ)+logp(θ)]也就是 MLE 的目標再加上一項對數先驗。不同的先驗,正好對應不同的正則化。以上面的線性迴歸為例:
| 先驗 p(θj) |
負對數先驗 |
對應的估計 |
| 均勻(無資訊) |
常數 |
普通最小平方(MLE) |
| 高斯 N(0,τ2) |
∥θ∥22/(2τ2) |
L2,脊迴歸(ridge),λ=σ2/τ2 |
| 拉普拉斯 Laplace(0,b) |
∥θ∥1/b |
L1,套索迴歸(lasso),λ=2σ2/b |
表中的 λ 是把負對數後驗乘上 2σ2 之後,寫成「殘差平方和 + λ× 懲罰項」的係數。先驗越集中(τ 或 b 越小),正則化越強。
MAP 仍然只是一個點估計(後驗分布的眾數),不是完整的貝氏推論。先驗的實際作用,在線性可分的邏輯迴歸中特別明顯:資料完全可分時,只要把權重不斷放大,概似就能無限逼近 1,MLE 不存在、權重發散;加上高斯先驗(L2 正則化)後,解才會是有限的。詳見第 3 章。
6.4支持向量機Support Vector Machines
最大邊界
考慮二元分類 yi∈{−1,+1} 與線性分類器 f(x)=w⊤x+b。如果資料線性可分,能把兩類分開的超平面有無限多個,支持向量機(Support Vector Machine, SVM)選擇的是邊界(margin)最寬的那一個:讓離超平面最近的點盡量遠,對資料的小擾動也最不敏感。
點 xi 到超平面的距離是 ∣w⊤xi+b∣/∥w∥。把 w,b 縮放到讓最近的點滿足 yif(xi)=1,邊界寬度就是 2/∥w∥,最大化邊界等於:
w,bmin 21∥w∥2s.t.yi(w⊤xi+b)≥1,i=1,…,n軟邊界與參數 C
真實資料很少完全可分。軟邊界(soft margin)SVM 允許部分點違反邊界,以鬆弛變數 ξi≥0 表示違反的程度,並以 C 控制懲罰:
w,b,ξmin s.t. 21∥w∥2+Ci=1∑nξiyi(w⊤xi+b)≥1−ξi,ξi≥0在最佳解上 ξi=max(0, 1−yif(xi)),所以它等價於一個沒有限制式的問題:
w,bmin i=1∑nmax(0, 1−yif(xi))+2C1∥w∥2也就是鉸鏈損失加上 L2 正則化,正則化強度 λ=1/(2C)。C 越大,越不容許違反邊界,邊界變窄,偏誤低、變異高;C 越小,邊界越寬,正則化越強。
支持向量
以對偶問題(dual problem)求解時,解可以寫成 w=∑iαiyixi,其中 0≤αi≤C。只有落在邊界上、邊界內或被分錯的點(yif(xi)≤1)才可能有 αi>0,這些點稱為支持向量(support vectors)。其他點即使刪除,解也完全不變,因此 SVM 的解是稀疏的。對偶問題的形式如下:
αmax s.t. i∑αi−21i∑j∑αiαjyiyjxi⊤xj0≤αi≤C,i∑αiyi=0核技巧
注意對偶問題中,資料只以內積 xi⊤xj 的形式出現。把內積換成核函數(kernel function)K(xi,xj)=ϕ(xi)⊤ϕ(xj),就等於在高維(甚至無限維)的特徵空間 ϕ 中求解線性 SVM,卻不必真正計算 ϕ,這稱為核技巧(kernel trick)。預測時:
f(x)=i∑αiyiK(xi,x)+b核函數可以理解為相似度:核函數值越大,兩筆資料越相似。上式因此可以讀成「各個支持向量依它與 x 的相似度投票」。最常用的是 RBF(高斯)核:
K(x,x′)=exp(−γ∥x−x′∥2)兩點相同時值為 1,距離越遠越接近 0。γ 越大,「相似」的範圍越窄,決策邊界越彎曲,容易過擬合;γ 越小,邊界越平滑。其他常見的還有多項式核 (x⊤x′+c)d。一個函數要成為合法的核,必須對稱,且任意一組資料算出的核矩陣都是半正定(Mercer 條件)。
實務上要注意:RBF 核以距離為基礎,特徵必須先標準化;C 與 γ 通常以交叉驗證一起搜尋(見第 5 章);核 SVM 的訓練成本約隨樣本數的平方到三次方成長,資料量很大時通常改用線性 SVM 或其他方法;SVM 也不直接輸出機率,需要時可再做 Platt scaling 校準。
6.5熵Entropy
資訊量與熵
一個機率為 p 的事件發生時,帶來的資訊量(information content)是 −logp:越罕見的事件,越令人意外,資訊量越大;必然發生的事件資訊量為 0。熵(entropy)是資訊量的期望值,衡量一個分布的不確定性:
H(p)=−i∑pilogpi=E[−logp(X)]對數以 2 為底時單位是位元(bit),以 e 為底時是奈特(nat)。由於 limp→0+plogp=0,約定 0log0=0:不可能發生的事件對熵沒有貢獻。
二元熵
只有兩種結果時,熵是
H(p)=−plog2p−(1−p)log2(1−p)p=0 或 p=1 時結果完全確定,熵為 0;p=0.5 時最不確定,熵達到最大值 1 位元。推廣到 K 種結果,H≤logK,等號只在均勻分布時成立,均勻分布的熵最大。
| p |
二元熵(bit) |
Gini 不純度 2p(1−p) |
| 0 或 1 |
0 |
0 |
| 0.1 或 0.9 |
0.469 |
0.18 |
| 0.3 或 0.7 |
0.881 |
0.42 |
| 0.5 |
1 |
0.5 |
Gini 不純度
決策樹常用的另一個指標是 Gini 不純度(Gini impurity):
G(p)=k=1∑Kpk(1−pk)=1−k=1∑Kpk2它可以解讀為:從節點中隨機取一筆資料,再依節點的類別比例隨機給它一個標籤,標錯的機率。它和熵的行為很像,純節點為 0、均勻時最大,可以視為熵的近親(數學上是 q=2 的 Tsallis 熵),但不需要計算對數。CART 使用 Gini 不純度,ID3 使用以熵定義的資訊增益(information gain),C4.5 則改用資訊增益比(gain ratio),實務上兩者選出的切分通常差不多。決策樹的切分方式見第 4 章。
6.6最小描述長度Minimum Description Length
熵的另一個意義來自資料壓縮。Shannon 的信源編碼定理(source coding theorem)指出:用任何可唯一解碼的編碼傳送符號 zi,平均編碼長度都不可能小於熵:
E[ℓ(Z)]≥H(Z)=−i∑P(zi)log2P(zi)(bits)最佳的做法是給機率為 P(z) 的符號約 −log2P(z) 位元的編碼:常見的符號用短碼,罕見的用長碼,就像摩斯電碼中最常用的字母 E 只有一個點。Huffman 編碼能讓平均長度落在 H 與 H+1 之間。這建立了一個重要的對應:機率模型就是編碼方式,模型預測得越準,資料就能壓縮得越短。
最小描述長度(Minimum Description Length, MDL)原則(Rissanen 1978)把這個想法用於模型選擇:最好的模型,是讓「描述模型」加上「在模型幫助下描述資料」總長度最短的那一個:
M^=Margmin [L(M)+L(D∣M)],L(D∣M)=−log2p(D∣M)複雜的模型 L(M) 大,但能把資料描述得很短;簡單的模型則相反。MDL 因此是奧坎剃刀的形式化版本,在大樣本下與 BIC 有密切關係。以 MDL 選擇正則化強度的例子見第 3 章,其他模型選擇準則見第 2 章。
6.7KL 散度與交叉熵KL Divergence & Cross-Entropy
KL 散度
KL 散度(Kullback–Leibler divergence),又稱相對熵(relative entropy),衡量分布 Q 與分布 P 的差異:
DKL(P∥Q)=x∑P(x)logQ(x)P(x)從編碼的角度看,它是「資料其實來自 P,卻用為 Q 設計的最佳編碼」時,平均多花的位元數。它有幾個重要性質:
- 非負:DKL(P∥Q)≥0,且只有 P=Q 時等於 0(Gibbs 不等式)。
- 不對稱:一般而言 DKL(P∥Q)=DKL(Q∥P),也不滿足三角不等式,因此不是距離,只稱為「散度」。
- 需要支撐集相容:只要某處 P(x)>0 而 Q(x)=0,KL 散度就是無限大。
- 只定義在機率分布之間:比較直方圖、詞頻這類非負向量時,要先正規化成總和為 1 的分布(必要時加上平滑處理零值),KL 散度才有意義。
需要對稱的版本時,可以使用 Jensen–Shannon 散度:JS(P,Q)=21DKL(P∥M)+21DKL(Q∥M),其中 M=21(P+Q)。它有界,而且其平方根滿足距離的所有條件。
交叉熵
交叉熵(cross-entropy)是用 Q 的編碼傳送 P 的資料時的平均長度,它正好是熵加上 KL 散度:
H(P,Q)=−x∑P(x)logQ(x)=−x∑P(x)logP(x)+x∑P(x)logQ(x)P(x)=H(P)+DKL(P∥Q)在分類問題中,P 是真實標籤的分布(例如 one-hot 向量),Q=qθ 是模型預測的分布。H(P) 與模型參數 θ 無關,所以最小化交叉熵就等於最小化 DKL(P∥qθ)。對整個訓練集平均,交叉熵又等於 −n1∑ilogqθ(yi∣xi),也就是平均負對數概似。
6.8參考資料References
- Bishop, C. M., Pattern Recognition and Machine Learning, Springer, 2006,第 1、3、7 章。
- Cover, T. M. & Thomas, J. A., Elements of Information Theory, 2nd ed., Wiley, 2006。
- Hastie, Tibshirani & Friedman, The Elements of Statistical Learning, 2nd ed., Springer, 2009,第 10、12 章。
- Shannon, C. E., "A mathematical theory of communication", Bell System Technical Journal, 1948。
- Kullback, S. & Leibler, R. A., "On information and sufficiency", Annals of Mathematical Statistics, 1951。
- Huber, P. J., "Robust estimation of a location parameter", Annals of Mathematical Statistics, 1964。
- Rissanen, J., "Modeling by shortest data description", Automatica, 1978。
- Cortes, C. & Vapnik, V., "Support-vector networks", Machine Learning, 1995。