线性支持向量机(2)

拉格朗日对偶问题的转换可以参考:https://www.cnblogs.com/90zeng/p/Lagrange_duality.html

拉格朗日函数泛化的KKT条件而得出的求解函数极大极小问题,可参考:https://www.cnblogs.com/zhangchaoyang/articles/2726873.html

为了求解线性可分支持向量机的最优化问题,将它作为原始最优化问题,应用拉格朗日对偶性,通过求解对偶性问题得到原始问题的最优解,这就是线性可分支持向量机的对偶算法。主要原因在于对偶问题更容易求解,且自然引入核函数,进一步推广到非线性分类问题。

首先构建拉格朗日函数,为此对每一个不等式约束引进拉格朗日乘子,定义拉格朗日函数:

其中a=(a1,a2,....,aN)T为拉格朗日乘子向量。根据拉格朗日对偶性,原始问题的对偶性是极大极小问题:

所以为了得到对偶问题的解,需要先求L(w,b,a)对w,b的极小,再求对a的极大。

(1) 求

将拉格朗日函数L(w,b,a)分别对w,b求偏导数并令其等于0。

得:

 将上式得到的w值代入拉格朗日函数,可得:

即:

对a的极大,即是对偶问题:

将上式的目标函数由求极大转为求极小,就得到下面与之等价的对偶最优化问题:

对线性可分训练数据集,假设对偶最优化问题对拉格朗日乘子向量a的解为,可以由a*求得原始最优化问题对(w,b)的解w*,b*.

定理:设a*是对偶最优化问题的解,则存在下标j,使得,并可按下式求得原始最优化问题的解w*,b*(书上并未给出下式中j的含义,本人的理解为j为求得最优化问题的解a*后,通过其大于0的样本点作为j的样本点,并代入b*中,并且该部分求得的b*一致):

由上定理可求得分离超平面:

分类决策函数可以写成:

也就是说分类决策函数只依赖于输入x和训练样本输入的内积,上式称为线性可分支持向量机的对偶形式。

综上,对给定线性可分训练集,可首先求对偶问题的解a*,再通过如上定理求得原始问题的解w*,b*,从而得到分离超平面及分类决策函数,这种算法称为线性可分支持向量机的对偶学习算法。

线性可分支持向量机算法如下:

输入:线性可分训练集T={(x1,y1),(x2,y2),...(xn,yn)},其中

输出:分离超平面和分离决策函数

(1) 构造并求解约束最优化问题

求得最优解

 (2) 计算

 

选择a*的一个正分量,计算

(3) 求得分离超平面:

w*x+b*=0

分类决策函数:

f(x)=sign(w*x+b*)

在线性可分支持向量机中,由上算法可以发现,w*和b*只依赖于训练数据中对应于a*>0的样本点(xi,yi),而其他样本点对w*和b*没有影响,我们将训练数据中对应于的实例点xi称为支持向量。

 

posted @ 2017-12-11 19:55  小丑_jk  阅读(389)  评论(0编辑  收藏  举报