一般情况下,测试数据应该分布在训练样本附近,但与训练样本的位置有一些误差。若要保证对未知的数据也能分类正确,最好让分类直线距离正负类点都有一定的距离,这样能让每个样本点附近的圆形区域都是安全的(以样本点为中心)。圆心区域越大,表示分类直线对测量数据的误差容忍性越高,越“安全”。目标就是找到这样一条最“”最健壮的线“”,距离数据点越远越好。
只要看距离分类线最近的点即可,用margin表示。分类线由权重w决定
目的:找到使margin最大时对应的w值
点到直线的距离公式为:
distance(xn,b,w)=1∣∣w∣∣∣wTxn+b∣distance(x_n,b,w) = \frac{1}{||w||}|w^Tx_n+b|distance(xn,b,w)=∣∣w∣∣1∣wTxn+b∣
基于这条直线,所有的点均满足:yn(wTxn)>0y_n(w^Tx_n)>0yn(wTxn)>0
则distance公式可变为:
distance(xn,b,w)=1∣∣w∣∣yn(wTxn+b)distance(x_n,b,w) = \frac{1}{||w||}y_n(w^Tx_n+b)distance(xn,b,w)=∣∣w∣∣1yn(wTxn+b)
目标形式:
maxb,w margin(b,w)subject to every yn(wTxn)>0,margin(b,w)=minn=1,…,N1∣∣w∣∣ yn(wTxn+b)max_{b,w}\ margin(b,w) \\subject \ to \ every \ y_n(w^Tx_n)>0 ,\\margin(b,w) = min_{n=1,\dots,N} \frac{1}{||w||}\ y_n(w^Tx_n+b)maxb,w margin(b,w)subject to every yn(wTxn)>0,margin(b,w)=minn=1,…,N∣∣w∣∣1 yn(wTxn+b)
对w和b进行缩放,使距离分类线最近的点满足:yn(wTxn)=1y_n(w^Tx_n)=1yn(wTxn)=1,那么margin=1∣∣w∣∣margin = \frac{1}{||w||}margin=∣∣w∣∣1
这样目标形式就变成了:
max1∣∣w∣∣subject to every yn(wTxn)>0,min1,2,…,N yn(wTxn)>0max \frac{1}{||w||} \\ subject \ to \ every \ y_n(w^Tx_n)>0 ,\\ min_{1,2,\dots,N} \ \ y_n(w^Tx_n)>0max∣∣w∣∣1subject to every yn(wTxn)>0,min1,2,…,N yn(wTxn)>0
因为yn(wTxn)=1y_n(w^Tx_n) = 1yn(wTxn)=1必然满足yn(wTxn)>0y_n(w^Tx_n) >0yn(wTxn)>0,故该条件可省略,又将最大化问题转化为最小化问题,则
目标形式变为:
min12w2subject to yn(wTxn+b)≥1for all nmin\frac{1}{2}w^2\\subject \ to \ y_n(w^Tx_n+b)\geq1 for \ all \ nmin21w2subject to yn(wTxn+b)≥1for all n
决定分类面的那些点称为支持向量(support vector),这种利用支持向量得到最佳分类面的方法,称为支持向量机。
接下来介绍支持向量机问题的对偶化。
对偶化的理由:上面所介绍的支持向量机是一个二次规划问题,有d+1(变量维度)个变量,N个限制条件,在特征转化下(z域),模型越复杂,则d越大,问题将变得难以求解。若将其转化为对偶问题,则变量个数变为N个,有N+1个限制条件,则问题只与N有关,与d无关,当d很大时依然可以求解。
如何将条件问题变为非条件问题?
构造lagrange函数,,令lagrange因子为α\alphaα,则函数为:
L(b,w,α)=12wTw+∑n=1Nαn(1−yn(wTzn+b))L(b,w,\alpha) = \frac{1}{2}w^Tw+\sum_{n=1}^N\alpha_n(1-y_n(w^Tz_n+b))L(b,w,α)=21wTw+n=1∑Nαn(1−y