小程序API基础说明
868
2022-08-22
统计学习方法笔记:支持向量机之线性可分支持向量机与硬间间隔最大化
感想
支持向量机的内容有点多,我这里分开进行讲解,所谓的线性可分是对训练样例进行了假设,即假设训练样例是线性可分的,就不需要加核函数等步骤处理;所谓的硬间间隔最大化就是假设训练数据中没有噪声数据,这样就是硬间隔,不需要加松弛变量进行处理。因此这个算法不具有通用性,但是理解该过程能帮助我们理解后面的核函数和松弛变量,因此一定要弄懂这里面的拉格朗日求解和kkt条件
介绍
支持向量机(SVM)是一种二分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持向量机还包括和技巧,这使它陈伟实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。
支持向量机学习方法包含构建由简至繁的模型:线性可分支持向量机(linearsupport vector machine in linearly separable case)、线性支持向量机及非线性支持向量机。简单模型是复杂模型的基础,也是复杂模型的特殊情况。当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机;当训练数据线性不可分时,通过使用和技巧及软间隔最大化,学习非线性支持向量机。
当输入空间为欧式空间或离散集合、特征空间为希尔伯特空间时,核函数表示将输入从输入空间映射到特征空间得到的特征向量之间的内积。通过使用核函数可以学习非线性支持向量机,等价于隐式地在高维的特征空间中学习线性支持向量机。这样的方法称为核技巧。核方法是比支持向量机更为一般的机器学习方法。
1.1 线性可分支持向量机与硬间间隔最大化
1.1.1线性可分支持向量机
考虑一个二分类问题。假设输入空间与特征空间为两个不同的空间。输入空间为欧式空间或离散集合,特征空间为欧式空间或希尔伯特空间。线性可分支持向量机、线性支持向量机假设这两个空间的元素一一对应,并将输入空间中的输入映射为特征空间中的特征向量。非线性支持向量机利用一个从输入空间到特征空间的非线性映射将输入映射为特征向量。所以,输入都由输入空间转换到特征空间,支持向量机的学习是在特征空间进行的。
假设给定一个特征空间上的训练数据集
T={(x1,y1),(x2,y2),…,(xN,yN)}
其中xi∈X,yi∈Y={+1,-1},i=1,2,…,N,xi为第i个特征向量,也称为实例,yi为xt的类标记,当yi=+1时,称xi为正例;当yi=-1时,称xi为负例,(xi,yi)称为样本点,再假设训练数据集是线性可分的。
学习的目标是在特征空间中找到一个分离超平面,能将实例分到不同的类。能将实例分到不同的类。分离超平面对应于方程w*x+b=0,它由法向量w和截距b决定,可利用(w,b)来表示,分离超平面将特征空间划分为两部分,一部分是正类,一部分是负类。法向量指向的一侧为正类,另一侧为负类。
一般地,当训练数据集线性可分时,存在无穷个分离超平面可将两类数据正确分开。感知机利用误差分类最小的策略,求得分离超平面,不过这时的解有无穷多个。线性可分支持向量机利用间隔最大化求最优分离超平面,这时,解是唯一的。
线性可分支持向量机 给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为
W”*x+b”=0
以及相应的分类决策函数
F(x)=sign(w”*x+b”)
如图,小圆圈代表正例,叉号表示负例。训练数据集线性可分,这时有许多直接能将两类数据正确划分。线性可分支持向量机对应着将两类数据正确划分并且间隔最大的直线。
1.1.2 函数间隔和几何间隔
在图7.1中,有A,B,C三个点,表示3个实例,均在分离超平面的正类一侧,预测它们的类。点A距分离超平面较远,若预测该点为正类,就比较确信预测是正确的;点C距分离超平面较近,若预测该点为正类就不那么确信;点B介于点A与C之间,预测其为正类的确信度也在A与C之间。
一般来说,一个点距离分离超平面的远近可以表示分类预测的确信程度。在超平面w*x+b=0确定的情况下,|w*x+b|能够相对地表示点x距离超平面的远近。而w*x+b的符号与类标记y的符号是否一致能够表示分类是否正确。所以可用y(w*x+b)来表示分类的正确性及确信度,这就是函数间隔(functionalmargin)。
函数间隔 对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于点(xi,yi)的函数间隔为
定义超平面(w,b)关于训练数据集T的函数间隔为超平面(w,b)关于T中所有样本点(xi,yi)的函数间隔之最小值,即
函数间隔可以表示分类预测的正确性及确信度。但是选择分离超平面时,只有函数间隔还不够。因为只要成比例地改变w和b,例如将它们改为2w和2b,超平面并没有改变,但函数间隔却成为原来的2倍。这一事实启示我们。可以对分离超平面的法向量w加某些约束,如规范化,||w||=1,使得间隔是确定的。这时函数间隔成为几何间隔(geometric margin)。
图7.2 给出了超平面(w,b)及其法向量w。点A表示某一实例xi,其类标记为yi=+1.点A与超平面(w,b)的距离由线段AB给出,记作ℽt
其中,||w||为w的L2范数。这是点A在超平面正的一侧的情形。如果点A在超平面负的一侧,即yt=-1,那么点与超平面的距离为
一般地,当样本(xi,yi)被超平面(w,b)正确分类时,点xi与超平面(w,b)的距离是
集合间隔:对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点(xi,yi)的几何间隔为
定义超平面(w,b)关于训练数据集T的几何间隔为超平面(w,b)关于T中所有样本点(xi,yi)的几何间隔之最小值,即
超平面(w,b)关于样本点(xi,yi)的几何间隔一般是实例点到超平面的带符号的距离,当样本点被超平面正确分类时就是实例点到超平面的距离。
函数间隔和几何间隔有下面的关系:
如果||w||=1,那么函数间隔与几何间隔相等。如果超平面参数w和b成比例地改变(超平面没有改变),函数间隔也按此比例改变,而几何间隔不变。
1.1.3 间隔最大化
支持向量机学习的基本想法是求解能够正确划分训练数据集机并且几何间隔最大的分离超平面。对线性可分的训练数据集而言,线性可分分离超平面有穷多个(等价于感知机),但是几何间隔最大的分离超平面是唯一的。这里的间隔最大化又称为硬间隔最大化。
间隔最大化的直观解释是:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。也就是说,不仅将正负实例点分开,而且对最难分的实例点(离超平面最近的点)也有足够大的可信度将它们分开。这样的超平面应该对未知的新实例有很好的分类预测能力。
1. 最大间隔分离超平面
求一个几何间隔最大的分离超平面,即最大间隔分离超平面。具体地,这个问题可以表示为下面的约束最优化问题:
即我们希望最大化超平面(w,b)关于训练数据集的几何间隔ℽ,约束条件表示的超平面(w,b)关于每个训练样本点的几何间隔至少是ℽ。
考虑几何间隔和函数间隔的关系式,可将这个问题改写为
函数间隔ℽ^的取值并不影响最优化问题的解。事实上,假设将w和b按比例改变为λw和λb,这时函数间隔成为λℽ^。函数间隔的这一改变对上面最优化问题的不等式约束没有影响,对目标函数的优化也没有影响,也就是说,它产生一个等价的最优化问题。这样,就可以取ℽ^=1.将ℽ^=1代入上面的最优化问题,注意到最大化1/||w||和最小化1/2||w||^2是等价的,于是就得到下面的线性可分支持向量机的最优化问题
这是一个凸二次规划(convex quadratic programming)问题.
凸优化问题是指约束最优化问题
其中,目标函数f(w)和约束函数gi(w)都是Rn上的连续可微凸函数,约束函数hi(w)是Rn上的仿射函数。
当目标函数f(w)是二次函数且约束函数gi(w)是仿射函数时,上述凸最优化问题成为凸二次规划问题。
如果求出了约束最优化问题的解w“,b”,那么就可以得到最大间隔分离超平面w”*x+b*-0及分类决策函数f(x)=sign(w”*x+b”),即线性可分支持向量机模型。
综上所述,就有下面的线性可分支持向量机的学习算法------------最大间隔法(maximum margin method)
输入:线性可分训练数据集T={(x1,y1),(x2,y2),…,(xN,yN)},其中,xi∈X=Rn,yi∈Y={+1,-1},i=1,2,…,N;
输出:最大间隔分离超平面和分类决策函数。
(1)构造并求解约束最优化问题:
求得最优解w”,b”.
(2) 由此得到分离超平面:
W”*x+b*=0
分类决策函数
f(x)=sign(w”*x+b”)
2.最大间隔分离超平面的存在唯一性
线性可分训练数据集的最大间隔分离超平面时存在且唯一的。
定理:若训练数据集T线性可分,则可将训练数据集中的样本点完全分开的最大间隔分离超平面存在且唯一。
证明:略,如果感兴趣的同学,请自行翻书哈,我看了一下还挺长的。
3.支持向量和间隔边界
在线性可分情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例成为支持向量。支持向量使约束条件式等号成立的点,即
Yi(w*xi+b)-1=0
对yi=+1的正例点,支持向量在超平面
H1: w*x+b=1
上,对yi=-1的负例点,支持向量在超平面
H2:w*x+b=-1
上,如下图:在H1和H2上的点就是支持向量
注意到H1和H2平行,并且没有实例点落在它们中间。在H1与H2之间形成一条长带,分离超平面与它们平行且位于它们中央。长带的宽度,即H1与H2之间的距离成为间隔。间隔依赖于分离超平面的法向量w,等于2/||w||,H1和H2称为间隔边界。 在决定分离超平面时只有支持向量起作用,而其他实例点并不起作用。如果移动支持向量将改变所求的解;但是如果在间隔边界以外移动其他实例点,甚至去掉这些点,则解是不会改变的。由于支持向量在确定分离超平面中起着决定性作用,所以将这种分类模型成为支持向量机。支持向量的个数一般很少,所以支持向量机由很少的“重要的”训练样本确定。
1.1.4 学习的对偶算法
为了求解线性可分支持向量机的最优化问题,将它作为原始最优化问题,应用拉格朗日对偶性,通过求解对偶问题(dual problem)得到原始问题(primal problem)的最优解,这就是线性可分支持向量机的对偶算法(dual algorithm)。这样做的优点,一是对偶问题往往更容易求解,二是自然引入核函数,进而推广到非线性分类问题。
首先构建拉格朗日函数(lagrange funciton),为此,对每一个不等式约束引进拉格朗日乘子(lagrange multiplier)αi≥0, i=1,2,…,N,定义拉格朗日函数:
其中,α=(α1,α2,…,αN)T为拉格朗日乘子向量。 根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
所以,为了得到对偶问题的解,需要先求L(w,b,)对w,b极小,再求对的极大。
(1) 求min L(w,b,α)分别对w,b求偏导数并令其等于0.
(2) 求min L(w,b,α)的极大,即对偶问题
将上式的目标函数由极大转换成求极小,就得到下面与之等价的对偶最优化问题:
考虑原始最优化问题和对偶最优化问题,原始问题满足拉格朗日对偶定理(下次把这个东西补进来)的条件,所以存在w”,α”,β”,使w”是原始问题的解,,α”,β”是对偶问题的解。这意味着原始问题可以转换为求解对偶问题。
定理2 设α*=(α1*,α2*,…, αl*)T是对偶最优化问题的解,则存在下标j,使得α*j>0,并可按下式求得原始最优化问题的解w”,b”:
证明过程就略了,其中需要自己手工推导,希望读者勤奋点,手动推导,确实有些地方不好懂。
由此定理可知,分离超平面可以写成
分类决策函数可以写成
这就是说,分类决策函数只依赖于输入x和训练样本输入的内积,上式称为线性可分支持向量机的对偶形式。 综上所述,对于给定的线性可分训练数据集,可以首先求对偶问题的解α*;再利用上面给的公式求出原始问题的解w”,b”;从而得到分离超平面及分类决策函数。这种算法称为线性可分支持向量机的对偶学习算法,是线性可分支持向量机学习的基本算法。 线性可分支持向量机学习算法 输入:线性可分训练集T={(x1,y1),(x2,y2),…,(xN,yN)},其中xi∈X=Rn,yi∈Y={+1,-1},i=1,2,…,N; 输出:分离超平面和分类决策函数。
(1) 构造并求解约束最优化问题
求得最优解α*=(α1*,α2*,…, αl*)
(2) 计算
并选择α*的一个正分量α*j>0,计算
(1) 求得分离超平面
分类决策函数:
由线性可分支持向量机中,w”和b“只依赖于训练数据中对应于α*i>0的样本点(xi,yi),而其他样本点对w”和b“没有影响。我们将训练数据中对应于α*i>0的实例点xi∈Rn成为支持向量。
的样本点(xi,yi)的实例xi∈Rn称为支持向量。 根据这一定义,支持向量一定在间隔边界上。由KKT互补条件可知,
对应于α*i>0的实例xi,有
对于现行可分问题,上述现行可分支持向量机学习(硬间隔最大化)算法是完美的。但是,训练数据集线性可分时理想的情形。在现实问题中,训练数据集往往是线性不可分的,即在样本中出现噪声点或特异点。此时,有更一般的学习方法。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~