序列最小最优化(Sequential Minimal Optimization, SMO)算法的推导、理解

内容是自己做的 ppt 的截图,有需要的小伙伴可以去 下载,也可以给我留言,看到会回复的。

前言

1998 年,John Platt 提出了序列最小最优化算法 (SMO) 算法用于训练 SVM 分类器。SMO 算法是一种启发式算法,其基本思路是:一次迭代只优化两个变量而固定剩余的变量。
在这里插入图片描述
SMO 要解如下凸二次规划的对偶问题
在这里插入图片描述
其实就是训练 SVM 分类器
在这里插入图片描述

算法过程

在这里插入图片描述
精度 ϵ \epsilon ϵ指 KKT 条件的容错率 toler。
部分 KKT 条件:
在这里插入图片描述
比如第二个条件,不要求严格等于 1 ,在容错率范围内都是可以接收的。原文内容如下:

在这里插入图片描述
SMO 算法主要有两个部分组成:

  1. 选取两个 α \alpha α进行优化;
  2. 求解两个 α \alpha α的解析解。

先说第二个内容

求解 α \alpha α的解析解

子问题

假设选择的变量是 α 1 , α 2 \alpha_1,\alpha_2 α1,α2,其余变量 α i ( i = 3 , ⋯   , N ) \alpha_i (i=3,\cdots,N) αi(i=3,,N)是固定的,则 SMO 的最优化问题的子问题如下,其中 K ( x i , x j ) = K i j K(x_{i},x{j})=K_{ij} K(xi,xj)=Kij
在这里插入图片描述
首先分析约束条件,重新定义 α 2 \alpha_2 α2的取值范围

取值范围

根据约束条件得到 α 2 \alpha_2 α2的表达式,然后分情况讨论,并根据 α 1 ∈ [ 0 , C ] \alpha_1 \in [0,C] α1[0,C]进行放缩

在这里插入图片描述
还可以将约束条件用图形表示出来,也可以得到相同的结果

在这里插入图片描述

解析解

目标函数是含 α 1 n e w , α 2 n e w \alpha_1^{new},\alpha_2^{new} α1new,α2new两个变量的二次函数,为了方便求解,我们利用等式约束,将目标函数转化成只含 α 2 n e w \alpha_2^{new} α2new的函数,然后求极小值,并与之前求得的取值范围进行比较,确定 α 2 n e w \alpha_2^{new} α2new最终的表达式,最后根据等式约束也可以得到 α 1 n e w \alpha_1^{new} α1new.

将已知的量用 ν i \nu_i νi替换,其中
f ( x i ) = ∑ j = 1 N y j α j n e w K i j + b f(x_{i})=\sum_{j=1}^{N}y_{j}\alpha_{j}^{new}K_{ij}+b f(xi)=j=1NyjαjnewKij+b
在这里插入图片描述
下一步转化成只含 α 2 n e w \alpha_{2}^{new} α2new的函数

在这里插入图片描述
对目标函数求导,并令其等于 0 0 0

在这里插入图片描述
定义一些等式,使表达式更简洁

在这里插入图片描述
得到的极值点不一定在 α 2 n e w \alpha_{2}^{new} α2new的取值范围里,所以需要剪辑,则最终的 α 1 n e w , α 2 n e w \alpha_{1}^{new},\alpha_{2}^{new} α1new,α2new的表达式如下

在这里插入图片描述

更新 b , E i b,E_{i} b,Ei

根据 KKT 条件得到相应的等式,然后求解就可以了。

在这里插入图片描述
在这里插入图片描述
之前一直不明白当 α i \alpha_{i} αi都在边界上时 b n e w b^{new} bnew的取值为什么要取中点,试着推导,恍然大悟 。

在这里插入图片描述
可以看出,当四种 y i y_{i} yi的情况放在一起时, b n e w b^{new} bnew只能取中点。
其他在边界的情况也可以推导出相同的结论,同时关于 b n e w b^{new} bnew其他情况的取值也清晰了。

选取 α 1 , α 2 \alpha_{1},\alpha_{2} α1,α2

在这里插入图片描述
多次遍历 α i ∈ [ 0 , C ] \alpha_{i}\in[0,C] αi[0,C]的样本点,个人的理解是因为:根据 KKT 条件,这时
在这里插入图片描述
这样的样本点很容易违背 KKT 条件,对它们进行判断更新可以加快求解速度。

在这里插入图片描述
SMO 算法的理论推导就到这里了,最后贴一下李航老师《统计学习方法》里的算法流程。

在这里插入图片描述
在这里插入图片描述

算法实现

关于算法的实现,可以参考
支持向量机|SMO算法实现
如有错误,请指正,谢谢

参考资料

[1] 李航. 统计学习方法[M]. 清华大学出版社, 2012.
[2]https://www.jianshu.com/p/436d429ce91b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值