机器学习——支持向量机SVM(一)

在之前做数学建模的时候就有使用过支持向量机的有关知识,但是对于支持向量机的理解一直不是很深刻,尤其是数学推导部分还是存在一些问题。在最近看周志华西瓜书的过程中同样发现这一问题,西瓜书中对支持向量机的讲解部分不是很详细,所以我又查找了其他的资料。

支持向量机是一种原创性(非组合)的具有明显直观几何意义的分类算法,具有较高的准确率。虽然支持向量机的几何意义较为直观,但是细节非常复杂,内容涉及到凸优化分析,核函数,神经网络等多个领域,内容多而数学推导过程复杂。

我们可以将支持向量机看成是线性分类器的延伸和推广,他作为一个分类器最大的作用就是可以解决一些非线性边界的分类问题,而且处理过程复杂度比较小,因此支持向量机在生活中得到广泛的应用,被誉为是“让应用数学家真正得到应用的一种算法”。
在这里插入图片描述

如上图中圈和×的边界显然不是一个线性边界,我们之前介绍的那些线性分类器无法将两者进行划分,而支持向量机可以很好的完成这一个任务。

在最基本的线性可分问题中,我们可以很轻松的画出两者的边界。在这里,我们需要意识到的是这种分离的方法不是唯一的,我们需要从这些分类方法中找出最好的那一种方法。
在这里插入图片描述
在分类问题中,我们认为处于位于两类训练样本“正中间”的划分超平面就是最好的分类方法,因为此时划分平面对训练样本的容忍性最好(即使样本发生少量变动依然可以完成分类)如下图所示:
在这里插入图片描述

我们注意到有几个样本在分类的边界上,我们将其称为“支持向量”。

两个支持向量到超平面之间的距离之和称为“间隔”,我们希望得到最好的划分超平面,也就是希望这个距离越大。

在样本空间中,划分超平面可以用线性方程 w x + b = 0 w\cdot x+b=0 来进行表示,其中 w w 表示超平面的法向量,如下图:
在这里插入图片描述

对于分别通过 x 1 x_{1} x 2 x_{2} 这两个支持向量的超平面来说,我们可以反解法推导出分别为 w x + b = 1 w\cdot x+b=1 w x + b = 1 w\cdot x+b=-1 ,这两条直线之间的距离就是 d = 2 w d=\frac{2}{||w||} ,我们希望求出 d = 2 w d=\frac{2}{||w||} 在符合 y i ( w x + b ) 1 y_{i}\cdot \left ( w\cdot x+b\right )\geq 1 情况下的最值。这个问题等价于求解:
在这里插入图片描述
对于这个问题,我们就可以用拉格朗日算子来求解其最值了。

猜你喜欢

转载自blog.csdn.net/dagongsmallguy/article/details/84895602