2. 支持向量机(SVM)软间隔

1. 前言

在前一篇1. 支持向量机(SVM)原理中,我们对线性可分SVM的模型和损失函数优化做了总结。但是大家有没发现,之前的文章介绍的支持向量机会无法处理一些情况,比如在有0,1两类,在0类的中间出现了几个1类的异常点,这样的话要之前最原始的SVM绝对分离两个类基本是不可能的了。本文对支持向量机做一个推广,允许超平面能够错分一些点,来达到能分离异常点。

2. SVM异常点问题

有时候本来数据的确是可分的,也就是说可以用线性分类SVM的学习方法来求解,但是却因为混入了异常点,导致不能线性可分,比如下图,本来数据是可以按下面的实线来做超平面分离的,可以由于一个橙色和一个蓝色的异常点导致我们没法按照上一篇线性支持向量机中的方法来分类。

另外一种情况没有这么糟糕到不可分,但是会严重影响我们模型的泛化预测效果,比如下图,本来如果我们不考虑异常点,SVM的超平面应该是下图中的红色线所示,但是由于有一个蓝色的异常点,导致我们学习到的超平面是下图中的粗虚线所示,这样会严重影响我们的分类模型预测效果。

3. 线性分类SVM的软间隔最大化

前一篇的SVM由于是绝对分离类别,我们可以称之为硬间隔SVM。公式为

\[
min\;\; \frac{1}{2}||w||_2^2 \;\; s.t \;\; y_i(w^Tx_i + b) \geq 1 (i =1,2,...m)
\]
本文介绍的软间隔是:SVM对训练集里面的每个样本(xi,yi)引入了一个松弛变量\(\xi_i\geq0\),使函数间隔加上松弛变量大于等于1,也就是说条件变量改为如下:

\[
y_i(w\bullet x_i +b) \geq 1- \xi_i
\]
加入松弛变量\(\xi_i\)后,损失函数就需要改写为

\[
min\;\; \frac{1}{2}||w||_2^2 +C\sum\limits_{i=1}^{m}\xi_i
\]
\[
s.t. \;\; y_i(w^Tx_i + b) \geq 1 - \xi_i \;\;(i =1,2,...m)
\]
\[
\xi_i \geq 0 \;\;(i =1,2,...m)
\]
这里,\(C>0\)为惩罚参数,可以理解为我们一般回归和分类问题正则化时候的参数。\(C\)越大,对误分类的惩罚越大,\(C\)越小,对误分类的惩罚越小

也就是说,我们希望\(\frac{1}{2}||w||^2_2\)尽量小,误分类的点尽可能的少。\(C\)是协调两者关系的正则化惩罚系数。在实际应用中,需要调参来选择。

这个目标函数的优化和上一篇的线性可分SVM的优化方式类似,我们下面就来看看怎么对线性分类SVM的软间隔最大化来进行学习优化。

4. 拉格朗日对偶化

我们将软间隔最大化的约束问题用拉格朗日函数转化为无约束问题公司如下:

\[
L(w,b,\xi,\alpha,\mu) = \frac{1}{2}||w||_2^2 +C\sum\limits_{i=1}^{m}\xi_i - \sum\limits_{i=1}^{m}\alpha_i[y_i(w^Tx_i + b) - 1 + \xi_i] - \sum\limits_{i=1}^{m}\mu_i\xi_i
\]
我们现在要优化的目标函数是:

\[
\underbrace{min}_{w,b,\xi}\; \underbrace{max}_{\alpha_i \geq 0, \mu_i \geq 0,} L(w,b,\alpha, \xi,\mu)
\]
这个优化目标也满足KKT条件,也就是说,我们可以通过拉格朗日对偶将我们的优化问题转化为等价的对偶问题来求解如下:

\[
\underbrace{max}_{\alpha_i \geq 0, \mu_i \geq 0,} \; \underbrace{min}_{w,b,\xi}\; L(w,b,\alpha, \xi,\mu)
\]
最后求出的结果很干净,和之前的结果也非常像,如下:

\[
\underbrace{ max }_{\alpha} \sum\limits_{i=1}^{m}\alpha_i - \frac{1}{2}\sum\limits_{i=1,j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j
\]
\[
s.t. \; \sum\limits_{i=1}^{m}\alpha_iy_i = 0
\]
\[
0 \leq \alpha_i \leq C
\]

这就是软间隔最大化时的线性可分SVM的优化目标形式,和上一篇的硬间隔最大化的线性可分SVM相比,我们仅仅是多了一个约束条件\(0≤\alpha_i≤C\)。我们依然可以通过SMO算法来求上式极小化时对应的\(\alpha\)向量就可以求出\(w\)和\(b\)了。

5. Hinge损失函数

我们从另一个角度来解读软间隔的损失函数,表达式如下:

\[
\underbrace{ min}_{w, b}[1-y_i(w \bullet x + b)]_{+} + \lambda ||w||_2^2
\]

其中\(L(y(w \bullet x + b)) = [1-y_i(w \bullet x + b)]_{+}\)称为合页损失函数(hinge loss function),下标+表示为:

\[
[z]_{+}= \begin{cases} z & {z >0}\\ 0& {z\leq 0} \end{cases}
\]

也就是说,如果点被正确分类,且函数间隔大于1,损失是0,否则损失是\(1-y(w \bullet x + b)\),如下图中的绿线。我们在下图还可以看出其他各种模型损失和函数间隔的关系:对于0-1损失函数,如果正确分类,损失是0,误分类损失1, 如下图黑线,可见0-1损失函数是不可导的。对于感知机模型,感知机的损失函数是\([-y_i(w \bullet x + b)]_{+}\),这样当样本被正确分类时,损失是0,误分类时,损失是\(-y_i(w \bullet x + b)\),如下图紫线。对于逻辑回归之类和最大熵模型对应的对数损失,损失函数是\(log[1+exp(-y(w \bullet x + b))]\), 如下图红线所示。

6. 总结

线性可分SVM通过软间隔最大化,可以解决线性数据集带有异常点时的分类处理,但是现实生活中的确有很多数据不是线性可分的,这些线性不可分的数据也不是去掉异常点就能处理这么简单。那么SVM怎么能处理中这样的情况呢?我们在下一篇就来讨论线性不可分SVM和核函数的原理。

(欢迎转载,转载请注明出处。欢迎沟通交流: [email protected])

原文地址:https://www.cnblogs.com/huangyc/p/9938306.html

时间: 2024-10-30 22:35:38

2. 支持向量机(SVM)软间隔的相关文章

线性可分支持向量机与软间隔最大化--SVM

线性可分支持向量机与软间隔最大化--SVM 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 我们说可以通过间隔最大化或者等价的求出相应的凸二次规划问题得到的分离超平面 以及决策函数: 但是,上述的解决方法对于下面的数据却不是很友好, 例如,下图中黄色的点不满足间隔大于等于1的条件 这样的数据集不是线性可分的, 但是去除少量的异常点之后,剩下的点都是线性可分的, 因此, 我们称这样的数据集是近似线性可分的. 对

支持向量机原理(二) 线性支持向量机的软间隔最大化模型

? ? ? ? ? ?支持向量机原理(一) 线性支持向量机 支持向量机原理(二) 线性支持向量机的软间隔最大化模型 支持向量机原理(三)线性不可分支持向量机与核函数 支持向量机原理(四)SMO算法原理 支持向量机原理(五)线性支持回归 在支持向量机原理(一) 线性支持向量机中,我们对线性可分SVM的模型和损失函数优化做了总结.最后我们提到了有时候不能线性可分的原因是线性数据集里面多了少量的异常点,由于这些异常点导致了数据集不能线性可分,本篇就对线性支持向量机如何处理这些异常点的原理方法做一个总结

线性可分支持向量机与软间隔最大化

原文地址:https://www.cnblogs.com/HITSZ/p/8810461.html

支持向量机(SVM)的推导(线性SVM、软间隔SVM、Kernel Trick)

线性可分支持向量机 给定线性可分的训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习到的分离超平面为 \[w^{\ast }x+b^{\ast }=0\] 以及相应的决策函数 \[f\left( x\right) =sign\left(w^{\ast }x+b^{\ast } \right)\] 称为线性可分支持向量机 如上图所示,o和x分别代表正例和反例,此时的训练集是线性可分的,这时有许多直线能将两类数据正确划分,线性可分的SVM对应着能将两类数据正确划分且间隔最大的直线. 函数

支持向量机(SVM)(五)--软间隔

上一节讲线性SVM时,文末提到在线性可分的情况下,找到一个支持向量,可求得b 但是当出现下图实例时,无法找到一条线将实例分为两类,所谓线性不可分问题. 针对这种情况SVM提出了软间隔(soft margin),相对于硬间隔来说,简单将线性SVM看做硬间隔. 回顾硬间隔时优化目标: min $\frac{1}{2}\left \| w_{2} \right \|_{2}^{2}$ $s.t y_{i}(w\cdot x_{i}+b)≥1$ 在软间隔中,我们给每个样本点的函数距离减去了一个松弛变量(

【机器学习基础】软间隔支持向量机

引言 在上一小节中,我们介绍了核支持向量机.于是,不管是简单的问题还是复杂的问题,我们都可以做得到. 然而,像高斯核的方法太复杂了,可能造成过拟合的问题.导致过拟合的现象的原因有可能是你选择特征转换太强大了,导致无法用最大间隔的方法控制模型的复杂度,还有一个原因是,如果坚持将所有的数据都做到正确分类,这样有可能将噪声也考虑到模型的构建之中,这样就会将噪声拟合进你的结果中去了. 软间隔支持向量机 第一步:容忍错误的发生 这是硬间隔支持向量机(hard-margin SVM)的基本定义,其中要求所有

支持向量机SVM

SVM(Support Vector Machine)有监督的机器学习方法,可以做分类也可以做回归.有好几个模型,SVM基本,SVM对偶型,软间隔SVM,核方法,前两个有理论价值,后两个有实践价值.下图来自龙老师整理课件. 基本概念 线性SVM,线性可分的分类问题场景下的SVM.硬间隔. 线性不可分SVM,很难找到超平面进行分类场景下的SVM.软间隔. 非线性SVM,核函数(应用最广的一种技巧,核函数的选择十分重要). SVR(支持向量回归).可以做回归. SVC,用SVM进行分类. 一.硬间隔

支持向量机(SVM)

在机器学习领域,SVM是一个与学习算法关联的监督式学习模型,这些学习算法可以分析用来做分类和回归的数据.给定一个训练样本集,每个都被标记为两类中的一类,一个SVM训练算法构建一个模型,该模型能够将新的数据分到一个类中,使它成为一个非概率的二类线性分类器.一个SVM模型是样本点在空间的一种表示,(被映射)以至于在不同类别中的样本能够被一个最大的间隔分开.新的样本被映射到相同的空间中,被预测属于一个类别,基于样本点落在间隔的哪一边.除了线性分类的功能以外,SVM可以有效的表现出非线性分类的功能,通过

支持向量机(SVM)(五)-- SMO算法详解

一.我们先回顾下SVM问题. A.线性可分问题 1.SVM基本原理: SVM使用一种非线性映射,把原训练            数据映射到较高的维.在新的维上,搜索最佳分离超平面,两个类的数据总可以被超平面分开. 2.问题的提出: 3.如何选取最优的划分直线f(x)呢? 4.求解:凸二次规划 建立拉格朗日函数: 求偏导数: B.线性不可分问题 1.核函数 如下图:横轴上端点a和b之间红色部分里的所有点定为正类,两边的黑色部分里的点定为负类. 设: g(x)转化为f(y)=<a,y> g(x)=