首页 > 其他 > 详细

(转)支持向量机(SVM)——原理篇

时间:2020-05-18 17:21:46      阅读:76      评论:0      收藏:0      [点我收藏+]

(转)支持向量机(SVM)——原理篇

原文链接如下:

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

原文作者:野风

 

 

 

目录

SVM简介
线性SVM算法原理
非线性SVM算法原理

 

SVM简介

支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;SVM还包括核技巧,这使它成为实质上的非线性分类器。SVM的的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的的学习算法就是求解凸二次规划的最优化算法。

 

SVM算法原理

SVM学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。如下图所示, 技术分享图片 即为分离超平面,对于线性可分的数据集来说,这样的超平面有无穷多个(即感知机),但是几何间隔最大的分离超平面却是唯一的。

技术分享图片

在推导之前,先给出一些定义。假设给定一个特征空间上的训练数据集

技术分享图片

其中, 技术分享图片 , 技术分享图片 , 技术分享图片 为第 技术分享图片 个特征向量, 技术分享图片 为类标记,当它等于+1时为正例;为-1时为负例。再假设训练数据集是线性可分的。

几何间隔:对于给定的数据集 技术分享图片 和超平面 技术分享图片 ,定义超平面关于样本点 技术分享图片 的几何间隔为

技术分享图片

超平面关于所有样本点的几何间隔的最小值为

技术分享图片

实际上这个距离就是我们所谓的支持向量到超平面的距离。

根据以上定义,SVM模型的求解最大分割超平面问题可以表示为以下约束最优化问题

技术分享图片

技术分享图片

将约束条件两边同时除以 技术分享图片 ,得到

技术分享图片

因为 技术分享图片 都是标量,所以为了表达式简洁起见,令

技术分享图片

技术分享图片

得到

技术分享图片

又因为最大化 技术分享图片 ,等价于最大化 技术分享图片 ,也就等价于最小化 技术分享图片 ( 技术分享图片 是为了后面求导以后形式简洁,不影响结果),因此SVM模型的求解最大分割超平面问题又可以表示为以下约束最优化问题

技术分享图片

技术分享图片

这是一个含有不等式约束的凸二次规划问题,可以对其使用拉格朗日乘子法得到其对偶问题(dual problem)。

首先,我们将有约束的原始目标函数转换为无约束的新构造的拉格朗日目标函数

技术分享图片

其中 技术分享图片 为拉格朗日乘子,且 技术分享图片 。现在我们令

技术分享图片

当样本点不满足约束条件时,即在可行解区域外:

技术分享图片

此时,将 技术分享图片 设置为无穷大,则 技术分享图片 也为无穷大。

当满本点满足约束条件时,即在可行解区域内:

技术分享图片

此时, 技术分享图片 为原函数本身。于是,将两种情况合并起来就可以得到我们新的目标函数

技术分享图片

于是原约束问题就等价于

技术分享图片

看一下我们的新目标函数,先求最大值,再求最小值。这样的话,我们首先就要面对带有需要求解的参数 技术分享图片 和 技术分享图片 的方程,而 技术分享图片 又是不等式约束,这个求解过程不好做。所以,我们需要使用拉格朗日函数对偶性,将最小和最大的位置交换一下,这样就变成了:

技术分享图片

要有 技术分享图片 ,需要满足两个条件:

① 优化问题是凸优化问题

② 满足KKT条件

首先,本优化问题显然是一个凸优化问题,所以条件一满足,而要满足条件二,即要求

技术分享图片

为了得到求解对偶问题的具体形式,令 技术分享图片 对 技术分享图片 和 技术分享图片 的偏导为0,可得

技术分享图片

技术分享图片

将以上两个等式带入拉格朗日目标函数,消去 技术分享图片 和 技术分享图片 , 得

技术分享图片

技术分享图片


技术分享图片

求 技术分享图片 对 技术分享图片 的极大,即是对偶问题

技术分享图片

技术分享图片

技术分享图片

把目标式子加一个负号,将求解极大转换为求解极小

技术分享图片

技术分享图片

技术分享图片

现在我们的优化问题变成了如上的形式。对于这个问题,我们有更高效的优化算法,即序列最小优化(SMO)算法。这里暂时不展开关于使用SMO算法求解以上优化问题的细节,下一篇文章再加以详细推导。

我们通过这个优化算法能得到 技术分享图片 ,再根据 技术分享图片 ,我们就可以求解出 技术分享图片 和 技术分享图片 ,进而求得我们最初的目的:找到超平面,即”决策平面”。

前面的推导都是假设满足KKT条件下成立的,KKT条件如下

技术分享图片

另外,根据前面的推导,还有下面两个式子成立

技术分享图片

技术分享图片

由此可知在 技术分享图片 中,至少存在一个 技术分享图片 (反证法可以证明,若全为0,则 技术分享图片 ,矛盾),对此 技术分享图片 有

技术分享图片

因此可以得到

技术分享图片

技术分享图片

对于任意训练样本 技术分享图片 ,总有 技术分享图片 或者 技术分享图片 。若 技术分享图片 ,则该样本不会在最后求解模型参数的式子中出现。若 技术分享图片 ,则必有 技术分享图片 ,所对应的样本点位于最大间隔边界上,是一个支持向量。这显示出支持向量机的一个重要性质:训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关。

到这里都是基于训练集数据线性可分的假设下进行的,但是实际情况下几乎不存在完全线性可分的数据,为了解决这个问题,引入了“软间隔”的概念,即允许某些点不满足约束

技术分享图片

采用hinge损失,将原优化问题改写为

技术分享图片

技术分享图片

技术分享图片

其中 技术分享图片 为“松弛变量”, 技术分享图片 ,即一个hinge损失函数。每一个样本都有一个对应的松弛变量,表征该样本不满足约束的程度。 技术分享图片 称为惩罚参数, 技术分享图片 值越大,对分类的惩罚越大。跟线性可分求解的思路一致,同样这里先用拉格朗日乘子法得到拉格朗日函数,再求其对偶问题。

综合以上讨论,我们可以得到线性支持向量机学习算法如下:

输入:训练数据集 技术分享图片 其中,技术分享图片, 技术分享图片 ;

输出:分离超平面和分类决策函数

(1)选择惩罚参数 技术分享图片 ,构造并求解凸二次规划问题

技术分享图片

技术分享图片

技术分享图片

得到最优解 技术分享图片

(2)计算

技术分享图片

选择 技术分享图片 的一个分量 技术分享图片 满足条件 技术分享图片 ,计算

技术分享图片

(3)求分离超平面

技术分享图片

分类决策函数:

技术分享图片

 

非线性SVM算法原理

对于输入空间中的非线性分类问题,可以通过非线性变换将它转化为某个维特征空间中的线性分类问题,在高维特征空间中学习线性支持向量机。由于在线性支持向量机学习的对偶问题里,目标函数和分类决策函数都只涉及实例和实例之间的内积,所以不需要显式地指定非线性变换,而是用核函数替换当中的内积。核函数表示,通过一个非线性转换后的两个实例间的内积。具体地, 技术分享图片 是一个函数,或正定核,意味着存在一个从输入空间到特征空间的映射 技术分享图片 ,对任意输入空间中的 技术分享图片 ,有

技术分享图片

在线性支持向量机学习的对偶问题中,用核函数 技术分享图片 替代内积,求解得到的就是非线性支持向量机

技术分享图片

综合以上讨论,我们可以得到非线性支持向量机学习算法如下:

输入:训练数据集 技术分享图片 其中,技术分享图片, 技术分享图片 ;

输出:分离超平面和分类决策函数

(1)选取适当的核函数 技术分享图片 和惩罚参数 技术分享图片 ,构造并求解凸二次规划问题

技术分享图片

技术分享图片

技术分享图片

得到最优解 技术分享图片

(2)计算

选择 技术分享图片 的一个分量 技术分享图片 满足条件 技术分享图片 ,计算

技术分享图片

(3)分类决策函数:

技术分享图片

 

介绍一个常用的核函数——高斯核函数

技术分享图片

对应的SVM是高斯径向基函数分类器,在此情况下,分类决策函数为

技术分享图片

 

参考

[1]《统计学习方法》 李航

[2]《机器学习》周志华

[3]Python3《机器学习实战》学习笔记(八):支持向量机原理篇之手撕线性SVM Jack-Cui

[4]深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

[5]支持向量机通俗导论(理解SVM的三层境界)

[6]Support Vector Machines for Classification

(转)支持向量机(SVM)——原理篇

原文:https://www.cnblogs.com/yunshangkanjing/p/12911757.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!