SMO(Sequential minimal optimization)算法的详细实现过程

本文深入探讨了SMO(Sequential Minimal Optimization)算法在SVM(支持向量机)中的应用,详细阐述了SMO算法的三个主要步骤,包括变量选择、优化求解和更新过程。通过实例解析了如何从最大化对偶问题的角度优化α向量,并确保满足KKT条件和约束条件,最终确定SVM的超平面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SMO算法主要是为优化SVM(支持向量机)的求解而产生的,SVM的公式基本上都可以推到如下这步:

maxα∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjxiTxjmax_{\alpha}\sum_{i=1}^{m}\alpha_{i}-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_{i}\alpha_{j}y_{i}y_{j}x_{i}^{T}x_{j}maxαi=1mαi21i=1mj=1mαiαjyiyjxiTxj

s.t.∑imαiyi=0s.t. \sum_{i}^{m}\alpha_{i}y_{i}=0s.t.imαiyi=0

0≤αi≤C,i=1,2,3,...,m0≤\alpha_{i}≤C,i = 1, 2, 3,...,m0αiCi=1,2,3,...,m

其中,C是SVM中惩罚参数(或正则化常数),可令:

φ(α)=∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjxiTxj\varphi(\alpha)=\sum_{i=1}^{m}\alpha_{i}-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_{i}\alpha_{j}y_{i}y_{j}x_{i}^{T}x_{j}φ(α)=i=1mαi21i=1mj=1mαiαjyiyjxiTxj

SMO的具体步骤:

第一步:为了满足∑imαiyi=0\sum_{i}^{m}\alpha_{i}y_{i}=0imαiyi=0公式,首先要固定两个变量αi和αj\alpha_{i}和\alpha_{j}αiαj,这里以α1和α2\alpha_{1}和\alpha_{2}α1α2为例,其余的αi(i=3,4,...,m)都是已知量\alpha_{i}(i=3,4,...,m)都是已知量αi(i=3,4,...,m),则约束条件变成:

α1y1+α2y2=c=−∑i=3mαiyi,(0≤α1≤C,0≤α2≤C)\alpha_{1}y_{1}+\alpha_{2}y_{2}=c=-\sum_{i=3}^{m}\alpha_{i}y_{i},(0≤\alpha_{1}≤C,0≤\alpha_{2}≤C)α1y1+α2y2=c=i=3mαiyi(0α1C0α2C)

两边同乘y1y_{1}y1,并记y1y2=h0y_{1}y_{2}=h_{0}y1y2=h0得:

α1+h0α2=−y1∑i=3mαiyi=α1new+h0α2new\alpha_{1}+h_{0}\alpha_{2}=-y_{1}\sum_{i=3}^{m}\alpha_{i}y_{i}=\alpha_{1_{new}}+h_{0}\alpha_{2_{new}}α1+h0α2=y1i=3mαiyi=α1new+h0α2new

H=−y1∑i=3mαiyiH=-y_{1}\sum_{i=3}^{m}\alpha_{i}y_{i}H=<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值