02-36 支持向量回归

人工智能从入门到放弃完整教程目录:https://www.cnblogs.com/nickchen121/p/11686958.html

支持向量回归

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

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

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

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

二、支持向量回归详解

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)\)为核函数。

三、小结

SVR除了可以支持回归问题外,其他方面和SVM差不多,由于SVR也算作是SVM的一个分支,此处不多说什么,参考SVM即可。

posted @ 2019-10-16 17:06  B站-水论文的程序猿  阅读(3044)  评论(0编辑  收藏  举报