机器学习算法入门之(四) SVM

背景

最早是由 Vladimir N. Vapnik 和 Alexey Ya. Chervonenkis 在1963年提出;

目前的版本(soft margin)是由Corinna Cortes 和 Vapnik在1993年提出,并在1995年发表;

深度学习(2012)出现之前,SVM被认为机器学习中近十几年来最成功,表现最好的算法。

介绍

这里写图片描述

将图中的数据点进行分类,哪一条线最好?

SVM寻找区分两类的超平面(hyper plane),使边际(margin)最大。

这里写图片描述

总共可以有多少个可能的超平面?无数条。

如何选取使边际(margin)最大的超平面 (Max Margin Hyperplane)?

超平面到一侧最近点的距离等于到另一侧最近点的距离,两侧的两个超平面平行。

线性可区分(linear separable)和线性不可区分(linear inseparable)

这里写图片描述
这里写图片描述

SVM定义

超平面可以定义为:WX+b=0

  • W: weight vector, W=w1,w2,...,wn, n是特征值的个数;
  • X: 训练实例;
  • b: bias。

对于2维特征向量:X=(x1,x2)
b想像为额外的weight。
超平面方程为:w0+w1x1+w2x2=0.
所有超平面右上方的点满足:w0+w1x1+w2x2>0.
所有超平面左下方的点满足:w0+w1x1+w2x2<0.

调整weight,使超平面定义边际的两边。
H1:w0+w1x1+w2x2+1 for yi=+1
H2:w0+w1x1+w2x21 for yi=1
综上两式,得

yi(w0+w1x1+w2x2)1, i

所有落在边际两边的超平面上的点被称作”支持向量(support vectors)“
分界的超平面H1H2上任意一点的距离为:1w,其中w为向量的范数。
所以最大边际距离为:2w

求解

SVM如何找出最大边际的超平面呢(MMH)?

利用一些数学推倒,公式

yi(w0+w1x1+w2x2)1, i
可变为有限制的凸优化问题(convex quadratic optimization)。利用 Karush-Kuhn-Tucker (KKT)条件和拉格朗日公式,可以推出MMH可以被表示为以下“决定边界 (decision boundary)”
g(XT)=i=1lyiαiXiXT+b0
其中,
  • yi是支持向量点Xi(support vector)的类别标记(class label);
  • XT是要测试的实例;
  • αib0都是单一数值型参数,由以上的训练算法得到;
  • l是支持向量点的个数。

对于任何测试(要归类的)实例,带入以上公式,得出的符号是正还是负决定。

这里写图片描述

这里写图片描述

线性不可分的情况 (linearly inseparable case)

以上举例的例子都是线性可分的情况,这节我们来讨论一下线性不可分的情况。

优缺点

优点

训练好的模型的算法复杂度是由支持向量的个数决定的,而不是由数据的维度决定的。所以SVM不太容易产生overfitting。

SVM训练出来的模型完全依赖于支持向量(Support Vectors), 即使训练集里面所有非支持向量的点都被去除,重复训练过程,结果仍然会得到完全一样的模型。

一个SVM如果训练得出的支持向量个数比较小,SVM训练出的模型比较容易被泛化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值