线性可分支持向量机
2014-04-27 12:53
169 查看
支持向量机(Support Vector Machines, SVM)是一种二类分类模型。根据模型的复杂程度可以分为线性可分支持向量机、线性支持向量机及非线性支持向量机。简单模型是复杂模型的基础,也是复杂模型的特殊情况。本文假设训练数据线性可分,介绍了线性可分支持向量机如何通过硬间隔最大化(Hard Margin Maximization)来学习一个线性的分类器。
假定训练数据集:
![](http://img.blog.csdn.net/20140425171419937)
x_i(本文以“_”表示下标)为第i个特征向量,y_i为x_i的类标记,当y_i=+1时,称x_i为正例;当y_i=-1时,称x_i为负例,(x_i,y_i)称为样本点,再假定训练数据集是线性可分的。学习的目标是找到一个超平面,将所有样本点分类,即将正例分为一类,将负例分为另一类。关于超平面的定义,可见维基百科。简单地说,以二维空间为例,在一个平面上,超平面是由满足ax+by=c方程的点构成,即平面上的一条直线,将该平面划分为两类;以此类推,在三维空间中,超平面是由满足ax+by+cz=d方程的点构成,即空间中的一个面,将空间划分为两类。为了能够在任意维度划分空间,超平面的方程常常表示成wx+b=0,其中w和x都是向量。
1.线性可分支持向量机的定义
给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为wx+b=0以及相应的分类决策函数f(x)=sign(wx+b)称为线性可分支持向量机。
![](http://img.blog.csdn.net/20140426160647875)
图1
由于训练数据线性可分,如图1所示,这时有许多超平面能将两类数据正确划分,线性可分支持向量机的目的就是从中找到最佳的超平面,使得预测新数据时有较好的表现。以二维空间为例,相对于把超平面方程wx+b=0理解为一条平面直线y=kx+b,个人更倾向于将其理解为空间平面z=ax+by+c与平面z=0的交线。将训练数据集中的样本点带入wx+b得到的值表示空间平面z=ax+by+c上的点与z=0之间的距离,距离为正的样本为正例,距离为负的样本为负例。注意,二维空间中的超平面是图2中的红色直线。
![](http://img.blog.csdn.net/20140426153711484)
图2 二维空间中的超平面
2.函数间隔和几何间隔
![](http://img.blog.csdn.net/20140425213203718)
图3 二类分类问题
在如上图所示的二维空间中,假设已经找到了超平面将二维空间划分为两类,“○”表示正例,“×”表示负例。其中A,B,C三个点表示3个样本点。一般来说,一个点距离超平面的远近可以表示分类预测的确信程度。比如,预测这三个点的类别的时候,点A距离超平面较远,若预测该点为正例,就有比较大的把握。相反,点C距离超平面较近,若预测该点为正例就不那么确定,因为有可能是超平面选择的不合理而导致点C被误分为正例。因此,相比距离超平面较远的点,距离较近的点对超平面的选择有更大的影响,我们将其称之为支持向量。支持向量决定了我们如何选择超平面,可见支持向量的重要性。函数间隔和几何间隔的提出,为找到最佳的超平面提供了依据。
2.1函数间隔
对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点(x_i,y_i)的函数间隔为
![](http://img.blog.csdn.net/20140426141855078)
。定义超平面(w,b)关于训练数据集T的函数间隔为超平面(w,b)关于T中所有样本点(x_i,y_i)的函数间隔的最小值,即
![](http://img.blog.csdn.net/20140426142419156)
。函数间隔越小的点离超平面越近,因此通过最大化训练数据集的函数间隔,即找到一条直线离两类样本点尽量的远,来找到最佳的超平面听起来似乎很合理。但是,用函数间隔来选择超平面存在一个问题:只要成比例地改变w和b,超平面并没有改变但是函数间隔却会改变。在二维空间中,成比例地改变w和b就是将空间平面z=ax+by+c以超平面为轴心进行转动。因此,需要对w进行规范化,从而引出了几何间隔的概念。
2.2几何间隔
对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点(x_i,y_i)的几何间隔为
![](http://img.blog.csdn.net/20140426143008984)
。定义超平面(w,b)关于训练数据集T的几个间隔为超平面(w,b)关于T中所有样本点(x_i,y_i)的函数间隔的最小值,即
![](http://img.blog.csdn.net/20140426143138750)
。在二维空间中,几何间隔就是将空间平面z=ax+by+c固定,不再以超平面为轴心进行转动。此时,成比例地改变w和b不再对几何间隔有影响。
3.间隔最大化
支持向量机学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的超平面。对于线性可分的训练数据集而言,超平面有无穷多个,但是几何间隔最大的超平面是唯一的。这里的间隔最大化称为硬间隔最大化。这是因为几何间隔是指离超平面最近的正负样本点,最大化几何间隔意味着当前的超平面不仅可以很合理地划分训练数据集,对未知的测试数据集应当也有较好的分类预测能力。因此,接下来的问题就是如何求得一个几何间隔最大的超平面。这个问题可以表示为约束最优化问题:
![](http://img.blog.csdn.net/20140426154835625)
考虑几何间隔和函数间隔的关系,可将这个问题改写为:
![](http://img.blog.csdn.net/20140426155041000)
正如前文所述,成比例地改变w和b会影响函数间隔,但不影响超平面,因此不妨通过调整w和b使得函数间隔取值为1。同时,注意到最大化1/||w||与最小化||w||等价,因此,上式可以转化为如下形式:
![](http://img.blog.csdn.net/20140426155728843)
目标函数的系数1/2仅仅是为了方便求导,无其他任何含义。通过利用拉格朗日对偶算法,求解上述约束最优化问题得到w和b,从而得到分类决策函数f(x)=sign(wx+b)。基于分类决策函数可对测试数据集进行分类。最大间隔超平面的存在唯一性,参考资料[1]第101页给出了详细的证明过程,这里不再赘述。
4.参考资料
[1] 《统计学习方法》,李航著,清华大学出版社
假定训练数据集:
x_i(本文以“_”表示下标)为第i个特征向量,y_i为x_i的类标记,当y_i=+1时,称x_i为正例;当y_i=-1时,称x_i为负例,(x_i,y_i)称为样本点,再假定训练数据集是线性可分的。学习的目标是找到一个超平面,将所有样本点分类,即将正例分为一类,将负例分为另一类。关于超平面的定义,可见维基百科。简单地说,以二维空间为例,在一个平面上,超平面是由满足ax+by=c方程的点构成,即平面上的一条直线,将该平面划分为两类;以此类推,在三维空间中,超平面是由满足ax+by+cz=d方程的点构成,即空间中的一个面,将空间划分为两类。为了能够在任意维度划分空间,超平面的方程常常表示成wx+b=0,其中w和x都是向量。
1.线性可分支持向量机的定义
给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为wx+b=0以及相应的分类决策函数f(x)=sign(wx+b)称为线性可分支持向量机。
图1
由于训练数据线性可分,如图1所示,这时有许多超平面能将两类数据正确划分,线性可分支持向量机的目的就是从中找到最佳的超平面,使得预测新数据时有较好的表现。以二维空间为例,相对于把超平面方程wx+b=0理解为一条平面直线y=kx+b,个人更倾向于将其理解为空间平面z=ax+by+c与平面z=0的交线。将训练数据集中的样本点带入wx+b得到的值表示空间平面z=ax+by+c上的点与z=0之间的距离,距离为正的样本为正例,距离为负的样本为负例。注意,二维空间中的超平面是图2中的红色直线。
图2 二维空间中的超平面
2.函数间隔和几何间隔
图3 二类分类问题
在如上图所示的二维空间中,假设已经找到了超平面将二维空间划分为两类,“○”表示正例,“×”表示负例。其中A,B,C三个点表示3个样本点。一般来说,一个点距离超平面的远近可以表示分类预测的确信程度。比如,预测这三个点的类别的时候,点A距离超平面较远,若预测该点为正例,就有比较大的把握。相反,点C距离超平面较近,若预测该点为正例就不那么确定,因为有可能是超平面选择的不合理而导致点C被误分为正例。因此,相比距离超平面较远的点,距离较近的点对超平面的选择有更大的影响,我们将其称之为支持向量。支持向量决定了我们如何选择超平面,可见支持向量的重要性。函数间隔和几何间隔的提出,为找到最佳的超平面提供了依据。
2.1函数间隔
对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点(x_i,y_i)的函数间隔为
。定义超平面(w,b)关于训练数据集T的函数间隔为超平面(w,b)关于T中所有样本点(x_i,y_i)的函数间隔的最小值,即
。函数间隔越小的点离超平面越近,因此通过最大化训练数据集的函数间隔,即找到一条直线离两类样本点尽量的远,来找到最佳的超平面听起来似乎很合理。但是,用函数间隔来选择超平面存在一个问题:只要成比例地改变w和b,超平面并没有改变但是函数间隔却会改变。在二维空间中,成比例地改变w和b就是将空间平面z=ax+by+c以超平面为轴心进行转动。因此,需要对w进行规范化,从而引出了几何间隔的概念。
2.2几何间隔
对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点(x_i,y_i)的几何间隔为
。定义超平面(w,b)关于训练数据集T的几个间隔为超平面(w,b)关于T中所有样本点(x_i,y_i)的函数间隔的最小值,即
。在二维空间中,几何间隔就是将空间平面z=ax+by+c固定,不再以超平面为轴心进行转动。此时,成比例地改变w和b不再对几何间隔有影响。
3.间隔最大化
支持向量机学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的超平面。对于线性可分的训练数据集而言,超平面有无穷多个,但是几何间隔最大的超平面是唯一的。这里的间隔最大化称为硬间隔最大化。这是因为几何间隔是指离超平面最近的正负样本点,最大化几何间隔意味着当前的超平面不仅可以很合理地划分训练数据集,对未知的测试数据集应当也有较好的分类预测能力。因此,接下来的问题就是如何求得一个几何间隔最大的超平面。这个问题可以表示为约束最优化问题:
考虑几何间隔和函数间隔的关系,可将这个问题改写为:
正如前文所述,成比例地改变w和b会影响函数间隔,但不影响超平面,因此不妨通过调整w和b使得函数间隔取值为1。同时,注意到最大化1/||w||与最小化||w||等价,因此,上式可以转化为如下形式:
目标函数的系数1/2仅仅是为了方便求导,无其他任何含义。通过利用拉格朗日对偶算法,求解上述约束最优化问题得到w和b,从而得到分类决策函数f(x)=sign(wx+b)。基于分类决策函数可对测试数据集进行分类。最大间隔超平面的存在唯一性,参考资料[1]第101页给出了详细的证明过程,这里不再赘述。
4.参考资料
[1] 《统计学习方法》,李航著,清华大学出版社
相关文章推荐
- 支持向量机之线性可分支持向量机(一)
- SVM(三)支持向量机,线性不可分和核函数
- 【Kaggle笔记】手写数字识别分类(线性支持向量机)
- 线性支持向量机中KKT条件的讨论
- 线性可分支持向量机思想与公式推导
- SVM 支持向量机(2)---不完全线性可分
- 支持向量机对线性不可分数据的处理
- SVM(三)线性支持向量机
- 支持向量机(一)——线性可分支持向量机
- 线性可分支持向量机(二)
- 机器学习之支持向量机SVM Support Vector Machine (一) 线性SVM模型与软硬间隔
- 支持向量机SVM之处理线性不可分数据
- SVM支持向量机原理(三)线性不可分支持向量机与核函数
- 机器学习(7)——支持向量机(一):从感知机到线性可分支持向量机
- 线性支持向量机中最优参数b
- 线性可分支持向量机(二)
- 【机器学习基础】线性可分支持向量机
- 线性可分支持向量机学习算法——最大间隔法
- 线性可分支持向量机(二)
- 【weekly-sharing】拉格朗日对偶和线性可分支持向量机