划分超平面的模型如下:
f(x)=wT+b
其中 w 和
确定模型参数的优化目标为:
minw,b12||w||2,s.t.yi(wTxi+b)≥1,i=1,2,...,m
使用拉格朗日乘子法可得其对偶问题
L(w,b,a)=12||w||2+∑i=1mai(1−yi(wTxi+b))
其中, a=(a1,a2,...,am)
令 L(w,b,a) 对 w,b 求偏导可得
w=∑i=1maiyixi
0=∑i=1maiyi
于是, 对偶问题为
maxa∑i=1mai−12∑i=1m∑j=1maiajyiyjxTixj,s.t.∑i=1maiyi=0,ai>=0,i=1,2,...,m
解出 a 后, 可以求得
上式还需满足KKT条件:
ai≥0,yif(xi)−1≥0,ai(yif(xi)−1)=0
求解此问题的算法, 著名的有SMO(Sequential Minimal Optimization).
Sample Code: https://github.com/volvet/MLInAction/tree/master/SVM
Reference
- 机器学习 - 周志华 清华大学出版社
- Machine Learning in Action - Peter Harrington