SVM支持向量机(一)---简介

来源:互联网 发布:ubuntu trusty xenial 编辑:程序博客网 时间:2024/05/16 15:09

1.简介

在机器学习领域,很多时候会用到分类的一些算法,例如KNN,贝叶斯。我们可以把分类的样本简单除暴的分为两种类型。线性可分和非线性可分。

 

可以使用一个非常简单的例子来解释什么是线性可分,什么是线性不可分。

 

             (a)线性可分的2类样本             (b)非线性可分的2类样

已知一个线性可分的数据集{x1,y1),(x2,y2),...,(xN,yN)},其中x表示一个n维向量,当n=2时,表示一个平面向量,也就是平面中的一个点。y表示向量的类标签,在上例中只有两个类样本,y可以取1或者-1.

 

当数据样本为线性可分的情况,在二维的情况下,我们可以找到一条线,将两类完全分开。那么在n维的情况下,我们可以找到一个超平面来将两类数据完全分开。

 

1.1 超平面

该超平面可以用方程表示为:

 

                         wT x + b = 0

这个方程乍一看有些难以理解。

先回到二维的情况下。

wT=mnT,向量x=xy)。

可以得到:mx+ny+b=0,是一条直线方程。这里的wT我们称为缩放权矢量,b称为偏差项。

扩展到n维的情况,得到的方程便是超平面方程。

 

仍然回到二维的情况下讨论。

这条红色的线把红色的点和蓝色的点分开了,这条红色的线,便是二维意义上的超平面,也就是分类线。直观上,距离训练样本太近的分类线将对噪声比较敏感,且对训练样本之外的数据归纳的不是很好,而远离所有样本的分类线将可能具有更好的归纳能力。这便是整个SVM算法要实现的方向,尽可能使分类线远离所有的样本。

 

两条虚线之间的间隔称为分类间隔,上述的算法实现方向也可以理解为是使分类间隔最大化。

 

由点到平面距离公式:


所以样本点x与最佳超平面距离为|wTx+b|/||w||。

 

1.2 超平面规范化

 wT x + b = 0

规范要求:选择适合的w和b,使得距超平面最近的样本距超平面的距离为1。设最近的样本点为xk

即满足公式:

                                                                      |wTXk+b|=1

实际分类间隔为:

M  =   = 2×|wTx+b|/||w|| = 2/||w||

我们的目的是求M的最大值,等价于求1/2||w|||2. 的极小值。


所以问题就变得非常明朗,我们这是在解决一个条件极值问题。

条件是:|wTXk+b|=1

极值是:1/2||w|||2.的极小值。


因为离分类线最近距离的点的距离为1.所以还要满足另外一个约束条件是|wTXi+b|>1

即     i(wTXi+b)>1                      1.1

 

还记得高数中如何求解条件极值吗?使用拉格朗日乘数法,忘了的赶紧回去恶补。

将式1.1中的每一个约束条件乘上一个拉格朗一乘数αi.  可以将此条件极值问题转化为一个优化问题。

                       

我们需要找寻最小的L。

 

 

2.支持向量


讨论了那么久,竟然还是不知道算法名称的由来。

还是这样一幅图,虚线上的点,便可以理解为支持向量,但是这些点到底在算法起到什么重要的作用,以至于这些点可以成为算法的核心?

还记得上一节中一个重要的条件:

                                                           |wTXk+b|=1

所有的支持向量都满足这样一个条件,而所有的不是支持向量的点,满足条件:

                                                       y i(wTXi+b)>1  

从几何关系上理解,便是这些点支撑起了超平面。



0 0
原创粉丝点击