机器学习算法笔记之5:支持向量机SVM

一、概述

支持向量机(Support VectorMachine,SVM)的基本模型是定义在特征空间上间隔最大的线性分类器,它是一种二分类模型,当采用了适当的核技巧后,支持向量机可以用于非线性分类。

(1)线性可分支持向量机(硬间隔支持向量机):当训练数据线性可分时,通过硬间隔最大化,可以学得一个线性可分支持向量机。

(2)线性支持向量机(软间隔支持向量机):当训练数据近似线性可分时,通过软间隔最大化,学得一个线性支持向量机。

(3)非线性支持向量机:当训练数据不可分时,通过使用核技巧及软间隔最大化,可以学得一个非线性支持向量机。

在线性可分的情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例成为支持向量,支持向量是使约束条件等号成立的点。

从表面上看,我们优化的对象似乎是这个决策面的方向和位置。但实际上最优决策面的方向和位置完全取决于选择哪些样本作为支持向量。

机器学习算法笔记之5:支持向量机SVM_第1张图片

从图中可以看到,在间隔边界中间没有实例,形成了一个间隔带,分离超平面与它们平行且位于它们中央。间隔带的宽度称为间隔(margin),这依赖于分割超平面的法向量w(归一化形式下),等于 。在决定分割超平面时只有支持向量起作用。

1. KKT条件

对于不等式约束条件g(x)<=0的情况,如图所示,最优解所在的位置x*有两种可能,或者在边界曲线g(x)=0上或者在可行解区域内部满足不等式g(x)<0的地方。

第一种情况:最优解在边界上,就相当于约束条件就是g(x)=0。参考图下图,注意此时目标函数f(x)的最优解在可行解区域外面,所以函数f(x)在最优解x*附近的变化趋势是“在可行解区域内侧较大而在区域外侧较小”,与之对应的是函数g(x)在可行解区域内小于0,在区域外大于零,所以在最优解x*附近的变化趋势是内部较小而外部较大。这意味着目标函数f(x)的梯度方向与约束条件函数g(x)的梯度方向相反。因此根据公式 ,可以推断出参数λ>0。

机器学习算法笔记之5:支持向量机SVM_第2张图片

不等式约束条件下最优解位置分布的两种情况

第二种情况:如果在区域内,则相当于约束条件没有起作用,因此拉格朗日函数 中的参数λ=0。整合这两种情况,可以写出一个约束条件的统一表达。

其中第一个式子是约束条件本身。第二个式子是对拉格朗日乘子λ的描述。第三个式子是第一种情况和第二种情况的整合:在第一种情况里,λ>0,g(x)=0;在第二种情况下,λ=0,g(x)<0。所以无论哪一种情况都有λg(x)=0。上面公式就称为Karush-Kuhn-Tucker条件,简称KKT条件。

2. 合页损失函数

对于线性支持向量机原始最优化问题,等价于最优化问题

目标函数第一项是经验损失或经验风险, ,称为合页损失函数(hinge loss function),下标“+”表示 ,第二项是正则化项。

机器学习算法笔记之5:支持向量机SVM_第3张图片

图中虚线表示的是感知机的损失函数。

二、线性可分支持向量机学习算法

1. 线性可分支持向量机学习算法——最大间隔法

输入:线性可分训练数据集 ,其中, ,i=1,2,…,N;

输出:最大间隔分离超平面和分类决策函数。

(1)构造并求解约束最优化问题:

求得最优解 。这也是支持向量机的基本型。

(2)由此得到分离超平面

分类决策函数

2. 学习的对偶算法

为了求解上述线性可分支持向量机学习算法的最优化问题,将它作为原始最优化问题,应用拉格朗日对偶性,通过求解对偶问题(dual problem)得到原始问题(primal problem)的最优解,这就是线性可分支持向量机的对偶算法(dual algorithm)。

首先引入拉格朗日函数(Lagrangefunction),对原始问题中的每一个不等式约束引进拉格朗日乘子αi>=0,定义拉格朗日函数:

其中, 为拉格朗日乘子向量。

根据拉格朗日对偶性。原始问题的对偶问题是极大极小问题:

求解对偶问题就得到对偶最优化问题:

 αi>=0,i=1,2,…,N

求解上述最优化问题得到最优解

计算

将结果带入至分隔超平面方程和分类决策函数函数即可。

三、线性支持向量机与软间隔最大化

将线性可分支持向量机学习方法扩展到线性不可分问题,需要修改硬间隔最大化成为软间隔最大化。在假设训练数据集不可分的情况下,训练数据中有一些特异点(outlier),将这些特异点去除后,剩下的样本点组成的集合是线性可分的。线性不可分情况下,某些样本点不满足约束条件 ,为了解决这个问题,我们引入松弛变量,使函数间隔加上松弛变量大于等于1,对应的每个松弛变量增加一个代价。

得到软间隔最大化的线性不可分的线性支持向量机(线性支持向量机)的学习问题变为凸二次规划问题(原始问题):

求解得到分离超平面和分类决策函数的表达式。

四、非线性支持向量机与核函数

1. 非线性分类问题

对给定的训练数据集,如果能用一个超曲面将正负例正确分开,则称这个问题为非线性可分问题。

非线性问题往往不好求解,我们采取的方法是进行一个非线性变换,将非线性问题变换为线性问题,通过解变换后的线性问题的方法求解原来的非线性问题。

用线性分类方法求解非线性分类问题分为两步:(1)使用一个变换将原空间的数据映射到新空间;(2)在新空间里用线性分类学习方法从训练数据中学习分类模型。核技巧就属于这样的方法。

2. 核函数

核技巧的想法是,在学习与预测中只定义核函数,而不显式地定义映射函数。在线性支持向量机的对偶问题中,无论是目标函数还是决策函数都只涉及输入实例与实例之间的内积,故将内积表达式用核函数来代替,这就等价于经过映射函数将原来的输入空间变换到一个新的特征空间,在新的特征空间里学习线性支持向量机。当映射函数是非线性函数时,学习到的含有核函数的支持向量机是非线性分类模型。学习是隐式地在特征空间进行的,不需要显式地定义特征空间和映射函数,这样的技巧称为核技巧。在实际应用中,往往依赖领域知识直接选择核函数,核函数的选择的有效性需要通过实验验证。

你可能感兴趣的:(机器学习/深度学习,机器学习,svm,核函数,KKT条件)