1、首先由SVM问题(最大间隔超平面模型):所有样本都可以正确分类的最优化问题,引入软间隔SVM(允许分类错误)的最优化问题,即需要添加损失函数(样本不满足约束的程度,或者说分类错误的程度),然后最优化。

  • 这里强调一下:超平面这个回归模型如何实现分类功能:套上sign函数。
  • 损失函数要找性质好的,即凸函数,连续
  • 损失函数不要单纯只反映分类正确和错误(0/1损失函数)。而是分类正确时,损失记为0,分类错误时体现损失的程度1-z。则hinge损失函数可以实现。
  • 然后用松弛变量表示损失函数的取值
  • 求解拉格朗日对偶问题

2、再引入SVR,针对回归问题如何求一个间隔带回归模型,使得预测值f和真实标记y差距(即损失)最小化。

  • 间隔带内允许 ϵ \epsilon ϵ的误差,都算作没有损失,即最小化的是|f-y| - ϵ \epsilon ϵ,则引入不敏感损失函数
    SVR这个回归问题的最优化问题,形式要往软间隔SVM形式靠拢,就可以用其求解方法,比如转化为对偶问题。

一、软间隔soft margin


引入软间隔的概念,把SVM硬间隔问题转化为软间隔问题求解,则能够在非线性可分数据集上(即允许有样本分类错误),解出损失(样本不满足约束程度)最小的SVM超平面模型。


1.1 为何引入软间隔


在现实任务中,线性不可分的情形才是最常见的,退一步说,即使恰好找到了某个核函数使得训练集在特征空间中线性可分,特很难断定这个貌似线性可分的结果是否是过拟合造成的。因此需要允许支持向量机犯错,引入软间隔


1.2 软间隔


数学角度,软间隔就是允许部分样本(尽可能少)不满足如下的约束条件:

不满足6.28约束的几何意义:样本 x ⃗ i \vec{x}_i x i​被分类错误,到超平面的集合距离负数,也就是6.28的左边是负数,自然肯定不会>=我们规定的正确分类的正数间隔。


1.3 损失函数 ℓ \ell ℓ需要满足的3个特点


把是否满足约束条件的问题转化为损失:

1、满足约束条件的样本:损失为0
2、不满足约束条件的样本:损失不为0

  • 0/1损失函数满足1,2

3、(可选)损失和违反约束条件的程度成正比

  • 替代损失函数,例如hinge都满足。
  • SVR用的不敏感损失函数也满足这3条

满足以上要求,我们最小化损失,就相当于最小化不满足约束条件的 样本个数


1.4 损失函数是 ℓ 0 / 1 \ell_{0/1} ℓ0/1​的软间隔SVM最优化问题


原问题为:


ℓ 0 / 1 \ell_{0/1} ℓ0/1​损失函数:满足1,2特点


只能判断样本是否满足约束

  1. 满足约束条件的样本:损失为0
  2. 不满足约束条件的样本:损失不为0
  • z = y i ( w ⃗ T x ⃗ + b ) − 1 z = y_i(\vec{w}^T\vec{x}+b)-1 z=yi​(w Tx +b)−1
  • 满足约束条件的样本: z ≥ 0 z \ge 0 z≥0,则损失=0
  • 不满足约束条件的样本: z < 0 z < 0 z<0,则损失=1

软间隔SVM最优化问题变为

  • C是>0的常数,用于调节损失函数的权重。
  • 当我们允许较多样本不满足约束条件时,可以让C小一点,即损失的权重小一点。
  • 反之允许较少样本不满足约束条件,就让C大一点。
  • 特殊的:即硬间隔的情况,我们不允许任何样本不满足约束条件,则让 C → + ∞ C \to +\infin C→+∞,让损失函数权重无穷大,你必须让所有样本的损失 = 0
  • 因此该式子可以看成 SVM的一般形式

1.4 替代损失(surrogate loss)函数: ℓ h i n g e = max ⁡ { 0 , 1 − z } \ell_{hinge}=\max\{0,1-z\} ℓhinge​=max{0,1−z}合页损失:满足特点3


ℓ 0 / 1 \ell_{0/1} ℓ0/1​损失函数:非凸,非连续,数学性质不好

替代损失函数 一般有较好的数学性质:

  • 通常是凸的连续函数
  • 可以表示不满足约束的程度

常见替代损失函数图像



软间隔SVM常用hinge(合页)损失

  • ℓ h i n g e ≥ 0 \ell_{hinge} \ge 0 ℓhinge​≥0
  • 满足特点3:损失和违反约束条件的程度成正比

则软间隔SVM最优化问题变为:


1.5 引入松弛变量(slack variables) ξ i \xi_i ξi​:样本不满足约束的程度


对松弛变量的2个约束



令 ξ i = ℓ h i n g e ( z ) = m a x ( 0 , 1 − y i ( w ⃗ T x ⃗ i ) + b ) \xi_i = \ell_{hinge}(z) = max(0,1-y_i(\vec{w}^T\vec{x}_i)+b) ξi​=ℓhinge​(z)=max(0,1−yi​(w Tx i​)+b)

约束1: ξ i ≥ 0 \xi_i\ge 0 ξi​≥0

束2: y i ( w ⃗ T x ⃗ i ) + b ≥ 1 − ξ i y_i(\vec{w}^T\vec{x}_i)+b \ge 1-\xi_i yi​(w Tx i​)+b≥1−ξi​

  • 1 − y i ( w ⃗ T x ⃗ i ) + b ) ≥ 0 1-y_i(\vec{w}^T\vec{x}_i)+b) \ge 0 1−yi​(w Tx i​)+b)≥0时, ξ i = 1 − y i ( w ⃗ T x ⃗ i ) + b \xi_i = 1-y_i(\vec{w}^T\vec{x}_i)+b ξi​=1−yi​(w Tx i​)+b
  • 1 − y i ( w ⃗ T x ⃗ i ) + b ) < 0 1-y_i(\vec{w}^T\vec{x}_i)+b) < 0 1−yi​(w Tx i​)+b)<0时, ξ i = 0 > 1 − y i ( w ⃗ T x ⃗ i ) + b \xi_i = 0 >1-y_i(\vec{w}^T\vec{x}_i)+b ξi​=0>1−yi​(w Tx i​)+b
  • 因此 ξ i ≥ 1 − y i ( w ⃗ T x ⃗ i ) + b \xi_i \ge 1-y_i(\vec{w}^T\vec{x}_i)+b ξi​≥1−yi​(w Tx i​)+b,即 y i ( w ⃗ T x ⃗ i ) + b ≥ 1 − ξ i y_i(\vec{w}^T\vec{x}_i)+b \ge 1-\xi_i yi​(w Tx i​)+b≥1−ξi​

软间隔SVM最优化问题变为

  • m个样本各对应一个松弛变量,表示样本不满足原问题约束 y i ( w ⃗ T x ⃗ + b ) ≥ 1 y_i(\vec{w}^T\vec{x}+b) \ge 1 yi​(w Tx +b)≥1的程度
  • 与原问题6.6一样,仍然是二次规划问题

1.6 软间隔SVM问题 转化为对偶问题

具体如何转化为对偶问题求最优解详情见SVM笔记



1、写出拉格朗日函数:


2、求对偶函数 inf ⁡ L \inf L infL,即求L的最小值,L是凸优化问题,求偏导=0


带入6.37~6.39得对偶函数:


3、得到软间隔下SVM问题的对偶问题:

  • 两个拉格朗日乘子都>=0构成约束: 0 ≤ α i ≤ C 0 \leq \alpha_i \leq C 0≤αi​≤C
  • 硬间隔SVM问题的不等式约束只有1个,没有对松弛变量 ξ i \xi_i ξi​的约束,则其拉格朗日问题自然少参数,约束只有 α i ≥ 0 \alpha_i \ge 0 αi​≥0

KKT条件


依然参见SVM笔记

规则是:


1.7 求解对偶问题6.40(暂时不讲)


和硬间隔中求解方法一样,暂时不讲。


二、支持向量回归SVR(support vector regression)


2.1 背景


这里的总结个人感觉比SVM部分清晰点了。

SVM讨论的是分类问题,希望学得一个能实现分类的,最大间隔的超平面模型 f ( x ⃗ ) = w ⃗ T x ⃗ + b f(\vec{x}) = \vec{w}^T\vec{x}+b f(x )=w Tx +b:

  • 实现分类:回归模型 w ⃗ T x ⃗ + b \vec{w}^T\vec{x}+b w Tx +b套上sign函数实现分类。
  • 如果是软间隔SVM问题,数据集线性不可分,则最优化问题:既要最大间隔,也要样本不满足约束条件的程度(hinge损失函数)最小化。
  • 如果是硬间隔SVM问题,代表数据集线性可分,不存在不满足约束条件的样本。则最优化问题只需要间隔最大化即可。

SVR讨论的是回归问题:希望学得一个回归模型 f ( x ⃗ ) = w ⃗ T x ⃗ + b f(\vec{x}) = \vec{w}^T\vec{x}+b f(x )=w Tx +b,使得预测值 f ( x ⃗ ) f(\vec{x}) f(x )和真实标记 y y y尽可能接近。

传统的回归模型:预测值 f ( x ⃗ ) f(\vec{x}) f(x )和真实标记 y y y完全相同,才算没有损失。【这里损失都是均方误差】

SVR模型:能容忍预测值 f ( x ⃗ ) f(\vec{x}) f(x )和真实标记 y y y最多 ϵ \epsilon ϵ的偏差,该偏差内,都算没有损失,预测正确。

即线性回归模型,变成带状回归模型了。

我们要尽可能使得这个间隔带 从样本的最密集地带(中心)穿过,达到拟合训练样本效果。


2.2、SVR最优化问题:正则项+损失函数 ℓ ϵ \ell_\epsilon ℓϵ​

保证形式和SVM软间隔问题一模一样



1、 ℓ ϵ \ell_\epsilon ℓϵ​不敏感损失函数:性质好


ℓ ϵ \ell_\epsilon ℓϵ​不敏感损失函数,比均方误差少个平方项。

  • 不写成均方误差,是为了和软间隔SVM最优化问题形式保持一致
  • 该损失函数自身性质已经很好,如图:是连续的凸函数,能表示拟合程度,不需要替代函数了

2、正则项


前面的 1 2 ∣ ∣ w ⃗ ∣ ∣ 2 {1\over 2}||\vec{w}||^2 21​∣∣w ∣∣2不能理解为SVM中的间隔最大化了。

  • 这里的 1 2 ∣ ∣ w ⃗ ∣ ∣ 2 {1\over 2}||\vec{w}||^2 21​∣∣w ∣∣2叫做 L 2 L_2 L2​正则项,能防止过拟合;(正则化本身作用,这里暂时不讲)
  • 该正则项也是为了和软间隔SVM的最优化问题形式保持一致。

软间隔SVM的最优化问题形式保持一致,则可以引入松弛变量,通过对偶问题求解,使用核函数等等SVM可用的方法。


2.3 引入松弛变量 ξ i = ℓ ϵ ( z ) = ℓ ϵ ( f ( x ⃗ i ) − y i ) \xi_i = \ell_\epsilon(z) = \ell_\epsilon(f(\vec{x}_i)-y_i) ξi​=ℓϵ​(z)=ℓϵ​(f(x i​)−yi​)


松弛变量的2个约束条件



ξ i = ℓ ϵ ( z ) \xi_i = \ell_\epsilon(z) ξi​=ℓϵ​(z)

约束1: ξ i ≥ 0 \xi_i \ge 0 ξi​≥0(即损失函数取值>=0)

约束2:
证明约束2:


SVR最优化问题转化为


两边采用不同松弛程度: ξ i , ξ i ^ \xi_i, \hat{\xi_i} ξi​,ξi​^​的SVR最优化问题


这样更合理,因为如果样本在SVR间隔带模型的上面,则:f - y必然是个负数,右边必然成立, ξ i \xi_i ξi​直接令其=0,不用考虑后面求解了。

如果样本在SVR间隔带模型的下面,同理,左边不用考虑,令 ξ i ^ = 0 \hat{\xi_i} = 0 ξi​^​=0。


2.4 转化为对偶问题


和SVM问题形式一模一样,自然求解方法也都可以用一样的


1、主问题:


2、拉格朗日函数:有4个不等式约束条件,需要4个拉格朗日乘子

3、求对偶函数,即求拉格朗日函数最小值:L是凸优化问题,求偏导=0即可

4、得到对偶问题

约束条件用两个拉格朗日乘子表示
一个是6.48
一个是乘子都要>=0,根据6.49,6.50 推出来


5、上述问题要满足KKT条件


2.5 求解对偶问题(暂不讲)


机器学习西瓜书笔记:软间隔和支持向量回归SVR相关推荐

  1. 谢文睿:西瓜书 + 南瓜书 吃瓜系列 8. 软间隔与支持向量回归

    Datawhale南瓜书是经典机器学习教材<机器学习>(西瓜书)的公式推导解析指南,旨在让在学习西瓜书的过程中,再也没有难推的公式,学好机器学习. 航路开辟者:谢文睿.秦州 开源内容:ht ...

  2. 【机器学习系列】之支持向量回归SVR

    作者:張張張張 github地址:https://github.com/zhanghekai [转载请注明出处,谢谢!] [机器学习系列]之SVM硬间隔和软间隔 [机器学习系列]之SVM核函数和SMO ...

  3. 机器学习——支持向量回归(SVR)

    机器学习--支持向量回归(SVR) educoder平台练习题 如果博客中图片加载失败可点击链接跳转至实训详情 https://www.educoder.net/shixuns/b6yi97f2/ch ...

  4. ❤️解决非线性回归问题的机器学习方法总结:多项式线性模型、广义线性(GAM)模型、回归树模型、支持向量回归(SVR)模型

    文章目录 前言 多项式回归模型 概念解释: sklearn实现多项式回归模型: 广义线性可加(GAM)模型 概念解释: pygam实现广义线性可加模型: GAM模型的优点与不足: 回归树模型 概念解释 ...

  5. 基于DDTBOX,使用线性支持向量回归(SVR)从ERP数据中解码连续变量

    导读 事件相关电位(ERP)数据的多变量分类分析是预测认知变量的强大工具.然而,分类通常仅限于分类变量,并未充分利用连续数据,如反应时间.反应力或主观评分.另一种方法是支持向量回归(SVR),它使用单 ...

  6. 使用最大离散重叠小波变换MODWT和支持向量回归 SVR的金融时间序列预测

    本例使用的数据链接如下:https://www.histdata.com/download-free-forex-historical-data/?/ascii/tick-data-quotes/AU ...

  7. 【视频】支持向量机SVM、支持向量回归SVR和R语言网格搜索超参数优化实例

    最近我们被客户要求撰写关于SVM的研究报告,包括一些图形和统计输出. 什么是支持向量机 (SVM)? 我们将从简单的理解 SVM 开始. [视频]支持向量机SVM.支持向量回归SVR和R语言网格搜索超 ...

  8. [翻译] 支持向量回归SVR的介绍

    X. Introduction 本文先翻译一下: http://www.saedsayad.com/support_vector_machine_reg.htm Support Vector Mach ...

  9. 支持向量回归 svr

    from sklearn import svm X = [[0, 0], [1, 1]] y = [0, 1]#建立支持向量分类模型 clf = svm.SVC()#拟合训练数据,得到训练模型参数 c ...

最新文章

  1. Spring(IOC+AOP)
  2. oracle 创建日志文件,oracle创建日志文件
  3. Kubernetes存储卷的使用
  4. 判断深度学习模型的稳定性_基于深度学习的三维模型检索算法研究
  5. Android开发学习之基于ViewPager实现Gallery画廊效果
  6. dump的文件 查看pg_PostgreSQL 逻辑复制异常引发Pg_wal目录WAL文件膨胀一例
  7. 用友nc操作手册_铁军人物汤轩宇, 入职两年,她用努力和汗水编制出单户试算操作手册...
  8. 个人空间html5主页面,2.HTML 教程- (HTML5 简介)
  9. S实现控制图片显示大小的方法【图片等比例缩放功能】
  10. btrfs文件系统学习总结
  11. 温故知新----表单
  12. Linaro ABE(高级构建环境)构建GNU交叉工具链
  13. 存储崩溃、虚拟磁盘丢失、分区表丢失这些故障如何解决
  14. CRM实战分类以及对企业运营的思考
  15. STIL和WGL的例子文件
  16. 【将门创投】如何让飘在半空的计算机视觉技术与需求落地?
  17. 3D游戏物理开发引擎Panda3D基础
  18. openpyxl生成xslx-动态存储数据
  19. 《魔兽世界插件》教程—21点扑克游戏 Blackjack
  20. Android showStatusIcon on inactive InputConnection异常

热门文章

  1. hdu 2539 点球大战
  2. Vue基础(六)——表单
  3. FG6223EUUD系列模块选型参考
  4. Finally 的使用方式
  5. 生成随机数、随机颜色(rgb格式)
  6. 好用工具推荐--持续更新
  7. Android集成阿里云推送功能
  8. 为ListViewItem 添加双击事件
  9. AutoDetectChangesEnabled及AddRange解决EF插入的性能问题
  10. 花生日记怎么在网上引流?花生日记引流的方法有哪些?