通俗讲解支持向量机SVM(一)面试官:什么?线性模型你不会不清楚吧?

当你的才华还撑不起你的野心时,你应该静下心去学习 。

(这篇文章是从我的博客搬运来的,有兴趣的可以来阅读我的文章,欢迎交流指正。)

前言

我在写这篇博文之前,也查阅学习了很多文章,内容已经非常详细,足够精彩,比如JULY的这篇支持向量机通俗导论(理解SVM的三层境界)

当然,我这里也会介绍全部SVM相关内容,但重点对SVM的提出思路和我在读文章过程中遇见的难点问题分享一些我自己的理解,意在让一些跟着SVM算法一路推导过来但还是对于细节有诸多疑问的朋友有新的理解。

千里之行,积于跬步,我将会竭力道出所想,欢迎大家交流指正。

支持向量机全系列

三个重点“间隔(margin)” “对偶(duality)” “核技巧(kernel trick)”,暂时不了解没关系,会一一引出。

没有免费午餐定理

此部分对于想节省时间的朋友可以略过
大名鼎鼎的没有免费午餐定理(No Free Lunch Theorem)对于理解很多概率统计的概念和动机有着至关重要的意义,它说明了对于预测来说先验概率存在的事实。

举个栗子,我们习惯性地判断寒冬过后,万物复苏,春暖花开,我们之所以做出这样的判断是基于我们对以往关于季节更替的历史数据有了所谓的“先验概率”,我们正是基于此有了“冬天之后是春天”的判断,试问,如果我们没有这个先验假设,冬之后是夏、春、秋、冬的概率应当是均等的。至此,我们得出结论:
如果没有对特征空间有先验假设,则所有算法的平均表现应当是相同的

解释:特征空间即是指由春夏秋冬(可用1,2,3,4代替)组成的一维空间(也可更多维);
算法是指对未来下一个季度作出判断的算法。

线性SVM模型

基础知识

我们知道Support Vector Machine(SVM)算法是由Support Vector Classifier(SVC)发展而来,这两者实际是包含的关系,SVM将样本分类的问题提到了更高维上,为什么这样做呢?很简单,对于低维度线性不可分的样本在高维度上就可能线性可分(实际上,无限维的样本必然线性可分)。

下图是对于一个在二维特征空间内的样本(红点与蓝点)利用线性模型分类的示意图。


image

(source:https://www.researchgate.net/figure/Support-vector-machine-SVM-classifier_fig3_309361744

据此,我们有几点说明(注意:以下我用大写字母表示向量,小写字母表示常数):

  • 每一个训练样本点可以用其特征向量和标签组成的一个坐标(Xi,yi)表示, 特征向量的概念很重要,它是指一个样本点有几个特征组成,比如图中的某一点X1=[X11,X12]T表示,而它的标签说明该点属于蓝或红,分别用1和-1表示;
  • 那线性模型(红线)又是如何表示呢? 很简单, 我们用WTX + b = 0表示,这里的权重W和特征向量X的维度是相同的。以此来分类,这个线性模型在以为特征空间是一个点,二维空间是一条线,三维空间是一个面,那四维及以上呢?我们无法描述,于是引进了超平面(hyperplane)的概念.
  • 好,至此都很简单,接下来我们说一下线性模型的核心部分,即,如何定义一个训练集是线性可分的呢?我们是这样认为的,即,
    <kbd>存在(W,b),使得 任意i = 1~N, 有
    -- if yi=+1, WTXi + b >= 0
    -- else yi=-1, WTXi + b < 0</kbd>
    以上我们可以用一个式子简化,即,
    <kbd>存在(W,b),使得 任意i = 1~N, 有
    yi *(WTXi + b )>= 0</kbd>
    只要找到了这样一个(W,b),我们就认为样本线性可分。

凸优化问题及间隔之引出

至此,我们说明了几个概念,接下来我再说明以下如何引出了凸优化问题的,我之前看的时候对于直接抛出来的优化问题和约束还是有诸多不解的。这里原原本本道清缘由。
首先,我们需要明白几点线性几何中的很简单的概念:

  • WTXi + b = 0 和 aWTXi + ab = 0 是同一个(超)平面;
  • 二维点(x0,y0)到平面w1x + w2y + b = 0距离公式为
    d = |w1x0 + w2y0 + b| /(w12 + w22)1/2,
    由此可联想向量X0到超平面WTXi + b = 0的距离公式为 d = |WTX0 + b| / ||W||

OK, 以上弄清楚了,我们就可以尝试分类以上两种样本点了,我们的目的是找到这样一条线(线性模型),使得两边的点距离这条线越远越好,也就是使这条线尽量居中,在线两侧获得足够大的裕度(margin),由此,我们得出我们的第一个优化问题初级版:
<kbd>Maxmize margin(W,b)
subject to: For any i = 1~N, yi *(WTXi + b )>= 0
</kbd>

解释一下,何谓最大化margin呢?也就是最大化离这条线最近的那个样本点到线的距离(这句话很重要,理解),这里我们给出一个概念,顺便点题,与这条线两侧近端最先擦到的特征向量即为支持向量,所以我们可以说目标函数是最大化支持向量(X0,y0)到线的距离,所以 margin(W,b) = Min distance(W,b,xi) = Min |WTX0 + b| / ||W||
注意此处,我们可以用a缩放WTX0 + b,以期|WTX0 + b|=1。

上式可化为:
<kbd>Maxmize 1/||W||
subject to: For any i = 1~N, yi *(WTXi + b )>= 1
</kbd>

解释一下,为什么约束条件变成大于1了呢?因为我们利用缩放使得|WTX0 + b|=1,这也是两条“相擦”(原谅我找不到更合适的词了)的线分别为WTXi + b = +1 和 WTXi + b = -1.

至此,我们可以得到凸优化问题最终版:
<kbd>Minimize 1/2||W||2(或者1/2WTW)
subject to: For any i = 1~N, yi *(WTXi + b )>= 1
</kbd>
说明一下,这里目标函数改成这种形式主要考虑求导运算简便一点,同时注意这里有N个限制条件,我们的目的是找出合适的W和b解出这个优化问题。

解凸优化问题及对偶问题之引出

这个部分重点不在于公式的详细推导,而是整体思路和脉络的把握,知其所以然。

我们得到上述优化问题形式后,可以“凝视”以下,看看该如何解,以及可不可解的问题。一般来说,对于一个目标函数是二次项,且约束条件为一次项的二次规划问题来说,其解要么只有一个,要么无解(可联想平面),good news!

第一步很常规,我们利用拉格朗日乘子法将带约束的凸优化问题转化成为无约束的凸优化问题。构造拉格朗日函数:
L(\omega,b,\lambda) = \frac{1}{2}\omega^T\omega + \sum_{i=1}^{N}\lambda_i(1-y_i(\omega^TX_i + b)) ,\text {where} \lambda_i \geq 0 \tag 1
得到无约束的优化问题:
\min_{w,b} \max_{\lambda} L(\omega,b,\lambda)
\text{s.t.} \lambda_i \geq 0 \tag 2
此处稍微说明一下,其实很好理解,\exists \lambda, 使得L(\omega,b,\lambda)取得的最大值即为\frac{1}{2}\omega^T\omega,因为L(\omega,b,\lambda)后面那一项总是负的。

怎么解呢?这里我们引入对偶问题,通过对偶问题(dual problem)得到原问题(prime problem)的解,为什么这么做呢?因为更简便呀!

首先说一下什么是弱对偶关系。即:
\min_{w,b} \max_{\lambda} L(\omega,b,\lambda) \geq\max_{\lambda} \min_{w,b} L(\omega,b,\lambda) \tag 3 这个其实很好理解,“凤尾总是比鸡头强的”,严格证明也很简单,如下:
\min_{w,b} L(\omega,b,\lambda) \leq L(\omega,b,\lambda) \leq \max_{\lambda} L(\omega,b,\lambda) \tag 4
A(\omega,b) = \min_{w,b} L(\omega,b,\lambda), B(\lambda) = \max_{\lambda} L(\omega,b,\lambda), 同理可得:
\max A(\omega,b) \leq \min B(\lambda)即(3)得证。

要想等价用对偶问题求的话,我们还得使
\min_{w,b} \max_{\lambda} L(\omega,b,\lambda) = \max_{\lambda} \min_{w,b} L(\omega,b,\lambda)此即为强对偶关系。
(满足强对偶关系的充要条件是KKT条件,可以参考这篇知乎文章,这里我不想涉及太多的公式推导,否则将与文章本意相背,我们假设KKT条件已得,作为结论来用。同时,我在这篇文章里用几何方法比较简单直观的解释了对偶性,感兴趣的可以围观。)

可以先解出\min_{w,b}L(\omega,b,\lambda), 分别对b和\omega求偏导,这里计算比较繁琐,但是不难,通过代入可以求得\min_{w,b}L(\omega,b,\lambda) = -\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda_i\lambda_j y_i y_j X_i^TX_j + \sum_{i=1}^{N}\lambda_i \tag 5

image

(source:https://zhuanlan.zhihu.com/p/26514613

因此,优化问题又可等价为: \max_{\lambda} \min_{w,b} L(\omega,b,\lambda) = \max_{\lambda} -\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda_i\lambda_j y_i y_j X_i^TX_j + \sum_{i=1}^{N}\lambda_i
\text{s.t.} \lambda_i \geq 0 ,\sum_{i=1}^{N} \lambda_i y_i = 0 \tag 6
通过KKT条件,得到最优解\omega^* = \sum_{i=1}^{N}\lambda_i y_i X_ib^*= y_k - \sum_{i=1}^{N}\lambda_i y_i X_i^T X_k, 注意这里的(Xk,yk)是一个支持向量(这里可以当作二维平面上等价思考理解)。
得到了\omega^* \text{和}b^*,就找到了这个线性模型!即,
f(x) = sign(\omega^*X + b^*)
解释一下,由KKT条件,只有1-y_i(\omega^TX_i + b)=0时,\lambda_i才有值,所以由\omega^* = \sum_{i=1}^{N}\lambda_i y_i X_i可得,\omega^*只是支持向量数据的线性叠加。关于以上还有不清楚的地方可以查看我推荐的文章,公式推导很清楚,但更重要的是理解和算法内核的把握。

你的鼓励是我创作的动力,如果你有收获,点个赞吧👍


我接下来还会陆续更新机器学习相关的学习笔记,补充这个系列。如果看到这里的话,说明你有认真看这篇文章,希望你能有所收获!最后,欢迎交流指正!

还有不明白的欢迎阅读其他文章:
通俗讲解支持向量机SVM(一)面试官:什么?线性模型你不会不清楚吧?
通俗讲解支持向量机SVM(二)另辟蹊径!对偶性的几何解释
通俗讲解支持向量机SVM(三)SVM处理非线性问题及软间隔之引出
通俗讲解支持向量机SVM(四)用尽洪荒之力把核函数与核技巧讲得明明白白(精华篇)

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

推荐阅读更多精彩内容