本文是机器学习技法系列文章的第六篇。介绍了支持向量回归的推导过程。



Support Vector Regression

上一节课讲了KLR,如果想要把SVM这类稀疏的模型用在 soft classification 问题上,可以使用两阶段学习的方式,先用SVM求解最佳的参数 w,bw,b,然后作为LR(Linear Regression)的初始化参数,进一步求解。或者通过representor theorem的方法,即将 ww 用一系列的 zz 表示,将其转换为 Kernel 的形式再求解。本节课介绍更一般地Kernel Regression情形。


6.1 Kernel Ridge Regression

机器学习技法06:支持向量回归(Support Vector Regression)
上一节课,介绍了representor theorem,即何时可以将最佳的权重向量 ww_* 表示成一系列 znz_n 的线性组合。如果处理的是含有正则化的线性模型,则最好的 ww_*znz_n 的线性组合,并且可以通过反证法证明。 也就是说,人任何包含L2正则化的线性模型,都可以把它变为Kernel的形式。本节课探讨,如何把回归转换为Kernel的形式。

对于线性回归,其损失函数为:

err(y,wTz)=(ywTz)2err(y,w^Tz) = (y − w^Tz)^2

如果加入正则化项,则变为 岭回归(Ridge Regression)

在线性回归和岭回归模型中是有解析解(Analytic Solution)的。我们希望引入Kernel的这两类回归模型也可以有解析解。其推导过程如下:
机器学习技法06:支持向量回归(Support Vector Regression)
机器学习技法06:支持向量回归(Support Vector Regression)
即将最佳的权重向量 ww_* 的表示形式代入目标函数,转化为求解最佳的的 β\beta,并用向量形式表示。有了这种转化,就可以把原来学过的回归算法中应用Kernel,诸如Polynomial和Gaussian Kernel 就都可以使用了。现在,问题变为如何求解最佳的参数 β\beta
机器学习技法06:支持向量回归(Support Vector Regression)
仔细看上式,不难发现,其实就是一个 β\beta 的二次多项式。因为是一个无条件的最优化问题,所以可用梯度下降算法求解。

上式中,KK 是Kernel算出来的结果,是一个对称矩阵(KT=KK^T=K),为了方便公式推导,记为 KTK^T,为了之后方便讨论,添加一个 identity matrix II,最够得到公式:

Eaug(β)==2NKT((λI+K)βy)∇E_{aug}(β)==\frac{2}{N}K^T((λI + K)β − y)
机器学习技法06:支持向量回归(Support Vector Regression)
现在令梯度等于零,则可得到解析解。一个可用的 Kernel KK 一定是半正定的,再加上一个单位矩阵 II ,一定是可逆的。要求解这个方程,计算复杂度约为 O(N3)O(N^3) ,并且 Kernel 中的参数大部分不为零,上一节课推导过程中,将最佳的权重向量ww_*分解为了垂直和平行向量相加的形式,所以只有当两个向量垂直时,β\beta 的分量才会为零。所以求解比较困难。通过上式,求出的 β\beta 就是岭回归算法在 zz 空间最佳的解。

理论上,现在就可以求解非线性回归。下面比较一下,岭回归和带Kernel的岭回归算法。
机器学习技法06:支持向量回归(Support Vector Regression)
通过以上对比可以看出linear与kernel的差别。使用linear的缺点是受到很多限制,只能处理线性可分的情况,对于非线性的输入空间,则无法处理的很好;使用kernel,则不会有过多的限制,可以处理更多的问题。如果仅考虑计算复杂度,linear适用于样本数量 NN 远大于特征空间维度 dd 的情况;如果使用Kernel,则所有计算都与样本数量 NN 相关,当样本数量增大时,需要重新审视是否使用kernel。

对于linear来说,关注点在更关注控制复杂度还是更关注控制效率。如果要计算更加复杂的情况,则可能需要使用kernel。使用kernel的优点是可以对复杂的输出空间进行建模,并且不容易过拟合,但是需要花费较多的训练时长。


习题1:
机器学习技法06:支持向量回归(Support Vector Regression)


6.2 Support Vector Regression Primal

有了Kernel Ridge Regression之后,也可以向Linear Regression一样,用在做分类任务。这种方法通常叫做least-squares SVM(LSSVM)。下面对比一下两类分类算法:
机器学习技法06:支持向量回归(Support Vector Regression)
只看分隔超平面好像没有什么区别,但是如果看支持向量(图中方框框起来的样本点)会发现,使用Gaussian Kernel的 LSSVM 的分类结果中,几乎每一个样本点那都是支持向量,这远远多于 Soft-Margin Gaussian SVM,为什么会这样呢?原因是求解 KK 时,其中很多的 β\beta 分量不为零。支持向量多意味着未来使用假设函数做预测时,靠的是每一个Kernel 乘上 β\beta ,然后算出分数,也就是说,支持向量多,预测的时候要花费更多的时间。

LSSVM和kernel LogReg算法求解出的参数β\beta 是稠密的,即很多不是零;标准的SVM算法通过KKT条件求出的参数 α\alpha 是稀疏的,即只有少数不为零,这样就可以降低算法复杂度,提高训练和预测速度。现在,考虑尝试找出结果是稀疏的回归模型,类似 Soft-Margin SVM 的形式。

考虑一个新的问题 tube regression,引入中立区的概念,也就是超平面与margin之间的区域。
机器学习技法06:支持向量回归(Support Vector Regression)
图中,蓝色线表示超平面,阴影部分表示两个margin的区域(中立区)。期望输出与预测输出的距离减去在中立区的部分,也就是红色线段表示的误差error。落在中立区的部分不算误差,落在中立区之外的才算误差。这与之前学过的折叶损失函数很像,这种做法使得可以与有稀疏解的SVM联系起来。接下来进行推导,得到稀疏的解。
机器学习技法06:支持向量回归(Support Vector Regression)
对比这两类算法的误差函数曲线可知,squared error 在两侧趋向无穷时,增长得很快,表示容易受到噪声的影响,容易为了减少误差而做出比较复杂的分隔超平面,从而导致过拟合;而tube error增长得相对较缓。下面看L2-Regularized Tube Regression问题:
机器学习技法06:支持向量回归(Support Vector Regression)
通过对比两种算法可知,RTR是无条件约束最优化问题,理论上可以使用无约束的优化方法求解,但是跟之前的SVM推导一样,存在max函数,导致不一定可微分;而标准的SVM转化为二次规划问题求解。那么如何转化为带Kernel的求解呢?RTR可以使用representer theorem 求解,但是没办法保证求解结果就是稀疏的的解;而标准的SVM,通过二次规划求解,有KKT条件限制,可以直接得到稀疏的解。现在,想办法将RTR转换为SVM的形式再求解。
机器学习技法06:支持向量回归(Support Vector Regression)
由上式可知,引入了参数 CCϵ\epsilonbb。现在回顾SVM的求解方法,扩展到RTR:
机器学习技法06:支持向量回归(Support Vector Regression)
这就得到了Support Vector Regression (SVR) 的初始形式,即由minimize regularizer + (upper tube violations ξnξ^∧_n & lower violations ξnξ^∨_n)两部分组成。此时目标函数变为了有条件约束的最优化问题:
机器学习技法06:支持向量回归(Support Vector Regression)
其参数说明如下:
机器学习技法06:支持向量回归(Support Vector Regression)
参数 CC 表示更注重正则项还是更注重最小化分类错误样本点的误差。ϵ\epsilon 表示中立区的宽度,即对错误的容忍程度。该参数是SVR独有的参数。然后通过二次规划求解,将求解变量变为 d~+1+2N\tilde{d}+1+2N ,限制条件变为 2N+2N2N+2N

下一步想推导SVM算法一样,想办法消除 zz 空间中特征维度 d~\tilde{d} 的影响。


习题3:
机器学习技法06:支持向量回归(Support Vector Regression)


6.3 Support Vector Regression Dual

与推导SVM一样,要消除 d~\tilde{d} 的影响,需要转化为朗格朗日对偶问题求解。首先引入两个拉格朗日乘子 α\alpha^∧αα^∨,然后经过推导可以将这两个拉格朗日乘子暗含到 ξn\xi^∨_n 中,从而得到:
机器学习技法06:支持向量回归(Support Vector Regression)
其KKT条件为:
机器学习技法06:支持向量回归(Support Vector Regression)
以上两式就是SVR松弛条件。其实,SVM primal与SVM dual的参数是对应的,可以直接从SVR primal推导出SVR dual形式。
机器学习技法06:支持向量回归(Support Vector Regression)
更具松弛条件求解得:
机器学习技法06:支持向量回归(Support Vector Regression)
由此可以得到,分布在中立区(tube)内的点,βn=0\beta_n=0;在中立区之外的点,βn0\beta_n \neq 0 。此时,得到SVR的解就是稀疏解。


习题3:
机器学习技法06:支持向量回归(Support Vector Regression)


6.4 Summary of Kernel Models

至此,本课程中所有带Kernel的模型已经讲解完毕。下面做一个总结,首先回顾线性模型,主要有:

  • PLA/pocket
  • Linear Ridge Regression
  • Regularized Logistic Regression
  • Linear Soft-Margin SVM
  • Linear SVR
    机器学习技法06:支持向量回归(Support Vector Regression)

带 Kernel 的模型主要有:
机器学习技法06:支持向量回归(Support Vector Regression)
常用的方法是:

  • SVM
  • SVR
  • probabilistic SVM

机器学习技法06:支持向量回归(Support Vector Regression)


习题4:
机器学习技法06:支持向量回归(Support Vector Regression)


Summary

本节课介绍了Support Vector Regression(SVR),问题的切入点是把原来学过的 岭回归(Ridge Regression)变为kernel的形式,然后可以使用representer theorem来实现,但是结果不一定是稀疏的。所以,通过tube regression error入手,导出了QP问题以及对偶问题,证明了其结果是稀疏的。最后总结了所学的模型以及如何选择。

下一节课开始学习集成学习模型。


相关文章:

  • 2021-10-27
  • 2021-06-03
  • 2021-06-18
  • 2021-09-22
  • 2021-06-20
  • 2021-12-29
  • 2021-06-24
  • 2022-12-23
猜你喜欢
  • 2021-04-19
  • 2021-05-31
  • 2021-09-19
  • 2022-12-23
  • 2021-06-08
  • 2021-11-30
  • 2021-07-16
相关资源
相似解决方案