SVM--从感知机到间隔最大化再到核函数(待完善)

SVM更像是机器学习方法领域的集大成者,相比而言,近来流行的神经网络其实是个古老的算法, 只是随着目前计算机性能的提升才又被提起。SVM不好理解,到现在能完整梳理推导出全流程着实费了不少时间和精力。网上的教程也是很多,但觉得讲解较好的还是李航的统计学习方法和这位大牛的博文。本文也是在结合这些资料的基础上,加上自己的一些理解和梳理。

1、感知机

先说下感知机,感知机是一个极简单的线性分类模型,只在数据集是线性可分的情况下适用,当数据线性不可分时就根本停不下来。感知机的分类函数是这样的 f(x)=sign(wx+b) f ( x ) = s i g n ( w x + b ) ,其中, wRn w ∈ R n 是权值, bR b ∈ R 是偏置。
这里写图片描述
感知机的目标相比SVM来说,只是找到能将正负实例点完全正确分开的分离超平面,这样的分离超平面通常也是很多的。损失函数可以选择的是误分类点的个数,但是这样的损失函数不是参数 w,b w , b 的连续可导函数,不易优化。定义输入空间 Rn R n 中任一点 x0 x 0 到超平面 S S 的距离:
1||w|||wx0+b|
对于误分类的实例 (xi,yi) ( x i , y i ) 来说, yi(wxi+b)>0 − y i ( w ⋅ x i + b ) > 0 成立。因此误分类点 xi x i 到超平面的距离为 1||w||yi(wxi+b) − 1 | | w | | y i ( w ⋅ x i + b ) 。于是,所有误分类的点到超平面的总距离为 1||w||xiMyi(wxi+b) − 1 | | w | | ∑ x i ∈ M y i ( w ⋅ x i + b ) ,不考虑 1||w|| 1 | | w | | 就得到感知机的损失函数为 L(w,b)=xiMyi(wxi+b) L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) ,其中 M M 是误分类点的集合。
损失函数的优化采用随机梯度下降(SGD),就是在优化w,b的时候不是一次使所有的误分类点梯度下降,而是一次随机选取一个误分类点所有梯度下降(所有维度同时下降)
损失函数 L(w,b) L ( w , b ) 的梯度如下:
w=xiMyixi ▽ w = − ∑ x i ∈ M y i x i
b=xiMyi ▽ b = − ∑ x i ∈ M y i
随机选出一个误分类点 (xi,yi) ( x i , y i ) ,对 w,b w , b 更新:
ww+ηyixi w ← w + η y i x i
bb+ηyi b ← b + η y i
上面 η(0<η1) η ( 0 < η ≤ 1 ) 是步长即学习率, w,b w , b 每次是在负梯度方向上改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值