支持向量机是一个二类分类模型,但也能够扩展为多类分类。
其基于间隔最大化和核技巧的特点能够使它能够灵活处理线性或非线性分类问题。
支持向量机但是形式化为一个凸二次规划问题。学习算法是求解基于凸二次规划的最优化算法。
依照训练数据是否线性可分。支持向量机能够分为基于硬间隔的线性可分支持向量机、基于软间隔的线性支持向量机、基于核技巧和软间隔最大化的非线性支持向量机。
三者复杂性是依次添加的。
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的值,那么函数间隔的值就是变为原来的两倍。而超平面却并没有改变。为了解决问题。定义了几何间隔:
对于给定的训练数据集T和超平面(w,b),定义超平面关于样本点的几何间隔为:
当中||w||为w的L2范数,通过除以法向量的范数来对距离进行约束,保证了假设w,b成比例变化时,点到超平面的几何间隔不变。
从函数间隔和几何间隔的定义能够看出:
函数间隔 ̂随着w,b成比例的变化而成同比例的变化。即若w,b同一时候变为原来的两倍,则函数间隔也为原来的两倍,故当w,b成比例变化时,目标函数不变。约束条件也不变。
也就是说取值并不影响目标函数和约束条件。不影响整个问题的
求解,因此为了接下来的计算方便,我们取=1,从而目标函数能够写为:
如今的问题就是怎样求解在有不等式约束条件下的函数最优。
我们能够使用拉格朗日乘子法来求解,定义拉格朗日函数的形式例如以下:
由上式可知,由于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,从而约束条件变为:
同一时候由于约束条件引入了,所以目标函数也要改变,改为:
这种情况称为软间隔最大化。其问题能够定义为:
依旧构造拉格朗日函数,并转换为对偶问题:
支持向量
之前一直说到支持向量机,那么什么是支持向量呢?支持向量机是基于间隔最大化来分类数据集的。在硬间隔最大化的情况下,例如以下图的红线为分离超平面,粉线和蓝线是将两类点分开的最大间隔线,其到分离超平面的距离分别为。决定这个最大间隔的蓝线上的两个点与粉线的一个点就是分类关键点。称为支持向量。
在软间隔最大化的情况下,
例如以下图,每一个实例点到超平面的距离为。
支持向量由间隔边界(如红圈点)、间隔边界与超平面之间(如绿圈点)或误分点(如蓝圈点)这些对分类起着关键作用的点组成。
3、基于软间隔和核技巧的非线性支持向量机
前面说的数据集都是线性可分或者近似可分的,而实际情况下的数据都是非线性可分的。
这时就须要用到非线性变换,将输入空间上的输入映射到高维特征空间,将非线性问题变换为线性问题,从而利用线性分类器进行分类。
比如:
对于非线性的方程,我们取那么原方程就变为:
核函数就是做这样一个事情。它通过一个非线性变换将输入空间相应到一个希尔伯特空间,使得在输入空间中的超曲面模型相应特征空间中的超平面模型。
核函数的定义例如以下:
设χ是输入空间(欧氏空间或离散集合),Η是特征空间(希尔伯特空间),假设存在一个从χ到Η的映射
假设输入空间为二维欧氏空间,核函数是Κ(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的函数,也能够得出。故函数分类结果能够求出。
到这里,支持向量机的大体思路基本完毕了。也就是寻找分类超平面构造分类函数的过程;遇到非线性可分时候,就要想办法将其转换成线性问题。利用线性分类器来分类。求解的过程也就是求得分类超平面的參数问题,当參数不easy求解时,转换为其对偶问题来求。最终,最后能够求出来了。