1.3 非線性SVM與核技巧
- 非線性問題往往不好求解,所以希望能用解線性分類問題的方法解決這個問題。所採取的方法是進行一個非線性變換,將非線性問題變換爲線性問題,通過解變換後的線性問題的方法求解原來的非線性問題。
- 用線性分類方法求解非線性分類問題分爲兩步:
- 首先使用一個變換將原空間的數據映射到新空間;
- 然後在新空間裏用線性分類學習方法從訓練數據中學習分類模型。
1.3.1 核函數
- 通過一個非線性變換將輸入空間X(歐氏空間Rn的子集或離散集合)對應於一個特徵空間(希爾伯特空間H)。如果存在這樣的映射
ϕ(x):X→H
使得對所有的x,z∈X,函數K滿足條件
K(x,z)=ϕ(x)⋅ϕ(z)
則稱K(x,z)爲核函數,ϕ(x)爲映射函數,式中K爲映射函數的的內積。
- 核技巧的想法是,在學習與預測中只定義核函數K(x,z),而不顯式地定義映射函數ϕ,因爲前者直接計算相對更簡單。學習是隱式地在特徵空間進行的,不需要顯式地定義特徵空間和映射函數.
- 給定核函數,即使對應同一高維特徵空間,也可取不同的映射函數。即核函數和映射函數是一對多的關係。
1.3.2 核技巧在支持向量機中的應用
- 在線性支持向量機的對偶問題中,無論是目標函數還是決策函數(分離超平面)都只涉及輸入實例與實例之間的內積
- 對偶問題的目標函數
21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi=21i=1∑Nj=1∑NαiαjyiyjK(xi,xj)−i=1∑Nαi
- 分類決策函數
f(x)=sign(i=1∑Nαi∗yi(x⋅xi)+b∗)=sign(i=1∑Nαi∗yiK(x,xi)+b∗)
1.3.3 常用核函數
- 多項式核函數(polynomial kernel function)
K(x,z)=(x⋅z+1)p
對應的支持向量機是一個p 次多項式分類器。分類決策函數成爲
f(x)=sign(i=1∑Nαi∗yi(xi⋅x+1)p+b∗)
- 高斯核函數(Gaussian kernel function)
K(x,z)=exp(−2σ2∣∣x−z∣∣2)
對應的支持向量機是高斯徑向基函數(radial basis function)分類器。
分類決策函數成爲
f(x)=sign(i=1∑Nαi∗yiexp(−2σ2∥x−xi∥2)+b∗)
1.4 其他問題
1.4.1 是否存在一組參數使SVM訓練誤差爲0:是
分類決策函數爲
f(x)=sign(i=1∑Nαi∗yiK(x,xi)+b∗)
這裏我們先只考慮不取sign之前的預測結果y^(x)=∑i=1Nαi∗yiK(x,xi)+b∗
使用高斯核的SVM,同時我們對任意i,固定αi=1以及b=0,只保留高斯分佈的參數σ,得到
y^(x)=i=1∑Nαi∗yiexp(−2σ2∥x−xi∥2)+b∗=i=1∑Nyiexp(−2σ2∥x−xi∥2)
對任意一個訓練樣本xj代入有
y^(xj)−yj=i=1∑Nsyiexp(−2σ2∥xj−xi∥2)−yj=i=1,i=j∑Nyiexp(−2σ2∥xj−xi∥2)
∥y^(xj)−yj∥=∥∥∥∥∥∥i=1,i=j∑Nyiexp(−2σ2∥xj−xi∥2)∥∥∥∥∥∥≤i=1,i=j∑N∥∥∥∥∥yiexp(−2σ2∥xj−xi∥2)∥∥∥∥∥=i=1,i=j∑Nexp(−2σ2∥xj−xi∥2)
若給定訓練集中不存在在同一位置的兩個點,即我們可以認爲∥xi−xj∥≥ϵ,其中ϵ是一個非0的數。
取2σ2ϵ2=logN⇒
i=1,i=j∑Nexp(−2σ2∥xj−xi∥2)≤i=1,i=j∑Nexp(−2σ2ϵ2)=i=1,i=j∑Nexp(−logN)=i=1,i=j∑NN1=NN−1<1
所以,對於任意一個樣本xj,它的預測結果y^(xj)和真實結果yj的距離小於1,即當真實標籤yj=1,y^(xj)>0,sign(y^(xj))=1,即預測正確。同理真實標籤yj=−1也預測正確。
綜上,我們可以找到這樣一組αi,b,σ2得到訓練誤差爲0.
但是這組參數不一定是SVM的解。
1.4.2 訓練誤差爲0的SVM分類器一定存在嗎:是
SVM的解要求yj⋅y^(xj)=yj(w⋅xj+b)≥1,這比前述的預測正確的條件更強。
我們仍然固定b=0
yj⋅y^(xj)=yji=1∑Nαi∗yiK(xj,xi)=i=1,i=j∑Nαi∗yjyiK(xj,xi)+αj∗yjyjK(xj,xj)=i=1,i=j∑Nαi∗yjyiK(xj,xi)+αj
取很大的αj,同時很小的σ是的核映射項很小,則很大的、占主導地位的項αj一定大於1,滿足SVM的解的約束。
因此,存在SVM最優解分類誤差爲0.
1.4.3 加入鬆弛變量的SVM的訓練誤差可以爲0嗎:不一定
使用SMO算法訓練的加入鬆弛變量的SVM不一定能得到訓練誤差爲0的模型。
當鬆弛參數C選取較小的值,(正則項)21∥w∥2將佔據優化目標函數的較大比重。這樣,一個帶有訓練誤差、但參數較小的點將成爲更優的結果。
一個簡單的特例是,當C取0時,w也取0即可達到優化目標,但是顯然此時我們的訓練誤差不一定能達到0。