机器学习教程 之 支持向量机:模型篇5–向量机的软间隔拓展

支持向量机是机器学习领域里最强的几种分类器之一,被广泛的运用于各种分类回归问题,如果不考虑集成学习算法以及近几年出现的深度学习算法,支持向量机的性能可以说是在学习领域具有统治地位,在一些中小型的数据集上它的性能甚至能够超过一些深度学习网络。其基本原理相当简单,但是模型的求解和优化却十分复杂,很难描述清楚,这里我会一步一步,尽我所能分章节的将它总结完善


##模型篇
· 支持向量机:模型篇1–支持向量与间隔
· 支持向量机:模型篇2–支持向量的拉格朗日对偶
· 支持向量机:模型篇3–对偶问题的求解: SMO算法
· 支持向量机:模型篇4–核函数与非线性优化
· 支持向量机:模型篇5–向量机的软间隔拓展

##代码篇
· 支持向量机:代码篇1-基于CVXPT优化函数求解
· 支持向量机:代码篇2-基于SMO算法求解


在前面几篇博客的讨论中,我们将向量机从原始问题转换到了对偶问题,再使用高效的SMO算法求解,还引入了核函数将模型拓展到了非线性的情况。
在上一篇博客的结尾处,提到了一个问题,那就是核函数的具体形式我们其实是无法得知的,只能尝试一些备选的核函数,从中挑出相对较好的一个。其实,在现实任务中,就算选择了一个相对较好的核函数,也很难使得训练样本在特征空间中是完全线性可分的。缓解该问题的一个办法就是允许支持向量机在一些训练样本上出错,从而达到在测试样本上性能提升的目的。在训练集上,未引入软间隔到引入软间隔的训练集分类变化如下
这里写图片描述
第一篇博客中所说的,支持向量机的形式是要求所有训练样本均满足 y i ( w T x + b ) > = 1 y_{i} (\mathbf{w^{T}}\mathbf{x}+b ) >=1 yi(wTx+b)>=1 ,即在训练时,所有的样本都必须划分正确,这称为“硬间隔“。而所谓的“软间隔“,就是允许训练样本在训练时某些样本不满足约束 y i ( w T x + b ) > = 1 y_{i} (\mathbf{w^{T}}\mathbf{x}+b ) >=1 yi(wTx+b)>=1,当然,在最大化间隔时,不满足约束的样本应该尽可能的少,于是,支持向量机的原始优化目标可以重写为

m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m l 0 / 1 ( y i ( w T x i + b ) − 1 ) min_{\mathbf{w},b}\frac{1}{2}||\mathbf{w}||^{2} + C\sum_{i = 1}^{m}l_{0/1}(y_{i}(w^{T}x_{i}+b)-1) minw,b21w2+Ci=1ml0/1(yi(wTxi+b)1)

上式中 C C C 是一个常数, l 0 / 1 l_{0/1} l0/1 是 “0/1损失函数“

l 0 / 1 ( z ) = { 1 i f z < 0 0 o t h e r w i s e l_{0/1}(z) = \left\{\begin{matrix}1 &if z<0 \\ 0 & otherwise \end{matrix}\right. l0/1(z)={10ifz<0otherwise

显然,当C无穷大时,为了达到最小化的目标会迫使所有样本均满足约束,则此时软间隔等同于硬间隔。当C取有限值时,则允许一些样本不满足约束。


这里我们提到的 l 0 / 1 l_{0/1} l0/1 “0/1损失函数“ ,一般情况下我们并不会使用这一函数,因为它的数学性质不太好存在非凸、不连续等因素,人们通常使用其它一些函数来代替 l 0 / 1 l_{0/1} l0/1,比如

· hinge损失 l h i n g e ( z ) = m a x ( 0 , 1 − z ) l_{hinge}(z) = max(0,1-z) lhinge(z)=max(0,1z)
· 指数损失 l e x p ( z ) = e x p ( − z ) l_{exp}(z) = exp(-z) lexp(z)=exp(z)
· 对率损失 l l o g ( z ) = l o g ( 1 + e x p ( − z ) ) l_{log}(z) = log(1+exp(-z)) llog(z)=log(1+exp(z))


我们可以将引入松弛变量的优化目标简写为

o b j { m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ξ i s . t y i ( w T x + b ) > = 1 − ξ i ξ i > = 0 , i = 1 , 2 , . . . , m obj \left\{\begin{matrix} min_{\mathbf{w},b}\frac{1}{2}||\mathbf{w}||^{2}+ C\sum_{i = 1}^{m}\xi_{i}\\ s.t y_{i} (\mathbf{w^{T}}\mathbf{x}+b ) >=1-\xi_{i} \\\xi_{i} >=0,i = 1,2,...,m\end{matrix}\right. objminw,b21w2+Ci=1mξis.tyi(wTx+b)>=1ξiξi>=0,i=1,2,...,m

这就是常用的软间隔支持向量机,它的拉格朗日对偶形式为

m a x a ∑ i = 1 n a i − 1 2 ∑ i , j = 1 n a i a j y i y j x i T x j max_{a} \sum_{i = 1}^{n}a_{i}- \frac{1}{2} \sum_{i,j = 1}^{n}a_{i}a_{j}y_{i}y_{j}x_{i}^{T}x_{j} maxai=1nai21i,j=1naiajyiyjxiTxj
s . t . C > = a i > = 0 , i = 1 , . . . , n s.t. C>=a_{i} >= 0,i= 1,...,n s.t.C>=ai>=0,i=1,...,n
∑ i = 1 n a i y i = 0 \sum_{i = 1}^{n}a_{i}y_{i} = 0 i=1naiyi=0

对比原先的对偶问题我们可以看出,两者唯一的差别就在于对偶变量的约束不同:前者是 C > = a i > = 0 C>=a_{i} >= 0 C>=ai>=0 ,后者是 a i > = 0 a_{i} >= 0 ai>=0。我们在第三篇博客中用SMO算法所求解的模型就是软间隔支持向量机。
到此为止,我们就分五个章节介绍完了基本支持向量机的全部内容,当然在论文中还有很多关于向量机的拓展和改进,笔者学识有限,博文中难免会有错误和不当,欢迎大家的交流与指正

更多资源下载

微信搜索“老和山算法指南”获取更多下载链接与技术交流群
在这里插入图片描述
有问题可以私信博主,点赞关注的一般都会回复,一起努力,谢谢支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Liangjun_Feng

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

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

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

打赏作者

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

抵扣说明:

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

余额充值