支持向量机是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使他有别于感知机;支持向量机还包括核技巧,这使他成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化问题。
支持向量机学习方法包括构建由简至繁的模型:线性可分支持向量机,线性支持向量机,及非线性向量机。当训练数据可分时,通过硬间隔最大化,学习一个线性的分类器;当训练数据近似可分时,通过软间隔最大化也学习一个线性的分类器;当训练数据不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
当输入空间为欧式空间或离散集合,特征空间为希尔伯特空间时,使用核函数表示将输入从输入空间映射到特征空间得到的特征向量之间的内积。通过使用核函数可以学习非线性支持向量机,等价于隐士的在高维的特征空间学习线性支持向量机,这样的技巧称之为核技巧。
1.线性可分支持向量机
(1)线性可分支持向量机
假设给定一个特征空间上的训练数据集
给定线性可分训练集,通过间隔最大化或等价的求解相应的凸二次规划问题学习得到的分离超平面为
以及对应的分类决策函数
间隔最大化的问题及相应的约束在下面讨论,现在先介绍函数间隔和几何间隔的概念。
(2)函数间隔和几何间隔
一般来说,一个点距离分离超平面的远近可以表示分类越策的准确程度,在超平面确定的情况下,|w*x+b|能表示点x距离超平面的远近,而w*x+b得符号与类标记y的符号是否一致能表达分类是否正确。所以可用y(w*x+b)来表示分类的正确性及其确性度,这就是函数间隔的概念。
对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点的函数间隔为
函数间隔可以表示分类预测的正确性及其确信度,但是选择分类超平面时,只有函数间隔还不够,因为只要成比例的改变w和b,超平面没有变化,但函数间隔确变成了原来的两倍。所以我们要对分离超平面的法向量w加某些约束,如||w||=1,这时间隔是确定的。这时的函数间隔变成的几何间隔。
对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点的几何间隔为
(3)间隔最大化
支持向量机学习的基本思想是求解能够正确划分的训练数据集并且几何间隔最大的分离超平面。对线性可分的训练数据集而言,线性可分分离超平面有无数多个(等价与感知机), 但是几何间隔最大的分离超平面是唯一的,这里的间隔最大化又称之为硬间隔最大化。其直观解释为:对训练数据集找到几何间隔最大化的超平面意味着以充分大的确信度对训练数据集进行分类,也就是说不仅把正负样本点分开,而且对最难分的实例(距离超平面最近的点)也有足够大的确信度把它们分开。
考虑如何求得一个几何间隔最大的分离超平面,即最大间隔分离超平面。具体的可以表示为以下的约束最优化问题
考虑到几何间隔和函数间隔的关系,我们可以把上式写成
函数间隔 γ^ 的取值并不影响最优化问题的解,事实上,假设w和b按比例的改变,函数间隔的值可以任意改变,所以我们可以假设 γ^ =1,并把他带入到上式最优化问题中,注意到最大化 1||w|| 和最小化 12||w||2 是等价的,于是我们得到下面的线性可分支持向量机学习优化问题
线性可分支持向量机学习算法–最大间隔法
输入:线性可分训练集T= {(x1,y1),(x2,y2),...,(xN,yN)} ,其中, xiϵRn,yiϵ{−1,1},i=1,2,...N ;
输出:最大间隔分离超平面和分类决策函数
(1)构造并求解约束最优化问题:
(2)由此得到分离超平面:
分类决策函数:
支持向量:在线性可分的情况下,训练数据集的样本点中与分离超平面距离最近的实例称为支持向量。即
(4)对偶算法
为了求解线性可分支持向量机的最优化问题,将它作为原始最优化问题,应用拉格朗日对偶性,同求解对偶问题得到原始问题的最优解。
首先构建拉格朗日函数,为此引入拉格朗日因子,定义拉格朗日函数;
由于 maxαL(w,b,α)=12||w||2 ,所以原问题为 minw,b12||w||2 即
<1>首先求 minw,b L(w,b,α) :
将拉格朗日函数 L(w,b,α) 分别对w,b求偏导数并令其等于0
得:
即:
<2>求 minw,bL(w,b,α) 对 α 的极大,即等价为对偶问题
求出
α
的值即可得到w和b的最优解,由上可知w和b为
2.线性支持向量机
(1)线性支持向量机
线性可分问题的支持向量机学习方法,对线性不可分训练数据集是不适用的,这时就修改硬间隔最大化为软间隔最大化。通常情况下,训练数据集中有一些奇异点,将这些奇异点去掉之后训练集还是可分的。
线性不可分意味着样本点不能满足函数间隔大于等于1的条件。为了解决这个问题,对每个样本点加一个松弛变量 γ>=0 ,使得函数间隔加上松弛变量大于等于1,这样约束条件就变成:
线性不可分的线性支持向量机的学习问题变成了如下问题(原始问题):
对于给定的线性不可分的训练数据集,通过求解凸优化问题可得到分离超平面以及对应的分类决策函数。称之为线性支持向量机
(2)学习的对偶问题
原始问题的拉格朗日函数是:
对偶问题是拉格朗日函数的极大极小问题。首先求 L(w,b,γ,α,μ) 对 w,b,γ 的极小,对拉格朗日函数求导得:
所以线性支持向量机算法为:
输入:训练数据集T={
(x1,y1),...,(xn,yn
}
输出:分离超平面和分类决策函数
(1)选择惩罚参数C>0,构造二次规划问题
求得最优解 ]α∗=(α∗1,α∗2,...,α∗N)T .
(2)计算 w∗=∑Ni=1αiyixi
选择一个合适的分量满足 0<α∗j<C ,计算
(3)求得分离超平面为
(3)支持向量
在线性不可分的情况下,将对偶问题的解中对应于 αi>0 的样本点 (xi,yi) 的实例 xi 称为支持向量(软间隔的支持向量)。软间隔的支持向量 xi 或者在间隔边界上,或者在间隔边界与分离超平面之间,或者在分离超平面误分类一侧。如 αi<C ,则 γi=0 ,支持向量 xi 正好落在间隔边界上;若 α<C,0<γi<1 ,则分类正确, xi 在间隔边界和分离超平面之间;若 αi<C,γi=1 ,则 xi 在分离超平面上;若 αi<C,γi>1 ,则 xi 位于分离超平面误分类一侧。
3.非线性支持向量机
(1)核技巧
核技巧运用到支持向量机,其基本思想就是通过一个非线性变换将输入空间对应于一个特征空间,使得在输入空间中的超曲面模型对应于特征空间的超平面模型(支持向量机)。这样,分类问题的学习任务通过在特征空间中求解线性支持向量机就可以完成。
核函数的定义:
设X是输入空间,又设H是特征空间,如果存在一个从X到H的映射
我们注意到在线性支持向量机的对偶问题中,无论是目标函数还是决策函数都只涉及输入实例与实例之间的内积。在对偶问题的目标函数中的内积 xixj 可以用核函数 K(xi,xj)=μ(xi)μ(xj) 来代替,于是非线性支持向量机的算法变成了:
输入:训练数据集T={ (x1,y1),...,(xn,yn }
输出:分离超平面和分类决策函数
(1)选择惩罚参数C>0,构造二次规划问题
求得最优解 ]α∗=(α∗1,α∗2,...,α∗N)T .
(2)计算 w∗=∑Ni=1αiyixi
选择一个合适的分量满足 0<α∗j<C ,计算
(3)求得分离超平面为