您的位置:首页 > 其它

SVM-3-最优间隔分类器

2016-03-20 17:18 190 查看
参考http://www.cnblogs.com/jerrylead

在第一篇(SVM-1-问题描述)中我们得到了下面的优化问题:

minδ,w,b 12||w||2s.t. yi(wTxi+b)≥1, i=1,...,m\min_{\delta,w,b}\ \frac{1}{2}||w||^2\\
s.t.\ y^i(w^Tx^i+b) \geq 1,\ i=1,...,m

把约束条件写成下面的形式:

gi(w)=−yi(wTx∗+b)+1≤0g_i(w) = -y^i(w^Tx^*+b)+1 \leq 0

这样就变成了在约束条件gi(w)≤0g_i(w) \leq 0下,求minδ,w,b 12||w||2\min_{\delta,w,b}\ \frac{1}{2}||w||^2的最优化问题。

在KKT对偶互补条件中我们知道,当αi>0\alpha_i > 0时,gi(w)=0g_i(w)=0,即gi(w)=−yi(wTx∗+b)+1=0g_i(w) = -y^i(w^Tx^*+b)+1 =0,也就是说yi(wTx∗+b)=1y^i(w^Tx^*+b)=1,即函数间隔等于1。

而当αi=0\alpha_i=0时,一般而言gi(w)<0g_i(w)<0(当然,少数情况下,也许、大概、可能也会有gi(w)=0g_i(w)=0,咱们忽略它,毕竟是少数。。。)。

我们看下面的图:



中间的实线是最大间隔超平面,上图中与超平面距离最近的样本有三个(这三个样本与超平面的距离相同),还记得在SVM-1-问题描述中我们将函数间距设为1吗?!也就是说,这三个样本与超平面的距离为1!

在图中还有两根虚线,它们与实线平行,且与实线的距离为1,也就是说,所有与超平面的距离为1的样本都在这两条虚线上。

之前说过距离为1,就要求gi(w)=0,αi>0g_i(w)=0,\alpha_i>0,从图中可以看出,满足距离为1的样本只是少数,大多数情况下距离都是大于1的,即大多数情况下αi是等于0的\alpha_i是等于0的。

对于上面距离为1的样本有个专门的名字:“支持向量”。

现在将拉格朗日算子应用到我们的最优化问题中,构造拉格朗日函数如下:

L(w,b,α)=12||w||2−∑i=1mαi[yi(wTx∗+b)−1] (1)L(w,b,\alpha)=\frac{1}{2}||w||^2-\sum^m_{i=1}\alpha_i[y^i(w^Tx^*+b)-1]\ \ \ \ \ \ \ \ (1)

注意到这里只有αi\alpha_i没有βi\beta_i是因为原问题中没有等式约束,只有不等式约束。

下面考虑对偶问题

首先求解minL(w,b,α)\min L(w,b,\alpha),对于固定的αi\alpha_i该式的值只与w和bw和b有关,我们可以令θD(α)=minw,bL(w,b,α)\theta_D(\alpha)=\min_{w,b} L(w,b,\alpha),为了求θD(α)\theta_D(\alpha)的最小值,我们需要对LL求w和bw和b的偏导数:

▽wL(w,b,α)=w−∑imαiyixi=0进而可得:w=∑imαiyixi (2)\bigtriangledown_w L(w,b,\alpha) = w - \sum^m_i\alpha_iy^ix^i = 0\\
进而可得:w=\sum^m_i\alpha_iy^ix^i\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (2)%

∂∂bL(w,b,α)=∑i=1mαiyi=0 (3)\frac{\partial}{\partial b}L(w,b,\alpha) = \sum^m_{i=1}\alpha_iy^i=0\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (3)

将公式(2)带入(1)可得:

L(w,b,α)=∑i=1mαi−12∑i,j=1myiyjαiαj(xi)Txj−b∑i=1mαiyiL(w,b,\alpha) = \sum^m_{i=1}\alpha_i-\frac{1}{2}\sum^m_{i,j=1}y^iy^j\alpha_i\alpha_j(x^i)^Tx^j-b\sum^m_{i=1}\alpha_iy^i%

推到如下(公式太多直接截图。。。):



由公式(3)可知,最后一项为0,故上式可改写为:

L(w,b,α)=∑i=1mαi−12∑i,j=1myiyjαiαj(xi)TxjL(w,b,\alpha) = \sum^m_{i=1}\alpha_i-\frac{1}{2}\sum^m_{i,j=1}y^iy^j\alpha_i\alpha_j(x^i)^Tx^j%

上面是在α\alpha固定不变的前提下,求minw,bL(w,b,α)\min_{w,b} L(w,b,\alpha),现在开始求原问题的对偶问题:

maxαW(α)=∑i=1mαi−12∑i,j=1myiyjαiαj<xi,xj>s.t. αi≥0, i=1,...,m∑i=1mαiyi=0\max_\alpha W(\alpha) = \sum^m_{i=1}\alpha_i-\frac{1}{2}\sum^m_{i,j=1}y^iy^j\alpha_i\alpha_j\\
s.t.\ \alpha_i \geq 0, \ i=1,...,m\\
\sum^m_{i=1}\alpha_iy^i=0
%

注:

1、<xi,xj>表示向量的内积,与(xi)Txj(x^i)^Tx^j等价。

2、αi\alpha_i此时当然已经不能再是一个固定的值了。

可以发现,上式是满足KKT条件的,因此我们可以用它来代替原始问题。

3、现在只有一个参数α\alpha啦!

假如我们现在已经求出了α\alpha:

我们首先可以通过公式(2)w∗=∑miαiyixi(2)w^*=\sum^m_i\alpha_iy^ix^i,计算得到w∗w^*。

然后可以通过下式计算得到b∗b^* %:

b∗=−maxi:yi=−1w∗Txi+mini:yi=1w∗Txi2 b^*=-\frac{\max_{i:y^i=-1}w^{*T}x^i+\min_{i:y^i=1}w^{*T}x^i}{2}\ \ \ %

注:别问我为什么。。。。就是可以。。。

假设我们已经利用上面得到的参数训练完成一个模型,当输入一个新的样本时,将公式(2)带入wTx+bw^Tx+b我们就可以进行预测:

wTx+b=(∑i=1mαiyixi)Tx+b=∑i=1mαiyi<xi,x>+bw^Tx+b=(\sum^m_{i=1}\alpha_iy^ix^i)^Tx+b\\
=\sum^m_{i=1}\alpha_i y^i+b

即我们只需要计算输入样本与所有训练样本内积即可,另外还记得“支持向量”这个名词吧!对于上式中的αi\alpha_i只有很少一部分支持向量的αi\alpha_i才不等于0,因此并不需要与所有训练样本去做计算。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: