理解支持向量机

支持向量机是一个二类分类模型,但也可以扩展为多类分类。其基于间隔最大化和核技巧的特点可以使它可以灵活处理线性或非线性分类问题。

支持向量机可是形式化为一个凸二次规划问题,学习算法是求解基于凸二次规划的最优化算法。

按照训练数据是否线性可分,支持向量机可以分为基于硬间隔的线性可分支持向量机、基于软间隔的线性支持向量机、基于核技巧和软间隔最大化的非线性支持向量机。三者复杂性是依次增加的。

1、基于硬间隔最大化的线性可分支持向量机

我们知道,感知机和决策树等学习方法没有区分模型的输入空间和特征空间,即认为两者所处的空间是一样的。支持向量机的输入空间和特征空间是不同的,输入空间为欧氏空间或离散集合,特征空间是希尔伯特空间。希尔伯特空间可以看作是欧氏空间的扩展,其空间维度可以是任意维的,包括无穷维。并且一个重要的性质是其具有欧氏空间不具备的完备性。这些特点都是支持向量机在做非线性特征空间映射所需要的。

下面从最简单的线性可分支持向量机入手,学过感知机的都知道,感知机通过训练一个超平面将平面或空间线性可分的点进行划分。

其超平面方程为 w?x+b=0;

分类决策函数f(x)=sign(w?x+b)。

线性可分支持向量机也是如此,通过找寻分割平面来划分数据集。不同的是,感知机的学习策略是误分类点到超平面距离和最小化,而线性可分支持向量机是基于硬间隔最大化的。

何为硬间隔最大化?

我们知道,当参数w,b确定后,其分类超平面也就确定了,那么分类超平面两侧的点到超平面的距离就可以得出,

这些点到分类超平面中必然有一个最小距离,实际上可划分这两组点的超平面的参数w,b有很多组,同样对应有最小距离。w,b选取什么值时,分类效果最好呢?就是分类面到两侧的距离越远说明分类效果越好,即找出这组最小距离中的最大值。为了度量这个值,这里引出了函数间隔和几何间隔的概念。

在超平面确定的情况下,能够相对表示点x距离超平面的远近,可以理解为对超平面进行上下移动。

的符号与类标记符号是否一致能够表示分类是否正确。

函数间隔:对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点的函数间隔为:

定义:

为超平面(w,b)对所有样本点函数距离最小值。

但是函数间隔存在一个问题,就是如果我们成比例地改变w,b的值,那么函数间隔的值就是变为原来的两倍,而超平面却并没有改变。为了解决这个问题,定义了几何间隔:

对于给定的训练数据集T和超平面(w,b),定义超平面关于样本点的几何间隔为:

定义:

为超平面(w,b)对所有样本点几何间隔最小值。

其中||w||为w的L2范数,通过除以法向量的范数来对距离进行约束,保证了如果w,b成比例变化时,点到超平面的几何间隔不变。

从函数间隔和几何间隔的定义可以看出:

这里我们回到硬间隔最大化。为了使分类效果最好,我们要求这个最小间隔值最大,即求使下列目标函数和约束条件成立的w,b值 ,

即:

我们知道,

函数间隔 ?随着w,b成比例的变化而成同比例的变化,即若w,b同时变为原来的两倍,则函数间隔也为原来的两倍,故当w,b成比例变化时,目标函数不变,约束条件也不变。也就是说取值并不影响目标函数和约束条件,不影响整个问题的

求解,因此为了接下来的计算方便,我们取=1,从而目标函数可以写为:

因为求 的最大等价于求||w||的最小,也就等价于求的最小,从而将问题改写为:

为什么要将 的最大等价求的最小,是因为要将目标函数转换为一个凸二次规划问题,从而满足后面求对偶问题需要的KKT条件。系数加个1/2是为了求导的时候约去系数,计算方便。

现在的问题就是如何求解在有不等式约束条件下的函数最优。我们可以使用拉格朗日乘子法来求解,定义拉格朗日函数的形式如下:

由上式可知,因为h(x)=0, g(x)≤0,在满足约束条件下的 L(x,α,β)必然小于等于f(x),且max L(x,α,β)=f(x)。

为每个约束条件引入一个拉格朗日乘子≥0,且根据拉格朗日乘子法的形式将约束条件添加负号转化为小于等于,定义拉格朗日函数:

这样问题就变成了求

一般来说,这样的形式不太容易求解,我们可以转为求其对偶问题的解。

原始问题与对偶问题存在相同的最优解,要求原始问题满足KKT条件。所谓KKT条件就是:

1. L(w,b,α)对x求导为零;

2. h(x) =0;

3. α?g(x) = 0;

这时我们之前构造的凸二次规划问题就派上用场了,可以证明其存在对偶问题,且对偶问题最优值与原始问题最优值相同。

转换为对偶问题后,求解过程如下:

1.求

将拉格朗日函数L(w,b,α)分别对w,b求偏导且令其等于0,解出

2.求对α的极大,即:

对上述问题可以使用SMO算法求出α的解为α=

我们知道α≥0,且可以用反证法证明必然存在至少一个α_j>0,若α全部等于0,则由上式可知w=0,而w=0显然不是原始问题的解。对此i,α_j>0,又根据KKT条件α?g(x) = 0,故g(x)=0,即:

注意到=1,将替换1,并提取,可以算出:

从而可以写出分类超平面:

分类决策函数为:

2、基于软间隔最大化的线性支持向量机

上面所说的线性可分支持向量机是基于训练样本线性可分的理想状态,当训练样本中存在噪声或者特异点而造成线性不可分时,就需要用到下面讲到的线性支持向量机。

在线性可分支持向量机中,我们假设函数间隔为1,若存在噪声或特异点函数间隔处于

(0,1)中间,那么这些点就不满足问题的约束条件,也就线性不可分。为了解决这样的问题,引入了松弛变量≥0,使得函数间隔与松弛变量的和大于等于1,从而约束条件变为:

同时因为约束条件引入了,所以目标函数也要改变,改为:

C>0,称为惩罚系数,一般由应用问题决定,C值大时会对误分类的惩罚增大。最小化目标函数包含了两层含义:一个是使 尽可能小即间隔尽可能大,一个是误分类点尽可能少,C作为两者的调和系数。

这种情况称为软间隔最大化。其问题可以定义为:

依然构造拉格朗日函数,并转换为对偶问题:

支持向量

之前一直说到支持向量机,那么什么是支持向量呢?支持向量机是基于间隔最大化来分类数据集的。在硬间隔最大化的情况下,如下图的红线为分离超平面,粉线和蓝线是将两类点分开的最大间隔线,其到分离超平面的距离分别为,决定这个最大间隔的蓝线上的两个点与粉线的一个点就是分类关键点,称为支持向量。

在软间隔最大化的情况下,

如下图,每个实例点到超平面的距离为

支持向量由间隔边界(如红圈点)、间隔边界与超平面之间(如绿圈点)或误分点(如蓝圈点)这些对分类起着关键作用的点组成。

3、基于软间隔和核技巧的非线性支持向量机

前面说的数据集都是线性可分或者近似可分的,而实际情况下的数据都是非线性可分的。

这时就需要用到非线性变换,将输入空间上的输入映射到高维特征空间,将非线性问题变换为线性问题,从而利用线性分类器进行分类。例如:

对于非线性的方程,我们取那么原方程就变为:

从而将问题转化为三维空间上的线性可分问题。

核函数就是做这样一个事情,它通过一个非线性变换将输入空间对应到一个希尔伯特空间,使得在输入空间中的超曲面模型对应特征空间中的超平面模型。核函数的定义如下:

设χ是输入空间(欧氏空间或离散集合),Η是特征空间(希尔伯特空间),如果存在一个从χ到Η的映射

φ(x):χ→Η

使得对所有的x,z∈χ,函数Κ(x,z)=φ(x)·φ(z),例如:

假设输入空间为二维欧氏空间,核函数是Κ(x,z)=

可以取特征空间为三维欧氏空间,记输入x=(x1,x2),z=(z1,z2)

取映射函数为:

则满足Κ(x,z)=

由之前讲到的线性可分的向量机可以知道,向量机的分类函数取决与属于x与输入样本点的内积,当线性不可分的时候,我们通过核函数将样本点的内积(x,z)映射为特征空间上内积的(φ(x),φ(z)),仍然使用前面定义的线性分类器,从而实现了有效且简便的非线性分类问题。非线性支持向量机的分类决策函数如下:

其中x是输入,x_i,y_i为样本点,α_i可通过SMO求解得出,b是关于α_i,x_i,y_i的函数,也可以得出,故函数分类结果可以求出。

到这里,支持向量机的大体思路基本完成了,也就是寻找分类超平面构造分类函数的过程;遇到非线性可分时候,就要想办法将其转换成线性问题,利用线性分类器来分类。求解的过程也就是求得分类超平面的参数问题,当参数不容易求解时,转换为其对偶问题来求,终于,最后可以求出来了。

好吧,支持向量机太长了,先到此为止,下一节介绍核函数及SMO算法。

时间: 2024-10-12 02:17:54

理解支持向量机的相关文章

理解支持向量机(二)核函数

由之前对核函数的定义(见统计学习方法定义7.6): 设χ是输入空间(欧氏空间或离散集合),Η为特征空间(希尔伯特空间),如果存在一个从χ到Η的映射 φ(x): χ→Η 使得对所有的x,z∈χ,函数Κ(x,z)=φ(x)?φ(z), 则称Κ(x,z)为核函数,φ(x)为映射函数,φ(x)?φ(z)为x,z映射到特征空间上的内积. 由于映射函数十分复杂难以计算,在实际中,通常都是使用核函数来求解内积,计算复杂度并没有增加,映射函数仅仅作为一种逻辑映射,表征着输入空间到特征空间的映射关系.例如: 设输

理解支持向量机(三)SMO算法

在支持向量机模型的求解中,我们用到了SMO算法来求解向量α. 那么什么是SMO算法?在讲SMO算法之前.我们须要先了解下面坐标上升法. 1.坐标上升法 如果有优化问题: W是α向量的函数.利用坐标上升法(当然,求目标函数的最小时即为坐标下降法)求解问题最优的步骤例如以下: 算法的思想为:每次仅仅考虑一个变量进行优化,将其它变量固定.这时整个函数能够看作仅仅关于该变量的函数,能够对其直接求导计算. 然后继续求其它分变量的值,整个内循环下来就得到了α的一组值,若该组值满足条件.即为我们求的值,否则继

机器学习之支持向量机(三):核函数和KKT条件的理解

注:关于支持向量机系列文章是借鉴大神的神作,加以自己的理解写成的:若对原作者有损请告知,我会及时处理.转载请标明来源. 序: 我在支持向量机系列中主要讲支持向量机的公式推导,第一部分讲到推出拉格朗日对偶函数的对偶因子α:第二部分是SMO算法对于对偶因子的求解:第三部分是核函数的原理与应用,讲核函数的推理及常用的核函数有哪些:第四部分是支持向量机的应用,按照机器学习实战的代码详细解读. 1 核函数 1.1 核函数的定义 设χ是输入空间(欧氏空间或离散集合),Η为特征空间(希尔伯特空间),如果存在一

斯坦福第十二课:支持向量机(Support Vector Machines)

12.1  优化目标 12.2  大边界的直观理解 12.3  数学背后的大边界分类(可选) 12.4  核函数 1 12.5  核函数 2 12.6  使用支持向量机 12.1  优化目标 到目前为止,你已经见过一系列不同的学习算法.在监督学习中,许多学习算法的性能都非常类似,因此,重要的不是你该选择使用学习算法 A 还是学习算法 B,而更重要的是, 应用这些算法时,所创建的大量数据在应用这些算法时,表现情况通常依赖于你的水平.比 如:你为学习算法所设计的特征量的选择,以及如何选择正则化参数,

支持向量机学习笔记--原理篇(二)

支持向量机学习笔记(二) 前言 在上一篇中,讲述了感知机是什么.接下来将叙述感知机的对偶形式,这在解决支持向量机问题中非常有用,因为直接求解存在困难时,我们往往会把它变换到其等价形式进行求解.这篇将继续上篇内容,把遗留的两个问题解释清楚. 感知机 感知机学习算法的对偶形式 现在考虑感知机学习算法的对偶形式.感知机学习算法的原始形式和对偶形式在支持向量机学习算法的原始形式和对偶形式相对应. 对偶形式的基本想法是,将w和b表示为实例xi和标记yi的线性组合的形式,通过求解其系数而求得w和b,不失一般

3. 支持向量机

3. 支持向量机 3.1 本质 基本模型是定义在特征空间上的间隔最大的线性分类器.核技巧使之成为实质上的非线性分类器. 学习策略是间隔最大化,可形式化为求解凸二次优化问题.等价于正则化的合页损失函数的最小化问题. 学习算法是求解凸二次规划的最优化算法. 理解支持向量机可以从简至繁推进:线性可分支持向量机(硬间隔SVM),线性支持向量机(软间隔SVM),非线性支持向量机(软间隔最大化+核技巧). 3.2 训练数据集 假设给定训练数据集:\(T={(x_1,y_1), (x_2, y_2), ...

吴恩达机器学习102:支持向量机最大间距分类器

1.下面是支持向量机(SVM)的代价函数: 上图左边是cost1(z)函数,用于正样本,右边画出了关于z的代价函数cost0(z),函数的横轴是z,现在我们想一下怎么样才能使得这些代价函数变得更小呢?当有一个正样本的时候,y=1,那么仅当z大于等于1的时候,cost1(z)=0,换句话说,如果有一个正样本的时候,我们要θ的转置乘以x大于等于1,反之,如果y=0,我们看后面这一部分.上述就是支持向量机很有趣的性质.这相当于在SVM中建立构建一个安全因子,一个安全距离 (1)如果有个正样本,比如y=

[C7]支持向量机(待整理)

十二.支持向量机(Support Vector Machines) 12.1 优化目标 参考视频: 12 - 1 - Optimization Objective (15 min).mkv 到目前为止,你已经见过一系列不同的学习算法.在监督学习中,许多学习算法的性能都非常类似,因此,重要的不是你该选择使用学习算法A还是学习算法B,而更重要的是,应用这些算法时,所创建的大量数据在应用这些算法时,表现情况通常依赖于你的水平.比如:你为学习算法所设计的特征量的选择,以及如何选择正则化参数,诸如此类的事

大数据时代的精准数据挖掘——使用R语言

老师简介: Gino老师,即将步入不惑之年,早年获得名校数学与应用数学专业学士和统计学专业硕士,有海外学习和工作的经历,近二十年来一直进行着数据分析的理论和实践,数学.统计和计算机功底强悍. 曾在某一世界500强公司核心部门担任高级主管负责数据建模和分析工作,在实践中攻克统计建模和数据分析难题无数,数据处理与分析科学精准,在实际应用中取得良好的效果. Gino老师担任数据分析培训师多年,探索出一套以实例讲解带动统计原理理解和软件操作熟悉的方法,授课的学生能迅速理解统计原理并使用统计软件独立开展数