SVM学习笔记

一、基本概念
    支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力
 
    近似模型与真实模型之间的误差叫做风险( 更严格的说,误差的累积叫做风险),但是真实模型无从得知,因此可以用某些可以掌握的量来逼近它。最直观的想法就是使用分类器在样本数据上的分类的结果与真实结果(标注的数据)的差值来表示,这个差值叫做经验风险Remp(w),传统机器学习追求经验风险最小化,但是过拟合严重,泛化能力差,
因此统计学习引入泛化误差界的概念:
R(w)≤Remp(w)+Ф(n/h)
    泛化误差界指真实风险由两部分构成:一是经验风险,代表了分类器在给定样本上的误差;二是置信风险,代表了我们在多大程度上可以信任分类器在未知文本上分类的结果,不能精确计算,使得整个误差只能计算上界,因此不能叫泛化误差。
    置信风险与两个量有关,一是样本数量,显然给定的样本数量越大,我们的学习结果越有可能正确,此时置信风险越小;二是分类函数的VC维,显然VC维越大,推广能力越差,置信风险会变大。
    统计学习的目标从经验风险最小化变为了寻求经验风险与置信风险的和最小,即结构风险最小
二、线性分类器
~part1:线性分类器介绍
可以将两类样本完全分开的线性函数叫做超平面,在一维空间里就是一个点,在二维空间里就是一条直线,三维空间里就是一个平面
线性函数:g(x)=wx+b
判别函数:f(x)=sgn [g(x)]
 
!!注意:1)式中的x不是二维坐标系中的横轴,而是样本的向量表示,例如一个样本点的坐标是(3,8),则xT=(3,8) ,而不是x=3;2)g(x)不是中间那条直线的表达式,中间那条直线的表达式是g(x)=0,即wx+b=0,我们也把这个函数叫做分类面
 
对一个分类问题存在着多个分类函数,需要一个指标衡量好坏,常用的是分类间隔
给定一个数据集,其中每一个样本由一个向量和一个标记组成:
Di=(xi,yi)
 
在二元的线性分类中,这个表示分类的标记只有两个值,1和-1,于是可以定义一个样本点到某个超平面的间隔:
δi=yi(wxi+b)>=0 ==> δ=y(wx+b)=|g(x)|  ----函数间隔
 
将w和b进行归一化后:
,||w||是向量w的范数
 
这就是解析几何中点xi到直线g(x)=0的距离公式,推广到分类问题,即样本到超平面g(x)的距离,也叫几何间隔,几何间隔所表示的正是点到超平面的欧氏距离
 
这样可以定义一个点的集合(就是一组样本)到某个超平面的距离为此集合中离超平面最近的点的距离
H是分类面,而H1和H2是平行于H,且过离H最近的两类样本的直线,H1与H,H2与H之间的距离就是几何间隔
 
几何间隔与样本的误分次数间满足:
其中的δ是样本集合到分类面的间隔,R=max ||xi||  i=1,...,n,即R是所有样本中(xi是以向量表示的第i个样本)向量长度最长的值。从公式可以看出,几何间隔越大的解,它的误差上界越小,因此最大化几何间隔成了我们训练阶段的目标。
 
~part2:线性分类器的求解
 
由几何间隔的公式可知,几何间隔与||w||是成反比的,因此最大化几何间隔与最小化||w||等价,常用方法为固定间隔(例如固定为1),寻找最小的||w||,因此目标函数可以表示为:
 
 等价于
  (为了求导方便)
 
如果直接求解上式的最小值问题,可知当||w||=0的时候就得到了目标函数的最小值,但此时H1与H2两条直线间的距离无限大,这时所有的样本点都跑到了H1和H2中间,而原本的意图是,H1右侧的被分为正类,H2 左侧的被分为负类,位于两类中间的样本则拒绝分类,故所有的样本点都不会被分类,因此除了考虑目标,还需要加入约束条件。
如果把间隔固定为1,即把所有样本点中间隔最小的那一点的间隔定为1,那么所有的样本点都满足
yi[(w·xi)+b]≥1 (i=1,2,…,l) (l是总的样本数) --->  yi[(w·xi)+b]-1≥0 (i=1,2,…,l)
 
于是二分类问题被转化为带约束的求最小值问题:
    
一般形式为
这是一个寻优问题(规划问题),要求f(x)在可行域里(每一个点都要求满足所有p+q个条件,边界上的点使不等式约束取得等号)的哪一点上取得最小值。!!补充:凸集是指有这么一个点的集合,其中任取两个点连一条直线,这条线上的点仍然在这个集合内部。
 
上述问题中,自变量就是w,而目标函数是w的二次函数,所有的约束条件都是w的线性函数(xi不是自变量),因此叫二次规划问题,又因为它的可行域是一个凸集,因此它是一个凸二次规划
一旦求出了w(也就求出了b),那么中间的直线H就知道了,H1和H2也就知道了(因为三者是平行的,而且相隔的距离还是||w||决定的),而w由所给的样本(样本点的位置及样本点的类别)决定:
 
w=α1y1x1+α2y2x2+…+αnynxn   --->  
 
这样g(x)的表达式变为
 
        ---->          
 
于是问题从求w变成了求α。
 
~part3:线性不可分问题求解关键---核函数
 
解决线性不可分问题的基本思路——向高维空间转化,使其变得线性可分,转化的工具就是核函数,它的基本作用就是接受两个低维空间里的向量,能够计算出经过某个变换后在高维空间里的向量内积值
 --->  
 
这样g(x)就可以转化为g(x)=f(y)=ay,这就是解决思路。
 
回到分类问题,给定一个低维空间的输入x后,现在有一个高维空间的线性函数
f(x’)=<w’,x’>+b
 
上式中,给定一个w 和x的值,就有一个确定的f(x’)值与其对应,所以就想到是否能有这样一种函数K(w,x),接受低维空间的输入值,却能算出高维空间的内积值<w’,x’>?
,这样的函数就是核函数
 
于是part2所求的线性分类器的形式变为:
 
在低维空间里用核函数来代替就是
,此时低维空间里的核函数不再是线性的
 
尽管给的问题是线性不可分的,但是我们就硬当它是线性问题来求解,只不过求解过程中,凡是要求内积的时候就用你选定的核函数来算。这样求出来的α再和你选定的核函数一组合,就得到分类器啦!
 
~part4:解决 使用核函数向高维空间映射后,问题仍然是线性不可分的 ---松弛变量
 
假设有一个二分类问题,通过映射到高维空间而变成了线性可分的,现在有另一个训练集,只比原先的训练集多了一个样本,使用相同的核函数映射到高维空间后,成了这样:
图中黄色的点是负类样本,这样单独一个样本使得原本线性可分的问题变成了线性不可分的。这样类似的问题(仅有少数点线性不可分)叫做“近似线性可分”的问题。
按照人的思维,这个样本点很可能是噪声,可以被忽略,但由于原本优化问题的表达式中,确实要考虑所有的样本点,在此基础上寻找正负类之间的最大几何间隔,像上面这种有噪声的情况会使得整个问题无解,即硬性地要求所有样本点都满足和分类平面间的距离必须大于某个值,这样的方法叫做“硬间隔”分类法
 
解决办法就是仿照人的思路,允许一些点到分类平面的距离不满足原先的要求。原先对样本点的要求是:
 
 
即离分类面最近的样本点函数间隔也要比1大。如果要引入容错性,就给1这个硬性的阈值加一个松弛变量,即允许
 
这样意味着我们放弃了对离群点的精确分类,而这对我们的分类器来说是种损失,好处是可以得到更大的几何间隔(在低维空间看来,分类边界也更平滑)。显然我们必须权衡这种损失和好处。
 
C为惩罚因子,||w||^2是目标函数,我们希望它越小越好,所以要加上一个能使之变大的量,这样的分类器叫做软间隔分类器,分为一阶软间隔和二阶软间隔。
 
       
 
!!注意:
  1. 并非所有的样本点都有一个松弛变量与其对应,只有“离群点”才有,没离群的点松弛变量都等于0
  2. 松弛变量的值标示出了对应的点到底离群有多远,值越大,点就越远
  3. 惩罚因子C决定了你有多重视离群点带来的损失,C越大,对目标函数的损失也越大,即多不愿意放弃这些离群点,当C无限大,就退化成硬间隔问题。C是常量,整个优化问题在解的时候,C是一个你必须事先指定的值,然后进行参数寻优
 
 
 
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半个女码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值