原理就是这么简单 机器学习算法 - SVM中篇(算法解析))

Date: 02/21/2018

读完上篇文章,相信各位大家已经对SVM的数学理论基石有了一个完整的理解(如果还没理解SVM数学理论基础的可以参看上篇),那现在恭喜你,这篇文章所讲解的SVM的原理和实践你会觉得非常轻松。
话不多说,先用一个案例来介绍SVM到底是什么,以及它能解决什么问题。

案例

2018年维米天使正在选拔谁能登上维米的舞台!

图片发自简书App

这天来了很多出色的模特。
但是这次选拔的标准有两个颜值(满分10分)身高
有一天小明来代班当面试官,并决定哪些模特可以登上维米的舞台。
小明看到这么多的美丽的模特心想“这不是在鸡蛋里挑骨头吗”?
但是小明又不能让所有来应征的模特都登上舞台,那么小明该怎么办呢?

小明突然想到2017年同样举办过一场非常成功的维米天使,这时候他想通过17年天使的颜值,身高数据来评选18年的天使。
这真是个好主意,首先把17年天使的各个数据输入到计算机里来看一看,如下图:


model.PNG

图中有100个维米天使的数据对应着100个点,其中横轴为身高,纵轴为颜值。
蓝色的代表是去年登上舞台的选手,棕色的代表没有被选上的选手。

这时候可以想到的很好的办法是在图中画条线来区分两块数据。可以这么画:


2.PNG

还可以这么画:


3.PNG

可是图中红色的线和蓝色的线都能很好的分开这两批天使,那到底改用哪个呢?

如果可以画一条线能够把两边的数据尽可能的分开,那不就是说明这条线画的更好嘛。有可能如下图:

3.PNG

嗯哼!这条线小明感觉到很满意,一看就是维米资深面试官画的线,运用于2018年的维米选拔效果肯定不错。

在这个案例中,能用画线的方式来区分两批天使数据,称之为线性可分, 而这条线被称为超平面
而如何从众多可以区分两批模特的线中找到最中间或者最优的这条线的算法,被称为SVM算法
SVM 算法有如下两个重点:

判断数据是否线性可分
找到最优超平面

接下来,我们具体看看SVM到底用数学语言是怎么表述并解决的吧

SVM原理

刚才为了找那条最优的超平面,我们有个原则,就是能够把两边的数据尽可能的分开,用数学语言来定义的话就是让这条线离两边的数据的最小距离都尽可能的大

请看下面这张图:
灰色的是超平面,黑点和红点是一个正样本点和一个负样本点。


4.PNG

此图中点到超平面的距离是


5.png

(数学公式,直接使用就可以了,证明略)
但是公式这里有个绝对值,这让我们计算的时候总是不那么方便,如何去掉这个绝对值呢?
因为当分子部分没有绝对值的话,是有正负号的,当样本属于正样本(e.g. 黑点)那么:


6.PNG

反之(e.g.红点)


7.PNG

然而yi的取值为(正例+1,负例-1),所以yi与上式相乘总是一个大于等于0的数字,如下:


8.PNG

这个比较通用的距离公式被称为几何间隔(Geometric margin)

这样原问题就被转化为了找到 w,b 使得最小的几何间隔最大化 ,又因为最小的几何间隔和 1/ ||w|| 无关所以放到min的外面如下:


9.PNG

简化目标函数

这个目标函数还是有点复杂,因为式子中min的部分对于不同的超平面 xi,yi 都是不定的量,这会让我们的优化变得繁琐,所以我们要想办法进行简化。
在简化之前 我们先来看看这个式子:


10.PNG

这个式子所代表的含义被称为函数间隔(Function margin)
首先我们知道函数间隔永远都是大于0的,这其实就是一个约束。
而对同一个超平面,我们可以通过比例缩放w和b,函数间隔也会同比例变化。举个例子,对于一个成功划分正负实例的超平面(并非最优),如果该平面固定,但是通过缩放w和b, 可以让函数间隔取到任意大的值。对一个超平面,函数间隔与∥w∥的比值保持不变,也就是说几何间隔在同一个超平面下是固定的。而我们优化的目标是最大化几何间隔去找相应的超平面,所以我们可以缩放w,b使得距离最近的点的函数间隔为1(其他的点当然大于等于1),然后最小化∥w∥(与最大化1/||w||等价)达到最大化几何间隔的目的。

这样我们就清晰的看到其实SVM是一个有约束的优化问题,它的基本型为:


svm.PNG

有了基本型,我们可以利用上篇文章中的对偶方式进行求解,很多人之所以不理解SVM其实就是不理解这些数学概念

求解SVM

求解SVM自然利用对偶问题的知识

SVM对偶问题

  • 拉格朗日函数:


    11.PNG
  • 对偶问题


    12.PNG

令L(w,b,)对w,b的偏导等于0,可得:
其中* 代表最优解

13.PNG
14.PNG

代入原拉格朗日函数可得对偶问题为:


15.PNG

根据KKT条件可得:


16.PNG

所以带入w* 可得b*


18.PNG

现在我们就将整个SVM的求解过程解释清楚了。
但是为什么我们非要用对偶来解决原来的问题呢,因为在数学家的研究下已经研究出来了一种名叫SMO的算法可以非常高效率的解决这样的问题,可能在高维多数据的情况下也有着最佳的性能。有兴趣的小伙伴可以去查阅wiki 关于SMO算法的求解过程。

但是作为理解SVM的算法到这里就已经足够了。
接下来我会用SVM算法来实现一些数据线性可分的案例,以及处理线性不可分的案例和它的拓展理论。请看下篇文章。

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

推荐阅读更多精彩内容