名字即意义---从软间隔到线性支持向量机

支持向量机的进阶部分,之前我是做过最基本的推导的。想看的朋友戳这里《线性可分支持向量机》

上一篇我推导了一遍支持向量机的基本内容。包括支持向量机为什么提出,如何提出,还有为什么叫这个名字等方面,也包括支持向量机的完整数学推导。但是我们会发现一个问题,就是我们所有的推导都是建立在线性可分的条件下的,那么现实情况往往不那么乐观。所以我们需要对支持向量机理论进行扩充,使其能够进入实际应用。

而现有的支持向量机提出了两种方法来解决线性不可分的问题。一种是软间隔的引入,另一种是升维度使其可分。可能名字不好懂,没关系,接下来慢慢讨论。

软间隔

上一篇的两种间隔,几何间隔和函数间隔,都是属于硬间隔。意义是务必所有的样本点都被划分正确。那么有时候就会出现这种情况:

在支持向量机的推导中我们发现,支持向量机的基本工作机制是:找到类别中距离分隔线最近的点,并且调整分隔线最大化此间隔。而在如图所示样例中,我们不可能求得分隔线使得所有样本点都划分正确。并且导致此异常的点只占少数。那我们便引入软间隔。软间隔的最基本含义同硬间隔比较区别在于允许某些样本点不满足原约束,从直观上来说,也就是“包容”了那些不满足原约束的点。

当然,在最大化间隔的同时,不满足约束的样本应该尽量少。我们仍旧希望牺牲少量不满足约束的点的情况下,可以获得一条划分鲁棒性很好的分隔线。鲁棒性体现在正确分类样本数多,并且泛化性能足够好。

那么我们从数学角度来设计这个使用软间隔的线性支持向量机。

第一步,我们引入一个松弛变量\xi。也就是将硬间隔软化的“重要指标”。线性不可分意味着某些点不满足约束条件,则添加了松弛变量的约束条件就变成了:

y_i(w \cdot x_i +b) \geq 1- \xi_i

这个条件是需要所有的点都满足的。

并且的,对于每个松弛变量\xi_i,我们都要支付一定的代价。目标函数变为了:

\frac{1}{2} ||w^2||+C\sum_{i=1}^N \xi_i

其中C为惩罚参数。C大对松弛变量的惩罚越大。最小化目标函数中我们包含了两种意思,一种是使得\frac{1}{2} ||w^2||尽可能小并且间隔尽可能大,另一种就是误分类点的个数尽可能少。C便是调节这两者之间的关系。

那么我们带软间隔的线性支持向量机的问题便如下所示:

\min_{w,b,\xi} \quad \frac{1}{2}||w^2||+C \sum_{i=1}^N \xi_i
s.t.  \qquad  y_i(w \cdot x_i +b) \geq 1- \xi_i \quad i=1,2,...,N
\xi_i \geq 0  \qquad   i=1,2,...,N

此为凸二次规划问题。可知解(w,b,\xi)存在,可证明w唯一,而b存在一个解区间。这在图中也好解释。斜率一定,分隔线在2倍间隔中上下平移,也就有了b的区间。

原问题推导到对偶问题

我们根据原问题可写出其拉格朗日函数如下:

L(w,b,\xi,\alpha,\mu)= \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad
\frac{1}{2}||w^2||+C\sum_{i=1}^N\xi_i - \sum_{i=1}^N\alpha_i(y_i(w \cdot x_i+b)-1+\xi_i)-\sum_{i=1}^N\mu_i\xi_i

首先求函数对w,b,\xi的极小,将其微分如下:

\nabla_w L(w,b,\xi,\alpha,\mu)=w-\sum_{i=1}^N\alpha_iy_ix_i=0
\nabla_b L(w,b,\xi,\alpha,\mu)=-\sum_{i=1}^N \alpha_iy_i
\nabla_\xi L(w,b,\xi,\alpha,\mu)=C-\alpha_i-\mu_i

得:

w= \sum_{i=1}^N\alpha_iy_ix_i
\sum_{i=1}^N\alpha_iy_i=0
C-\alpha_i-\mu_i=0

将这几个式子代入到原拉格朗日函数中去,求拉格朗日函数对w,b,\xi的极小。得:

\min_{w,b,\xi}L(w,b,\xi,\alpha,\mu)=-\frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j(x_i \cdot x_j)+ \sum_{i=1}^N \alpha_i

再对其求关于\alpha的极大即得到我们的对偶问题:

\max_\alpha \quad -\frac{1}{2}  \sum_{i=1}^N \sum_{j=1}^N  \alpha_i \alpha_j y_i y_j(x_i \cdot x_j)+ \sum_{i=1}^N \alpha_i
s.t. \quad \sum_{i=1}^N\alpha_iy_i=0
\qquad \qquad C-\alpha_i-\mu_i=0
\qquad \qquad \alpha_i \geq0 \qquad \mu_i \geq0

利用C-\alpha_i-\mu_i=0消去\mu,只留下变量\alpha。因为我们最终要求解的w,b只与\alpha有关。并将约束写成0 \leq \alpha_i \leq C。再将目标函数由极大转换成极小,此过程仅仅为了求解习惯。那么最终我们就会得到原问题的对偶问题为:

\min_\alpha \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j(x_i \cdot x_j)-\sum_{i=1}^N \alpha_i
s.t. \qquad  \sum_{i=1}^N \alpha_i y_i=0  \qquad \quad
\qquad \qquad \qquad \qquad 0 \leq \alpha_i \leq C  \quad i=1,2,...,N

求解此对偶问题,我们会得到一个\alpha,则我们有如下定理:设\alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T为对偶问题的的一个解,若存在\alpha^*的一个分量\alpha_j^*并且有0<\alpha_j^*<C,则原始问题的解w^*,b^*可以按下式求得:

w^*=\sum_{i=1}^N\alpha_i^*y_ix_i
b^*=y_j -\sum_{i=1}^Ny_i\alpha_i^*(x_i \cdot x_j)

证明:

原问题是凸二次规划,解满足KKT条件,即得:

\nabla_w L(w,b,\xi,\alpha,\mu)=w-\sum_{i=1}^N\alpha_iy_ix_i=0
\alpha^*(y_i^*(w^* \cdot x_i+b^*)-1+\xi^*)=0
\mu_i\xi_i=0

由此三个式子很容易求解初w^*,b^*

线性支持向量机算法

输入:训练数据集T=[(x_1,y_1),(x_2,y_2),...,(x_N,y_N)],其中,x \in \chi=R^n,y_i \in \lbrace-1,+1 \rbrace \qquad i=1,2,...,N

输出:分离超平面和分类决策函数。

  1. 选择惩罚参数C>0,构造并解决凸二次规划问题。
\min_\alpha \frac{1}{2}\sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j(x_i \cdot x_j)- \sum_{i=1}^N \alpha_i
s.t. \qquad\sum_{i=1}^N \alpha_i y_i=0  \qquad \quad
\qquad \qquad \qquad \qquad 0 \leq \alpha_i \leq C  \quad i=1,2,...,N

求得最优解\alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T

2.计算

w^*= \sum_{i=1}^N\alpha_i^*y_ix_i

选择\alpha^*的一个分量\alpha_j^*适合条件0<\alpha_j^*<C,计算:

b^*=y_j- \sum_{i=1}^Ny_i\alpha_i^*(x_i \cdot y_i)
  1. 求得分离超平面:
w^* \cdot x +b^* =0

分离决策函数:

f(x)=sign(w^* \cdot x+b^*)

需注意的是,对于任意的\alpha_j^*满足条件,我们都可以求出一个b^*,b^*理论上不唯一,但是实际情况只需挑一个\alpha_j^*按算法求解即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值