第五章 支持向量机

1. 5.1支持向量机简介

ppt page 1:

大家好,接下来给大家讲解一下第5章 支持向量机 第1节,主要有以下几部分内容:

 

ppt page 2:

本小节的目标是:

1、理解支持向量机算法原理

2、理解SVM常用核函数作用

 

 

ppt page 3:

支持向量机(Support Vector Machine,SVM)属于有监督学习模型,主要用于解决数据分类问题。通常SVM用于二元分类问题,对于多元分类可将其分解为多个二元分类问题,再进行分类,主要应用场景有图像分类、文本分类、面部识别和垃圾邮件检测等领域。

接下来我们来看下图,假设实心黑点和空心点是两类不同的数据,现在我们需要画一条线,将两类数据分开。图中有L1,L2,L3三条,哪条线是最好的线呢。L2不能区分两类数据,肯定不适合。那么L1L3哪条线好呢?我们感觉是L3这条线最好,那么为什么是它最好呢?L3也能区分两类数据的。主要原因是L3到两类数据的边际最大,所谓边际就是线到两类数据最近的点的距离之和。边际最大,更能容纳多一些新数据。

 

ppt page 4:

支持向量机的最基本的思想就是,在样本空间中找到一个线性可分的直线或者超平面,将不同类别的样本分开。这样的直线有很多条,而支持向量机算法认为最佳的直线就是分割两类目标后有最大距离的直线。

在数学上,我们认为在样本空间中,对不同类别样本进行分开的直线或者超平面可通过线性方程描述:

y= wTx + b

其中,w = (w1,w2,…,wn)如下图所示,实线将“+”样本与“-”样本进行了分类

若这里的x是二维向量,那么就是我们熟悉的平面方程。若大于二维,则是一个超平面,在SVM中,这个超平面也被称为决策面。

我们的目标就是想找到这样一个决策面,使得样本点能够较好的分布在决策面两侧,这就达到了我们分类的目的。

 

ppt page 5:

很显然,对于样本点来说,这样的决策面肯定不止一个。那么,如何来度量我们分类好坏的标准呢?

 

SVM中,我们使用分类间隔来度量,所谓分类间隔,是指保证决策面方向不变且不会错分样本的情况下移动决策面,会在原来的决策面两侧找到两个极限位置(越过则会产生错分现象)。因此,这两条平行线(面)之间的垂直距离就是这个决策面对应的分类间隔。

 

不同方向的最优决策面通常是不同的,那个具有最大间隔的决策面就是SVM要寻找的最优解。而这个真正的最优解对应的两侧虚线所穿过的样本点,就是SVM中的支持样本点,称为支持向量。支持向量机中,距离决策平面最近的且满足一定条件的几个训练样本点被称为支持向量。

根据我们学习过的平面距离可以得到,样本空间中任意一点x到决策面的距离公式如图1所示:

 

考虑一个超平面是否能够将所有样本都正确分类的约束。我们可以为每个样本点xi加上一个类别标签yi={−1,1},假如我们的超平面方程能够完全正确的对所有样本点进行分类,如图4所示,则可以得到图2所示公式:

 

两个类别支持向量到决策面的距离之和称为”间距,值为:r = 2/||w||,其中||w||叫范数,结果为w向量的各个元素的平方和的开平方,是线性代数的内容

支持向量机的目的就是找到满足条件且具有最大间距的划分超平面。从公式中可以很明显地看出,为了最大化间距,需要最大化||w||-1,可以等价认为是最小化||w||2

支持向量机的基本型式就是想找到满足条件且具有最大间距的划分超平面描述图3公式如下:

 

ppt page 6:

SVM核函数介绍

前面讨论的前提是原始样本空间是线性可分的情况,但是在现实任务中,原始样本空间中并不一定存在一个能正确划分两类样本的决策面。而对于这种非线性的情况,SVM的处理方法是通过将数据映射到高维特征空间,然后在高维特征空间中构造出最优分离决策面,从而来解决在原始空间中线性不可分的问题。

在数学上,在线性可分的样本空间中,可以找到正确划分的决策面。而对于非线性情况,找到映射函数,使得样本空间数据映射到高维特征空间也能找到线性的决策面,可表述为下图所示:

 

上述计算公式中未知量的个数取决于参数w的维度,而w的维度与变换后样本空间的维度相同,也就是说,求解复杂度与映射后样本的维数正相关。在把原始样本映射到高维特征空间时,可能存在将样本空间映射到无穷维的可能性,从而导致因维度过高而无法求解的情况。

为了解决这样的问题,在实际计算中使用了线性学习器的对偶优化以及数学计算的核技巧,从而降低计算的复杂度,甚至把不可能的计算变为可能。SVM核函数会涉及到数学的一系列推导过程,我们在这里不做详细讲解。

总的来说,SVM核函数的目的就是解决将非线性样本空间映射到高维空间时的维灾难问题,也就是使用核函数实现特征从低维到高维的转换,但避免直接进行高维空间的复杂计算。

 

ppt page 7:

常用的核函数包括了线性核、多项式核、高斯核(RBF核)、Sigmoid核等。

线性核是最简单的核函数,其表达式为图1所示:

多项式核是常用核函数,其表达式为图2所示:

 

高斯核通常是首选,实践中往往能表现出良好的性能,其表达式为图3所示:

 

sigmoid核函数让SVM实现了类似多层神经网络的效果,其表达式为图4所示:

 

采用sigmoid核函数时,不仅使得SVM能够实现类似多层神经网络的计算效果,而且不会出现过学习现象,因为SVM的理论基础决定了最终求得的是全局最优值而不是局部最小值。

支持向量机主要用于解决分类问题,特别是非线性以及高维度的样本的分类问题。在接下来的章节中,将具体使用SVM算法来解决线性模型中的问题以及更高维度的分类问题

 

ppt page 8:

本节小结:本节主要讲解支持向量机算法原理及SVM常用的核函数