机器学习笔记6: 支持向量机(上)

在接下来的两篇文章里,我们会着重介绍支持向量机(Support Vector Machine)算法,以下简称为SVM。SVM可以称得上是监督学习里最优秀的算法了,在诸如文本分类,图像识别,生物序列分析等领域有很多的应用。

本篇文章首先介绍间隔(margin)的概念,然后给出最优间隔分类器(optimal margin classifier)的定义,同时将该问题转化为一个凸优化(convex optimization)问题,随后补充介绍拉格朗日对偶性(Lagrange duality)的知识,并由此推导出最优间隔分类器的对偶问题。

符号表示

为了使SVM的描述更简单,我们需要对之前的符号表示做一些修改。对于一个二元线性分类器,特征向量是x,输出分类是y。之前y的取值是0和1,现在我们把取值修改为-1和1。之前假设函数h(x)是以θ作为参数,即:

现在我们使用w和b作为参数,即:

其中,如果z >= 0,那么g(z) = 1,否则g(z) = -1。用w和b表示可以显式地让我们把截距(intercept)b从其他参数中分离出来。对比两种h(x)的定义,b相当于原来的θ0,w相当于剩余的参数[θ1, θ2, ..., θn]T

注意,由于g(z)的定义变了,现在我们的分类器可以直接输出1或者-1,而不是像逻辑回归那样先求出y = 1的概率,再根据概率预测输出。

函数间隔和几何间隔

下图是一个线性分类器的图示,图中显示了训练集的两个分类数据(分别用圈和叉表示),以及一个决策边界(decision boundary)将两类数据分割开。图中的直线是wTx + b = 0,也被称为超平面(hyperplane)。

图中有三个点A、B和C,其中A离超平面最远,C离超平面最近,因而我们认为A比C有更大的可能性属于叉的分类。那么,我们应该确定这个超平面呢?从直觉上看,这个超平面应该使每个点离超平面的间隔都尽可能大。

为了确定这个超平面,我们需要正式给出间隔(margin)的定义。对于训练数据(x(i), y(i)),我们定义它与超平面(w, b)的函数间隔(functional margin)为:

如果y(i) = 1,那么wTx + b必须是正数,并且wTx + b越大,函数间隔越大;相反地,如果y(i) = -1,那么wTx + b必须是负数,并且wTx + b越小,函数间隔越大。因而函数间隔越大,分类预测的可信度越高。

有了单个训练数据的函数间隔的定义,我们可以定义整个训练数据集的函数间隔是所有训练数据的函数间隔的最小值,即:

函数间隔虽然可以表示分类预测的可信度,但它有一个缺点:如果我们成比例地增大w和b(比如把w和b替换成2w和2b),那么函数间隔的值也会成比例地增大,然而超平面本身并没有改变,因此这样是无意义的。直觉上看,我们需要对参数作一些约束,比如限制||w|| = 1,而这就引出了几何间隔(geometric margin)的定义。

几何间隔实际上就是数据点到超平面的垂直距离,比如上图中点A的几何间隔就是A到超平面的距离AB,根据平面几何的知识可以求出数据点(x(i), y(i))到超平面(w, b)的距离为:

上式就是几何间隔的定义。可以看到,如果||w|| = 1,那么几何间隔就等于函数间隔。

另外如果我们任意缩放w和b,那么几何间隔并不会随之改变。

同样地,整个训练数据集的几何间隔是所有训练数据的几何间隔的最小值,即:

一般地,函数间隔和几何间隔有如下关系:

最优间隔分类器的定义

上面我们讨论到,寻找最优超平面的条件应该使每个点离超平面的间隔都尽可能大,因而最优超平面也被称为最优间隔分类器(optimal margin classifier)。并且由于“任意缩放w和b,几何间隔并不会随之改变”,上述讨论中的间隔应该使用几何间隔,所以最优间隔分类器问题可以定义为:

这个优化问题解决起来比较棘手,因为目标函数是非凸函数,我们没有办法用现成的软件可以解决这个问题。再次考虑“任意缩放w和b,几何间隔并不会随之改变”这个结论,我们可以对该问题增加一个约束:函数间隔等于1,并且最大化1 / ||w||等价于最小化||w||2 ,那么问题被转化为:

这样我们就把原始问题转化成了一个凸优化问题,而这个问题可以用现成的二次规划(quadratic programming)软件来求解。

拉格朗日对偶性

这一部分我们介绍拉格朗日对偶性(Lagrange duality),其核心思想是通过拉格朗日对偶性可以将原始问题转化为对偶问题,而对偶问题通常比较容易求解。

考虑如下优化问题:

即最小化函数f(w),并且满足l个等式约束(equality constraint)条件hi(w) = 0。定义拉格朗日算子(Lagrangian):

即等于原始目标函数加上约束函数的线性组合,其中βi拉格朗日乘数(Lagrange multipliers)。分别求L关于w和β的偏导数即可求出原始问题的解:

上述的优化问题只包含等式约束,而更广义的优化问题还包含不等式约束(equality constraint)。下面我们定义这个广义优化问题,也称为原始优化问题(primal optimization problem):

即最小化函数f(w),并且满足l个等式约束条件hi(w) = 0和k个不等式约束条件gi(w) <= 0。定义广义拉格朗日算子(generalized Lagrangian):

其中αi和βi是拉格朗日乘数。定义:

下标p表示原始(primal)问题,可以证明:

因此当w满足原始约束条件时,原问题等价为:

为了后面表述方便,定义p*是原始问题的最优解:

我们再考虑另一个稍微不同的问题,定义:

下标D表示对偶(dual)问题,注意在原始问题中是关于参数α和β求最优解,而对偶问题是关于参数w求最优解。定义对偶优化问题(dual optimization problem):

和原始优化问题相比,对偶优化问题把max和min的顺序交换了一下。同样为了表述方便,定义d*是对偶问题的最优解:

原始问题与对偶问题的关系如下:

事实上一个函数的max min值总是小于等于它的min max值,这里我们不作证明。而在某些情况下,我们有:

这种情况下求解原始问题等价于求解对偶问题。下面我们不加证明地给出使得p* = d*成立的条件。

假设f和gi是凸函数,hi仿射(affine)函数(即存在ai和bi使得hi(w) = aiTw + bi),并且gi严格可执行的(strictly feasible)(即存在w使得对于所有gi(w)<0都成立)。在上述条件下,存在w*,α*,β*,其中w*是原始问题的解,α*,β*是对偶问题的解,并且满足:

此外,w*,α*,β*同时也满足如下条件:

这些条件被称为KKT条件(Karush-Kuhn-Tucker (KKT) conditions)。相反地,如果w*,α*,β*满足KKT条件,那么它们能成为原始问题和对偶问题的解。

KKT条件中等式(5)也被称为KKT对偶互补条件(KKT dual complementarity condition)。这个条件表明如果αi* > 0,那么gi(w*) = 0。

最优间隔分类器的推导

我们再次回到最优间隔分类器这个问题:

把约束条件写成如下形式:

这里我们只有一个不等式约束条件。根据KKT对偶互补条件,当αi > 0时,有gi(w*) = 0,即函数间隔等于1。考虑下图实例,其中实线表示这个训练集的最优间隔超平面。

训练集上拥有最小间隔的点也是最接近超平面的点,这样的点在上图虚线处总共有三个。因此这三个点对应的αi是非零的,而这三个点被称为该问题的支持向量(support vectors)。事实上,支持向量的数量在整个训练集的占比非常小。

接下来我们对原问题构造拉格朗日算子:

注意,由于我们只有一个约束条件,所以这里只有αi一个乘数。

接着我们开始求解对偶问题,通过求L关于w的偏导数,可得:

通过求L关于b的偏导数,可得:

将等式(9)代回到等式(8)中并利用等式(10)的结论,可以得到:

因此对偶问题可以表述为:

可以证明该优化问题是满足KKT条件的,所以求解对偶问题等价于求解原始问题。通过求解该最大化问题可以得到α*,然后将其代入等式(9)可得w*,最后再代入回原始问题可得到b*,即:

求解完模型各参数后,对于一个新特征x,我们需要计算wTx + b的值,如果值大于0,那么可以预测y = 1。根据等式(9)可得:

从上式可以看出,当αi确定后,我们只需要逐个计算x和每个训练集的内积(inner product)。另外当训练集的点是支持向量时才有αi不等于0,并且支持向量只占训练集很少一部分,所以式子里的大多数项都是0,我们只需要计算x和支持向量的内积就可以了。

通过将问题表示成特征向量的内积形式,其实是为了引出核函数的概念,这个概念可以启发我们在高维空间下更高效应用SVM的算法,而这是我们下一章的内容。

总结

  • 支持向量机(SVM)可以称得上是监督学习里最优秀的算法了,在诸如文本分类,图像识别,生物序列分析等领域有很多的应用
  • 间隔描述的是点到超平面的距离,寻找一个超平面使得每个点的间隔最大,这个问题被称为最优间隔分类器
  • 最优间隔分类器可以转化为凸优化问题,而这个问题可以用现成的二次规划软件来求解
  • 当满足一定条件下,原始问题和对偶问题是等价的,通过求解最优间隔分类器的对偶问题,我们可以推导出SVM最优化公式

参考资料

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

推荐阅读更多精彩内容

  • 【概述】 SVM训练分类器的方法是寻找到超平面,使正负样本在超平面的两侧(分类正确性即“分得开”),且样本到超平面...
    sealaes阅读 10,558评论 0 7
  • 参考Jerrylead和july-支持向量机通俗导论 一、由逻辑回归,引申出SVM(线性可分的SVM) 1.1 逻...
    小碧小琳阅读 1,383评论 0 2
  • 本章涉及到的知识点清单:1、决策面方程2、函数间隔和几何间隔3、不等式约束条件4、SVM最优化模型的数学描述(凸二...
    PrivateEye_zzy阅读 12,959评论 3 10
  • 在上一次的介绍中,我们稍微了解到了关于support vector machine 的一些入门知识。今天,我们将真...
    011b8ee4cba4阅读 761评论 1 1
  • 都说,父母是孩子的第一任老师。我从教多年,对这句话所蕴含的实际意义深有感触。为什么父母的言行对孩子如此重要?这其中...
    晓寒w阅读 359评论 0 2