【西瓜书】第6章 支持向量机 SVM

      支持向量机,因其英文名为support vector machine,故一般简称SVM,通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。这和神经网络比,可以找到全局最优解,而神经网络只能得法局部最优解,SVM速度相对更快一点。

在这插入两幅图,是吴恩达讲课中的图,我感觉收获很大,原来一切的来源都是简单的问题

cost函数

cost是如图的两种函数,只是理想中的函数,通过这个函数,这个函数的来历是逻辑回归中的函数(如下图),得出的支持向量机

cost函数的由来


cost函数由来
图片发自App

这张图片和下面求最优解的函数相互对应,只是解释的方法不一样,外国教育注重讲思路,中国教育注重从结果讲,这就是差距


样本在上的投影


为分类平面的法线

支持向量机找出最大间隔,需要样本点在上的投影很大,这样可以保证值比较小,是二范数也是向量的长度。

核函数的由来

在非简单的二分类问题中,一般通过升维的方法来处理边界,如下图所示

通过样本属性增加边界处理


选取的高斯函数作为计算选取的点与样本之间的相似性


以l1为例,求其相似性


核函数与核函数的关系


使用高斯核之后的边界


特征数量    样本数量适用特征少大样本
没有核的SVM与逻辑回归基本一致

现实任务中,原始样本空间内也许并不存在一个能正确划分两类样本的超平面,对这样的问题,可将样本从原始空间映射到一个更高维的特征向量,使得样本在这个特征空间内线性可分。如果原始空间是有限集,即属性数有限,那么一定存在一个高维特征空间样本可分。高斯核也称为RBF核。

核函数构建问题(西瓜书定义)


核函数构建


加入核函数后的SVM(K(x,xi)对应的是那一列向量)

西瓜书中对SVM


西瓜书  超平面


线型方程



样本距离超平面的距离

证明方法:

西瓜书  课后题6.1答案


可以带入上面点到面的距离进行计算

如下图所示,中间的实线便是寻找到的最优超平面(Optimal Hyper Plane),其到两条虚线的距离相等,这个距离便是几何间隔,两条虚线之间的距离等于r,而虚线上的点则是支持向量。由于这些支持向量刚好在边界上,所以它们满足,而对于所有不是支持向量的点,则显然有

SVM基本型

对一个数据点进行分类,当超平面离数据点的“间隔”越大,分类的确信度(confidence)也越大。所以,为了使得分类的确信度尽量高,需要让所选择的超平面能够最大化这个“间隔”值。



以下探讨上面的方程怎么解的问题


对偶问题


拉格朗日函数

使函数L对w和b的偏导数分别为0:

令w和b的偏导数为0,求其对偶问题


对偶问题



KKT条件


以下对KKT条件和方程的对偶问题进行了解释


对偶问题的性质:无论原命题的形式如何,对偶问题都是一个凸优化问题,那就是局部最优解就是全局最优解,并且容易求解,所以我们将问题转化为其对偶问题就简化了问题的求解思路。

利用拉格朗日乘子法得到了如下式子:

g(x),h(x)分别为两个限定条件

自定义一个函数如下:


对上面的式子进行分析:

(1)式说明,当目标函数的约束条件都满足时,则自定义的函数便是上面需要求解的目标函数f(x) ,(2)则是只要目标函数的约束条件只有一个不满足,则自定义的函数便等于无穷大!

所以我们便可以认为自定义的函数θ(x) 是对原理优化问题中的约束条件进行了吸收,是原来的约束优化问题变为无约束优化问题(相对于原来变量x 无约束了),即我们可以将最初的优化问题写成:


上式便是我们需要优化的原问题

原问题的 对偶问题 便是:

下面我们假设假命题为P,对偶问题为Q!当然对偶问题已经不等价于原问题了,但是二者是存在一定联系的,下面我们来讲解二者的联系,以及如何通过求解对偶问题来得到原问题的最优解!

这里我们令:

所以有: P>=Q ,因为函数L中最大值中最小的一个总比最小值中最大的那一个要大,也就是对偶问题提供了原问题最优值的一个下界。

我们是想通过对偶问题求解原问题的最优解,所以只有当二者相等时即P=Q,才可能将原问题转化成对偶问题进行求解。当然,当满足一定条件的情况下,便有P=Q。而这个条件便是 slater条件和KTT条件。

slater条件:

slater条件官方正规定义:存在x,使得不等式约束g(x)<=0严格成立。

slater条件性质: slater条件是原问题P可以等价于对偶问题Q的一个充分条件,该条件确保了鞍点的存在。

KKT条件:

大家已经知道slater条件已经确保了鞍点的存在,但是鞍点不一定就是最优解啊,所以KKT条件的作用便体现出来了。

KKT条件便是确保鞍点便是原函数最优解的充分条件,当然对于我们前面举得那个例子,当原问题是凸优化问题时,则KKT条件便是鞍点便是最优解的充要条件。


第一个约束条件


第二个约束条件

第一个约束条件表明:最优点x必须满足所有等式及不等式限制条件, 也就是说最优点必须是一个可行解, 这一点自然是毋庸置疑的;

第二个约束条件表明:在最优点x, ∇f必须是∇gi和∇hj的线性組合;

第三个约束条件表明:拉格朗日乘子不等式的一些限制,对于不等式的拉格朗日乘子限制条件有方向性, 所以每一个α都必须大于或等于零, 而等式限制条件没有方向性,只是β不等于0。

当前我们的优化目标便是:

因此我们先让L函数对x求导然后最小化,得出一个优化函数,然后在让这个优化函数对α,β求导,求出参数α,β!这样再待会原问题中,便可得到最优解,而下面的 SMO算法(序列最小化算法),正是用于求解参数α,β的。

SMO

SMO算法是将大优化问题分解成为许多个小优化问题来求解。这些小优化问题往往很容易求解,并且对他们进行顺序求解的结果与将他们作为整体求解的结果完全一致,在结果完全相同的情况下,SMO算法的求解时间短很多。

整个SMO算法包括两个部分:求解两个变量二次规划的解析方法和选择变量的启发式方法。

李航  统计学习方法


李航  统计学习方法




这个定理我还没有看得很懂,模模糊糊懂点意思

李航  统计学习方法


选择变量的启发式方法

1、第1个变量的选择

SMO称第1个变量的选择称为外循环。外循环在训练样本中选取违反KKT条件最严重的样本点,将其作为第一个变量。

遍历的时候首先遍历满足 0≤ai≤C 的样本点,也就是在间隔边界上的支持向量点,检验是否满足KKT条件;

如果都满足,那么遍历整个训练集,检验是否满足KKT条件。

2、第2个变量选择

SMO称第2个变量的选择称为内循环。在找到第一个变量的基础上,第二个变量的标准是希望能使有足够大的变化。

由上述的(8)式,是依赖于|E1−E2|,为了加快计算的速度,做简单的就是选择|E1−E2|最大时的

当E1为正时,那么选择最小的Ei作为E2;如果E1为负,选择最大Ei作为E2。

为了节省时间,通常为每个样本的Ei保存在一个列表中,选择最大的|E1−E2|来近似最大化步长。



SMO推导计算过程

目标函数

引入松弛变量的SVM    容许出现错误


上式的约束条件

使用拉格朗日乘子法


拉格朗日乘子式对所有非拉格朗日参数的一阶偏导为0

非等式约束对应的拉格朗日项,要么非等式的等号成立,要么对应的拉格朗日参数为0

上式的推导过程:



图片发自App


图片发自App


图片发自App


图片发自App


图片发自App


图片发自App


图片发自App

以上是SMO的推导过程



参考原文:https://blog.csdn.net/jesmine_gu/article/details/84024702

你可能感兴趣的:(【西瓜书】第6章 支持向量机 SVM)