机器学习算法-支持向量机SVM

1. 算法

1.1 从最简单的数学问题说起

要理解SVM算法,首先就要理解SVM解决的问题是什么,损失函数是如何推导来的,这是最关键最基础的部分,请看下面这张图。

我们以二维特征空间中的一个二分类问题为例来讲解。SVM就是希望寻找一个最优的决策边界,这个边界距离两个类别的最近的样本点最远。这里有两个重要概念这个最优决策边界就叫做超平面,而两个类别中距离这个决策边界最近的点就叫做支持向量。也就是说我们希望各类别的支持向量到超平面的距离最常,这就是SVM研究的基本问题,下面我们将这个问题转化成数学形式,并推导他的损失函数,这个推导过程需要的数学基础非常简单好理解。

超平面的描述方程:w^Tx+b=0

二维空间点(x,y)到直线Ax+By+C=0距离:\frac{\vert Ax+By+C \vert }{\sqrt{A^2+B^2 } }

扩展到n维空间点(x_{1}, x_{2}...x_{n})
 到直线w^Tx+b=0距离:\frac{\vert w^Tx+b \vert }{\vert \vert w \vert \vert } \vert \vert w \vert  \vert =\sqrt{w_{1}^2+w_{2}^2+...+w_{n}^2 }

根据支持向量的定义我们知道,支持向量到超平面的距离为 d,其他点到超平面的距离大于 d。于是我们写出这样一个公式:

稍作转化可以得到:

\vert \vert w \vert  \vert d 是正数,我们暂且令它为 1(之所以令它等于 1,是为了方便推导和优化,且这样做对目标函数的优化没有影响),故:

将两个方程合并,我们可以简写为:

这个方程的含义是:支持向量到超平面的距离等于 d,其他点到超平面的距离大于 d。y是每个点的类别标签,在超平面一侧的为1,超平面另一侧的为-1。

每个支持向量到超平面的距离可以写为:

由:

得到:

所以每个支持向量到超平面的距离可以化为:

支持向量的方程为y(w^Tx+b)=1(这个方程如果不理解请仔细再理解一下前面关于每个点到超平面的距离推导),所以上面那个方程又可以简化为:d=\frac{1}{\vert \vert w \vert \vert }

还记得我们最开始提到的SVM基本数学问题吗?我们需要将支持向量到超平面的距离最大化,因此我们求解的优化问题是:max\frac{1}{\vert \vert w \vert \vert }

为了求解的方便,我们需要对这个优化问题做一系列的简单转化,例如,分数求导不方便,因此我们可以将最大化\frac{1}{\vert \vert w \vert \vert } ,转化成最小化\vert \vert w \vert \vert \vert \vert w \vert \vert 有根号计算,因此转化成最小化\frac{1}{2} \vert \vert w \vert \vert ^2,由此就得到了我们最后的优化问题:

写成以下形式:

1.2 拉格朗日乘子与KKT条件

SVM优化是一个不等式约束条件下的优化问题,数学核心理论就是拉格朗日乘子和针对不等式优化的KKT条件,具体可以参考这两个链接:

https://www.zhihu.com/question/38586401 如何理解拉格朗日乘子法(讲的特别好)

https://www.zhihu.com/question/23311674 不等式优化中的KKT条件

我们得到以下这个式子:

1.3 繁琐的优化推导

这个优化问题的求解过程是非常繁琐的,感兴趣的可以自己推一推,主要是以下几个步骤:

以上就是线性可分情况下,二分类问题的SVM算法求解过程。需要注意的是,SVM的编程实现过程是SMO算法:首先验证KKT条件,然后固定迭代求解得到\lambda ,根据上文中的公式计算得到wb,最后根据分类决策函数判断类别。

2. 补充

2.1 软间隔

如下图所示,在实际分类中,二分类问题基本都不能找到一个完美的超平面,因为两个类别的交界处总是会存在错分的情况,因此我们引入软间隔的概念。

相比于硬间隔的苛刻条件,我们允许个别样本点出现在间隔带里面,比如:

在两条虚线内的向量都是支持向量,那么我们求解的优化问题就变成了了如下,具体的推导过程在此略去。

2.2 核函数

对于线性不可分的问题,我们使用核函数,将向量映射到高维空间,使其变得线性可分。

二维特征空间,线性不可分
映射到三维空间变得线性可分

2.3 多分类问题

以上我们已经解决了二分类问题中的所有情况,但针对多分类问题如何解决呢?

方式一:将训练样本集中的某一类当成一类,其他所有类当成一类,进行二分类。这种方式下,n个类别就需要建立n个分类器。

方式二:将训练样本集中的类别每两类都单独训练一个分类器。n个类别就需要建立C_{n}^2个分类器。

在预测的时候,所有分类器都跑一遍,得到的所有结果中,出现次数最多的标签就是该样本的类别。

通常情况下使用方式一解决多分类问题,因为尽管方式二更加精确,但耗费的时间也更多。时间与空间,速度与质量进行权衡。

3. 优缺点

3.1 优点

有严格的数学理论支持,可解释性强,不依靠统计方法,从而简化了通常的分类和回归问题

能找出对任务至关重要的关键样本(即:支持向量);

采用核技巧之后,可以处理非线性分类/回归任务;

最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”。

3.2 缺点

训练时间长。当采用 SMO 算法时,由于每次都需要挑选一对参数,因此时间复杂度为 O(n^2),其中 N 为训练样本的数量;

当采用核技巧时,如果需要存储核矩阵,则空间复杂度为 O(n^2)

模型预测时,预测时间与支持向量的个数成正比。当支持向量的数量较大时,预测计算复杂度较高。

因此支持向量机目前只适合小批量样本的任务,无法适应百万甚至上亿样本的任务。

4. 调参




5. 相关链接

【机器学习】支持向量机 SVM(非常详细)

https://zhuanlan.zhihu.com/p/77750026

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

推荐阅读更多精彩内容