机器学习之svm

什么是SVM:

SVM被提出于1964年,是一个著名的二分类算法,在人像识别、文本分类等模式识别问题中有广泛的应用

SVM原理:

机器学习之svm_第1张图片
上图坐标系中有两个类别:蓝色类别与红色类别(以下称为正例与反例),svm要做的是找出一个超平面划分两个类别(假设超平面为L),很明显当L位于正例与反例中间时(上图黑线位置),超平面的分类效果最好,因为这个时候模型的的容错性最好。假设正例到L的最小距离为d1,反例到L的最小距离为d2,接下来我们要做的就是最大化d1与d2。我们将距离L最近的正例样本点与反例样本点称为“支持向量”,这也是“支持向量机”名字的由来。svm在分类时会将正例样本分为1, 负例样本为-1, 即y的取值为{1, -1}

推导:

拉格朗日函数构造
假定L方程为:
在这里插入图片描述
由距离公式可得:
机器学习之svm_第2张图片
我们将上述距离公式做如下转换:
机器学习之svm_第3张图片
我们令:
在这里插入图片描述
上述过程其实可以看做是一个放缩的过程。于是上述方程变为:
在这里插入图片描述
注意此时W和b已经变为了新的W和b,我们令上述方程为L1, 同理我们可得L2:
在这里插入图片描述
此时我们的超平面L为:
在这里插入图片描述
L1和L2是过支持向量并且平行于L的超平面,三条直线之间的关系类似于下图:
机器学习之svm_第4张图片
此时d1和d2的大小就等于L1和L2到L的距离,并且对所有的正例样本和负例样本都有如下关系:
机器学习之svm_第5张图片
两者其实可以使用一个式子来表示:
在这里插入图片描述

我们由平面之间的距离公式可得:
机器学习之svm_第6张图片
现在呢我们需要最大化D,相当于最小化||W||, 要想最小化||W||,我们可以令它的平方最小,于是构造如下函数:
机器学习之svm_第7张图片
上述拉格朗日函数满足如下条件:
机器学习之svm_第8张图片
前两个条件应该很好理解,主要是第三个约束条件,它表示的是ai和1-yi(wxi + b) 至少有一个为0,原因如下:
当L的解满足1 – yi(wxi+b) = 0时,ai[1 – yi(wxi + b)] 等于0,当L的解满足1 – yi(wxi+b) < 0, 此时由于我们的解本身就落在可行域内,1 – yi(wxi+b) <= 0这条约束条件将不起任何作用,我们令ai = 0,此时ai[1 – yi(wxi + b)] 等于0。

由上述的三个条件可知,ai[1 – yi(wxi + b)] 的最大值其实就是0,也就是说我们的函数L的解是在ai[1 – yi(wxi + b)]取最大值时得出的,所以有:
机器学习之svm_第9张图片至此我们已经构造出了我们需要的拉格朗日函数

对偶函数
当原问题直接求解比较困难时,我们可以求解它的对偶问题,上述拉格朗日函数的对偶问题为:
机器学习之svm_第10张图片原问题与对偶问题在数学上有如下关系:原问题的解大于等于对偶问题的解。特别的,如果原问题与对偶问题是强对偶关系,那么原问题的解等于对偶问题的解。强对偶关系的条件:
机器学习之svm_第11张图片
很明显,我们的函数满足上述条件,所以在这儿对偶问题与原问题的解是相等的,所以接下来呢我们对对偶问题进行求解就可以了。首先对w和b求导得:
机器学习之svm_第12张图片
我们将上述得到的关系带入L中得:
机器学习之svm_第13张图片接下来呢我们要求解的函数就变为了:
机器学习之svm_第14张图片

SMO算法

我们的函数变为了一个关于a1, a2, …an的函数L(a1, a2, …an),接下来我们要使用smo算法对函数进行求解,smo算法过程如下:首先固定ai(i>=3), 此时函数变为了关于a1和a2的函数,我们求出a1和a2,然后固定ai(i>=5),由于a1和a2已经求出,此时函数变为了关于a3, a4的函数,求出a3, a4,以此类推直到所有的a都被求出。
接下来以a1, a2为例,我们固定ai(i>=3):
机器学习之svm_第15张图片机器学习之svm_第16张图片机器学习之svm_第17张图片机器学习之svm_第18张图片机器学习之svm_第19张图片机器学习之svm_第20张图片机器学习之svm_第21张图片

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