林轩田之机器学习课程笔记( embedding numerous feature之linear support vector machine )(32之17)

欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen
题目可能不全,因为有字数限制,不好意思,可以参考:
https://www.csie.ntu.edu.tw/~htlin/course/ml15fall/

概要

本课程前面的16节课是机器学习基石,后面的16节课是机器学习技法。介绍更多的机器学习知识,主要围绕特征转换问题:
1)如何规范和扩展更多的特征,这个引出了支持向量机
2)如何将特征进行融合,这个引出了adaboosting算法
3)如何辨别和学习隐藏的特征,这里引出了一些类神经网络的算法,比如深度学习。

最大化间隔超平面

在学习这个的时候,首先看看以前学习到的PLA,如下图:
这里写图片描述
但是我们知道,PLA最后得到的结果不是确定的,和初始的点有关系的,最后只要分开了就好了。
这里写图片描述
这三条先要选择哪一条比较好呢?
根据VC理论:

EoutEin+......

因为模型的复杂度没有区别,这三条线的理论保证是样的。但是如果真要选择,估计大多数人都会选择第三条线。
假设数据中存在噪音,就是未知的点可能会落在已知点的附近。
如下图:
这里写图片描述
如果采用左边的分类器,那么这个分类器忍受噪音比较低。右边的忍受噪音比较高。由于过拟合的因素中包含噪音,所以如果能够更好的区分噪音,那么分类器就更加鲁棒。这个鲁棒程度就和线离最近点的距离有关写,这个距离越大就越鲁棒。
这里写图片描述
所以我们现在的目的就是要找到这样一条线,使得该条线和最近点的距离最宽。这条线需要满足两个条件:
1)假设资料可分,这条线要将资料完全分开。
2)该条线要离最近的点的距离最大。称这个距离为:margin。
数学上的表示如下:
maxw(margin(w))subject to:线ynwTxn>0margin(w)=线线minn=1Ndis(xn,w)

标准最大化间隔问题

上面引出了支持向量机的表现形式,这里为了后面的推导方便,将 w 拆分成两部分, 一个是w0=b,剩余的一部分。

b=w0,w=[w1,w2......wd]T

由于需要计算点到直线的距离,这个如何计算呢?
设得到的超平面是: wTx+b=0 ,超平面上两个点: xx′′ ,那么我们得到,任意一个点到超平面的距离其实就是该点到超平面的点的连线在法向量上的投影。如下图所示:
这里写图片描述
就是一个向量在法向量上的投影如下:
distancs(x,w,b)=|wT||w||(xx)|=||1w|| |wTx+b|

由于可以线性分开,所以:
yn(wTxn+b)>0distancs(x,w,b)=1||w|| yn(wTx+b)

所以现在公式变成了:
这里写图片描述
同时我们看看 wx+b=03wT+3b=0 是一样的嘛,所以可以假设最近的点满足: yn(wTxn+b)=1 那么我们可以得到:
这里写图片描述
因为条件表示的是要使得最小的那个点满足 yn(wTxn+b)=1 ,那么等价于对于所有的点 yn(wTxn+b)1 ,如果放缩到这样的条件,会不会所有的点都大于1呢,没有等于1的情况?可以用反证法,这里就不细说了。同时将最大化变成最小化,同时添加一个 12 ,便于后面进行推导。
条件替换之后变成了:
minb,w12wTwsubject to:yn(wTxn+b)1( for all x)

支持向量机

那么要如何求解上面的式子呢?先来看看一个简单的案例:
假如有4个点,如下,根据式子得到四个不等式:
这里写图片描述
将不等式1和3相加消去b,将2和3相加消去 w1b
这里写图片描述
我们可以得到 w1=1,w2=1,b=1 ,这个我们称为支持向量机。这几个点和线段绘制如下:
这里写图片描述
将所有的点分为了2种,一种是在边界上的点,一种不是在边界上的点。我们称边界上的点为支持向量,准确的说是支持向量的候选集。

那么如何求解呢?仔细观察这个问题,这个其实是一个二次规划问题,这个是被研究烂的问题,可以直接通过二次规划进行求解。只需要表示成二次规划的格式就好了。
二次规划问题形式如下;
这里写图片描述
将上的式子表示成二次规划的情形如下;
这里写图片描述
所以直接带入二次规划就完事儿了,但是这样直接算是有代价的,对于数据量不是很大情况,可以这样搞定,如果数据量比较大,哈哈后面会讲到。

这个称为线性硬分割支持向量机,当然也可以将x进行映射到高维空间。

支持向量机背后的理论

为什么SVM会比简单的PLA做的好呢?背后是什么理论?
我们对比下正则化和SVM限制条件:
这里写图片描述
那么我们可以清晰的看到,SVM和正则化就是换了方向,所以可以认为SVM是正则化的一种。
那么对比PLA呢,假如我们限定SVM的线的宽度必须要大于一个度,

这里写图片描述
那么可以看到同样是可以分割线中,PLA的假设空间是要大于SVM的,这就导致PLA的复杂度大于SVM。从VC维理论进一个解释。
假设X是在一个R为半径的圆圈中:
这里写图片描述
要想找一条线来shatter这三个点,如果线对胖瘦没有要求,那么,vc维就是3,如果限定了胖瘦大小,有的点肯定是没法shatter的,就会导致vc维会小于3。
就是说:
这里写代码片
所以SVM的VC维和线的胖瘦有关也和X所在的超球体半径有关。这样就可以推出SVM的 Eout 应该会比PLA来的好。

同时对比下超平面和SVM之间的差异:

TablesSVM(胖的分割线)超平面超平面+特征转换
假设空间比超平面少
边界简单简单复杂

所以我们能不能采用SVM和特征转换联合起来,一方面得到少的假设空间,同时边界还比较复杂。
这就是kernel版本的SVM
关于kernel可以参考:
http://blog.csdn.net/cqy_chen/article/details/77932270
下节课这里也会讲到kernel的SVM

欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值