支持向量机(SVM)二

支持向量机(SVM)

标签(空格分隔): 监督学习


@author : duanxxnj@163.com
@time : 2016-07-31




二、软间隔最大化分类器

在这篇文章之前所有的讨论中,假设,所面对的数据在特征空间 ϕ(x) 中是线性可分的,那么,最终得到的SVM可以在输入空间 X 中得到一个准确的判别面,尽管其对应的判别面可能是一个非线性判别面。

然而,在现实的数据中,数据是线性不可分的(或者近似线性可分)。换一种说法就是:类条件分布存在重叠。如果这样,上面讲的算法最终只会有两种结果:1、决策面会出现严重的震荡,而无法收敛;2、即便收敛到了一个非线性的决策面,其决策面也会十分的复杂,泛化能力低。

因此,我们就需要对原始的SVM算法做一定的改动,让它对数据的要求,从线性可分扩展到线性不可分。即:允许部分训练数据存在分类错误的情况,以得到一个相对比较好的决策面。 这个改动后的SVM一般被称为 软间隔最大化分类器 ,而与之相对应的,前面论述的只可以解决线性可分数据的SVM,称为 硬间隔最大化分类器


2.1 软间隔最大化分类器的两个问题

那么,现在就有两个问题摆在我们面前:

1.在SVM中,对于非线性可分的数据而言,哪些样本点是存在分类错误的样本点?
2.对于分类错误的点,软间隔最大化分类器 如何处理以得到相对比较好的决策面?

两个问题,就是软间隔最大化分类器的核心问题,回答了这两个问题,掌握了软间隔最大化分类器。

哪些是分类错误的样本点

首先必须要知道,面对一个非线性可分的数据集,哪些样本点是分类错误的样本点?可以先看下面这幅图:
image_1aogssta61j891jqn6l8qe168d9.png-63.9kB

图中,左边那幅图对应的是数据线性可分时,SVM的状态。此时有决策面:xTβ+β0=0 ,也就是之前讨论的 xTw+b=0 ,只是写法不同而已。根据前面“最小间隔最大化”小章节的讨论可知:最小间隔为 M=1/||β|| ,也就是之前的表达式: r=1/||w|| 。这种状态,是所有数据点都分类正确,且最小间隔最大分类的状态。

图中,右边那幅图对应的就是数据线性不可分时,SVM的状态。此时决策面依然是: xTβ+β0=0 ,最小间隔仍然为 M=1/||β|| 。不过,右图中 ξi;i=1,2...5 就是非线性可分数据在SVM中分类错误的点。

那么总结一下,在非线性可分的情况下,样本点的状态一共有下面五种:
1.非支持向量,即是在 margin 两侧,被正确分类的样本点。这些样本点对于SVM的决策面没有贡献。
2.在 margin 边界上面的点,这个是支持向量,且被正确分类。
3.在 margin 内部,被正确分类的点,比如 ξ1,ξ2,ξ4 ,这些也是支持向量。
4.在决策面上的点,这些点可以拒绝判断,也可以直接认为是分类正确的点。
5.真正的被分类错误的点: ξ3,ξ5 ,这些点直接走到了决策面的另一边去了。

很容易发现,相对于数据线性可分的情况而言,非线性可分数据的状态多了三种情况,也就是上面五种情况的后三种,线性可分的数据只存在前面两种情况。

而后面三种情况的样本点的间隔,都比最小间隔 r 也就是图中的 M 要小一些,所以,后面这三种情况,就是SVM认为的错误的样本点(即便情况3、情况4样本被分类正确了),软间隔最大化分类器 就是要针对后面这三种情况来做文章。


分类错误的样本点的处理:软间隔变量

前面提到了,后面三种情况的样本点的间隔,都比最小间隔 r 也就是图中的 M 要小一些。这里首先要考虑的问题就是,如何用公式来表达后面这三种情况?这里就引入了一个最小间隔 r 的比例因子:软间隔变量 ξ ξ 是最小间隔 r 的比例系数,或者叫做倍数。下面先分别讨论如何将软间隔变量 ξ 应用到上面的后三种情况中:

  • 对于前面第三种情况:在 margin 内部,被正确分类的点,比如 ξ1,ξ2,ξ4 。这些点的间隔为:

    ξi=ξir;    0<ξi<1

  • 对于前面第四种情况:在决策面上的点,这些点的间隔为:

    ξi=ξir;    ξi=1

  • 对于前面第五种情况:真正的被分类错误的点: ξ3,ξ5 ,这些直接走到了决策面的另一边去了的点,这些点的间隔为:

    ξi=ξir;    ξi>1

为了将前面的第一种情况:非支持向量,即是在 margin 两侧,被正确分类的样本点。和第二种情况:在 margin 边界上面的点,这个是支持向量,且被正确分类。也统一的用软间隔变量 ξ 来表示,这里将SVM的优化公式重写为下面这个形式:

maxw,brstti{wTϕ(xi)+b}||w||r(1ξi);  i=1,2,...Nξi0;i=1,2,...N

而前面第一种情况和第二种情况所对应的 ξi=0

和“最小间隔最大化”章节中讨论的一样, w b比值 不变的情况下, w 是可以任意取值的。这样的话,为了便于计算,我们就取:

||w||=1r

那么,上面的式子又可以改写为:

maxw,b1||w||stti{wTϕ(xi)+b}1ξi;i=1,2,...Nξi0;i=1,2,...N

可以看到,上面的式子是最大化 1/||w|| ,很容易知道,其等价于 最小化 ||w||2 ,那么最小间隔最大化,最终就可以变为下面这个式子:

minw,b||w||2stti{wTϕ(xi)+b}1ξi;i=1,2,...Nξi0;i=1,2,...N

这里,最小间隔为:

r=1||w||


2.2 软间隔最大化分类器 的优化公式

上面提到的第五种情况,真正的被分类错误的点: ξ3,ξ5 ,这些直接走到了决策面的另一边去了的点,所对应的 ξi>1 。如果说我们知道 Ni=1ξiK ,那么,就可以说,这个 软间隔最大化分类器 的训练错误样本数,最多为 K 个。让训练误差尽量的小也是我们的一个优化目标,这样,软间隔最大化分类器 就成了一个多目标的优化问题:

minw,b12||w||2minξi=1Nξistti{wTϕ(xi)+b}1ξi;i=1,2,...Nξi0;i=1,2,...N

由于上面两个优化目标的限制条件是一样的,可以将两个优化目标合成一个优化目标:

minw,b,ξ{12||w||2+Ci=1Nξi}stti{wTϕ(xi)+b}1ξi;i=1,2,...Nξi0;i=1,2,...N

这里的参数 C 是损失参数(cost parameter),用于权衡||w||2 Ni=1ξi 。一般我们将 ||w||2 视为模型的复杂度,而将 Ni=1ξi 视为模型的错误率,损失参数 C 就是在模型复杂度和模型的错误率之间找一个平衡,这个值一般作为模型的一个输入变量,需要人工设置:

  • C 越小,模型越偏向于最小化||w||2,而忽略 Ni=1ξi ,这样模型非常简单,但模型的错误率相对较高。

    • C 越大,模型越偏向于最小化 Ni=1ξi ,而忽略 ||w||2 ,这样模型的错误率相对较低,但模型相对较为复杂。
    • 需要强调: ξi 是对于SVM而言,分类错误的样本点 xi 的分类错误间隔相对于最小间隔 r 的比例。我们不可能让错误的比例无限的增长,那样分类错误就太大了。所以,我们需要对错误间隔进行限制,而限制的手段,就是为总的错误间隔比例加一上限:ξiconstant。这是软间隔最大化分类器 优化公式的另一种解释。


      2.3 软间隔最大化分类器 的对偶问题

      这里的步骤和 1.5 拉格朗日对偶性 几乎雷同,首先将 软间隔最大化分类器 的优化公式转换为拉个朗日函数的形式,其原始的优化公式为:

      minw,b,ξ{12||w||2+Ci=1Nξi}stti{wTϕ(xi)+b}1ξi;i=1,2,...Nξi0;i=1,2,...N

      拉个朗日函数为:

      L(w,b,ξ,α,μ)=12||w||2+Ci=1Nξii=1Nαi{ti{wTϕ(xi)+b}1+ξi}i=1Nμiξn

      其中, αi,μi 为拉格朗日乘子。将 L(w,b,ξ,α,μ) 分别对 w,b,ξ 求偏导:

      wL(w,b,ξ,α,μ)bL(w,b,ξ,α,μ)ξiL(w,b,ξ,α,μ)=wi=1Nαitiϕ(xi)=0=i=1Nαiti=0=Cαiβi=0;i=1,2,..N

      就可以得到:

      w=i=1Nαitiϕ(xi)i=1Nαiti=0Cαiβi=0;i=1,2..N

      将上面三个式子带入到 L(w,b,ξ,α,μ) 中,和之前 1.6 最小间隔最大化求解 中的推导一样,最终可以得到:

      minw,b,ξL(w,b,ξ,α,μ)=12i=1Nj=1N{αiαjtitj<ϕ(xi),ϕ(xj)>}+i=iNαi

      这里的 <ϕ(xi),ϕ(xj)> <script type="math/tex" id="MathJax-Element-1553"><\phi(x_i),\phi(x_j)></script> 是 ϕ(xi) ϕ(xj) 的內积。

      再对 minw,b,ξL(w,b,ξ,α,μ) 求极大化,即可得到 软间隔最大化分类器 的对偶问题:

      maxα{12i=1Nj=1N{αiαjtitj<ϕ(xi),ϕ(xj)>}+i=iNαi}

      s.t.  i=1NαitiCαiμiαiμi=0=000;i=1,2,...N

      这个就是原问题的对偶问题,当然了,可以将这个对偶问题的目标函数的符号换一下,,让它成为一个最小化的问题,并将后面三个式子做一个合并:

      minα{12i=1Nj=1N{αiαjtitj<ϕ(xi),ϕ(xj)>}i=iNαi}

      s.t.  i=1Nαiti0αi=0C;i=1,2,...N

      这就是 软间隔最大化分类器 的对偶问题,和前面相比,这里的对偶问题只是限制条件 0αiC 和前面不同,其他的是一模一样的。


      2.4 软间隔最大化分类器 求解

      很显然,得到了软间隔最大化分类器 的对偶形式之后,其优化求解出来的就是最优解 α 。这里再次说明:假设 α 我们已经通过某种算法得到了,至于这个算法是什么后面的章节会详细的说明,这里不同担心。

      仿照 1.5 拉格朗日对偶性 中的公式推导 ,假设 x,α,ξ,α,μ 为最优解,可以很容易推出 软间隔最大化分类器 拉格朗日优化的KKT条件为:

      wL(x,α,ξ,α,μ)bL(x,α,ξ,α,μ)ξL(x,α,ξ,α,μ)αi(ti{wTϕ(xi)+b}1+ξi)ti{wTϕ(xi)+b}1+ξiαiμiξiξiμi=wi=1Nαitiϕ(xi)=0=i=1Nαiti=0=Cαiμi=0=0;i=1,2,...N0;i=1,2,...N0;i=1,2,...N=0;i=1,2,...N0;i=1,2,...N0;i=1,2,...N

      在假设知道 α 的情况下,由KKT条件的第一个公式: wL(x,α,ξ,α,μ)=wNi=1αitiϕ(xi)=0 可以知道, w 的最优解为:

      w=i=1Nαitiϕ(xi)

      再找到一个 0<αj<C ,其所对应的样本点满足: ti{wTϕ(xi)+b}1=0 ,那么,就可以和前面的推导一样,得到:

      b=1tiwTϕ(xi)

      同时,需要注意: t2i=1 ,并带入 wT ,就可以将上面这个式子重写为:

      b=tij=1Nαjtj<ϕ(xj),ϕ(xi)>

      当然,为了稳妥起见,很多时候,我们会将所有的支持向量 xiS 对应的 bi 都求出来,然后用其均值,作为最终的 b 。这里 S 是支持向量的集合,也就是 αi>0 所对应的点集:

      b=1Nsi=1Nsbi

      这样,就可以求得最终的决策超平面为:

      i=1N{αiti<ϕ(xi),ϕ(x)>}+b=0

      分类决策函数可以写为:

      f(x)=sign{i=1N{αiti<ϕ(xi),ϕ(x)>}+b}


      2.5 对参数 α,ξ 的讨论

      基于上面的推导,可以很容易的看出,软间隔最大化分类器 就是在 硬间隔最大化分类器 的基础上,处理非线性可分的数据。而参数 α,ξ 起着决定样本点类别的作用,那么,这里就对这两个参数做一下讨论,看看这两个参数是如何判断非线性可分数据集中的样本点的类别的。

      为了方便,这里直接用一张表格说明参数 α,ξ 和样本点之间的关系,图种叉叉的部分,说明这种情况并不存在,下面将对这个表格做详细的说明:

      image_1aoiga7581tpml1qk7eduu1it7m.png-75.9kB

      在 2.1 软间隔最大化分类器的两个问题 中,就讨论过,非线性可分情况下,SVM中的样本点一共有五种情况,也就是上面表格中的所对应的五种情况。

      从表格中可以粗略的观察到:
      - 当 αi=0 时,对应的样本点是非支持向量;当 αi>0 时,对应的样本点是支持向量
      - 当 ξ1 时,对应的样本点可以被正确的分类;当 ξ>1 时,对应的样本点分类错误

      现在基于参数 αξ 对上面五种情况再做更详细的讨论:

      1.当 ξi=0,αi=0 时,此时的样本点 xi 并不是支持向量,其被完全的分类正确,样本点满足: ti{wTϕ(xi)+b}>1
      变量关系:当 αi=0 时,由KKT条件中的第三条: Cαiμi=0 可以知道, μi=C ;再由KKT条件第七条: μiξi=0 可以知道: ξi=0 ;最后根据KKT条件的第四条和第五条,可以很容易知道: ti{wTϕ(xi)+b}>1

      2.当 ξi=0,0<αi<C 时,此时样本点刚好在SVM的间隔边界上,是支持向量,被正确分类,样本点满足: ti{wTϕ(xi)+b}=1
      变量关系:当 0<αi<C 时,由KKT条件中的第三条: Cαiμi=0 可以知道, 0<μi<C ;再由KKT条件第七条: μiξi=0 ,可以知道: ξi=0 。最后根据KKT条件的第四条和第五条,可以很容易知道: ti{wTϕ(xi)+b}=1

      3.当 0<ξi<1,αi=C 时,此时样本点在SVM的正确的间隔边界内,是支持向量,被正确分类,样本点满足: 0<ti{wTϕ(xi)+b}<1
      变量关系:当 αi=C 时,由KKT条件中的第三条: Cαiμi=0 可以知道, μi=0 ;再由KKT条件第六、七条: ξi0μiξi=0 ,可以知道: ξi>0 。根据KKT条件的第四条和第五条,可以很容易知道: ti{wTϕ(xi)+b}=1ξi 。那么,此时 0<ξi<1 ,所以 0<ti{wTϕ(xi)+b}<1 ,即,其对应的样本点在分类正确的间隔中。

      4.当 ξi=1,αi=C 时,此时样本点在SVM决策面上,是支持向量,被正确分类,样本点满足: ti{wTϕ(xi)+b}=0
      变量关系:这里的变量关系的分析和第三种情况一样,差别仅仅是 ξi=1 ,由: ti{wTϕ(xi)+b}=1ξi ,可以很容易知道: ti{wTϕ(xi)+b}=0 ,这样,样本点 xi 就刚好在SVM的决策面上了。

      5.当 ξi>1,αi=C 时,是支持向量,被错误分类,样本点满足: ti{wTϕ(xi)+b}<0
      变量关系:这里的变量关系的分析和第三种情况一样,差别仅仅是 ξi>1 ,由: ti{wTϕ(xi)+b}=1ξi ,可以很容易知道: ti{wTϕ(xi)+b}<0 ,这样,样本点 xi 就在决策面错误的一边,被错误分类了。

      由于变量 α 是我们最终要求解的变量,这里再单独对变量 α 做一个总结。首先,这里取 g(x) 如下,即SVM的决策面函数:

      g(x)=i=1N{αiti<ϕ(xi),ϕ(x)>}+b

      那么,根据前面的表格,可以很容易得到:

      αi=00<αi<Cαi=Ctig(xi)1tig(xi)=1tig(xi)1

      总的来说就是:

      • 在SVM间隔区间外的点,对应的 αi=0
      • 在SVM间隔区间边缘上的点,对应的 0<αi<C
      • 在SVM间隔区间内部的点,对应的 αi=C
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值