3. 支持向量机SVM
SVM主要用于分类问题, w∈Rn,b∈R,y∈{ −1,1} (注意此处不再将b视为 w0 )
3.1 引言
3.1.1 training set完全线性可分
假设有很多wx+b=0超平面可以将training set中的数据正确分类,那么应该选用哪个(w,b)呢?如下图所示:
很容易凭借直觉选出wx+b=0与所有的数据点都比较远的超平面,由此我们可以选择这样的(w,b):
使得 maxwmargin(w) ,其中 margin(w)=minn=1..m1||w|||wTx+b| ,这样做的一个问题是:假设(w’,b’)我们最终选择出来的参数值,那么(cw’,cb’)也满足条件(其中c为任意非零实数)。
为了解决这一问题,我们要求只在这样的(w,b)中选取: minn=1..m|wTx+b|=1
如果这样的话,问题就转化成:
maxb,w1||w|| subject tominn=1..m|wTx+b|=1
并且(w,b)应当满足将training set正确分类这一限制条件:对于每个数据,应该用
yi(wTxi+b)>0
,可以看到只要满足条件
minn=1..m|wTx+b|=1
,必然会满足
y(i)(wTx(i)+b)>0
,所以最终形式是:
minb,w12wTw
s.t. y(i)(wTx(i)+b)≥1
直观上来说会找到这样的超平面:
3.1.2 training set线性不可分
对于分错类的数据应当引入惩罚项。假设 (x(i),y(i)) 出现分类错误,那么如何衡量这一错误?
很自然就想到使用: C×