笔记(总结)-SVM(支持向量机)的理解-4

前三篇主要是介绍SVM的原理。最初SVM的原问题是凸二次优化问题,有现成的算法可以求解,费尽周折转换到对偶问题,一是在对偶问题形势下可以使用核函数,二是对偶问题我们可以高效求解。本篇主要介绍如何求解SVM。

SMO:Sequential Minimal Optimization


Coordinate Ascent(坐标上升法)

回到我们的对偶问题:

maxW(α)=iαi12ijαiαjyiyjxTixj max W ( α ) = ∑ i α i − 1 2 ∑ i ∑ j α i α j y i y j x i T x j

s.t. iαiyi=0, 0αiC s . t .   ∑ i α i y i = 0 ,   0 ≤ α i ≤ C

上述问题仅仅是关于一系列 α α 的优化问题,即:

maxαW(α1,...,αm) m a x α W ( α 1 , . . . , α m )

考虑使用坐标上升法解决该问题:
这里写图片描述
算法内层循环将 αi α i 看做变量,其他的 α α 看做常量进行优化。在二维情况下,函数等高线图的优化路线如下:
这里写图片描述
可以看到,每一步优化中,都固定了一个变量,让另一个变量取值使目标函数“最优”,交替更新两个变量直到收敛或达到某种停止条件。然而由于如下限制,无法在对偶问题中使用坐标上升法求解:

α1=y1ni=2αiyi α 1 = − y 1 ∑ i = 2 n α i y i

假如我们想固定其他变量,更新 α1 α 1 ,由于对偶问题的约束,固定其他变量后 α1 α 1 为常量。

SMO Algorithm

只选取一个 αi α i 更新是不行的,那么考虑一次至少更新两个变量。这便是SMO算法的动机由来,算法如下:
这里写图片描述

算法思想很简洁,先按某种方式选定要更新的两个变量 αi,αj α i , α j ,然后固定其它变量对 αi,αj α i , α j 进行更新来优化 W(α) W ( α )

优化步骤

例如我们现在想优化 α1,α2 α 1 , α 2 ,由约束可以得到:

α1y1+α2y2=ni=3αiyi=,ζ α 1 y 1 + α 2 y 2 = − ∑ i = 3 n α i y i = 常 数 , 记 为 ζ

又由对偶问题约束 0αiC 0 ≤ α i ≤ C 可以得到可行解如下图, α1,α2 α 1 , α 2 必须位于直线 α1y1+α2y2=ζ α 1 y 1 + α 2 y 2 = ζ 被矩形区域 [0,C]×[0,C] [ 0 , C ] × [ 0 , C ] 截断的线段上:
这里写图片描述

由直线约束可以将 α1 α 1 表示为 α2 α 2 的函数,即:

α1=(ζα2y2)y1 α 1 = ( ζ − α 2 y 2 ) y 1

由此得到目标函数的表达式为:

W=W((ζα2y2)y1,α2,...,αm) W = W ( ( ζ − α 2 y 2 ) y 1 , α 2 , . . . , α m )

将目标函数展开,得到一个关于 α2 α 2 的开口向下的二次函数,当不考虑矩形区域约束时可以直接求导,得到最优解 αopt2 α 2 o p t 。然而实际情况中由于矩形约束, α2 α 2 通常有取值区间 [L,H] [ L , H ] ,考虑最优解和取值区间的关系,更新得到实际最优值:

α2=H,    αopt2>Hαopt2, Lαopt2HL,    αopt2<H α 2 ∗ = { H ,         α 2 o p t > H α 2 o p t ,   L ≤ α 2 o p t ≤ H L ,         α 2 o p t < H

当得到 α2 α 2 ∗ 后,可以依据直线约束更新 α1 α 1

选择步骤

选择违反KKT条件最多的样本对应的 α α 作为第一个变量,即对于每个训练样本,检查是否满足KKT条件(可参考SVM第2篇),选择不满足中程度最大者:

          αi=0xiyi(wTx+b)1                     α i = 0 ⟺ x i 非 支 持 向 量 ⟺ y i ( w T x + b ) ≥ 1

0<αi<Cxiyi(wTx+b)=1 0 < α i < C ⟺ x i 在 边 界 上 ⟺ y i ( w T x + b ) = 1

                 αi=Cxiyi(wTx+b)1                                   α i = C ⟺ x i 可 能 被 错 误 分 类 ⟺ y i ( w T x + b ) ≤ 1

对于第二个变量,应该选择一个使目标函数数值增长最快的变量,但由于比较各变量所对应的目标函数值增幅的复杂度过高,SMO采用启发式规则,使选取的两变量对应样本之间间隔最大,直观上看,这样选取的两个变量差异较大,相比于对两个相似变量进行更新,差异更大的变量能对目标函数带来更大的变化。

至此我们得到了SMO的完整算法。


四篇过后,SVM基本讲述清楚。参考来源之前的总结博客有记述传送门,同时还参考了国科大《模式识别与机器学习》091M4042H课程兰艳艳老师slides。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值