一、硬间隔SVM
- 模型定义
假设有以下数据:
{(xi,yi)}i=1N,xi∈Rp,yi∈{+1,−1}
SVM的主要思想是在特征空间中寻找一个最大间隔的超平面wTx+b实现数据的二分类,SVM属于判别模型。这里的间隔指的是样本点到分离超平面的距离的最小值,用函数margin(w,b)来表达。下图中在w⋅x+b=1和w⋅x+b=−1线上的样本点就叫支持向量:

超平面实现将数据的正例和负例分隔开,因此有:
yi=+1,wTxi+b>0yi=−1,wTxi+b<0}yi(wTxi+b)>0,for∀i=1,2,⋯,N
另外最大间隔通过以下方式来表达:
①首先要明确样本点到超平面的距离公式:distance(w,b,xi)=∥w∥∣∣wTx+b∣∣(可以参考初中知识点:点到直线距离d=A2+B2∣Ax+By+C∣)②因此间隔可以表达为:margin(w,b)=ximindistance(w,b,xi)=ximin∥w∥∣∣wTxi+b∣∣,i=1,2,⋯,N③最大间隔可以表达为:w,bmaxmargin(w,b)=w,bmaxximin∥w∥∣∣wTxi+b∣∣=w,bmaxximin∥w∥yi(wTxi+b),i=1,2,⋯,N
然后求解支持向量机就可以转化为以下带约束的优化问题:
{w,bmaxmargin(w,b)=w,bmaxximin∥w∥yi(wTxi+b),i=1,2,⋯,Ns.t.yi(wTxi+b)>0,i=1,2,⋯,N
上述优化问题还可以进一步转化:
由约束yi(wTxi+b)>0,i=1,2,⋯,N可以得出∃γ>0使得ximinyi(wTxi+b)=γ由于确定同一个超平面的w,b可以任意放缩,所以这里的γ可以约束等于1。则w,bmaxmargin(w,b)=w,bmaxximin∥w∥yi(wTxi+b)=w,bmax∥w∥1=γ=1ximinyi(wTxi+b)=w,bmax∥w∥1=w,bmin21wTwi=1,2,⋯,N
由此上述优化问题转化为:
{w,bmin21wTws.t.yi(wTxi+b)≥1,i=1,2,⋯,N
这是一个带N个约束的凸优化问题。
- 优化问题的转化
上述优化问题可以使用拉格朗日乘子法来求解,构建拉格朗日函数:
L(w,b,λ)=21wTw+i=1∑Nλi(1−yi(wTxi+b))λ=(λ1λ2⋯λN)T
然后上述优化问题就可以转换为以下优化问题:
{w,bminλmaxL(w,b,λ)=21wTw+∑i=1Nλi(1−yi(wTxi+b))s.t.λi≥0,i=1,2,⋯,N
我们可以简单地看一下为什么可以这么转化:
当1−yi(wTxi+b)>0时,由于λi≥0,所以λmaxL(w,b,λ)=∞当1−yi(wTxi+b)≤0时,由于λi≥0,所以λmaxL(w,b,λ)=21wTw因此w,bminλmaxL(w,b,λ)=w,bmin{21wTw,∞}=21wTw
然后使用以下结论继续对该优化问题进行转化:
minmaxL的对偶问题为maxminL,有以下结论:minmaxL≥maxminL可以简单地认为对于L先取最大,再从最大里面取最小就一定大于等于先取最小,再从最小里面取最大类似于“凤尾”≥“鸡头”如果minmaxL是凸优化问题,所以minmaxL=maxminL,为强对偶关系
因此该优化问题可以继续转化:
{λmaxw,bminL(w,b,λ)=21wTw+∑i=1Nλi(1−yi(wTxi+b))s.t.λi≥0,i=1,2,⋯,N
总结一下,该优化问题经历了以下转化过程:
①带约束优化问题{w,bmaxmargin(w,b)=w,bmaxximin∥w∥yi(wTxi+b),i=1,2,⋯,Ns.t.yi(wTxi+b)>0,i=1,2,⋯,N②带约束优化问题{w,bmin21wTws.t.yi(wTxi+b)≥1,i=1,2,⋯,N③无约束优化问题{w,bminλmaxL(w,b,λ)=21wTw+∑i=1Nλi(1−yi(wTxi+b))s.t.λi≥0,i=1,2,⋯,N④无约束优化问题{λmaxw,bminL(w,b,λ)=21wTw+∑i=1Nλi(1−yi(wTxi+b))s.t.λi≥0,i=1,2,⋯,N
- 模型求解
∂b∂L=∂b∂∑i=1Nλi−∑i=1Nλiyi(wTxi+b)=∂b∂−∑i=1Nλiyib=−i=1∑Nλiyi=0因此得出i=1∑Nλiyi=0
将上一步的结果代入L(w,b,λ)L(w,b,λ)=21wTw+i=1∑Nλi−i=1∑NλiyiwTxi−=0i=1∑Nλiyib=21wTw+i=1∑Nλi−i=1∑NλiyiwTxi∂w∂L=w−i=1∑Nλiyixi=0得出w∗=i=1∑Nλiyixi
这里我们可以看出w∗是数据的线性组合。
- 得出w,bminL(w,b,λ)
接着将上一步的结果代入L(w,b,λ)w,bminL(w,b,λ)=21(i=1∑Nλiyixi)T(j=1∑Nλjyjxj)+i=1∑Nλi−i=1∑Nλiyi(j=1∑Nλjyjxj)Txi=21i=1∑Nj=1∑NλiλjyiyjxiTxj−i=1∑Nj=1∑NλiλjyiyjxjTxi+i=1∑Nλi=21i=1∑Nj=1∑NλiλjyiyjxiTxj−i=1∑Nj=1∑NλiλjyiyjxiTxj+i=1∑Nλi=−21i=1∑Nj=1∑NλiλjyiyjxiTxj+i=1∑Nλi
因此该优化问题就相当于:
⎩⎪⎨⎪⎧λmax−21∑i=1N∑j=1NλiλjyiyjxiTxj+∑i=1Nλi,i=1,2,⋯,Ns.t.yi(wTxi+b)>0,i=1,2,⋯,N∑i=1Nλiyi=0
也就相当于:
⎩⎪⎨⎪⎧λmin21∑i=1N∑j=1NλiλjyiyjxiTxj−∑i=1Nλi,i=1,2,⋯,Ns.t.yi(wTxi+b)>0,i=1,2,⋯,N∑i=1Nλiyi=0
首先定义该优化问题的KKT条件:
⎩⎪⎪⎨⎪⎪⎧∂w∂L=0,∂b∂L=0λi(1−yi(wTxi+b))=0λi≥01−yi(wTxi+b)≤0
该优化问题满足上述KKT条件,这是由于以下定理:
原问题、对偶问题具有强对偶关系⇔满足KKT条件
KKT条件中λi(1−yi(wTxi+b))=0也叫松弛互补条件,即λi和1−yi(wTxi+b)总有一个为0。也就是说只有支持向量对应的λi才可能有值(λi=0),而其他不在w⋅x+b=1和w⋅x+b=−1上的样本点对应的λi一定为0,该性质可以用来求出b∗。
我们已经根据∂w∂L=0求出了w∗,接下来要求出b∗,我们可以通过求解$\underset{\lambda }{min}; \frac{1}{2}\sum_{i=1}{N}\sum_{j=1}{N}\lambda {i}\lambda {j}y{i}y{j}x_{i}{T}x_{j}-\sum_{i=1}{N}\lambda _{i},i=1,2,\cdots ,N\ 来得出各个\lambda _{i}$,而这个过程也是支持向量机算法计算量最大的地方,这里我们就不展示过程了。
找出求解得到的不等于0的λi,也就是支持向量对应的λi,假设其中一个支持向量为(xk,yk),则有1−yk(wTxk+b)=0,最终可以解得:
b∗=yk−wTxk=yk−i=1∑NλiyixiTxk
二、软间隔SVM
我们的训练数据通常不是理想的线性可分,有时甚至是线性不可分的数据。对于存在噪声的一些数据,我们应该允许一点分类错误,因此我们需要对目标函数进行一些调整:
w,bmin21wTw+loss
- 使用误分类点的个数作为loss
loss=i=1∑NI{yi(wTxi+b)<1}
显然使用的指示函数是不连续的,不利于求解,所以不使用这种loss函数。
- 使用距离作为loss
如果yi(wTxi+b)≥1,loss=0如果yi(wTxi+b)<1,loss=1−yi(wTxi+b)}loss=max{0,1−yi(wTxi+b)}
该函数为合页损失函数(hinge loss),令z=yi(wTxi+b),则loss对z的图像如下:

- 软间隔SVM的优化问题
{w,bmin21wTw+C∑i=1Nmax{0,1−yi(wTxi+b)}s.t.yi(wTxi+b)≥1,i=1,2,⋯,N
引入ξi=1−yi(wTxi+b),ξi≥0,i=1,2,⋯,N,则该优化问题转化为:
$$\left{\begin{matrix}
\underset{w,b}{min}; \frac{1}{2}w{T}w+C\sum_{i=1}{N}\xi {i}\
s.t.; y{i}(w^{T}x_{i}+b)\geq 1-\xi _{i},i=1,2,\cdots ,N
\end{matrix}\right.\$$
上面的式子中,常数C可以看作允许的错误⽔平,同时上式为了进⼀步消除max符号,对数据集中的每⼀个观测,我们可以认为其⼤部分满⾜约束,但是其中部分违反约束,因此这部分约束变成yi(wTxi+b)≥1−ξi。
软间隔SVM也是使用拉格朗日乘子法进行求解。
公众号同步更新
