机器学习技法---线性SVM

本文参考整理了Coursera上由NTU的林轩田讲授的《机器学习技法》课程的第一章的内容,主要介绍了支撑向量机SVM的基本概念,文中的图片都是截取自在线课程的讲义。
欢迎到我的博客跟踪最新的内容变化。
如果有任何错误或者建议,欢迎指出,感激不尽!


Large-Margin Separating Hyperplane

首先来看一个问题,如果要用一条线来进行二元分类,以下哪一条线最好呢?

大部分人可能感觉最右边的线最好,怎么解释?
因为最右边的线离最近点的距离更大,对点的noise更鲁棒、强壮。

假设noise服从高斯分布,则将来测试样本点x'≈x(可能x'就是x,只是因为测量误差等原因造成约等于)的话,那么分类结果应该一致。

三条线对测量误差的容忍度不同,容忍度越大则对过拟合overfitting更加robust(因为测量误差也是一种Noise,而Noise会引起Overfitting)。

用线距离最近点的距离来衡量这个属性。

换种描述,我们叫线有多“胖”,即线往两侧最大扩展多远才会碰到最近的点。

目标:找到最胖的分割线(超平面)。

问题描述为:

正式定义(Large-Margin Separating Hyperplane):

胖是一种非正式的描述,正式名称为margin。

Standard Large-Margin Problem

如何计算点到直线的距离?

distance(Xn,W)

为了计算距离的方便,将W的表示形式进行缩短,去掉截距项W0,输入样本特征的X0=1也去掉。

h(x) = sign(W’X + b)

因此用distance(X,b,W)代表点X到平面W’X+b=0的距离。

注意:在本文中用大写英文字母表示矩阵或向量,如X、W,用W’表示矩阵的转置,用小写字母表示标量。

考虑平面上的两个点X和X`,则满足平面方程,有:

W'X = -b
W'X`= -b

W'(X`-X) = -b - (-b) = 0

而X`-X是平面上的一个向量,对于任意考虑的两个点X和X`,W与(X`-X)的内积都是0,所以W垂直于这个平面,W是法向量。

所以点到平面的距离等于点到平面上任意一点的距离投到法向量的投影长度。

所以距离公式为:

化简标准问题

我们只考虑可以完美分隔XX和OO的线,它有性质:

对于每一个n,yn*(W'Xn + b) > 0

因为|yn|=1,所以绝对值可以脱掉

现在的最佳化问题如下:

其实这个世界上可能没有那么多条线,比如
W`X + b = 0 和 3W'X + 3b = 0 表示的是同一条直线,也就是说法向量的长度不影响线的表示。

所以我们可以利用特别的放缩,使得

所以我们可以只考虑由特殊的(b,W)表达的分隔线,满足以上条件,则

则最优化问题可以简化为:

而min=1同时也意味着every>0,第一个条件可以删去而不影响结果。

但问题仍然不好解,主要因为条件有个min操作,是否可以把条件放松一点呢?

条件放松,需要证明最优解一样。

满足原始条件必然满足放松条件(必要条件),而通过反证法可以证明满足放松条件的也一定满足原始条件,因此两个条件等价。

问题可以表述如下:

将讨厌的max改为min,将W的模方的开方根号去掉,补充一个便于后续计算的常数1/2,得到最终的问题表述。

该问题称为“标准问题”(Standard Problem).

Support Vector Machine

名称解释

最胖的那条线g(svm)就叫做支撑向量机(SVM)

用方框圈起的是离线最近的那些点,有趣的是,如果删去其他不是方框框住的点,所找出的最胖的线仍然不变,所以这些最近的点已经足够告诉我们最胖的线长什么样子,而其他的点不重要。

我们称这些方框圈住的最近的点,告诉我们最胖的线在哪的这些点,为支撑向量[候选者] (Support Vector[candidate])。

所以support vector machine(SVM)就是在support vectors的帮助下,学习找出最胖的分割超平面。

求解一般SVM问题

该最优化问题不适合梯度下降法,因为有约束,也不便于直接手动求解,但幸运的是,该问题属于一类已知的最优化类型。

它的最小化目标是一个二次函数(convex),它的所有约束条件都是W和b的一次式,有这样性质的最佳化问题,一般称为“二次规划”(Quadratic Programming)。

做数值最佳化的人发现这样的问题很容易解决,并已有多种求解QP问题的软件工具,因此我们需要将该问题表示成QP的标准形式,再输入到算法中,即可求解最优解。

二次规划的标准形式

目标是最小化向量U的二次函数,二次项的系数放在矩阵Q中,一次项的系数放在向量P中。

条件是U向量的线性约束,共有M个条件,每个条件的一次式的系数放在向量Am中,常数项放在常数cm中,把所有的向量Am集合起来到一个矩阵A中,把所有的常数cm放到一个向量C中。

我们的当前问题描述为:

将b和W集成一个向量U

系数表示如下

注意要阅读QP算法的相关手册说明。

所以求解一般SVM问题的步骤如下:

hard-margin(硬边界):不允许任何点违反“胖分割线”。

linear:在X原始空间中直接使用Xn向量,没有经过任何特征转换,如果要使用非线性的分割线(即X空间的曲线),可以考虑使用Z=Φ(X)转换。

为什么要使用最大边界的分隔超平面?

最开始的理由:“胖”一点的分割线对测量误差的容忍度更好

与regularization的对比:

技术 最小化目标 约束条件
regularization Ein W’W<=C
SVM W’W Ein=0 [and more]

所以SVM其实就是一种regularization,只是它regularization的解释是边界Margin要尽可能大,以能够抵抗一些测量误差。
即也是一种“weight-decay regularization within Ein = 0”(保证Ein为0的权重衰减正则化方法),因此SVM可以一定程度上防止overfitting。

从VC维度解释
从另一个角度解释,利用导入VC维度时引入的二划分(dichotomy)概念,考虑这样一种“large-margin”演算法A(ρ):

如果存在一条线g满足margin(g)>=ρ时,返回g;否则如果不存在则返回0.

这样的演算法在某一种特定的资料上,到底能够产生多少种OO和XX的排列组合(即dichotomies)呢?

越少的dichotomies ==> 越小的'VC维度'(有效的VC维度) ==> 更好的泛化(generalization)性能

演算法的VC维度

之前所说的VC维度都是指假设空间(即一堆hypotheses)的VC维度,这里给出演算法的VC维度概念。

演算法的VC维度和资料相关(data-dependent),比如上述的Aρ。

例如:

假设在2维平面上有一个单位圆,当数据从单位圆内取值时

  • 当ρ=0时,等价于PLA,因此dVC=3
  • 当ρ>√3/2时,并不能shatter任意的3个点,因此dVC<3 【因为任何3个点中总有两个点的距离小于√3,】

一般地,当数据点取值在一个半径为R的超球体内时,有:

Large-Margin Hyperplanes 的好处

Large-margin hyperplanes hyperplanes hyperplanes + 特征转换Φ
数量# 甚至更少 很少 很多
边界线 简单 简单 复杂
  • 数量#少比较好,因为可以控制dVC,优化泛化性能
  • 边界复杂比较好,可能会有更好的Ein

原来我们只能做好其中之一,但如果把large-margin和feature transform合起来考虑,就可能两者都做好。

即我们有了一种新的可能选择:非线性SVM

large-margin hyperplanes + numerous feature transform Φ
数量# 很少
边界线 复杂

Mind Map Summary


有关非线性SVM及更多机器学习算法相关的内容将在日后的几篇文章中分别给出,敬请关注!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容

  • 本文参考整理了Coursera上由NTU的林轩田讲授的《机器学习技法》课程的第三章的内容,主要介绍了Kernel ...
    sonack阅读 18,042评论 2 10
  • 注:题中所指的『机器学习』不包括『深度学习』。本篇文章以理论推导为主,不涉及代码实现。 前些日子定下了未来三年左右...
    我偏笑_NSNirvana阅读 39,936评论 12 145
  • 【概述】 SVM训练分类器的方法是寻找到超平面,使正负样本在超平面的两侧(分类正确性即“分得开”),且样本到超平面...
    sealaes阅读 11,046评论 0 7
  • 本文参考整理了Coursera上由NTU的林轩田讲授的《机器学习技法》课程的第四章的内容,主要介绍了Soft-Ma...
    sonack阅读 10,670评论 1 6
  • 快过年了,又是新的一年,又有人要说“新的一年,崭新的开始”这样的陈芝麻烂谷子的话了。于是,微博微信上大大小小地转发...
    Mel喵小萌阅读 637评论 1 1