支持向量机(SVM)学习笔记

支持向量机(SVM)学习笔记

1、 间隔与支持向量

给定训练样本集,分类学习最基本的想法就是基于训练集在样本空间中找到一个划分超平面,将不同的类别样本分开。

支持向量机(SVM)学习笔记_第1张图片

在样本的空间中,划分超平面可通过如下线性方程描述

                                                                                                                                 (1.1)

在公式(1.1)中为法向量,决定了超平面的方向;为位移项,决定了超平面与原点之间的距离。

样本空间中任意点到超平面的距离可以写为:

                                                                                                                                (1.2)

假设超平面能够将训练集样本正确的分类,即,满足下面的表达式:

                                                                                                                 (1.3)

训练集中使公式(1,3)成立的样本点被称为“支持向量”(support vector),这两个异类支持向量到超平面的距离之和为

                                                                                                                                        (1.4)

公式(1.4)被称为“间隔”(margin).

支持向量机(SVM)学习笔记_第2张图片

分类器的目标就是要找到“最大间隔”(maximum margin)的划分超平面,也就是如下优化问题:

                                                                                                      (1.5)

转化一下:

                                                                                                         (1.6)

公式(1.6)就是支持向量机(Support Vector Machine)的基本型。

2、 对偶问题

对于(1.6)本身就是一个凸二次规划(convexquadraticprogramming)问题,能够直接用现代的优化计算包求解,但是这里有更有效的办法。

对公式(1.6)使用拉格朗日乘子法可得到其“对偶问题”(dual problem).添加拉格朗日乘该问题的拉格朗日函数可以写为:

                                                                                          (1.7)

的偏导为零可得:

                                                                                                                              (1.8)

                                                                                                                                     (1.9)

将公式(1.8)代入(1.7),即可将(1.7)中的消去,再考虑式(1.9)的约束,得到如下对偶问题:

                                                                                                   (1.10)

公式正好对应着训练样本,解出后,求出即可得到模型:

                                                                                                       (1.11)

对偶问题,(1.6)公式中有不等式约束,因此上述过程需满足KKT条件,即要求:

                                                                                                                   (1.12)

如何求解(1.10)呢?

这是一个二次规划问题,可使用通用的二次规划算法来求解,然而,该问题的规模正比训练集样本数,这样会在实际的任务中造成很大的开销。SMO算法是其中一个著名的高效算法。

SMO的基本步骤,参数初始化,选取变量,并固定中其他的变量,之后SMO不断的执行如下两个步骤直至收敛:1、选取一对需更新的变量;2、固定以外的参数,求解公式(1.11)获得更新后的

SMO先选取违背KKT条件程度最大的变量。(看不太明白)

如何确定偏移项呢?

对任意的支持向量都有

                                                                                                               (1.13)

其中为所有支持向量的下标集。现实任务中常采用一种更鲁棒的做法:使用所有的支持向量求解的平均值

                                                                                                            (1.14)

3、 核函数

在前面我们讨论的样本都是线性可分的,即存在一个划分超平面能将训练样本正确的分类。然而在现实任务中,原始样本空间内也许并不存在一个能正确划分两类样本的超平面。


你可能感兴趣的:(机器学习)