推荐svm理论基础的bloghtml
SVM的学习是在特征空间上进行的,SVM全部输入都是由输入空间转换到特征空间,可是在线性可分SVM和线性SVM中假设这两个空间元素一一对应,而非线性SVM中,是非线性映射。回顾线性可分的定义是存在一个线性函数可以将两类样本彻底分开的数据称为线性可分数据。
思想:给定特征空间的训练集T={(x1,x2),…(xN,yN)},X属于Rn,Y={+1,-1}称为正类,负类。学习的目标是在特征空间找到一个分离超平面,能将实例彻底分类。超平面方程w·x+b=0,法向量w,b截距,可用(w,b)来用。这里用间隔最大化来最优化分离超平面。
线性可分支持向量机定义:训练集经过间隔最大化或等价地求解相应凸二次规划问题学习model分离超平面;分类决策函数为
。这里的超平面对应将线性可分数据正确划分且间隔最大。算法
一个点距离超平面的远近能够表示分类预测的确信程度,较远的可更为可信。函数间隔(function margin)的概念简单说就是用|w·x+b|可以相对的表示点x距离超平面的远近,w·x+b的符号与label y的符号是否一致表示分类是否正确,所以可用y(w·x+b)表示分类正确性和确信度。即超平面(w,b)关于样本点(xi,yi)的函数间隔为:
超平面的函数间隔全部样本点中函数间隔最小值:,表示超平面的预测正确性和确信度。
以上函数间隔存在问题:当法向量w,截距b成倍增长如2w,2b,超平面未变,可是函数间隔成为原来的2倍。
处理:将w规范化,如,||w||=1,||w||为L2范数,这就是几何间隔(geometric margin),即
(其实就是中学的点到直线的距离公式)
同理,超平面要求为全部样本点中几何间隔最小值。超平面关于样本点的几何间隔就是实例点到超平面的带符号距离(signed distance)
几何间隔和函数间隔的关系是:
虽然当||w||=1时两者相等,可是几何间隔由于归一化的问题,不会由于w,b的成倍变化而变化。函数
知足分类条件的超平面可能有无穷多个,可是几何间隔最大化就将获得惟一超平面——称为硬间隔最大化。几何间隔最大的好处是可以对距离最近的点也能有很好的划分,即对未知数据的预测能力更强。学习
补充一下凸优化的概念:
凸优化问题就是约束最优化问题:
其中f为目标函数,g为约束函数,f,g均是R空间上连续可微的凸函数,约束函数h是R上的仿射函数(即形式y=ax+b,做为对比线性函数为y=ax)。
当目标函数f是二次函数且约束函数g是仿射函数时,凸优化问题就是凸二次规划问题。优化
对原始的最优化问题应用拉格朗日对偶性,求解对偶问题(dual problem)获得原始问题(primal problem)最优解。
首先构建Lagrange function:对约束引入拉格朗日乘子(Lagrange multuplier),得,
其中,α为multiplier向量。
根据对偶性,原始问题转化为
分两步走:
*先求min部分:分别对w,b求偏导,并另偏导为0。
得,
将w的表达式代入L函数,同时利用第二个summation=0的条件消去一项得:
所以,获得,
spa
这里补充一些基础知识:
[深刻理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件] http://blog.csdn.net/xianlingmao/article/details/7919597)
第二个理解博客.net
回到正题,如此将原始约束最优化问题转化为对偶最优化问题,原始最优化的解可求(具体可证):
分离超平面为:;
分类决策函数为:
此式称为SVM的对偶形式,只依赖于输入x和训练样本xi的内积
线性可分SVM学习算法:
支持向量在定义:
称为SV。
支持向量必定在边界上,所以
αi*>0,故, or
注意:现实状况多是数据集含有噪声,致使数据集线性不可分。3d
简单来讲就是数据集中存在一些特异点(outlier),正是由于这些点的存在致使数据变得线性不可分,容易想到的是除去这些点,数据集仍然变得线性可分。线性不可分意味着某些点不知足约束条件;
为了解决这个问题对每一个样本点(xi,yi)引入一个松弛变量ξi>=0,则约束条件为;
同时,对每一个松弛变量ξi,在目标函数引入ξi即
其中,C>0称为惩罚参数,C变大对误分类惩罚增大,变小误分类惩罚减少。最小化目标函数的两层含义:对最大间隔尽可能小;同时误分类点个数也尽可能小,C是调和两者的系数。从而能够根据上节内容来学习此处的svm模型,称为软间隔最大化。
线性不可分线性SVM学习模型:凸二次规划(原始问题):
因这个问题是context quadratic programming,所以关于(w,b,ξ)的解是存在的,w惟一,b不惟一存在于某一区间。
经过求解上述凸优化问题获得分离超平面:;相应分类决策函数:
,这就是线性支持向量机,比线性可分SVM更具备广适性。代理
对偶问题:
原始最优化拉格朗日函数为:,
对L的w,b,ξ求偏导=0,即获得对偶问题,求解对偶问题获得原始问题的解:
线性SVM算法:
htm
线性不可分时,将对偶问题的解中对应于
称为支持向量(软间隔的支持向量)
支持向量到边界的距离:
α和ξ对分类的影响:
此处书上讲解不太详细可看http://www.cnblogs.com/pinard/p/6100722.html
其中,这也是一系列SVM原理介绍。
与以上思路(软间隔最大化,凸二次规划)不一样的是,最小化如下目标函数:
其中,第一项为经验风险,则合页损失函数为:,第二项为正规化项
右下角的“+”符号为取正值的函数:
L式的含义是:当样本点被正确分类且函数间隔大于1时损失为0,不然。
所以线性SVM原始最优化问题
等价于
合页损失函数是0-1损失函数的上界又称为代理损失函数(surrogate loss funtion),虚线为感知机的损失函数,可见合页损失函数更靠右因此对学习提出更高的要求。
由上可知映射函数是不知道的,那么一个函数K(x,z)知足什么样的条件才是核函数?——正定核。
补充矩阵知识:
正定:全部特征值均大于0;
半正定:全部特征值均大于等于0;
贴一个知乎回答:
用户语冰对特征值大于0与变换角度小于0的关系阐述:特征值就是原空间某一个基在变换后的空间的长度变化系数,大于0表示方向一致,小于0表示方向相反。变换后夹角小于90度,其实隐藏的含义是变换后的向量投影回原向量时方向不变。用特征值不小于零或者大于零的条件作限制能够更直观也更严格地表达出这一个特色
Gram矩阵:v1,v2,…,vn 是内积空间的一组向量,Gram 矩阵定义为: Gij=⟨vi,vj⟩,显然其是对称矩阵。
性质:Gram矩阵是半正定的;
一个重要应用是计算线性无关:一组向量线性无关 当且仅当 Gram行列式不等于0.
利用核技巧能够将线性分类的学习方法应用到非线性分类问题上,将线性SVM扩展到非线性SVM中,只需将线性SVM对偶形式中的内积函数换成核函数。
非线性SVM学习算法:
凸二次规划问题具备全局最优解,可是当训练样本很大时,这种求解算法很低效。故这里提出一个SMO算法,以快速实现(1998年 Platt提出)。
要解决的问题是:凸二次规划的对偶问题
SMO基本思路:启发式算法,KKT条件时最优化问题的充要条件,若是知足则解就获得了。不然,选择两个变量,固定其余变量,针对这两个变量构建二次规划问题,这就使得原始问题变得更小,能够经过解析方法获得,提升计算速度;应该要求关于这两个变量的解更接近于原始二次规划的解。注意子问题有两个变量,一个是违反KKT条件最严重的一个,另一个由约束条件自动肯定,如此SMO将原问题不断分解为子问题求解,进而达到求解原始问题的目的。
好比,将约束条件中假设两个变量alpha1,alpha2,其余固定,那么等式约束为:
SMO算法包括两部分:两个变量二次规划的解析方法,选择变量的启发式方法。
仍是假设两个变量为alpha1,alpha2,则:
目标函数省略了不含这两个变量的常数项,ζ是常数。
首先观察约束条件,而后在约束条件下求解:
通过画图和变形,发现这已经变成中学学过的线性规划的问题,这里不等式约束变成一个区域,等式约束变成一条平行于正方形约束区域的对角线的直线,两个变量可相互表示,所以两个变量最优解的问题变成了单变量最优化的问题。
选择两个变量,至少一个变量严重违反KKT条件。