【机器学习算法模型推导】1. SVR算法介绍与推导

文章目录

  • 【机器学习算法模型推导】1. SVR算法介绍与推导
  • 一、SVR算法
    • 1.SVR简介
    • 2.SVR数学模型
      • 2.1 SVR目标函数
      • 2.2 为了最小化目标函数,根据约束条件,构造拉格朗日函数
      • 2.3 原问题的对偶问题
      • 2.4 分别对ω,b,ξi,ξi∗\omega,b,\xi_i,\xi_i^*ω,b,ξi​,ξi∗​求偏导,并令偏导为0
      • 2.5 用SMO算法求解SVR

一、SVR算法

SVR做为SVM的分支从而被提出。SVM一般用于二分类问题,而SVR一般应用于数据的拟合。

1.SVR简介

无论SVM还是SVR,都需要建立一个超平面。SVM的目标是令超平面与最近的样本点的距离最大,实现通过超平面分类的目的;而SVR的目标是要使得超平面与最远的样本点的距离最小,从而可以通过利用超平面对数据进行拟合。

2.SVR数学模型

SVR在线性函数两侧制造了一个“间隔带”,对于所有落入到间隔带内的样本,都不计算损失;只有间隔带之外的,才计入损失函数。之后再通过最小化间隔带的宽度与总损失来最优化模型。
由于模型需要放弃一些边缘的点,用于最小化间隔带,
所以引入了松弛变量ξi\xi_iξi​和ξi∗\xi_i^*ξi∗​(松弛变量有两个符号,SVM只有1个符号), 代表上图上边缘点和下边缘点与中间实线的距离(y轴投影距离而不是欧式距离,直接计算点与点在实线上的投影的y轴上的差即可。):

2.1 SVR目标函数

minω,b12∥ω∥2+C∑i=1l(ξi+ξi∗)\mathop{min}\limits_{\omega, b}\frac{1}{2}\parallel\omega\parallel^2 + C\sum_{i=1}^{l}(\xi_i + \xi_i^*) ω,bmin​21​∥ω∥2+Ci=1∑l​(ξi​+ξi∗​)

s.t.{yi−ωx−b≤ϵ+ξiωx+b−yi≤ϵ+ξi∗ξi,ξi∗≥0s.t.\left\{ \begin{array}{l} y_i-\omega x-b \le \epsilon + \xi_i \\ \omega x + b - y_i \le \epsilon + \xi_i^* \\ \xi_i,\xi_i^* \qquad \quad \ge 0 \end{array} \right. s.t.⎩⎨⎧​yi​−ωx−b≤ϵ+ξi​ωx+b−yi​≤ϵ+ξi∗​ξi​,ξi∗​≥0​

其中,ξi\xi_iξi​和ξi∗\xi_i^*ξi∗​的取值为:

{ξi=yi−(ωx+b+ϵ),yi>ωx+b+ϵξi=0,otherwise\left\{ \begin{array}{l} \xi_i=y_i-(\omega x + b +\epsilon), y_i > \omega x + b + \epsilon\\ \xi_i=0, \qquad \qquad \qquad \quad otherwise \end{array} \right. {ξi​=yi​−(ωx+b+ϵ),yi​>ωx+b+ϵξi​=0,otherwise​

{ξi∗=(ωx+b−ϵ)−yi,yi<ωx+b−ϵξi∗=0,otherwise\left\{ \begin{array}{l} \xi_i^*=(\omega x + b -\epsilon)-y_i, y_i < \omega x + b - \epsilon\\ \xi_i^*=0, \qquad \qquad \qquad \quad otherwise \end{array} \right. {ξi∗​=(ωx+b−ϵ)−yi​,yi​<ωx+b−ϵξi∗​=0,otherwise​

2.2 为了最小化目标函数,根据约束条件,构造拉格朗日函数

L=12∥ω∥2+C∑i=1l(ξi+ξi∗)−∑i=1lαi(ϵ+ξi−yi+ωx+b)−∑i=1lαi∗(ϵ+ξi∗+yi−ωx−b)−∑i=1l(ηiξi+ηi∗ξi∗)s.t.αi,αi∗,ηi,ηi∗≥0\begin{array}{l} L=\frac{1}{2}\parallel\omega\parallel^2 + C\sum_{i=1}^{l}(\xi_i + \xi_i^*) \\ \qquad - \sum\limits_{i=1}^l \alpha_i(\epsilon + \xi_i - y_i + \omega x + b) \\ \qquad - \sum\limits_{i=1}^l \alpha_i^*(\epsilon + \xi_i^* + y_i - \omega x - b) \\ \qquad - \sum\limits_{i=1}^l(\eta_i\xi_i + \eta_i^*\xi_i^*)\\ s.t. \quad\alpha_i, \alpha_i^*, \eta_i, \eta_i^* \ge 0 \end{array} L=21​∥ω∥2+C∑i=1l​(ξi​+ξi∗​)−i=1∑l​αi​(ϵ+ξi​−yi​+ωx+b)−i=1∑l​αi∗​(ϵ+ξi∗​+yi​−ωx−b)−i=1∑l​(ηi​ξi​+ηi∗​ξi∗​)s.t.αi​,αi∗​,ηi​,ηi∗​≥0​

原问题可以化为:
minω,bmaxαi(∗),ηi(∗)L(ω,b,ξi,ξi∗,αi,αi∗,ηi,ηi∗)\mathop{min}\limits_{\omega, b}\mathop{max}\limits_{\alpha_i^{(*)}, \eta_i^{(*)}}L(\omega, b, \xi_i,\xi_i^*, \alpha_i, \alpha_i^*, \eta_i, \eta_i^*) ω,bmin​αi(∗)​,ηi(∗)​max​L(ω,b,ξi​,ξi∗​,αi​,αi∗​,ηi​,ηi∗​)

2.3 原问题的对偶问题

maxαi(∗),ηi(∗)minω,bL(ω,b,ξi,ξi∗,αi,αi∗,ηi,ηi∗)\mathop{max}\limits_{\alpha_i^{(*)}, \eta_i^{(*)}}\mathop{min}\limits_{\omega, b}L(\omega, b, \xi_i,\xi_i^*, \alpha_i, \alpha_i^*,\eta_i, \eta_i^*) αi(∗)​,ηi(∗)​max​ω,bmin​L(ω,b,ξi​,ξi∗​,αi​,αi∗​,ηi​,ηi∗​)

2.4 分别对ω,b,ξi,ξi∗\omega,b,\xi_i,\xi_i^*ω,b,ξi​,ξi∗​求偏导,并令偏导为0

{∂L∂ω=ω−∑i=1l(αi∗−αi)xi=0∂L∂b=∑i=1l(αi∗−αi)=0∂L∂ξi=C−αi−ηi∂L∂ξi∗=C−αi∗−ηi∗\left\{ \begin{array}{l} \frac{\partial L}{\partial \omega} = \omega - \sum\limits_{i=1}^{l}(\alpha_i^* - \alpha_i)x_i = 0\\ \frac{\partial L}{\partial b} =\sum\limits_{i=1}^{l}(\alpha_i^* - \alpha_i) = 0\\ \frac{\partial L}{\partial \xi_i}=C - \alpha_i - \eta_i\\ \\ \frac{\partial L}{\partial \xi_i^*} = C - \alpha_i^* - \eta_i^* \end{array} \right. ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​∂ω∂L​=ω−i=1∑l​(αi∗​−αi​)xi​=0∂b∂L​=i=1∑l​(αi∗​−αi​)=0∂ξi​∂L​=C−αi​−ηi​∂ξi∗​∂L​=C−αi∗​−ηi∗​​

2.5 用SMO算法求解SVR

使用SMO算法前,还需将αi,αi∗\alpha_i, \alpha_i^*αi​,αi∗​转化为一个参数,因为SMO算法针对的是任意样本xix_ixi​ 只对应一个参数αi\alpha_iαi​的情况。

过程采用拉格朗日对偶法,对偶问题有解的充要条件是满足KKT条件,对于SVR的对偶问题,其KKT条件如下:
{αi(ϵ+ξi−yi+ωx+b)=0αi∗(ϵ+ξi+yi−ωx−b)=0(C−αi)ξi=0(C−αi∗)ξi∗=0αiαi∗=0ξiξi∗=0\left\{ \begin{array}{l} \alpha_i(\epsilon + \xi_i - y_i + \omega x + b) = 0\\ \alpha_i^*(\epsilon + \xi_i + y_i - \omega x - b) = 0\\ (C-\alpha_i)\xi_i = 0\\ (C-\alpha_i^*)\xi_i^* = 0\\ \alpha_i\alpha_i^* = 0\\ \xi_i\xi_i^* = 0 \end{array} \right. ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​αi​(ϵ+ξi​−yi​+ωx+b)=0αi∗​(ϵ+ξi​+yi​−ωx−b)=0(C−αi​)ξi​=0(C−αi∗​)ξi∗​=0αi​αi∗​=0ξi​ξi∗​=0​

设λi=αi−αi∗\lambda_i = \alpha_i - \alpha_i^*λi​=αi​−αi∗​。由KKT条件,αi,αi∗\alpha_i,\alpha_i^*αi​,αi∗​至少有一个为0。所以∣λi∣=αi+αi∗|\lambda_i| = \alpha_i + \alpha_i^*∣λi​∣=αi​+αi∗​。代入对偶问题,则有(先用求导结果替换ω\omegaω):
minλ[∑i=1lyiλi+ϵ∣λi∣+12∑i=1l∑j=1lλiλjxiTxi]s.t.{∑i=1lλi=0−C≤λi≤C\begin{array}{l} \mathop{min}\limits_{\lambda}[\sum\limits_{i=1}^{l}y_i\lambda_i+ \epsilon|\lambda_i| + \frac{1}{2}\sum\limits_{i=1}^{l}\sum\limits_{j=1}^{l}\lambda_i\lambda_j x_i^Tx_i] \\ s.t.\left\{\begin{array}{l} \sum\limits_{i=1}^{l}\lambda_i = 0\\ -C \le \lambda_i \le C \end{array} \right. \end{array} λmin​[i=1∑l​yi​λi​+ϵ∣λi​∣+21​i=1∑l​j=1∑l​λi​λj​xiT​xi​]s.t.⎩⎨⎧​i=1∑l​λi​=0−C≤λi​≤C​​
最后再参考SMO算法,求出回归模型系数ω,b\omega, bω,b

【机器学习算法模型】1. SVR模型推导相关推荐

  1. 【机器学习基础】数学推导+纯Python实现机器学习算法22:最大熵模型

    Python机器学习算法实现 Author:louwill Machine Learning Lab 最大熵原理(Maximum Entropy Principle)是一种基于信息熵理论的一般原理,在 ...

  2. 机器学习算法:多元高斯模型

    本文结构如下: 1:多元正态分布及可视化 2:双高斯独立分布可视化 3:从零开始推导多元高斯分布 4:多元正态分布性质 5:高斯判别分析模型 6:高斯判别分析模型Demo 1: 多元正态分布及可视化 ...

  3. 支持向量机回归python_python 机器学习之支持向量机非线性回归SVR模型

    本文介绍了python 支持向量机非线性回归SVR模型,废话不多说,具体如下: import numpy as np import matplotlib.pyplot as plt from skle ...

  4. 《machine learning in action》机器学习 算法学习笔记 决策树模型

    决策树模型 重要任务:是为了理解数据中所蕴含的知识信息,因此决策树可以使用不熟悉的数据集合,并从中提取出一系列规则,这些机器根据数据集创建规则的过程就是机器学习的过程. 优点:计算复杂度不高,输出结果 ...

  5. 【机器学习基础】数学推导+纯Python实现机器学习算法24:HMM隐马尔可夫模型

    Python机器学习算法实现 Author:louwill Machine Learning Lab HMM(Hidden Markov Model)也就是隐马尔可夫模型,是一种由隐藏的马尔可夫链随机 ...

  6. 图解机器学习算法(6) | 决策树模型详解(机器学习通关指南·完结)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/34 本文地址:https://www.showmeai.tech/article-d ...

  7. 【机器学习基础】数学推导+纯Python实现机器学习算法30:系列总结与感悟

    Python机器学习算法实现 Author:louwill Machine Learning Lab 终于到了最后的总结.从第一篇线性回归的文章开始到现在,已经接近有两年的时间了.当然,也不是纯写这3 ...

  8. 【机器学习基础】数学推导+纯Python实现机器学习算法28:CRF条件随机场

    Python机器学习算法实现 Author:louwill Machine Learning Lab 本文我们来看一下条件随机场(Conditional Random Field,CRF)模型.作为概 ...

  9. 【机器学习基础】数学推导+纯Python实现机器学习算法27:EM算法

    Python机器学习算法实现 Author:louwill Machine Learning Lab 从本篇开始,整个机器学习系列还剩下最后三篇涉及导概率模型的文章,分别是EM算法.CRF条件随机场和 ...

  10. 【机器学习基础】数学推导+纯Python实现机器学习算法26:随机森林

    Python机器学习算法实现 Author:louwill Machine Learning Lab 自从第14篇文章结束,所有的单模型基本就讲完了.而后我们进入了集成学习的系列,整整花了5篇文章的篇 ...

最新文章

  1. JVM-07垃圾收集Garbage Collection【GC日志分析】
  2. Spring中毒太深,离开Spring我居然连最基本的接口都不会写了
  3. samba 端口_无需公网IP,易有云支持SAMBA远程连接家里设备
  4. ubuntu如何进入超级权限模式,退出超级权限模式,sudo su——root权限
  5. ASP.net控件开发系列(四)
  6. float强制转换的问题及解释
  7. Python Selenium系列学习
  8. SharePoint 2010 PowerShell 系列 之 Create List and Field --Lookup
  9. 光流在视频检测和分割的再应用
  10. vsftpd配置(虚拟用户、匿名用户登录)
  11. Cisco Packet Tracer思科模拟器中路由器的TELNET配置
  12. 智能优化算法:基于Powell优化的鸽群优化算法
  13. React Native 微博登陆
  14. Android 平台的Python——CLE方案实现(三)
  15. 使用XML表达表格数据
  16. v26.08 鸿蒙内核源码分析(自旋锁) | 当立贞节牌坊的好同志 | 百篇博客分析HarmonyOS源码
  17. 手写数字识别及python实现
  18. java ssi_java SSI idea
  19. 北邮矩阵论- 第1章 1.1线性空间
  20. 林仕鼎谈数据中心计算(一):整体大于部分之和

热门文章

  1. MarkDown learn的Typora工具简介使用说明
  2. fasterrcnn使用
  3. 深究|Elasticsearch单字段支持的最大字符数?
  4. 安卓手机用什么耳机最好?适合安卓手机的蓝牙耳机推荐
  5. 好时代 VS 坏时代
  6. zynq 7000 SDK下的流水灯实验
  7. Debian配置ssh
  8. 桐爷开车 线性动态规划
  9. 广义矩估计的一般步骤_广义矩估计.ppt
  10. HRP-PNA,辣根过氧化物酶标记花生凝集素