上一讲学习了线性硬间隔支持向量机,如果数据集是线性可分的,在得到我们的目标表达式和它的限制条件后,可以使用二次规划的方法进行求解;如果是非线性可分的,通过线性转换到其他的域中,同样可以使用线性可分的方法来做。
这一讲学习Dual Support Vector Machine,即对偶支持向量机,希望找到一种其他的更好的方法进行求解。

在上一讲的Linear Hard-Margin SVM中,我们最后得到求解目标表达式和限制条件如左下图所示,通过和二次规划问题进行形式上的对照,可以借助有关的现有库输入对应参数进行求解,从而得到gsvm(x)g_{svm}(x)gsvm(x)。这里的ϕ(x)\phi(x)ϕ(x)是指线性转换,针对域处理数据是非线性可分的问题

在线性可分数据集上,使用线性支持向量机得到最大间隔后,通过较小模型的dvc,降低了模型的复杂度;在处理非线性可分的问题时,通过线性转换将其变成线性可分的问题,是的模型变得简单易处理,得到更小的EinE_{in}Ein
我们知道通过相关的证明可以知道dvc≤d+1d_{vc}≤d + 1dvc≤d+1成立,那么在新的域中,模型如果越复杂,则对应的维度d+1d+1d+1就会越大,当大到无限大时,问题将难以求解。

所以我们的目标就是希望SVM的结果不依赖于域的维度大小ddd

在之前的线性支持向量机中我们有d+1个变量,N个限制条件,使用二次规划方法求解;将其转换成它的对偶问题后,我们的变量个数变成N,限制条件为N+1个,这样来看最后的求解就变成了不依赖于d的形式,那么前面那个问题就不做考虑了。那么它是如何转变的呢?

上一讲和之前都提到过在正则化中,我们最小化Ein(w)E_{in}(w)Ein(w)时引入了限制条件wTw≤Cw^Tw≤CwTw≤C,我们通过引入λ\lambdaλ(拉格朗日因子)代替CCC可以转换成Eaug(w)E_{aug}(w)Eaug(w)的形式,这样限制条件就转到了表达式中

通过求解这个最小化问题,可以得到最后的最优解如下图所示。在正则化的问题中,λ\lambdaλ是常数,容易求解,而在我们这一讲讨论的问题中,λ\lambdaλ是未知的,因为限制条件有N个,那么它的个数也为N,在求解过程中同样需要对它求解

在引入拉格朗日因子λ\lambdaλ后,求解的表达式就转换为了拉格朗日函数L(b,w,α)L(b,w,\alpha)L(b,w,α)的形式,如右下图所示(为了和其他的文献统一,使用α\alphaα代替λ\lambdaλ),这样就是一个非条件问题

这样求解目标就是如下SVM的表达式,那么这样做是否正确呢?我们可以来想一下,在αn>0α_{n}>0αn>0的前提下,根据上面的限制条件可知,如果b和w不满条件,那么1−yn(wTzn+b)>01-y_{n}(w^Tz_{n}+b) > 01−yn(wTzn+b)>0,那么要得到最大值,αn\alpha_{n}αn自然越大越好,大到∞∞∞,无解;反之若b和wb和wb和w都满足条件,就有1−yn(wTzn+b)<01-y_{n}(w^Tz_{n}+b) < 01−yn(wTzn+b)<0,则α(1−yn(wTzn+b))<0\alpha(1-y_{n}(w^Tz_{n}+b) )< 0α(1−yn(wTzn+b))<0,要得到最大值当且仅当α(1−yn(wTzn+b))=0\alpha(1-y_{n}(w^Tz_{n}+b) )= 0α(1−yn(wTzn+b))=0成立,这时目标就变成了之前的求解目标了,表明这种方法是适用的。所以我们的目标表达式就是如上无条件的拉格朗日函数

经过证明知道得到的拉格朗日式子是正确的,则对于任意的固定的α′≥0\alpha' ≥0α′≥0,下式都成立

因此对于固定的α′≥0\alpha' ≥0α′≥0,可以转换成求它的最大化问题,同样成立

这种问题称之为拉格朗日对偶问题:即使表达式两边的max和min进行对调,求解问题仍然可行,将不等式的右边称为SVM问题的下界

那么现在的目标就是解这个下界

根据相关理论知道,这里的≥是一种弱对偶关系,在二次规划QP问题中,如果满足以下三个条件:
• 函数是凸的(convex primal)
• 函数有解(feasible primal)
• 条件是线性的(linear constraints)

那么,上述不等式关系就变成强对偶关系,≥变成=,即一定存在满足条件的解(b,w,α)(b,w,α)(b,w,α),使等式左边和右边都成立,SVM的解就转化为右边的形式

因此将拉格朗日表达式带入后,求解表达式如下所示

上式括号中的问题是一个无条件的问题,使用梯度下降法求解,对b求偏导令其为零,可得关于αn的等式,这是最优解必须满足的条件

将其回代就可以将b消掉,这时未知变量只有w和αw和\alphaw和α

同理对www求偏导数为零的点,可得关于www的等式

同样将其回代到上式,经过化简,最终的表达式入式所示,它是只关于αn\alpha_{n}αn的式子

对应的KKT条件为,通过求解α\alphaα,就可以得到w和bw和bw和b,接下来的工作就是要求出α\alphaα

经过上面的转换,表达式为

将其进行一些变换,变成更为熟悉求解的形式,这是未知变量还是N个,限制条件为N+1个

这个怎么求解呢?就要又用到二次规划了,将目标表达式和二次规划进行对照,找出对应的元素Q、p、A、c的值,使用现有的库即可求解

但是真的这么简单吗?仔细分析我们可以发现,qn,mq_{n,m}qn,m矩阵大部分值是非零的,当N很大的时候,计算QD的计算量将会很大,所以一般的方法不宜求解,需要使用专门针对SVM的二次规划求解的工具

假设经过相关工具的计算我们得到了α的结果,那如何返回来计算w和bw和bw和b呢?首先看一下之前的KKT条件,找到关于他们俩的式子。有关www的只有图中的一个等式,很容易求解;然后利用红框所圈的条件,任取一αn>0α_{n} > 0αn>0 的点,得到1−yn(wTzn+b)=01- y_{n}(w^Tz_{n} + b) = 01−yn(wTzn+b)=0,就可以求出b=yn−wTznb = y_{n} - w^Tz_{n}b=yn−wTzn。

这里满足1−yn(wTzn+b)=01- y_{n}(w^Tz_{n} + b) = 01−yn(wTzn+b)=0的点正好在分类的胖胖的线上,也就是说满足αn>0\alpha_{n}> 0αn>0的点一定在边界上,将其称为之前提过的支持向量(Support Vector),反之说则不一定成立。所以之前也说过SVM只由支持向量决定,与其他的点无关。通过计算我们也可以确认这一点,当αn=0\alpha_{n}= 0αn=0时,无论yn、zny_{n}、z_{n}yn、zn取什么值WWW都为零,所以计算w和bw和bw和b只需要属于支持向量的数据点

仔细回想一下W的计算式,好像和我们之前PLA的W求解的式子相似,WsvmW_{svm}Wsvm由支持向量决定,WPLAW_{PLA}WPLA由分类错误的点决定,而且都是关于yn,zny_{n},z_{n}yn,zn的组合形式

本讲和上一讲介绍了两种形式的SVM,一种是Primal Hard-Margin SVM,另一种是Dual Hard_Margin SVM。Primal Hard-Margin SVM有d+1个参数,有N个限制条件。当d+1很大时,求解困难。而Dual Hard_Margin SVM有N个参数,有N+1个限制条件。当数据量N很大时,也同样会增大计算难度。两种形式都能得到w和b,求得fattest hyperplane。通常情况下,如果N不是很大,一般使用Dual SVM来解决问题

通过对偶形式的转换,最后的表达式只与N有关,但是其实并没有完全不依赖d,只是隐藏在了前面求qn,mq_{n,m}qn,m的过程中了

总结一下,这一将介绍了对偶支持向量机,通过引入拉格朗日因子,将表达式转换为非条件的只关于α的形式,结合KKT条件,使用专门为SVM设计的二次规划问题的求解工具即可求解,得到α、w、b

本文介绍对偶支持向量机(Dual SVM)的概念,通过引入拉格朗日因子,将原始问题转换为关于α的非条件问题,结合KKT条件,使用专门的二次规划工具求解,得到α、w、b,实现复杂度不依赖于特征维数的目标。
1万+

被折叠的 条评论
为什么被折叠?



