斯坦福大学机器学习——支持向量机(2)

来源:互联网 发布:iphone直播软件 编辑:程序博客网 时间:2024/06/05 08:06

五、拉格朗日对偶(Lagrange duality)

(1)拉格朗日算子

如果我们需要求解形如这样的优化问题:



我们定义拉格朗日算子(Lagrangian):

其中,称为拉格朗日乘数(Lagrange multipliers)。

(2)广义拉格朗日算子

在上述优化问题上引入带有不等式的约束条件:




定义广义拉格朗日算子为:


这里的拉格朗日乘数分别为。(

(3)拉格朗日原始问题

这里的字母P是代表“primal”。

如果w违反原始问题的约束条件(存在某些i,使得),将使得变为无穷大:


相反,如果约束条件严格满足,那么。即:


我们的目标求的最小值,在满足约束条件的情况下,等价于求解的最小值。


为了方便讨论,定义,我们称p*的值为原始问题。

(4)拉格朗日对偶问题

这里的下标D,代表“dual”。

那么原始问题的对偶问题可以表示为:


为了方便讨论,定义,称d*的值为对偶问题。

与上式比较可看出,仅max和min的位置做了交换,而其他不变。因此能够得出下面的结论(对于任意函数来说,max min的值总是小于min max的值):

并且在满足一定条件的情况下等号成立,即:

因此,可以通过求解对偶问题来间接的求解原始问题。

六、KKT条件(Karush-Kahn-Tucher necessary and sufficient conditions)

如果一个最优化问题的目标函数和约束条件分别满足如下形式:


拉格朗日算子为:

假设存在,其中是原是问题的可行解,而是对偶问题的可行解。如果满足KKT条件,那么既是原始问题的解同时也是对偶问题的解:

KKT条件表示如下:

再加上原本约束条件和拉格朗日算子的约束KKT条件可以表示为:

留意以上约束条件的第(2)(3)(5)条,由于 ,因此当时,,而当时,。下文介绍支持向量机时将会看到,这个特殊性质,是保证SVM仅仅需要少量的“支持向量”的关键。

七、支持向量机

(1)支持向量

如下图所示,为训练样本的决策边界(超平面),A,B,C三点为和决策边界距离最近的三个点(一负两正三个样本),而超平面的确定仅仅依赖于这三个点,而与其他的点无关,这三个点就称为支持向量(support vectors)。


在KKT条件中,支持向量的;而非支持向量

(2)优化的分类器

分类器的目标函数和约束条件为如下形式:

我们可以将约束条件改写为:

再构造拉格朗日算子:

这里构造的拉格朗日算子仅有拉格朗日乘数而没有

首先,固定,让关于w,b最小:


解得:

再对b求偏导:

再将带入


,因此有:

我们再求对偶问题,即关于的最大值:



经过这样处理,将问题转换成仅仅和的值相关。

求出的值,再通过,求出的w值。然后通过

求出w和b的值以后,我们可以写出超平面的解析式:


从上式可以看出,最终超平面的解析式仅仅和训练样本,以及相关。对于一个新的无标记点,仅仅需要计算其与样本的内积即可得出他的类别。

更为巧妙的是:所有非支持向量的都为0(非支持向量都在函数间隔为1的超平面后方,不决定超平面位置),因此计算仅仅设计少量的支持向量点。




0 1