-
T={(x1,y1),(x2,y2),⋯,(xN,yN)},其中xi∈X=Rn,yi∈Y={+1,−1},i=1,2,⋯,N,xi是第i個特徵向量,也稱爲實例,yi爲xi的類別標記
-
當y=+1時,稱xi爲正例;當y=−1時,稱xi爲正例
-
(xi,yi)爲樣本點,假設數據集是線性可分的
-
分離超平面爲:w⋅x+b=0,由法向量w和截距b決定,由(w,b)表示;將特徵空間分爲兩部分:正類和負類
-
支持向量機學習:正確分類訓練數據集+找到幾何間隔最大的分離超平面(以獲得比較好的泛化能力),這個超平面是唯一的
-
求函數間隔最大化的超平面:
w,bmax s.t. γyi(∥w∥w⋅xi+∥w∥b)⩾γ,i=1,2,⋯,N
-
求幾何間隔最大化的超平面:
w,bmax s.t. ∥w∥γ^yi(w⋅xi+b)⩾γ^,i=1,2,⋯,N
-
該優化問題與幾何間隔γ^的取值無關,故等價優化問題爲:
w,bmin s.t. 21∥w∥2yi(w⋅xi+b)−1⩾0,i=1,2,⋯,N
這是一個凸二次規劃問題,這個式子是SVM的原始最優化問題
-
求得最優解:w∗,b∗,得分離超平面:w∗⋅x+b∗=0,得分類超平面:f(x)=sign(w∗⋅x+b∗)
-
最大間隔分離超平面的存在唯一性可證明
-
支持向量對應於:yi(w⋅xi+b)−1=0
-
對應於兩個超平面:
對應yi=+1的正例點,支持向量在超平面:H1:w⋅x+b=1
對應yi=−1的負例點,支持向量在超平面:H2:w⋅x+b=−1;
-
在H1,H2上的點稱爲支持向量,分離超平面位於H1,H2中央,H1,H2稱爲間隔邊界
-
H1,H2之間的距離稱爲間隔,等於:∥w∥2
-
在確定分離超平面時只有支持向量起着決定作用,所以將這種分類模型稱爲支持向量機
-
例7.1的解法,Python程序實現爲:
from scipy import optimize
import numpy as np
fun = lambda x: ((x[0]) ** 2 + (x[1]) ** 2)/2
cons = ({'type': 'ineq', 'fun': lambda x: 3 * x[0] + 3 * x[1] + x[2] - 1},
{'type': 'ineq', 'fun': lambda x: 4 * x[0] + 3 * x[1] + x[2] - 1},
{'type': 'ineq', 'fun': lambda x: -x[0] - x[1] - x[2] - 1})
res = optimize.minimize(fun, np.ones(3), method='SLSQP', constraints=cons)
res
-
對偶問題往往更容易求解;自然引入核函數,進而推廣到非線性分類問題
-
針對每個不等式約束,定義拉格朗日乘子αi≥0,定義拉格朗日函數:
KaTeX parse error: No such environment: align at position 19: …olor{red}\begin{̲a̲l̲i̲g̲n̲}̲
L(w,b,\alpha)&…
其中α=(α1,α2,…,αN)T爲拉格朗日乘子向量
-
原始問題是極小極大問題,根據拉格朗日對偶性,原始問題的對偶問題是極大極小問題:
αmaxw,bminL(w,b,α)
-
求w,bminL(w,b,α):
∇wL(w,b,α)=w−i=1∑Nαiyixi=0∇bL(w,b,α)=i=1∑Nαiyi=0
得:
w=i=1∑Nαiyixii=1∑Nαiyi=0
代入L(w,b,α)後得:
L(w,b,α)=21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαiyi((j=1∑Nαjyjxj)⋅xi+b)+i=1∑Nαi=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
即:
w,bminL(w,b,α)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi
-
求w,bminL(w,b,α)對α的極大,既是對偶問題:
αmax s.t. −21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαii=1∑Nαiyi=0αi⩾0,i=1,2,⋯,N
目標函數轉化爲最小:
αmin s.t. 21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαii=1∑Nαiyi=0αi⩾0,i=1,2,⋯,N
-
根據上不等式可求得α∗=(α1∗,α2∗,⋯,αN∗)T,進一步求得:w∗,b∗
w∗b∗==i=1∑Nαi∗yixiyj−i=1∑Nαi∗yi(xi⋅xj)
分離超平面爲:
i=1∑Nαi∗yi(x⋅xi)+b∗=0
線性可分支持向量機的對偶形式,分類決策函數:
f(x)=sign(i=1∑Nαi∗yi(x⋅xi)+b∗)
定義:訓練數據集中對應於αi∗>0的樣本點(xi,yi)的實例點xi∈Rn稱爲支持向量
由KKT互補條件可知:αi∗(yi(w∗⋅xi+b∗)−1)=0,i=1,2,⋯,N
對於αi∗>0的樣本點(xi,yi),有:yi(w∗⋅xi+b∗)−1=0
或者:w∗⋅xi+b∗=±1
即:樣本點(xi,yi)一定在間隔邊界上