跟小夥伴探討了支持向量機(Support Vector Machine, SVM),不自覺地就將話題拉向了高斯核函數和懲罰因子C。本文用簡單易懂的形式呈現了自己對於高斯核函數和懲罰因子C的理解。
爲什麼說高斯覈對應的映射函數將原始特徵空間映射成了無限維空間?高斯核函數的參數σ 如何選擇?懲罰因子C的加入有何意義?C的取值大小對於SVM的模型有何影響?後文將圍繞這幾個問題進行探討。
1 理解高斯核函數
1.1 爲什麼要有核函數
當數據集在原始特徵中不是線性可分的時候,支持向量機採用了引入映射函數Φ(⋅) 的策略:通過映射函數將原始特徵空間映射爲更高維的空間,在原始空間中不可分的數據在高維空間中可能變成線性可分,此時再在高維空間中運用SVM。
用一張圖片直觀地解釋這一思想。
圖1 映射函數示意
那麼要實現非線性SVM模型,我們就找出一個合適的映射函數Φ(⋅) ,把特徵空間映射到高維空間,在高維空間對樣本分類!!So easy!!
可是仔細想想,每次都要顯式地找到一個映射函數有沒有必要?我們不是要在高維空間中對樣本分類嘛?如果樣本Φ(xi) 與樣本Φ(xj) 的距離∥Φ(xi)−Φ(xj)∥ 很近,我們就把樣本xi 和xj 分爲同一類不就好了嗎?那我們不知道映射函數Φ(⋅) 的基礎上能不能計算∥Φ(xi)−Φ(xj)∥ 呢?核函數說:我來。
核函數的訣竅在於解決了映射後高維空間中樣本距離∥Φ(xi)−Φ(xj)∥ 的計算,但又不顯式地展示出映射函數Φ(⋅) 。
通常表示爲:
κ(x1,x2)=<Φ(x1),Φ(x2)>(1)
從而有:
∥Φ(xi)−Φ(xj)∥2=<Φ(x1)−Φ(x2),Φ(x1)−Φ(x2)>=<Φ(x1),Φ(x1)>−2<Φ(x1),Φ(x2)>+<Φ(x2),Φ(x2)>=κ(x1,x1)−2κ(x1,x2)+κ(x2,x2)(2)
不得不感嘆核函數簡直是一個完美的設計!
1.2 爲什麼說高斯核函數將原始特徵空間映射成了無限維空間
先看一個多項式核的例子。
取κ(x,z)=<x,z>2 ,這裏x=(x1 x2),z=(z1z2)∈R2 ,故有:
κ(x,z)=<x,z>2=(x1z1+x2z2)2=(x1z1)2+2x1x2z1z2+(x2z2)2(3)
取
Φ(x)=(x21, x1x2, x22) ,則有
κ(x,z)=<Φ(x),Φ(z)> 成立。也就是說此時映射函數將二維特徵空間
(x1x2) 映射成了三維空間
⎛⎝⎜x21x1x2x22⎞⎠⎟ ,即
Φ:R2→R3 。
然後再回過頭來看高斯核函數:
κ(x,z)=exp(−∥x−z∥22σ2)(4)
高等數學中,我們學過,應用泰勒展開,有:
ex=1+x1!+x22!+x33!+… =∑n=0∞xnn!(5)
所以我們有:
κ(x,z)=exp(−∥x−z∥22σ2)=exp[−12σ2<x−z,x−z>]=exp[−12σ2(∥x∥2+∥z∥2−2xTz)]=exp(γ∥x∥2)∗exp(γ∥z∥2)∗exp(−2γxTz),γ=−12σ2(6)
其中:
exp(γ∥x∥2)=∑n=0∞(γ∥x∥2)nn!=∑n=0∞γn(x21+x22+...x2k)nn!,x=(x1,x2...xk)T(7)
也就是說,exp(γ∥x∥2) 含有了無窮多項的多項式,對應的映射函數Φ(⋅) 將k維空間映射成了無限維空間,即: Φ:Rk→R∞ 。
1.3 高斯核中的參數σ 的理解
由式子(2)和式子(4)我們可知:
情況①:
σ→0,−∥x−z∥22σ2→−∞,κ(x,z)→0(8)
|Φ(x)−Φ(z)|2=κ(x,x)−2κ(x,z)+κ(z,z) =2−2κ(x,z) =2(9)
情況②:
σ→∞,−∥x−z∥22σ2→0,κ(x,z)→1(10)
|Φ(x)−Φ(z)|2=κ(x,x)−2κ(x,z)+κ(z,z) =2−2κ(x,z) =0(11)
式子(9)表明:σ 很小的情況下,所有映射後的點彼此之間的距離均相等(爲2–√ ),即不存在聚類現象(聚類直觀上理解就是各個點聚在一起,之間的距離較小)。這樣一來每個樣本點將被單獨形成一個分類。
式子(11)表明:σ 很大的情況下,兩個不同的點經過映射後,成爲高維空間上的同一個點(相互之間距離爲0)。這樣一來,所有的樣本點將被劃分成同一個類,無法區分開來。
總結:參數σ 越小,分的類別會越細,也就是說越容易導致過擬合;參數σ 越大,分的類別會越粗,導致無法將數據區分開來。
2 對於懲罰因子C的理解
加入鬆弛因子ξ(i) 後,支持向量機優化的目標函數和約束條件爲;
min12∥w∥2+C∑i=1nξ(i)s.t.y(i)(wTΦ(x(i))+b)≥1−ξ(i),i=1,2...n(12)
爲了最小化目標函數:①當C很大時,
ξ(i) 只能趨近於0,也就是說對處於邊界之間的樣本(只有處於兩條邊界之間的樣本對應的鬆弛因子
ξ(i) 不爲0,邊界上(支持向量)和邊界內(正確劃分的樣本)的樣本對應的鬆弛因子
ξ(i) 均爲0)的容忍度很低,錯分較少,對樣本的擬合性較好,但不一定預測效果好;②C的取值小的時候,處於兩條邊界之間的樣本變多,錯分的可能性變大,對樣本的擬合性下降,但卻可能更合理,因爲樣本之間往往可能帶有噪聲。
從風險的角度來看,C權衡了經驗風險(對樣本的擬合能力)和結構風險(對測試樣本的預測能力):爲使目標函數越小,C越大時,正則化項(
ξ(i) )越小,說明結構風險越大,經驗風險越小,容易出現過擬合;反之,C越小,模型的複雜度越低,結構風險越小。
3 總結
① 高斯核的參數σ 取值與樣本的劃分精細程度有關:σ 越小,低維空間中選擇的曲線越複雜,試圖將每個樣本與其他樣本都區分開來;分的類別越細,容易出現過擬合;σ 越大,分的類別越粗,可能導致無法將數據區分開來,容易出現欠擬合。
② 懲罰因子C的取值權衡了經驗風險和結構風險:C越大,經驗風險越小,結構風險越大,容易出現過擬合;C越小,模型複雜度越低,容易出現欠擬合。