支持向量机 (SMO算法原理与简化版实现)

本文详细介绍了支持向量机(SVM)中的SMO(Sequential Minimal Optimization)算法,包括其作为启发式算法的基本思想,如何选择变量以及两个变量的二次规划求解方法。SMO算法通过解决凸二次规划的对偶问题来寻找最优解,涉及KKT条件和变量的约束处理。文章还探讨了变量选择策略,包括违反KKT条件最严重的样本点和能带来足够变化的第二个变量,并给出了SMO算法的伪代码和简化版实现。

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

SMO算法原理及实现

支持向量机的学习问题本质上是求解凸二次规划问题
SMO算法 序列最小最优化算法就是求解该问题的代表性算法
SMO算法 解决的凸二次规划的对偶问题:
mina12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi min a 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i
s.t.i=1Nαiyi=00αiC,i=1,2,...,N s . t . ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2 , . . . , N
问题思考:已知变量 x 输入空间 y 输入空间 – 即训练集中数据集
求解变量实质上为拉格朗日乘子 一个变量 αi α i 对应与一个样本点 (xi,yi) ( x i , y i ) ,变量的总数等于训练样本容量N

SMO算法 – 属于一种启发式算法

其基本思路为:
1.如果所有的变量的解都满足最优化问题的KKT条件 那么这个最优化问题的解就得到了
2.否则选择两个变量 固定其他变量(任意选择两个拉格朗日乘子) 针对这两个变量构建一个二次规划问题
这个二次规划问题关于这两个变量的解应该更加接近二次规划问题的解 使得二次规划问题的目标函数值变得更小
3.此时: 子问题有两个变量 一个是违反KKT条件最严重的一个 一个是由约束条件自动确定的

注意: 选择两个变量实质上只有一个自由变量
因为等式约束:
i=2Nαiyi=0 ∑ i = 2 N α i y i = 0

重点:SMO算法实质上包含两个部分
1. 求解两个变量二次规划的解析方法
2.选择变量的启发式方法

1.两个变量二次规划的求解方法

假设选择的两个变量是 α1,α2 α 1 , α 2 其他 αi α i 是固定的
带入到凸二次规划的对偶问题中, 可以推导为
minalpha1,α2=12K11α21+12K22α22+y1y2K12α1α2(α1+alpha2)+y1alpha1i=3Ny

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值