本文面向在寻找KKT条件相关推到文章的读者,且默认前面关于svm的松弛下的模型和smo算法推到都已经了解。如果没有或者需要温习,请参看支持向量机SVM与SMO算法的的详细推导过程,文章虽然是本科时期所写比较粗糙,但在本文发表前已经重做修改(虽然界面比较丑),但耐心一定能看懂。若想要看视频的推导,也可以看我发现的宝藏up主大海老师,翻看里面的机器学习专栏。
目前我们已经推导出了未松弛与松弛的拉格朗日算法的模型,并且根据递推关系得出了α2的迭代关系式如下
而smo算法是一种启发式的算法,它在所有的α中选择两个进行smo算法的迭代,直到终止条件满足。
对于两个α的递推迭代,我们有如下的基础模型[1],我们记作图1
其中min W(α1,α2)时目标函数,每个0=< αi <= C,C是惩罚因子(一般一开始就为固定的常数)
还有约束条件 a1y1 + a2y2 = l,(为了之后的简写,把α等价于a,ceta用l替代),因为只对a1和a2作考虑,所以把其他的求和项就视为l了,这样便于书写推导。
相信读者对SVM的kkt条件奇怪的地方是这里,为什么要取上下界,min和max的公式从何而来呢
首先回答第一个问题,为什么要取上下界:我们知道求解带约束问题时,由于启发式算法的求解,可能会破坏某些约束条件使其不满足,此时就需要认为的检测并且将其规范在解空间内,所以这里的上下界L和H是这样来的。
下面就对第二个问题进行回答,也是本文的重点,L和H的min与max函数的参数是从何而来的呢?
首先需要约束的时候,就是α1,α2违反了KKT条件,只有知道KKT条件,才能推出什么情况下违反,才能解释min和max的公式。
下面是C类优化问题、LCQ、规范性约束条件、LICQ、KKT、Slater等的充分必要关系,本文只讨论右上角的问题,但都在这里指出,给大家一个宏观的视野。(这与解决将要讨论的问题无关,只是了解一下,写出来是为了让文章更完整有说服力)
接下来就进入正题
左上角是线性SVM分类的示意图,其中有ABCDEF点,接下来对αi的不同情况进行几何意义上的讨论
①当0<α
而rξ=0(KKT条件,之前的模型中有提到,这是模型的约束条件)知,ξ=0
②当α=C时,由rξ=1知r=0
③当α=0时,yi(wx+b)-1+ξ >= 0 ,此即题目的约束条件,因为α=0,所以其天然成立
故我们可以总结出满足kkt条件的情况如下
当α=0时,也就是之前的③天然成立
当0<α
当α=C,由r=0,r*ξ=0知ξ可以为任意>=0的值,所以yi(wx+b)<=1
综上所述,就是上图左下角的总结(KKT条件成立的情况),其中ui=wx+b
所以违反KKT条件的情况就可以写出来了
当发生以上情况时,就可以采取限制条件,使解满足约束条件
下面就是对于smo两个α迭代时的深入理解
重新考虑a1y1+a2y2 = l的式子(这个式子在前面有等价替换,请注意)
由于y1,y2取±1,所以只需要考虑a1a2同号和异号的情况
将a1和a2视为横纵坐标画图,要注意到斜率为±1,波动为±l
且因为 0=<α<=C,所以把参数解空间限制在了边长为C的正方形中
根据不同的异号情况,我们做出示意图
因此只需按照边界定制α1和α2的min和max即可
所以就会有以下的综合模型
到这里SVM就完结撒花,完美理解
本章历时一个多月,因为各种课程、科研和琐事,断断续续的看和理解,于今终于完成,也写下自己的理解与有碰到问题不理解的读者一起分享。
[1]《统计学习方法(第2版)》2019年 清华大学出版社出版,李航