02-36 支持向量回归

[TOC] 更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:<a target="_blank" href="https://www.cnblogs.com/nickchen121/p/11686958.html">http://www.javashuo.com/article/p-vozphyqp-cm.html</a>html

支持向量回归

传统回归模型如线性回归,对于样本$(x,y)$是直接基于模型,经过预测值$f(x_i){y}$和真实值$y$之间的差异计算损失,而且当$f(x_i){y}=y$时损失才为零。python

支持向量回归(support vector regression, SVR)则能够容忍$f(x_i){y}$和$y$之间有最多$\epsilon$的误差,即当$|f(x_i){y}-y|>\epsilon$的时候才计算损失,这至关于以$f(x_i){y}$为中心,构建了一个宽度为$2\epsilon$的间隔带,若是样本落入间隔带,则他的分类就是正确的。算法

1、支持向量回归学习目标

  1. 支持向量机和支持向量回归的优化问题
  2. 支持向量回归目标函数的对偶形式
  3. 支持向量回归模型系数的稀疏性
  4. 核支持向量回归
  5. 支持向量机的优缺点

2、支持向量回归详解

2.1 支持向量机目标函数优化问题回顾

线性可分SVM目标函数优化问题为 $$ \begin{align} & \underbrace{\min}{\omega,b} {\frac{1}{2}}{||\omega||}^2 \ & s.t. \quad y_i(\omega{x_i}+b)\geq1, \quad i=1,2,\ldots,m \end{align} $$ 线性SVM因为在目标函数中加入了松弛因子$\xi_i>0$,目标函数优化问题为 $$ \begin{align} & \underbrace{\min}{\omega,b,\xi} {\frac{1}{2}}{||\omega||}^2 + C\sum_{i=1}^m\xi_i \ & s.t. \quad y_i(\omega{x_i}+b)\geq1-\xi_i, \quad i=1,2,\ldots,m \ & \quad\quad \xi_i\geq0, \quad i=1,2,\ldots,m \end{align} $$数据结构

2.2 支持向量回归损失度量函数

支持向量回归因为有一个间隔带,所以它的损失度量函数为 $$ l(f(x_i),y_i) = \begin{cases} 0, & if,|f(x_i)-y_i|\leq\epsilon \ |f(x_i)-y_i|-\epsilon, & if,|f(x_i)-y_i|>\epsilon \ \end{cases} $$机器学习

2.3 支持向量回归目标函数优化问题

因为SVR的间隔带是本身引入的,因此SVR的目标函数变为 $$ \underbrace{\min}{\omega,b},{\frac{1}{2}}{||\omega||}^2 + C\sum{i=1}^ml(f(x_i)-y_i) $$ 若是和线性SVM同样引入松弛因子,可是因为咱们的偏差度量中的$|f(x_i)-y_i|\leq\epsilon$是绝对值小于,所以这个不等式实际上是两个不等式,则SVR须要引入两个松弛因子$\xi_i$和$\hat{\xi_i}$,则SVR的优化问题将变成 $$ \underbrace{\min}{\omega,b,\xi_i,\hat{\xi_i}}{\frac{1}{2}}||w||^2+C\sum{i=1}^m(\xi_i+\hat{\xi_i}) $$ $$ \begin{align} s.t. & f(x_i)-y_i\leq\epsilon+\xi_i, \ & y_i-f(x_i)\leq\epsilon+\hat{\xi_i}, \ & \xi_i\geq0,\hat{\xi_i}\geq0,,i=1,2,\cdots,m \end{align} $$ 对SVR的优化问题引入拉格朗日乘子$\mu_i\geq0,\hat{\mu_i}\geq0,\alpha_i\geq0,\hat{\alpha_i}\geq0$,经过拉格朗日乘子法便可获得拉格朗日函数 $$ \begin{align} & L(w,b,\alpha,\hat{\alpha},\xi,\hat{\xi},\mu,\hat{\mu}) \ & = \frac{1}{2}||w||^2+C\sum_{i=1}^m(\xi_i+\hat{\xi_i})-\sum_{i=1}^m\mu_i\xi_i-\sum_{i=1}^m\hat{\mu_i}\hat{\xi_i} \ & +\sum_{i=1}^m\alpha_i(f(x_i)-y_i-\epsilon-\xi)+\sum_{i=1}^m\hat{\alpha_i}(y_i-f(x_i)-\epsilon-\hat{\xi_i}) \end{align} $$函数

2.4 支持向量回归目标函数对偶形式

经过拉格朗日便可获得支持向量回归目标函数的原始形式 $$ \underbrace{min}{w,b,\xi_i,\hat{\xi_i}} \quad \underbrace{max}{\mu_i\geq0,\hat{\mu_i}\geq0,\alpha_i\geq0,\hat{\alpha_i}\geq0} L(w,b,\alpha,\hat{\alpha},\xi,\hat{\xi},\mu,\hat{\mu}) $$ 能够发现支持向量回归的目标函数的原始形式也知足KTT条件,便可以经过拉格朗日对偶将咱们的问题转化为等价的对偶问题,即 $$ \underbrace{max}{\mu_i\geq0,\hat{\mu_i}\geq0,\alpha_i\geq0,\hat{\alpha_i}\geq0} \quad \underbrace{min}{w,b,\xi_i,\hat{\xi_i}}L(w,b,\alpha,\hat{\alpha},\xi,\hat{\xi},\mu,\hat{\mu}) $$ 首先求优化函数对让${w,b,\xi_i,\hat{\xi_i}}$的极小值,再求拉格朗日乘子${\mu_i,\hat{\mu_i},\alpha_i,\hat{\alpha_i}}$的极大值,即先获得拉格朗日函数$L(w,b,\alpha,\hat{\alpha},\xi,\hat{\xi},\mu,\hat{\mu})$分别对$w,b,\xi_i,\hat{\xi_i}$求偏导为0可得 $$ \begin{align} & w = \sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)x_i, \ & 0 = \sum_{i=1}^m(\hat{\alpha_i}-\alpha_i), \ & C = \alpha_i + \mu, \ & C = \hat{\alpha_i} + \hat{\mu_i}, \end{align} $$ 将拉格朗日函数对$w,b,\xi_i,\hat{\xi_i}$的偏导代入拉格朗日函数,便可得SVR的对偶问题 $$ \underbrace{max}{\alpha,\hat{\alpha}} \sum{i=1}^my_i(\hat{\alpha_i}-\alpha_i)-\epsilon(\hat{\alpha_i}+\alpha_i) - \frac{1}{2} \sum_{i=1}^m\sum_{j=1}^m(\hat{\alpha_i}-\alpha_i)(\hat{\alpha_i}-\alpha_j)x_i^Tx_j $$ $$ \begin{align} s.t. & \sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)=0 \ & 0\leq\alpha_i,\hat{\alpha_i}\leq{C} \end{align} $$ 对于上述SVR的目标函数的对偶形式取对数,便可变成最小化目标函数的优化问题,即 $$ \underbrace{min}{\alpha,\hat{\alpha}} -\sum{i=1}^my_i(\hat{\alpha_i}-\alpha_i)+\epsilon(\hat{\alpha_i}+\alpha_i) + \frac{1}{2} \sum_{i=1}^m\sum_{j=1}^m(\hat{\alpha_i}-\alpha_i)(\hat{\alpha_i}-\alpha_j)x_i^Tx_j $$ $$ \begin{align} s.t. & \sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)=0 \ & 0\leq\alpha_i,\hat{\alpha_i}\leq{C} \end{align} $$ 对于这个目标函数,依然可使用SMO算法求出对应的$\alpha_i,\hat{\alpha_i}$,进而求出回归模型的$w,b$。学习

2.5 支持向量回归模型系数的稀疏性

在对支持向量回归的目标函数优化的时候,咱们假设该目标函数知足KKT条件,该KKT条件为 $$ \begin{cases} \alpha_i(f(x_i)-y_i-\epsilon-\xi_i)=0, \ \hat{\alpha_i}(y_i-f(x_i)-\epsilon-\hat{\xi_i})=0, \ \alpha_i\hat{\alpha_i}=0,\xi_i\hat{\xi_i}=0, \ (C-\alpha_i)\xi_i=0,(C-\hat{\alpha_i}\hat{\xi_i}=0 \end{cases} $$ 从上式能够看出,只有当$f(x_i)-y_i-\epsilon-\xi_i=0$的时候$\alpha_i$才能够为非0解,而且只有当$y_i-f(x_i)-\epsilon-\hat{\xi_i}=0$的时候$\hat{\alpha_i}$才能够为非0解。优化

首先根据松弛变量的定义,若是$|f(x_i)-y_i-\epsilon-\xi_i|<\epsilon$,则样本点落在间隔带中,则$\xi_i=0,\hat{\xi_i}=0$,既能够获得$f(x_i)-y_i-\epsilon-\xi_i\neq0,y_i-f(x_i)-\epsilon-\hat{\xi_i}\neq0$,则能够获得$\alpha_i=0,\hat{\alpha_i}=0$,则$\hat{\alpha_i}-\alpha_i=0$。网站

即只有样本点$(x_i,y_i)$不落入间隔带中才能使得相应的$\alpha_i$和$\hat{\alpha_i}$为非0解,而且因为样本点既不能同时在分隔超平面的两边,即$f(x_i)-y_i-\epsilon-\xi_i=0$和$y_i-f(x_i)-\epsilon-\hat{\xi_i}=0$不能同时存在,即$\alpha_i$和$\hat{\alpha_i}$至少有一个为0而且不能同时为0,则$\hat{\alpha_i}-\alpha_i\neq0$。人工智能

假设$\alpha_i$已经经过SMO算法获得,则能够获得$w=\sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)x_i$,便可得SVR的分离超平面为 $$ f(x) = \sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)x_i^Tx+b $$ 从上式能够看出当样本点落在间隔带,因为$\hat{\alpha_i}-\alpha_i=0$,即$w=0$,则$w$不受这些间隔带内点的影响,对于间隔带外的样本点,则会对$w$形成影响,即这些点为SVR的支持向量。而且因为SVR的支持向量仅仅是训练样本的一部分,因此SVR的解$w$具备稀疏性。

SVR对于$b$的求解相似于SVM,因为能获得多个$b$值,因此最后对$b$取平均值。

2.6 核支持向量回归

上一节获得了SVR的分离超平面为 $$ f(x) = \sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)x_i^Tx+b $$ 若是咱们使用和SVM同样的核技巧,即对SVR训练数据作一个样本映射,即另$\phi(x)$表示$x$映射后的特征向量。则分离超平面能够变为 $$ \begin{align} f(x) & = \sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)\phi{(x_i)}^T\phi{(x)}+b \ & = \sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)k(x,x_i)+b \end{align} $$ 其中$k(x,x_i)$为核函数。

3、小结

SVR除了能够支持回归问题外,其余方面和SVM差很少,因为SVR也算做是SVM的一个分支,此处很少说什么,参考SVM便可。

相关文章
相关标签/搜索