SVM(三)

本文详细介绍了支持向量机(SVM)中参数λ的求解算法——SMO(Sequential Minimal Optimization)。SMO算法通过每次优化两个变量,将其他变量视为常数,将复杂的优化问题转化为简单的两变量问题。文章阐述了SMO的优化过程,包括参数范围的确定、变量选择策略以及参数迭代公式,并总结了SMO的主要步骤。
摘要由CSDN通过智能技术生成

1.求解SVM参数λ使用SMO算法(序列最小化)

2.SMO算法的思想是每次只优化两个变量,将其他的变量都视为常数

3.初始置所有样本参数λ为0,超平面常数项b为0

4.每次迭代优先选择违反KKT条件的点,每次迭代更新两个参数λ

5.一轮迭代后,检查所有点是否满足约束条件,满足则停止迭代,输出参数λ,否则进入下一轮迭代

我们在介绍了硬间隔、软间隔、核映射三种情形,以及最终它们的决策平面。但我们还有一个问题没有解决,就是参数λ没有求解,最终的决策平面也需要求解该参数得到。本篇我们介绍求解该参数的算法——SMO算法(Sequential Minimal Optimization)

以核映射分类器为例介绍该算法求解过程。首先回顾最后我们需要优化的问题:

以及根据KKT条件我们推导出如下关系:

算法思想

SMO,顾名思义,就是序列最小化,它的算法思想是:每次只优化两个变量,将其他的变量都视为常数。将一个复杂的优化算法转化为一个比较简单的两变量优化问题。

为了方便推导,我们简化记号:

不失一般性,假设要优化的参数是λ1,λ2,其他参数固定,则有:

去掉常数项,最终需要优化的函数是:

确定参数范围

目标是找出λ1,λ2组合,使得目标函数值最小,y只有-1,+1取值,根据约束条件,我们分情况讨论。

  • y1和y2取值符号不同

我们可以看到,这两种情况在取相反的k值情况下是等价的:

因此,不失一般性,我们只讨论λ1=λ2+k的情况

因此,

  • 当k>0,λ1的范围是(k,C)=(λ1-λ2,C)

  • 当k<0,λ1的范围是(0,C+k)=(0,C+λ1-λ2)

若通过迭代方法求解λ1,则λ1下一轮的下界和上界为:

下一轮λ1更新范围是

  • y1和y2取值符号相同

同样的,我们有

不失一般性,只讨论λ1=-λ2+k的情况

  • 当0<k<C,λ1的范围是(0,k)=(0,λ1+λ2)

  • 当k>C,λ1的范围是(k-C,C)=(λ1+λ2-C,C)

  • 当k<0,不满足约束条件

若通过迭代方法求解λ1,则λ1下一轮的下界和上界为:

下一轮λ1更新范围是

综上,假设我们下一轮得到未加约束的λ1(unc),则最终λ1(new)取值为

参数迭代公式

我们可以用λ1来表示λ2:

为了简化目标,我们记

代入目标函数,并对λ1求导,我们可以得到:

具体推导过程如下:

E还可以化简:

我们通过E2-E1发现:

也即得到λ1的迭代公式:

变量选择

λ1的迭代公式也得到,接下来剩下最后一个问题,就是怎么选择合适的两个初始变量值。

实际上,第一个变量的选择参数利用了文章一开始给出的结论:

选择在训练集中违反KKT条件最严重的样本点。

具体的,首先选择违反yg(x)=1(0<λ<C)的点,如果支持向量都满足该条件,再选择违反yg(x)≥1(λ=0)和yg(x)≤1(λ=C)的点。

在第一个变量λ2选择好的情况下,第二个变量λ1的选择的标准是尽可能使得|E2-E1|足够大。因为λ2已选择好,所以E2也确定(上一轮迭代结果已得到),接着从所有Ei选出使得|E2-E1|最大的点对应的λ参数,置为λ1。在每次完成两个变量的优化后,阈值b也要重新计算:

于是有

同理可得:

这样我们得到新的b

这样我们最终得到了更新的E

算法总结

SMO算法实在是复杂,我们总结一下流程:

参考资料:

https://www.cnblogs.com/techflow/p/13710893.html

https://www.cnblogs.com/pinard/p/6111471.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

整得咔咔响

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值