對於線性可分問題和線性問題,都已經有很好的解決方案為了。對於非線性問題,產生了非線性svm,關鍵在於核技巧(kernel trick)的引用。
如圖,對於正負樣本無法用直線分開。採用橢圓這樣的非線性模型才可正確分開。
對於t,若可用r中的乙個超曲面正確分開,則稱該問題為非線性的可分問題。如圖的橢圓方程為:w1
(x(1
))2+
w2(x
(2))
2+b=
0 現在我們考慮乙個對映 z=
ϕ(x)
=((x
(1))
2,(x
(2))
2)t ,將每個點 x 代入求出對應的 z 。如下圖:
此時新的空間中,可用線性svm來完美解決。新空間的直線方程為: w1
(z(1
))+w
2(z(
2))+
b=0
可以看到,非線性問題,可完美轉化為線性問題解決:
這叫做核技巧。更有趣的是,svm的對偶形式可非常自然的應用核技巧。
核函式
x 是輸入空間,h 是特徵空間,若有對映函式 ϕ(
x):x
−>
h ,使得對所有 x,
z∈x ,函式 k(
x,z)
滿足條件 k(
x,z)
=ϕ(x
)⋅ϕ(
z),則稱 k(
x,z)
為核函式,ϕ(
x)為對映函式,式中為內積。
核技巧:我們只定義個 k(
x,z)
就行了,不用顯示定義 ϕ(
x)。慢慢解釋為什麼這叫做核技巧。所謂技巧,巧妙之技也。
通常計算 k(
x,z)
比較容易,而通過計算 ϕ(
x)和 ϕ(
z)來計算 k(
x,z)
比較難。對於給定的 k(
x,z)
, ϕ(
x)的取法不唯一。
舉例:x∈r
2,k(
x,z)
=(x⋅
z)2 ,找出h和ϕ(
x)。解:x=
(x(1
),x(
2)) ,z=
(z(1
),z(
2)) 。當h
=r3 時,
可取 ϕ(x
)=((
x(1)
)2,2
√x(1
)x(2
),(x
(2))
2)t
將每個2維的點,對映為3維的點。 ϕ(
x)⋅ϕ
(z)=
(x⋅z
)2=k
(x,z
) 當h
=r4 時,
可取 ϕ(x
)=((
x(1)
)2,x
(1)x
(2),
x(1)
x(2)
,(x(
2))2
)t將每個2維的點,對映為4維的點。 ϕ(
x)⋅ϕ
(z)=
(x⋅z
)2=k
(x,z
) 可以看出,給定核函式 k(
x,z)
, ϕ(
x)的取法有多種。
那問題來了:如何搞定 ϕ(
x)呢?
答案是:我們不用定義 ϕ(
x),只需要顯式定義 k(
x,z)
即可。此時 ϕ(
x)被隱式定義,只是我們並不關心它的形式如何。
為什麼不用定義呢?xi
⋅xj ,那麼我們可以直接用核函式 k(
x,z)
=ϕ(x
)⋅ϕ(
z)來代替內積。
本來,處理流程是這樣的:x−
>ϕ(
x)−>新特
徵空間−
>ϕ(
x)⋅ϕ
(z)
現在可以直接這樣:x−
>ϕ(
x)⋅ϕ
(z)
為什麼可以這樣?
都是以為svm的目標函式的對偶形式是這樣的:12
∑i=1
n∑j=
1nαi
αjyi
yj(x
i⋅xj
)−∑i
=1nα
i 我們就可以直接:12
∑i=1
n∑j=
1nαi
αjyi
yj(ϕ
(xi)
⋅ϕ(x
j))−
∑i=1
nαi
12∑i
=1n∑
j=1n
αiαj
yiyj
⋅k(x
,z)−
∑i=1
nαi
這麼完美,有對偶形式的付出,有核函式的付出。
那既然重點放在核函式上。討論下核函式。對某個具體的 k(
x,z)
,如何驗證它是否是核函式?
通常:核函式就是正定核函式(positive definite kernel function)。
正定核函式的充要條件:待續。涉及矩陣的正定矩陣等基本概念。待填。
對某個具體的函式,驗證其是否為正定核並不容易,實際中往往用已有核函式。k(
x,z)
=(x⋅
z)這就是svm的線性表達。即線性svm是非線性svm的特殊情況,當非線性svm的核函式為線性核時,退化為線性svm。
polynomial kernel function。k(
x,z)
=(x⋅
z+1)
p,p≥
1 對應的svm是乙個p次多項式分類器。此時分類決策函式是si
gn(∑
i=1n
αiyi
(xi⋅
x+1)
p+b)
p = 1時退化為線性核。k(
x,z)
=exp
(−||
x−z|
|22θ
2)對應的svm是高斯徑向基函式分類器。在此情況下分類決策函式是: si
gn(∑
i=1n
αiyi
exp(
−||x
−z||
22θ2
)+b)
高斯核也稱為rbf核(radial basis function,徑向基函式)。徑向基函式的基本概念。
基本經驗:對文字資料通常採用線性核,情況不明時可先嘗試高斯核。k(
x,z)
=exp
(−||
x−z|
|2θ)
,θ>0
k(x,
z)=t
anh(
βx⋅z
+θ),
β>0,
θ<0
tanh為雙曲正切曲線。s形曲線,將sigmoid函式中點下移至原點的樣子。
對核函式也可以線性組合。如 γ1
k1+γ
2k2 、k1
k2也是核函式。對於任意函式 g(
x),g(x
)k(x
,z)g
(z) 也是核函式。
將線性svm擴充套件為非線性svm,只需要將對偶形式的內積轉化為核函式。
演算法:非線性svm的學習演算法
(1)選取適當的核函式 k(
x,z)
和適當引數c,構造並求解最優化問題:
minα12
∑i=1
n∑j=
1nαi
αjyi
yj⋅k
(x,z
)−∑i
=1nα
is.t
.∑i=
1nαi
yi=0
0≤αi
≤c求得最優解 α∗
=(α∗
1,α∗
2,..
.,α∗
n)t
k(x,z) 為正定核時,凸二次規劃問題必存在解。
(2)選擇乘子中的
0<
c ,計算b。可取均值。
(3)構造決策函式。
非線性支援向量機
首先來看看核函式的概念 如果我們把svm看作是乙個飛彈,如果這個飛彈運載核彈的話那麼它就可以取得很大的威力,而核函式就類似於這樣可以取得很大的威力。我們在求解這優化問題的時候真的需要給定 為什麼高斯核函式好呢?因為它可以看作是將原始資料對映到了無窮維,舉個例子來說,比如我們要篩選豆子,它有飽滿和不飽...
支援向量機 線性分類SVM
模型原型 sklearn.svm.linearsvc penalty l2 loss squared hinge dual true,tol 0.0001,c 1.0,multi class ovr fit intercept true,intercept scaling 1,class weigh...
svm支援向量機學習
1.從零開始的機器學習之svm乙個簡單的實現案例 鳶尾花分類 2.svm的第乙個例項,這個和第乙個鏈結是乙個例子 3.機器學習 支援向量機svm及例項應用,例子仍然是地乙個 4.機器學習之旅 svm分類器,概述了svm的原理 5.支援向量機通俗導論 理解svm的三層境界 對svm原理講述的較為詳細 ...