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

本文来自之前在Udacity上自学机器学习的系列笔记。这是第10篇,介绍了监督学习中的支持向量机。

支持向量机
支持向量机是一种分类模型,它是在给定的有两个类别的数据集下,寻找一条分割线(称为“超平面”)将数据集正确地分成两类。

比如说下图中的两个类别数据,分别有三条分割线,将数据分隔开来。

image.png

你觉得哪一条直线是最佳分割线呢?这里我们得先定义怎么样才是“最佳”。为此,我们认为,一条最佳分割线除了正确分类数据外,还应该最大化这条分割线到两边最近的数据点所在的平行线的距离。我们把这段距离叫做“Margin”。除了分类正确,还在最大化“Margin”。

支持向量机的模型推导
下图有正样本和负样本两类数据点。我们希望找到中间那条黄色的分隔线,同时它与两类样本的最近邻点所在的平行线距离最大化。

image.png

如图所示,我们把这些点看成是二维坐标下的向量,那么两个向量的点积就是一个向量到另一个向量的投影长度。

假设\vec w是垂直于黄线的向量,我们要判断给定的任意一点\vec u是正还是负,我们可以根据这个条件来判断,即\vec w \centerdot \vec u \geq C,它表示什么意思呢?它的意思是,如果两者的点积大于等于某个值C,则判断为正;否则为负。向量的点积有实际的含义,它表示其中一个向量在另外一个向量的投影的长度。所以,大于C说明在分隔线之上,为正样本;小于C说明在分隔线之下,为负样本。

因此,决策规则表示为
\vec w \centerdot \vec u + b \geq 0, \quad y=1(b=-C)

假设\vec x是正样本,则\vec w \centerdot \vec x_+ + b \geq 1
假设\vec x是负样本,则\vec w \centerdot \vec x_- + b \leq -1

设定y_i=1,当\vec x为正样本时;否则y_i=-1

从而可以得到
y_i(\vec w \centerdot \vec x_i + b) \geq 1

决策规则变换为, 对于所有训练集i
y_i(\vec w \centerdot \vec x_i + b) -1 \geq 0

从而,上图中的“Margin”的宽度就等于
Margin = (\vec x_+ - \vec x_-) \centerdot \frac{\vec w}{\left \| \vec w \right \|}

问题就转换为求解max \frac{1}{\left \| \vec w \right \|}的问题,也是min \frac{1}{2} \left \| \vec w \right \|^2的问题。

综上,这是一个在约束条件下多元函数求极值的问题,可以使用拉格朗日乘数法来解决。
约束条件也就是上面提到的决策规则, 对于所有训练集i
y_i(\vec w \centerdot \vec x_i + b) -1 \geq 0

构造以下的函数
L=\frac{1}{2} \left \| \vec w \right \|^2 - \sum \alpha_i [y_i(\vec w \centerdot \vec x_i + b)-1]

其中,\alpha \geq 0,函数对\vec w求导,可得

\frac {\partial L}{\partial \vec w} = \vec w - \sum \alpha_i y_i x_i = 0

所以

\vec w = \sum \alpha_i y_i x_i

函数对b求导,可得

\frac {\partial L}{\partial b} = - \sum \alpha_i y_i = 0
所以
\sum \alpha_i y_i = 0

将上式中的\vec wb分别带回函数L和决策规则,经过推导可以得到
L=\sum \alpha_i - \frac {1}{2} \sum_i \sum_j \alpha_i \alpha_j y_i y_j \vec x_i \centerdot \vec x_j

如果\sum \alpha_i y_i \vec x_i \centerdot \vec u + b \geq 0,那么\vec u为正样本。

到了这一步后,我们已经得到L式,根据拉格朗日对偶性,接下来的问题就是求解max_\alpha L的问题(完整地,应该就是max_\alpha min_{\vec w, b} L(\vec w, b, \alpha)问题)。其中\sum \alpha_i y_i = 0是约束条件。该问题可以使用数值分析中的SMO(Sequential Minimal Optimization)算法进行求解。

在得到\alpha的值之后,就可以求解\vec wb了(求解b还需要再推导一番)。

解读
上面得出的L式,在实际运用时有个特点,就是大部分的\alpha是为0的。它是通过对整体样本判断后得出哪些\alpha为0,哪些不为0。这说明在决策时真正有影响力的数据点是靠近决策边界的点,而那些远离决策边界的点,影响不大。

L式中的\alpha_i \alpha_j告诉我们找出所有的点对,弄清楚哪些点是重要的,能够影响决策边界的定义的点对。然后y_i y_j则告诉我们,从这些点对的输出的角度出发,它们是如何彼此相关,以及考虑它们之间的相似程度。

另外,从L式可以看出,其结果只取决于x_i \centerdot x_j,所以对于不能使用一条直线直观地分隔开数据的情况,我们可以构造函数\phi(x^Ty)=\phi(x)^T\phi(y)来对数据进行转换,实现线性可分。我们称其为核函数,它表示了数据之间的一种相似性。核函数也是我们将域知识(Domain Knowledge)引入到SVM的机制。

常用的核函数有

K=(x^Ty+c)^p
K=e^{-(\frac {\left \| x - y \right \|^2}{2\sigma^2})}
K=tanh(\alpha x^Ty+\theta)

参考sklearn:
https://scikit-learn.org/stable/modules/svm.html#svm

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

推荐阅读更多精彩内容