机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程

1 前序

第一次遇到SVM,是在写爬虫作验证码的识别。做完预处理将数字弄成特征向量后,发现SVM能将其正确分类,从此对ML感兴趣。我第一步就想自己将sklearn实现的东西自己去写一遍,体会其中的精妙。结果过了一年半,即将步入本三,才敢说自己对机器学习,支持向量机有了浅显的认知。

机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程
基于SVM的验证码识别

当时在翻阅网上SVM的教程,发现到处充满了优化的痕迹:KKT, Slater强对偶条件,等等。现在认为混杂了太多优化和数学知识,门槛较高,会强迫读者去接受一些无法证明的结论。其中最有趣的,就是看各个教程各显神通从几何角度解释KKT条件了。然而,从建模角度看SVM,而非触及数值优化的部分,可以让读者清晰的知道SVM在做些什么。

2 介绍

本教程基于Learning from data一书第8章(电子版)整理所得。看懂教程需要:

  1. 基本的解析几何知识(例如知道三维空间平面可以表示为机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程等)
  2. 线性代数简单的运算操作(向量内积,矩阵乘法等)
  3. 证明中逻辑学的基本符号(因为所以等):机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程

 在本节教程你会学/不会学到:

  1. SVM的数学建模与推理√
  2. QP问题的数值求解方法×
  3. KKT条件Slater强对偶情形×
  4. 使用python与cvxopt库的QP-solver去实现简单的SVM分类器√
  5. 步步推导,步步为营√

 由于QP问题的数值解法(如内点法)学习门槛过高,也非我们主要关注对象。我引用布鲁斯·布坎南(Bruce G.Buchanan)对于计算机科学领域的分类方式,来说服你们:先别碰这些了。真要学,也不应该从SVM切入。

机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程
计算机科学的划分

由于教程事先用letax格式书写,有些不方便迁移的部分用图片表示,敬请谅解。

机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程
思维导图

3 SVM问题引入

3.1 SVM针对什么问题?

 3.2数学记号

4 SVM问题建模 

4.1可行超平面

4.2 支持向量(support vector)和分类间隔(margin)

4.3 SVM优化目标

算法总结Summury

3 SVM问题引入

3.1 SVM针对什么问题?

若读者学过PLA(perceptron learning algorithm),那么说明你能写一个可行的二元分类器了。若你没学过,问题不大。他们只比你们能多完成一件事:有一堆线性可分的数据,他们能寻找到一个超平面将数据分开。特别地,在二维情况下,超平面就是一根直线。让我们观察以下数据:

机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程
“舞动”的数据点

你发现什么?尽管都是行得通的分类器,然而他们给数据点舞动的空间不同。直觉上,若分类器能接受更大半径的噪音而不出错,那个分类就更鲁棒(robust),我们更喜欢。这里我们给出分类间隔直觉的上的定义:

Definition3.1.1 分类间隔(margin)直觉形式定义:给定有球形噪音的正负线性可分(linear sperable)样本,分类间隔为目标分类器所能接受的最大噪音半径。


基于直觉,给出最优分类器的两个基本假设:

  1. 能分类不出错(本博客介绍的Hard-Margin SVM只能分类线性可分的数据)
  2. 分类间隔最大

 3.2数学记号

对于二元分类的问题,我们定义:

  1. 超平面对应的参数和偏置机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程
  2. 第n个数据点/训练样本(data point, sample):机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程(维度为d),机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程
  3. 线性分类器对应超平面为机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程
  4. 分类器输出:机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程,sign(x)为符号函数。特别地,为避免混淆,定义sign(0)=-1。h(x)=+1我们认为分类器视x为正样本,h(x)=-1我们认为分类器视x为负样本。当机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程,我们就说分类器对于该样本分类正确。

4 SVM问题建模 

4.1可行超平面

通过简单分类讨论,我们能得到:

Definition 4.1.1 可行超平面(separating hyperplane)全称量词定义形式:机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程表示的超平面为可行超平面,当且仅当机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程

机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程 ...(1)

由于这一定义方式用到了任意机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程符号。在逻辑学中是全称量词,为了方便记忆,称这种定义法为全称量词定义形式。这一定义基于的事实是:机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程同号时,分类视为正确

机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程

根据命题4.1.3,我们给出可行超平面存在量词定义形式:

机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程

机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程

结合这一结论,可以通过分类讨论得到:

Proposition4.1.6:对于任一可行超平面h和数据机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程

机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程

4.2 支持向量(support vector)和分类间隔(margin)

机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程

4.3 SVM优化目标

机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程

现在问题是,我们该如何将问题求解。在这里,我们希冀将问题转换为特定的标准QP问题。这样,我们实际coding时可以借助cvxopt框架求解。首先,我们介绍下有线性约束的QP优化问题:

机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程

若定义:机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程,上述约束条件通过广义不等号等价于:机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程。往后的教程,我们定义一个Magic Box: 机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程, 视作我们计算出了该问题。

Proposition 4.3.3将(4.3.2)化成QP标准型:

机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程

至此,我们完成了最简单的hard-margin SVM算法的建模过程,并用QP问题能够解决。

5 算法总结Summury

以下截图摘自LFD(Learning from data):

机器学习推导合集02-SVM简明入门1-硬边界SVM的建模过程
总结

配合的教程:cvxopt实现本篇文章介绍的Hard-Margin SVM的案例学习

Acknowledgement

1. Learning from data: Yaser S. Abu-Mostafa, Malik Magdon-Ismail, and Hsuan-Tien Lin

2. 《人工智能简史》尼克