机器学习算法总结之支持向量机(四)

在SVM的前三篇里,我们优化的目标函数最终都是一个关于α向量的函数。而怎么极小化这个函数,求出对应的α向量,进而求出分离超平面我们没有讲。本篇就对优化这个关于α向量的函数的SMO算法做一个总结。

1. 回顾SVM优化目标函数

我们首先回顾下我们的优化目标函数:


我们的解要满足的KKT条件的对偶互补条件为:


根据这个KKT条件的对偶互补条件,我们有:



2.SMO算法的基本思想

上面这个优化式子比较复杂,里面有m个变量组成的向量α需要在目标函数极小化的时候求出。直接优化时很难的。SMO算法则采用了一种启发式的方法它每次只优化两个变量,将其他的变量都视为常数。由于∑i=1mαiyi=0.假如将α3,α4,...,αm 固定,那么α1,α2之间的关系也确定了。这样SMO算法将一个复杂的优化算法转化为一个比较简单的两变量优化问题。

为了后面表示方便,我们定义Kij=ϕ(xi)∙ϕ(xj)

由于α3,α4,...,αm都成了常量,所有的常量我们都从目标函数去除,这样我们上一节的目标优化函数变成下式:


3. SMO算法目标函数的优化

为了求解上面含有这两个变量的目标优化问题,我们首先分析约束条件,所有的α1,α2都要满足约束条件,然后在约束条件下求最小。

根据上面的约束条件α1y1+α2y2=ς  , 0≤αi≤C  , i=1,2,又由于y1,y2均只能取值1或者-1, 这样α1,α2在[0,C]和[0,C]形成的盒子里面,并且两者的关系直线的斜率只能为1或者-1,也就是说α1,α2的关系直线平行于[0,C]和[0,C]形成的盒子的对角线,如下图所示:


由于α1,α2的关系被限制在盒子里的一条线段上,所以两变量的优化问题实际上仅仅是一个变量的优化问题。不妨我们假设最终是α2的优化问题。由于我们采用的是启发式的迭代法,假设我们上一轮迭代得到的解是α1_old,α2_old,假设沿着约束方向α2未经剪辑的解是α2_new,unc.本轮迭代完成后的解为α1_new,α2_new

由于α2_new必须满足上图中的线段约束。假设L和H分别是上图中α2_new所在的线段的边界。那么很显然我们有:


而对于L和H,我们也有限制条件如果是上面左图中的情况,则


如果是上面右图中的情况,我们有:


也就是说,假如我们通过求导得到的αnew,unc2,则最终的α2_new应该为:


那么如何求出α_new,unc呢?很简单,我们只需要将目标函数对α2求偏导数即可。

首先我们整理下我们的目标函数。

为了简化叙述,我们令


其中g(x)就是我们在第一节里面的提到的


我们令


这样我们的优化目标函数进一步简化为:



将上式带入我们的目标优化函数,就可以消除α1,得到仅仅包含α2的式子。


然后我们就可以对α2求偏导了:


整理上式有:



利用上面讲到的α2_new,unc和αnew2的关系式,我们就可以得到我们新的α2_new了。利用α2_new和α1_new的线性关系,我们也可以得到新的α1_new。

4. SMO算法两个变量的选择

SMO算法需要选择合适的两个变量做迭代,其余的变量做常量来进行优化,那么怎么选择这两个变量呢?

4.1 第一个变量的选择

SMO算法称选择第一个变量为外层循环,这个变量需要选择在训练集中违反KKT条件最严重的样本点。对于每个样本点,要满足的KKT条件我们在第一节已经讲到了:

一般来说,我们首先选择违反0<α∗i<C⇒yig(xi)=1这个条件的点。如果这些支持向量都满足KKT条件,再选择违反α∗i=0⇒yig(xi)≥1 和 α∗i=C⇒yig(xi)≤1的点。

4.2 第二个变量的选择

SMO算法称选择第二个变量为内层循环,假设我们在外层循环已经找到了α1, 第二个变量α2的选择标准是让|E1−E2|有足够大的变化。由于α1定了的时候,E1也确定了,所以要想|E1−E2|最大,只需要在E1为正时,选择最小的Ei作为E2, 在E1为负时,选择最大的Ei作为E2,可以将所有的Ei保存下来加快迭代。

如果内存循环找到的点不能让目标函数有足够的下降, 可以采用遍历支持向量点来做α2,直到目标函数有足够的下降, 如果所有的支持向量做α2都不能让目标函数有足够的下降,可以跳出循环,重新选择α1

4.3 计算阈值b和差值Ei

在每次完成两个变量的优化之后,需要重新计算阈值b。当0≤α1_new≤C时,我们有:


于是新的b1_new为:



5. SMO算法总结

输入是m个样本(x1,y1),(x2,y2),...,(xm,ym),,其中x为n维特征向量。y为二元输出,值为1,或者-1.精度e。

输出是近似解α。

算法流程:



猜你喜欢

转载自blog.csdn.net/Kaiyuan_sjtu/article/details/80561596
今日推荐