机器学习算法之SVM学习理解(一)

来源:互联网 发布:阿尔法go算法 编辑:程序博客网 时间:2024/06/08 09:25

支持向量机SVM是一种分类方法。首先考虑线性的情况,如图所示的一个二元分类:

红线对应超平面,超平面一边的数据对应的分类结果y全是1,另一边全是-1

红线对应的分类函数为:

式中,为系数n*1的向量,为数据点向量,大小为n*m

如下图所示:当时,说明此时的点在超平面上。左侧的点,都使其满足,即,y=-1;右侧的点,都使其满足,即,y=1

 

现在考虑超平面在什么位置合适?答案是,在上图中两条虚线的中间位置。途中两条虚线所连接的点就称为支持向量。那么接下来的问题就是求使得超平面在中间位置,也就是"有最大的间隔"

1. 函数间间隔和几何间隔

一般而言,一个点距离超平面的远近可以表示为分类预测的确信或准确程度。

在超平面确定的情况下,能够相对的表示点x到距离超平面的远近,而的符号与类标记 y的符号是否一致表示分类是否正确,所以,可以用量的正负性来判定或表示分类的正确性和确信度。

 

函数间隔定义为:

超平面关于训练集的函数间隔为超平面关于所有样本点是一个向量,大小为1*m,m代表有m个特征) 的函数间隔最小值,是特征,y是结果标签(1或者-1) ,i表示第i个样本,有:

但是函数间隔会随着成比例的变化而变化,而成比例的变化所对应的最小间隔(或者超平面)还是同一个,不利于进行约束计算。因此,引入几何间隔。

几何间隔定义为:

式中,等式左边 表示几何间隔,右边 表示函数间隔。

如下图所示,几何间隔表示点到超平面的距离。

 

2. 最大间隔分类器

由于几何间隔为点到超平面的距离,所以,当这个距离越大,代表分类正确的把握(可能性)也越大。为了使一个具有n个点的数据集都分类正确,我们希望的的是找到n个数据集中几何间隔最小的点,并使得其几何间隔最大化。数据集中最小的几何间隔定义为数据集的几何间隔。最大化间隔分类器将使得这个间隔最大。

所以,最大间隔分类器的目标定义为:

(几何间隔)

需要满足的条件:

(函数间隔)

这是因为是数据集中最小的几何间隔。

为方便推导和优化,令是指函数间隔),由于函数间隔可以任意放大和缩小,所以对目标函数优化没有影响。由于几何间隔,而函数间隔,所以目标函数转化为:

通过求解该问题,即可得到最大间隔分类器。

 

3. 问题的转化

以上的得到的目标函数,经转化可得到:

这是一个二次优化的问题:目标函数是二次的,约束条件是线性的。

对偶变量的优化求解:

引入Lagrange对偶变量,将约束函数融入到 目标函数中去:

令:

式中, 不小于0,因为若小于0,会无穷大,找不到合适的

当所有的条件满足时, ,因为后面一部分表达式最小为0。现在的目标函数为:

的最小值是因为我们的原问题是取得最小值。

当满足KKT条件时,将问题转化为,两者问题等价:

求解上式的过程,第一步,先固定,而让关于最小化,分别对这两个求偏导数,即令,得到:

带入到得到:

式中的i,j说明任意两个元素(包括与自身)都要做该运算。

第二步,对求极大值,得到:

这样得到的结果里已经没有,只有Lagrange乘子。如果解出了,有确定的关系可以得到

 

0 0
原创粉丝点击