机器学习:线性SVM转换拉格朗日对偶函数和决策函数

拉格朗日函数转换为拉格朗日对偶函数

Why need

求极值,最简单的方法还是对参数求导后让一阶导数等于0。先来试试对拉格朗日函数求极值,在这里对参数向量和截距分别求偏导并且让他们等于0。这个求导过程比较简单:
在这里插入图片描述
在这里插入图片描述
由于两个求偏导结果中都带有未知的拉格朗日乘数αi,因此还是无法求解出ω和b,必须想出一种方法来求解拉格朗日乘数αi。幸运地是,拉格朗日函数可以被转换成一种只带αi,不带ω和b的形式,这种形式被称为拉格朗日对偶函数。在对偶函数下,就可以求解出拉格朗日乘数,
然后带入到上面推导出的(1)和(2)式中来求解ω和b。

Why can

对于任何一个拉格朗日函数L(x,α)=f(x)+i=1qαihi(x)L(x,α)=f(x)+\sum_{i=1}^qα_ih_i(x),都存在一个与它对应的对偶函数g(α),只带有拉格朗日乘数α作为唯一参数。如果L(x,α)的最优解存在并可以表示为minxL(x,α),并且对偶函数的最优解也存在并可以表示为maxαg(α),则可以定义对偶差异(dual gap),即拉格朗日函数的最优解与其对偶函数的最优解之间的差值
Δ=minxL(x,α)maxαg(α)\Delta=min_xL(x,α)-max_αg(α)
如果Δ=0,则称L(x,α)与其对偶函数g(α)之间存在强对偶关系(strong duality property),可以通过求解其对偶函数的最优解来替代求解原始函数的最优解。强对偶关系存在的条件:这个拉格朗日函数必须满足KKT(Karush-Kuhn-Tucker)条件(在优化理论中,KKT条件是非线性规划(nonlinear programming)最佳解的必要条件):
在这里插入图片描述
这里的条件其实都比较好理解。首先是所有参数的一阶导数必须为0,然后约束条件中的函数本身需要小于等于0,拉格朗日乘数需要大于等于0,以及约束条件乘以拉格朗日乘数必须等于0,即不同的取值下,两者之中至少有一个为0。当所有限制都被满足,则拉格朗日函数L(x,α)的最优解与其对偶函数的最优解相等,就可以将原始的最优化问题转换成为对偶函数的最优化问题。
不难注意到,对于损失函数L(ω,b,α)而言,KKT条件都是可以操作的。如果能够人为让KKT条件全部成立,就可以求解出L(ω,b,α)的对偶函数来解出α。
之前我们已经让拉格朗日函数上对参数w和b的求导为0,得到了式子:
i=1Nαiyixi=ω1\sum_{i=1}^Nα_iy_i\boldsymbol{x_i=ω}\quad (1)
i=1Nαiyi=02\sum_{i=1}^Nα_iy_i=0\quad (2)
并且在函数中,通过先求解最大值再求解最小值的方法使得函数天然满足:
(yi(ωxi+b)1)0(3)αi0(4)-(y_i(\boldsymbol{ω\cdot x_i+b})-1) \leqslant 0\quad (3),\quad α_i\geqslant 0 \quad (4)
所以接下来,我们只需要再满足一个条件:
αi(yi(ωxi+b)1)=0(5)α_i(y_i(\boldsymbol{ω\cdot x_i+b})-1) =0\quad (5)
这个条件其实很容易满足,能够让yi(ωxi+b)1=0y_i(\boldsymbol{ω\cdot x_i+b})-1 =0的就是落在虚线的超平面上的样本点,即支持向量。所有不是支持向量的样本点则必须满足αi=0。满足这个式子说明,求解的参数ω和b以及求解的超平面的存在,只与支持向量相关,与其他样本点都无关。现在KKT的五个条件都得到了满足,就可以使用L(ω,b,α)的对偶函数来求解α了。

How

首先让拉格朗日函数对参数ω和b求导后的结果为0,本质是在探索拉格朗日函数的最小值。然后:
在这里插入图片描述
代入式(1)和式(2)有:
在这里插入图片描述
再次带入式(1)则有:
在这里插入图片描述
令这两个ω源于不同的特征矩阵和标签:
在这里插入图片描述
将矩阵相乘转换为内积形式:
在这里插入图片描述
函数Ld就是对偶函数(拉格朗日函数对参数ω和b求导后的结果为0(即:L(ω,b,α)最小值)对应的函数)。对所有存在对偶函数的拉格朗日函数我们有对偶差异如下表示:
Δ=minxL(x,α)maxαg(α)\Delta=min_xL(x,α)-max_αg(α)
则对于L(ω,b,α)和Ld,我们则有:
Δ=minω,bmaxαi0L(ω,b,α)maxαi0Ld\Delta=min_{ω,b}max_{α_i\geqslant 0}L(ω,b,α)-max_{α_i\geqslant 0}L_d
推导Ld的第一步是对L(ω,b,α)求偏导并让偏导数都为0,所以求解对偶函数的过程其实是在求解L(ω,b,α)的最小值,所以公式又可以写成:
Δ=minω,bmaxαi0L(ω,b,α)maxαi0minω,bL(ω,b,α)\Delta=min_{ω,b}max_{α_i\geqslant 0}L(ω,b,α)-max_{α_i\geqslant 0}min_{ω,b}L(ω,b,α)
这就是对偶函数与原始函数的转化过程的由来。如此,只需要求解对偶函数的最大值,就可以求出α。最终,目标函数变化为:
在这里插入图片描述

决策函数

到了这一步,我们就需要使用梯度下降,序列最小优化(SMO,Sequential minimal optimization)或者二次规划(QP,quadratic programming)来求解α,数学的难度又进一步上升。考虑到这一过程对数学的要求已经远远超出了我们需要的程度,更是远远超出我们在使用sklearn时需要掌握的程度,如何求解对偶函数中的在这里就不做讲解了。
但需要知道,一旦求得了α值,我们就可以使用求导后得到的(1)式求解ω,并可以使用(1)式和决策边界的表达式结合,得到下面的式子来求解b:
i=1Nαiyixix+b=0\sum_{i=1}^Nα_iy_i\boldsymbol x_i*x+b=0
当求得特征向量ω和b,就得到了决策边界的表达式,也就可以利用决策边界和其有关的超平面来进行分类了,决策函数就可以被写作:
在这里插入图片描述
其中xtest是任意测试样本, sign(h)是h>0时返回1,h<0时返回-1的符号函数。到这里,完成了对SVM的第二层理解的大部分内容,了解了线性SVM的四种相关函数:损失函数的初始形态,拉格朗日函数,拉格朗日对偶函数以及最后的决策函数。熟练掌握以上的推导过程,对理解支持向量机会有极大的助益,也是对数学能力的一种完善。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章