SMO算法介绍

本文主要是梳理之前看到过的支持向量机中SMO算法,大概记录整个SMO算法的流程和最后的结果,如有错误欢迎大家指正。

首先整理一下上一篇支持向量机的主要内容:
支持向量机分类的原理在于构造超平面将不同类别的事物进行划分,超平面的构建可以通过将其转化为最大化间隔的优化问题,最大化间隔的凸优化问题可以通过现成的QP(Quadratic Programming)优化包进行求解,但是通过拉格朗日乘子法和KKT条件将其转化为对偶函数进行求解要更高效得多,即对对偶函数的最优化问题是用SMO算法进行求解。
SMO(Sequential Minimal Optimization)算法是John C.Platt提出来的。

根据之前的支持向量机提出的函数最优化问题。
这里写图片描述
利用拉格朗日乘子法和KKT条件得到以下结果。
这里写图片描述
根据求导得到的结果,可以将w带回到F的公式中,得到以下的结果。
这里写图片描述
在Patt提出的优化方程中有一点小的变动,即
这里写图片描述
符号有所变化,但是实质是一样的,转化为拉格朗日乘子的对偶函数如下式。
这里写图片描述
对于由于噪声影响的线性不可分的数据点,引入带有惩罚因子的软边缘函数形式如下所示。
这里写图片描述

之前在KKT条件中有提到下面一个条件
这里写图片描述

在该条件中,要使a*b=0,则需要a=0或者b=0。因此可以推导下面的结论。
这里写图片描述

该公式主要说明了一个在两条间隔之外的数据点,其对应的alpha_i为0,在两条间隔之内的点其对应的alpha_i为C,在两条间隔上的点,其对应的alpha_i在0与C之间。从这里我们也可以了解到为什么说SVM的优化问题也是一个稀疏矩阵的求解,

将原来的凸二次优化问题转化为拉格朗日乘子的对偶函数问题后,可以利用Patt提出的SMO算法对其进行求解。
Patt的SMO算法的思想在于在所有的这里写图片描述乘子中,固定除了这里写图片描述以外的所有变量,然后将这里写图片描述这里写图片描述表示,带回到F的方程中去,则方程F就变成关于这里写图片描述的方程了。SMO算法高效的原因就在于在固定其他参数以后,对一个参数进行优化的过程很高效。为方便起见,假设我们选择这里写图片描述,这里写图片描述进行优化,基本方程推导如下所示。

这里写图片描述
这里写图片描述,这里写图片描述带入到原方程中得到对偶函数F如下所示。
这里写图片描述
结合上面两个式子,将这里写图片描述,由alpha_2表示,得到以下结果。
这里写图片描述
如上式中已将目标函数表述为alpha_2的方程式,整个方程就变成对alpha_2一个参数的优化方程。具体优化求解过程如下所示。
这里写图片描述
其中alpha_1new,alpha2_new代表alpha_2alpha_1的迭代值,这里写图片描述代表alpha_2迭代的原始值。由此,已经推导出alpha_1,alpha_2的更新值。
但是在特殊情况下,如果核函数K不满足Mercer定理,那么目标函数可能变得非正定,\eta可能出现负值。即使K为有效地核函数,样本也可能出现相同特征的x1,x2使得\eta为0。等式可以推出\eta就是函数F的二阶导数,所以当\eta时,F没有极小值,极小值在边缘处取到,\eta=0时,也是单调函数,F的最小值也是在边缘处取得,alpha_2的边缘即是L、H,将L和H带入原方程就可以取得原方程F的最小值。
\eta非正时,目标函数的极值如下求解。
这里写图片描述
在上式中的L与H根据以下公式进行确定。
1.当alpha_1,alpha_2对应的y1,y2不相等时。
这里写图片描述
2.当alpha_1,alpha_2对应的y1,y2相等时。
这里写图片描述
最后关于阈值b的求解如下所示
阈值b在每一步中都会进行更新,当新值alpha_1不在界上时,b_new的计算规则如下所示。
这里写图片描述
当新值alpha_2不在界上时,b_new的计算规则如下所示。
这里写图片描述
alpha_1alpha_2都不在界上时,b1=b2;
alpha_1alpha_2都在界上时,并且L与H不相等,那么任意在b1-b2区间内的值都符合KKT条件,一般而言,SMO选择[b1,b2]的中间值作为阈值b。
权值w的更新方式如下所示
这里写图片描述
启发式选择拉格朗日乘子方法
给定初值这里写图片描述=0。对于第一个拉格朗日乘子,首先对整个训练集进行迭代,若在循环中碰到违背KKT条件的样例就对其进行更新;直到所有的案例都符合KKT条件;
对第二个拉格朗日乘子进行更新主要是选择alpha_2使得迭代步长最大化,迭代步长:这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值