机器学习与人工智能SVM系列SVM

SVM系列第八讲--原始问题求解

2017-07-20  本文已影响313人  文哥的学习日记

在前面的两讲中,我们分别介绍了拉格朗日乘子法和在有不等式约束情况下最优解必须满足的KKT条件,接下来我们就可以利用这些来求解我们的最大间隔分类器了。

1、问题回顾

在第四讲中,我们得到最大间隔分类器所满足规划问题:


规划问题

这里我们首先将问题求解为一个求最小值的问题,不难发现,原问题和下面的问题是等价的:


等价问题

2、原始问题到对偶问题

根据拉格朗日乘子法,我们将有约束问题转换为无约束问题:


拉格朗日乘子法

然后我们令:



之前已经提到过了,θ(w)和f(w)是等价的,容易验证,当某个约束条件不满足时,例如 yi(wTxi + b) < 1,那么我们显然有 θ(w) = +∞(只要令 αi = +∞即可)。而当所有约束条件都满足时,则有 θ(w) = 1 ∥w∥^2,亦即我们最初要最小化的量。因此,在要求约 束条件得到满足的情况下最小化 1 ∥w∥^2,实际上等价于直接最小化 θ(w)。

所以我们有:



进一步,我们可以将问题转换为对偶问题:


对偶问题
在上一讲中我们已经了解到了,在问题是凸优化问题并且满足 Slater条件情况下,二者的最优解是相等的(SVM满足这一条件)并且KKT条件成立,所以,我们首先要让 L 关于 w 和 b 最小化,我们分别令 ∂L/∂w L和 ∂/∂b 等于零:

带回L得到:



接下来,我们再求解外层的约束问题:

有关这个式子的求解,我们使用的方法是SMO方法,这个我们将在下一讲中讨论。
在求解出我们的w和b之后,我们已经可以得到超平面的方程:
分类超平面
这里的形式的有趣之处在于,对于新点 x 的预测,只需要计算它与训练数据点的内积即可(这里 ⟨⋅,⋅⟩ 表示向量内积),这一点至关重要,是之后使用 Kernel 进行非线性推广的基本前提。此外,所谓 Supporting Vector 也在这里显示出来——事实上,所有非 Supporting Vector 所对应的系数 α 都是等于零的,因此对于新点的内积计算实际上只要针对少量的“支持向量”而不是所有的训练数据即可。

为什么非支持向量对应的 α 等于零呢?直观上来理解的话,就是这些“后方”的点——正如我们之前分析过的一样,对超平面是没有影响的,由于分类完全有超平面决定,所以这些无关的点并不会参与分类问题的计算,因而也就不会产生任何影响了。这个结论也可由刚才的推导中得出,回忆一下我们刚才通过 Lagrange multiplier 得到的目标函数:



注意到如果 xi 是支持向量的话,上式中红颜色的部分是等于 0 的(因为支持向量的函数间隔等于 1 ),而对于非支持向量来说,函数间隔会大于 1 ,因此红颜色部分是大于零的,而 αi 又是非负的,为了满足最大化,αi 必须等于 0 。这也就是这些非 Supporting Vector 的点的悲惨命运了。
至此,在不考虑对α求解的情况下,我们已经得到了线性可分情况下SVM超平面的方程,不过只是线性可分情况下的分类超平面,我们还是任重而道远。

上一篇下一篇

猜你喜欢

热点阅读