SVM(一)

1.SVM是解决分类问题的经典算法

2.SVM核心三个关键词:间隔、对偶、核技巧

3.SVM一共三种情形:硬间隔分类器、软间隔分类器、核映射分类器

4.硬间隔分类器的目标是最大化边缘距离

5.目标最终可以转化为带线性不等式约束的二次凸优化问题,这个也称为原问题

6.最终利用强对偶与KKT条件来求解模型

7.非边缘点已经被正确分类(λ=0),对模型参数真正起作用的,只有边缘点

8.与决策平面保持边缘距离的两个超平面上所有的向量称为支持向量

9.通常取在支持向量的所有样本点均值作为参数b*的解

SVM,全称是Support Vector Machine,中文名支持向量机是解决二分类问题的一个经典算法。

总结来说,支持向量机核心的三个关键词:间隔、对偶、核技巧。该算法一共分三种情形:硬间隔支持向量机、软间隔支持向量机和核映射支持向量机,前两者对应线性可分模型、第三个对应线性不可分模型。

本文从最简单的情形开始介绍——硬间隔支持向量机(hard-margin SVM)

注:基础知识约束优化问题(SVM预备知识)

场景导入

给定一批训练样本,假设样本的n维特征向量为x,类别标签为y,取值为+1或者-1,分别代表正样本和负样本。

SVM(一)_第1张图片

我们希望能找到一个超平面,将正负样本分开,这样这个超平面就是我们要找的分类器。如图:

SVM(一)_第2张图片

可见,超平面l1可以把这正负类分开,显然这是我们要找的超平面,但是仔细想,我们可以找到无数个超平面,将正负样本分开,比如l2,l3

SVM(一)_第3张图片

那么,我们应该确定哪一个超平面L作为我们的分类器呢。这引出了最大间隔分类器。

最大间隔分类器

假设我们找到了超平面L:

使得正负样本分开,此时分类器模型为:

SVM(一)_第4张图片

由于类别标签取值1或者-1,所以可以改写成不等式约束:

我们希望该模型不仅在训练集上有很好的表现,也希望适用于测试集上,即确保模型泛化误差尽可能的低。为此,只要离该超平面最近的样本距离最大,那么它的泛化误差应该是当前训练数据所能保证的最低边界。为此,我们定义离超平面最近的样本点称为边缘点,边缘点到超平面的距离称为边缘距离,记为:

比如下图:

SVM(一)_第5张图片

6个样本点A~F,距离超平面的距离为a~f,假设点A离超平面最近,那么点A就是边缘点,离超平面的距离a称为边缘距离。假设点到超平面距离记为distance,那么边缘距离可用数学式表达:

目标是最大化这个边缘距离,加上前面说到的不等式约束,我们得到目标函数objective function

SVM(一)_第6张图片

线性可分SVM


我们化简上一节目标函数,为此,我们回忆一下高中学过的知识:点到平面的距离:

SVM(一)_第7张图片

把距离公式代入,并利用向量、几何的相关性质,有:

SVM(一)_第8张图片

最后我们把求解分类器模型转化为一个带m个不等式约束的优化问题:

SVM(一)_第9张图片

我们把这个带线性不等式约束的优化问题称为原问题,在凸优化问题一文里已经介绍过,线性不等式约束的可行域是凸集,目标函数是二元函数,显然是凸函数,由此可以知道原问题是一个二次凸优化问题

无约束原问题

原问题是带约束的,我们利用拉格朗日乘子法,把该问题变为无约束优化问题。首先,约束条件变形为:

构造广义拉格朗日函数

把带约束的原问题改为无约束的原问题

SVM(一)_第10张图片

这里比较费解,需要说明一下,我们可以从逻辑推导:

SVM(一)_第11张图片

这里可以把Δ看作关于参数w,b的函数,并且以0作为分割点,把Δ>0部分的参数w,b舍弃掉,只需要在小于0的部分寻找w,b参数即可。

最终,我们把带约束的原问题转化为无约束的原问题

SVM(一)_第12张图片

强对偶与KKT条件

直接求解无约束问题还是有点困难,我们要把它转化为强对偶对偶问题进行求解。SVM是满足强对偶关系的(因为是带线性约束的二次凸优化问题,所以满足强对偶

SVM(一)_第13张图片

最终我们把原题转化到对偶问题进行求解:

怎么求解上面优化问题的参数呢,这里用到强对偶问题的等价条件:KKT条件

KKT条件是:

SVM(一)_第14张图片

模型求解

我们先求解min部分,对参数b求偏导数并等于0,我们有:

SVM(一)_第15张图片

代入L中,化简:

接着对参数w求偏导并等于0:

把w代入L中,化简:

SVM(一)_第16张图片

于是我们把对偶问题转化只带λ参数的优化问题

SVM(一)_第17张图片

最终解得:

其中(xk,yk)是满足

最终我们得到分类决策函数:

支持向量

由KKT条件可知,对所有的样本x1,x2,...,xm都满足松弛互补条件

所以有:

SVM(一)_第18张图片

所以,对模型参数真正其作用的,只有边缘点,因为非边缘点已经被正确分类(λ=0),我们把与超平面保持边缘距离的两个超平面上所有的向量称为支持向量。

SVM(一)_第19张图片

参数b*,一般是取在支持向量的所有样本点的均值。

以上就是硬间隔分类器的建模与求解过程,但我们还有一个参数λ没有求解,要求解λ,需要用到SMO算法,这里我们暂且搁下。等介绍完软间隔分类器和核映射分类器再介绍

参考资料:

https://mp.weixin.qq.com/s/qVhRQr92gBkUjXGymkXGZw

你可能感兴趣的:(统计机器学习,支持向量机,机器学习,人工智能,svm,深度学习)