SVM算法1
2015-06-07 21:46
134 查看
支持向量机(support vector machines,SVM)是一种二类分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,支持向量机还包括核技巧,这使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划(convex quardratic)的问题,也等价于正则化的合页损失函数的最小化问题。 支持向量机学习方法包含构建由简到繁的模型,线性可分支持向量机,线性支持向量机及非线性支持向量机。简单模型是复杂模型的基础,也是复杂模型的特殊情况。 当训练数据线性可分时,通过硬间隔最大化(hard margin maximization),学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机; 当训练数据近似线性可分时,通过软间隔最大化(soft margin maximization)学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机; 当训练数据线性不可分时,通过使用核技巧(kernel trick)及软间隔最大化,学习非线性支持向量机。 当输入空间为欧式空间或离散集合,特征空间为希尔伯特空间时,核函数(kernel function)表示将输入从输入空间映射到特征空间得到的特征向量之间的内积。通过使用核函数可以学习非线性向量机,等价于隐式地在高维的特征空间中学习线性支持向量机。这样的方法称为核技巧。核方法(kernel method)是比支持向量机更为一般的机器学习方法。
1线性可分支持向量机与硬间隔最大化
1.1线性可分支持向量机
考虑一个二类分类问题,假设输入空间与特征空间为两个不同的空间,输入空间为欧氏空间或离散集合,特征空间为欧氏空间或希尔伯特空间,线性支持向量机假设这两个空间的元素一一对应,并将输入空间中的输入映射为特征空间中的特征向量。所以,输入都由输入空间转换到特征空间,支持向量机的学习是在特征空间里进行的。 假设给定一个特征空间上的训练数据集
T={(x1,y1),(x2,y2),...,(xN,yN)}其中,xi∈Rn,yi∈{+1,−1}
学习的目标是在特征空间中找到一个分离超平面,能将实例分到不同的类,分离超平面对应于方程w⋅x+b=0,它由法向量w和截距b决定,可用(w,b)来表示。分离超平面将特征空间划分为两部分。一部分是正类,一部分是负类,法向量指向的一侧为正类,另一类是负类。
一般地,当训练数据集线性可分时,存在无穷多个分离超平面可将两类数据正确分开。感知机利用误分类最小的策略,求的分离超平面,不过这时的解有无穷多个。线性可分支持向量机利用间隔最大化求最优分离超平面,这时,解是唯一的。
1.1定义(线性可分支持向量机)给定线性可分训练数据集,通过间隔最大化或等价求解相应的凸二次规划问题学习得到的分离超平面为
w∗⋅x+b∗=0以及相应的分类决策函数f(x)=sign(w∗⋅x+b∗)称为线性可分支持向量机1.2函数间隔和几何间隔
在超平面w⋅x+b=0确定的情况下,|w⋅x+b|能够相对地表示点x距离超平面的远近,而w⋅x+b的符号与类标记y的符号是否一致能够表示分类是否正确,所以可用量y(w⋅x+b)来表示分类的正确性及确信度,这就是函数间隔(function margin)1.2定义(函数间隔)对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点(xi,yi)的函数间隔为γi^=yi(w⋅xi+b)
定义超平面(w,b)关于训练数据集T的函数间隔为超平面(w,b)关于T中所有样本点(wi,yi)的函数间隔之最小值,即γ̂ =mini=1,...,Nγi^函数间隔可以表示分类预测的正确性及确信度,但是选择分离超平面时,只有函数间隔还不够。因为只要成比例地改变w和b,超平面并没有改变,但函数间隔缺称为原来的2倍,这一事实启示我们,可以对分离超平面的发向量w加某些约束,如规范化,||w||=1,使得间隔是确定的。这时函数间隔称为几何间隔(geometric margin)1.3定义(几何间隔)对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点的几何间隔为γi=yi(w||w||⋅xi+b||w||)定义超平面(w,b)关于训练数据集T的几何间隔为超平面(w,b)关于T所有样本点(wi,yi)的几何间隔之最小值,即γ=mini=1,..Nγi
超平面(w,b)关于样本点(xi,yi)的几何间隔一般是实例点到超平面的带符号的距离,当样本点被超平面正确分类时就是实例点到超平面的距离1.3间隔最大化
支持向量机学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面,对线性可分的训练数据而言,线性可分分离超平面有无穷多个,但是几何间隔最大的分离超平面是唯一的。这里的间隔最大化又称为硬间隔最大化间隔最大化的直观解释是:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。不仅将正负实例点分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将它们分开。
1.3.1最大间隔分离超平面
最大间隔分离超平面可以表示为下面的约束最优化问题:maxw,bγ
s.t.yi(w||w||⋅xi+b||w||)≥γ,i=1,2,...,N即我们希望最大化超平面(w,b)关于训练数据集的几何间隔γ,约束条件表示的是超平面(w,b)关于训练样本点的几何间隔至少是γ
考虑几何间隔和函数间隔的关系式,可将这个问题改写为
maxw,bγ̂ ||w||s.t.yi(w⋅xi+b)≥γ̂ ,i=1,2,..,N函数间隔γ̂ 的取值并不影响最优化问题的解。事实上,假设将w和b按比例改变为λw和λb,这时函数间隔称为λγ̂ ,函数间隔的这一改变对上面最优化问题的不等式约束没有影响,对目标函数的优化也没有影响,也就是说它产生一个等价的最优化问题。这样,就可以取γ̂ =1,注意最大化1||w||和最小化12||w||2是等价的。于是就得到过下面的线性可分支持向量机学习的最优化问题
minw,b12||w||2s.t.yi(w⋅xi+b)−1≥0,i=1,2,...,N这是一个凸二次规划问题。
凸优化问题是指约束最优化问题minwf(w) s.t.gi(w)≤0,i=1,2,..,khi(w)=0,i=1,2,..,l其中,目标函数f(w)和约束函数gi(w)是连续可微的凸函数,约束函数hi(w)是Rn上的仿射函数。
如果求出了约束最优化问题的解w∗,b∗,那么就可以得到最大间隔分离超平面w∗⋅x+b∗=0及分类决策函数f(x)=sign(w∗⋅x+b∗),及线性可分支持向量机模型。
综上所述,就有了线性可分支持向量机的学习算法—最大间隔法
1.3.2支持向量和间隔边界
在线性可分情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量(support vector)。支持向量是使约束条件式yi(w⋅xi+b)−1=0成立的点。在决定分离超平面时只有支持向量起作用,而其他实例点并不起作用,如果移动支持向量则将改变所求解的解;但如果在间隔边界以外移动其他实例点,则解是不会改变的1.4 拉格朗日对偶性
在约束最优化问题中,常常利用拉格朗日对偶性(Lagrange duality)将原始问题转换为对偶问题,通过解对偶问题而得到原始问题的解1.4.1原始问题
假设f(x),ci(x),hj(x)是定义在Rn上的连续可微函数,考虑约束最优化问题minx∈Rnf(x) s.t.ci(x)≤0, i=1,2,...,k hj(x)=0, j=1,2,...,l称此约束最优化问题为原始最优化问题或原始问题。
首先,引进广义拉格朗日函数L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1lβjhj(x) αi,βj是拉格朗日乘子,αi≥0。考虑x的函数
ΘP(x)=maxα,β:αi≥0L(x,α,β)这里下标P表示原始问题。
假设给定某个x,如果x违反原始问题的约束条件,即存在某个i使得ci(w)>0或者存在某个j使得hj(w)≠0那么就有ΘP(x)=maxα,β:αi≥0[f(x)+∑i=1kαici(x)+∑j=1lβjhj(x)]=+∞如果满足约束条件,则ΘP(x)=f(x),否则ΘP(x)=+∞
所以如果考虑极小化问题:
minxΘP(x)=minxmaxα,β:αi≥0L(x,α,β)称为广义拉格朗日的极小极大问题。为了方便,定义原始问题的最优解为p∗=minxΘP(x)
1.4.2对偶问题
定义ΘD(α,β)=minxL(x,α,β),再考虑极大化ΘD(α,β),即maxα,β:αi≥0ΘD(α,β)=maxα,β:α≥0minxL(x,α,β)问题maxα,β:α≥0minxL(x,α,β)称为广义拉格朗日函数的极大极小问题。定义对偶问题的最优解d∗=maxα,β:α≥0ΘD(α,β)为对偶问题的值。1.4.3原始问题和对偶问题的关系
若原始问题和对偶问题都有最优解,则d∗=maxα,β:αi≥0minxL(x,α,β)≤minxmaxα,β:αi≥0L(x,α,β)=p∗x∗,α∗,β∗分别是原始问题和对偶问题的解的充分必要条件是x∗,α∗,β∗满足下面的KKT条件
∇xL(x∗,α∗,β∗)=0 ∇αL(x∗,α∗,β∗)=0 ∇βL(x∗,α∗,β∗)=0 α∗ici(x∗)=0,i=1,2,...,k ci(x∗)≤0,i=1,2,...,k α∗i≥0,i=1,2,...,k hj(x∗)=0,j=1,2,...,l
1.5学习的对偶算法
首先,构建拉格朗日函数。为此,对每一个不等式约束引进拉格朗日乘子,αi≥0,i=1,2,...,N定义拉格朗日函数:L(w,β,α)==12||w||2−∑i=1Nαiyi(w⋅xi+b)+∑i=1Nαi根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
maxαminw,bL(w,β,α)所以为了得到对偶问题的解,需要先求L(w,β,α)对w,b的极小,再求对α的极大
(1)求minw,bL(w,β,α)
将拉格朗日函数L(w,β,α)分别对w,b求偏导并令其等于0.
∇wL(w,β,α)=w−∑i=1Nαiyixi=0 ∇b(w,β,α)=∑iNαiyi=0或者w=∑i=1Nαiyixi ∑i=1Nαiyi=0
L(w,β,α)=12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαiyi[(∑j=1Nαiyixj)⋅xi+b]+∑i=1Nαi =−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi
即minw,βL(w,β,α)=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi
(2)求minw,βL(w,β,α)对α的极大,即对偶问题maxα[−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi] s.t.∑i=1Nαiyi=0,αi≥0
将此问题由求极大变为求极小,就等到下面与之等价的对偶最优话问题:
minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi s.t. ∑i=1Nαiyi=0 αi≥0,i=1,2,..,N
求解最优化问题的解w∗,b∗ w∗=∑i=1Nα∗iyixi b∗=yj−∑i=1Nα∗iyi(xi⋅xj)
相关文章推荐
- LSI SVM 挑战IBM SVC
- 支持向量机(SVM)算法概述
- [转载]用opencv实现svm
- online panel在广告曝光日志中的特征进一步提取
- Learning to ranking简介
- 结构风险最小和VC维理论的解释
- SVM学习
- OpenCV之CvANN_MLP和CvSVM测试
- svm代码c++——机器学习
- svm支持向量机
- 基于SIFT特征和SVM的图像分类
- 阅读笔记之:Multimodal learning in Loosely-organized web images-CVPR2014
- svm详细总结
- libsvm的使用
- LibSVM 3.12的源码分析Svm-train.c
- libsvm 使用介绍
- OpenCV的SVM用法
- 开源SVM库libSVM介绍
- 支持向量机简介
- 低维数据映射到高维数据可分性理解实例