支持向量机理解

支持向量机是一种非常有效的分类算法,至少在深度学习没有火起来之前,是很受欢迎的。线性可分和非线性可分的样本都能处理。最先我们分割样本的思路就是找到一个最佳的超平面(直线)把正负样本很好的分离。


经过深入的实验,然后你会发现这个最佳超平面不是那么好找的,以下的直线都能很好的分割样本,而这样的直线可能有无数条,你怎么办?


这时候就引入间隔的概念,r = y(wT x+b)>0 就说明分对了,这是函数间隔,不能适应w,b的变换,进而就有了

几何间隔     说白了就是样本点到超平面的距离,


红色圈圈和蓝色圈圈的点就是最接近超平面的点,称为支持向量,而红蓝圈圈的分类间隔就是的大小,直觉上来说,这个分类间隔越大,分类效果越好(证明是对的),支持向量的确定就是这个算法的目标吧。

给定训练样本,最初是这样分的


为了适应间隔需求,经过尺寸变化得到等价的


再看仔细点,


前面提到的分类间隔,这里表示为M


理论证明这个 M 越大,训练结果越优

表示成优化问题就是


与下面等价,


这就是优化方法里面常见的二次凸优化问题,matlab工具齐全,到这里就可以解决完了。然后估计是个效率不高的方法,进一步结合问题本身,提出更高效的解法 SMO。

按照优化方法的习惯,加入拉格朗日乘子alpha,定义拉格朗日函数L,前面的约束条件可以简化成, L就表示为


根据KKT 条件, 需满足的。对分量w,b 求偏导


观察 L 表达式, 可以知道 L是一直小于等于原先的目标函数的,因而原先目标函数的最小化等价于L的最大化。

优化问题转化为


对于约束条件,可以进一步与式子合并,简化成



现在就剩拉格朗日乘子这个参数了,你说怎么办?

二次优化问题常规解法


进一步地启发式算法SMO(序列最小优化)

与上面不同的是,每次只选取两个参数进行优化 alpha_i,alpha_j,

求解过程也是求偏导,选取,  实现的话知道最后推导出来的公式就好了==



=====================================================






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值