机器学习基础三:SVM(支持向量机)1

一. SVM概念

英文全称为 Support Vector Machine,中文名为支持向量机,是有监督的学习模型。SVM在有label标记的数据上通过求解最大分类间隔来求解是二分类问题(也可以将多个SVM结合起来解决多分类问题)。SVM 通常可以用在模式识别、分类以及回归分析;特别适用于中小型样本、非线性、高维的分类和回归问题。

SVM的核心理念是支持向量样本会对识别的问题起关键性作用。也就是说,分类超平面的确定仅取决于支持向量。

 

二. SVM分析

1. SVM的主要思想:

一、它是针对线性可分情况进行分析,对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为更高维特征空间使其线性可分,从而使得高维特征空间采用线性算法对样本的非线性特征进行线性分析成为可能。

二、它基于结构风险最小化理论之上再特征空间中构建最优超平面,使得学习器得到全局最优化,并且在整个样本空间的期望以某个概率满足一定上界。

 

2. 点到线的距离计算

高中所学的点到直线的距离公式:点(x0, y0) 到 直线Ax+By+C=0的距离d是:

对于超平面wx+b=0的形式,如果有一个点x,那么x到直线的距离公式就是:

其中w 和x  都是n维的,w = (w1,w2,...,wn) , x = (x1,x2,...,xn)

把向量写成二范数的形式,即是:

**如果某个点在这个超平面之上,那应该满足不等式:wx+b>0

                     在这个超平面之下,那应该满足不等式:wx+b<0

 

3. 线性可分的二分类SVM模型

机器学习基础三:SVM(支持向量机)1_第1张图片

当我们解决上面的二分类问题时,哪一条直线(超平面)的效果最好?

我们不知道哪条线最好,能做的也只有提出假设,建立模型,验证假设。

 svm 中,提出的假设就是:拥有最大“间隔”的超平面效果最好,拥有那个最大间隔的决策面就是SVM要找的最优解。

 

机器学习基础三:SVM(支持向量机)1_第2张图片

我们现在仅保留支持向量进行分析:

两条虚线之间的距离是r,也就是间隔(margin);S1,S2称为间隔边界。

依据公平原则,支持向量到分类超平面的距离则为r/2,这个值即为分类间隔。间隔最大化,就是最大化这个值(r/2)。由此可以看出,分类间隔值(r/2)只与支持向量数据点有关,与其他非支持向量数据点无关。对于给定的训练样本,首先要找到距离分类超平面最近的点(支持向量),再通过最大化这些点之间的间隔来求解。

 

当红色的超平面为wx+b=0时,我们假定两条虚线方程分别是wx+b=c, wx+b=-c

机器学习基础三:SVM(支持向量机)1_第3张图片

两条平行线之间的距离为:

那么,两个类别集合到分类直线的最近距离

 

对于一条直线,wx+b=c,我们相应的成比例的缩小他们的系数,如变成

这条直线和原来的直线还是同一条直线。现在把它变成

新的直线还是和以前直线是同一条直线,也就是说,对于直线wx+b=c,我们总可以找到另外的一条新的 w1=w/c, b1=b/c,

使w1x+b1=1, 而且这两条直线其实表达的是同一条直线,这样的话,上面的图可以变成如下的图:

机器学习基础三:SVM(支持向量机)1_第4张图片

结合我们要寻找的最优分类直线,是到两类类别点集合的距离最大的直线的思想,我们可以抽象出此时的目标函数: 

机器学习基础三:SVM(支持向量机)1_第5张图片

几何间隔如下图所示:

机器学习基础三:SVM(支持向量机)1_第6张图片

因此可知: 

 

4. 最大间隔的优化模型:

我们的目标就是找出所有分类间隔中最大的那个值对应的超平面。在数学上,这是一个凸优化问题(凸优化就是关于求凸集中的凸函数最小化的问题,这里不具体展开)。通过凸优化问题,最后可以求出最优的 w 和 b,也就是我们想要找的最优超平面。中间求解的过程会用到拉格朗日乘子,和 KKT(Karush-Kuhn-Tucker)条件。

 

5.凸函数 & 凹函数
关于凹凸函数的定义和性质可以参考下图:

机器学习基础三:SVM(支持向量机)1_第7张图片

 

 

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