本文是机器学习技法系列文章的第六篇。介绍了支持向量回归的推导过程。
文章目录
Support Vector Regression
上一节课讲了KLR,如果想要把SVM这类稀疏的模型用在 soft classification 问题上,可以使用两阶段学习的方式,先用SVM求解最佳的参数 ,然后作为LR(Linear Regression)的初始化参数,进一步求解。或者通过representor theorem的方法,即将 用一系列的 表示,将其转换为 Kernel 的形式再求解。本节课介绍更一般地Kernel Regression情形。
6.1 Kernel Ridge Regression
上一节课,介绍了representor theorem,即何时可以将最佳的权重向量 表示成一系列 的线性组合。如果处理的是含有正则化的线性模型,则最好的 为 的线性组合,并且可以通过反证法证明。 也就是说,人任何包含L2正则化的线性模型,都可以把它变为Kernel的形式。本节课探讨,如何把回归转换为Kernel的形式。
对于线性回归,其损失函数为:
如果加入正则化项,则变为 岭回归(Ridge Regression)。
在线性回归和岭回归模型中是有解析解(Analytic Solution)的。我们希望引入Kernel的这两类回归模型也可以有解析解。其推导过程如下:
即将最佳的权重向量 的表示形式代入目标函数,转化为求解最佳的的 ,并用向量形式表示。有了这种转化,就可以把原来学过的回归算法中应用Kernel,诸如Polynomial和Gaussian Kernel 就都可以使用了。现在,问题变为如何求解最佳的参数 。
仔细看上式,不难发现,其实就是一个 的二次多项式。因为是一个无条件的最优化问题,所以可用梯度下降算法求解。
上式中, 是Kernel算出来的结果,是一个对称矩阵(),为了方便公式推导,记为 ,为了之后方便讨论,添加一个 identity matrix ,最够得到公式:
现在令梯度等于零,则可得到解析解。一个可用的 Kernel 一定是半正定的,再加上一个单位矩阵 ,一定是可逆的。要求解这个方程,计算复杂度约为 ,并且 Kernel 中的参数大部分不为零,上一节课推导过程中,将最佳的权重向量分解为了垂直和平行向量相加的形式,所以只有当两个向量垂直时, 的分量才会为零。所以求解比较困难。通过上式,求出的 就是岭回归算法在 空间最佳的解。
理论上,现在就可以求解非线性回归。下面比较一下,岭回归和带Kernel的岭回归算法。
通过以上对比可以看出linear与kernel的差别。使用linear的缺点是受到很多限制,只能处理线性可分的情况,对于非线性的输入空间,则无法处理的很好;使用kernel,则不会有过多的限制,可以处理更多的问题。如果仅考虑计算复杂度,linear适用于样本数量 远大于特征空间维度 的情况;如果使用Kernel,则所有计算都与样本数量 相关,当样本数量增大时,需要重新审视是否使用kernel。
对于linear来说,关注点在更关注控制复杂度还是更关注控制效率。如果要计算更加复杂的情况,则可能需要使用kernel。使用kernel的优点是可以对复杂的输出空间进行建模,并且不容易过拟合,但是需要花费较多的训练时长。
习题1:
6.2 Support Vector Regression Primal
有了Kernel Ridge Regression之后,也可以向Linear Regression一样,用在做分类任务。这种方法通常叫做least-squares SVM(LSSVM)。下面对比一下两类分类算法:
只看分隔超平面好像没有什么区别,但是如果看支持向量(图中方框框起来的样本点)会发现,使用Gaussian Kernel的 LSSVM 的分类结果中,几乎每一个样本点那都是支持向量,这远远多于 Soft-Margin Gaussian SVM,为什么会这样呢?原因是求解 时,其中很多的 分量不为零。支持向量多意味着未来使用假设函数做预测时,靠的是每一个Kernel 乘上 ,然后算出分数,也就是说,支持向量多,预测的时候要花费更多的时间。
LSSVM和kernel LogReg算法求解出的参数 是稠密的,即很多不是零;标准的SVM算法通过KKT条件求出的参数 是稀疏的,即只有少数不为零,这样就可以降低算法复杂度,提高训练和预测速度。现在,考虑尝试找出结果是稀疏的回归模型,类似 Soft-Margin SVM 的形式。
考虑一个新的问题 tube regression,引入中立区的概念,也就是超平面与margin之间的区域。
图中,蓝色线表示超平面,阴影部分表示两个margin的区域(中立区)。期望输出与预测输出的距离减去在中立区的部分,也就是红色线段表示的误差error。落在中立区的部分不算误差,落在中立区之外的才算误差。这与之前学过的折叶损失函数很像,这种做法使得可以与有稀疏解的SVM联系起来。接下来进行推导,得到稀疏的解。
对比这两类算法的误差函数曲线可知,squared error 在两侧趋向无穷时,增长得很快,表示容易受到噪声的影响,容易为了减少误差而做出比较复杂的分隔超平面,从而导致过拟合;而tube error增长得相对较缓。下面看L2-Regularized Tube Regression问题:
通过对比两种算法可知,RTR是无条件约束最优化问题,理论上可以使用无约束的优化方法求解,但是跟之前的SVM推导一样,存在max函数,导致不一定可微分;而标准的SVM转化为二次规划问题求解。那么如何转化为带Kernel的求解呢?RTR可以使用representer theorem 求解,但是没办法保证求解结果就是稀疏的的解;而标准的SVM,通过二次规划求解,有KKT条件限制,可以直接得到稀疏的解。现在,想办法将RTR转换为SVM的形式再求解。
由上式可知,引入了参数 、 和 。现在回顾SVM的求解方法,扩展到RTR:
这就得到了Support Vector Regression (SVR) 的初始形式,即由minimize regularizer + (upper tube violations & lower violations )两部分组成。此时目标函数变为了有条件约束的最优化问题:
其参数说明如下:
参数 表示更注重正则项还是更注重最小化分类错误样本点的误差。 表示中立区的宽度,即对错误的容忍程度。该参数是SVR独有的参数。然后通过二次规划求解,将求解变量变为 ,限制条件变为 。
下一步想推导SVM算法一样,想办法消除 空间中特征维度 的影响。
习题3:
6.3 Support Vector Regression Dual
与推导SVM一样,要消除 的影响,需要转化为朗格朗日对偶问题求解。首先引入两个拉格朗日乘子 和 ,然后经过推导可以将这两个拉格朗日乘子暗含到 中,从而得到:
其KKT条件为:
以上两式就是SVR松弛条件。其实,SVM primal与SVM dual的参数是对应的,可以直接从SVR primal推导出SVR dual形式。
更具松弛条件求解得:
由此可以得到,分布在中立区(tube)内的点,;在中立区之外的点, 。此时,得到SVR的解就是稀疏解。
习题3:
6.4 Summary of Kernel Models
至此,本课程中所有带Kernel的模型已经讲解完毕。下面做一个总结,首先回顾线性模型,主要有:
- PLA/pocket
- Linear Ridge Regression
- Regularized Logistic Regression
- Linear Soft-Margin SVM
- Linear SVR
带 Kernel 的模型主要有:
常用的方法是:
- SVM
- SVR
- probabilistic SVM
习题4:
Summary
本节课介绍了Support Vector Regression(SVR),问题的切入点是把原来学过的 岭回归(Ridge Regression)变为kernel的形式,然后可以使用representer theorem来实现,但是结果不一定是稀疏的。所以,通过tube regression error入手,导出了QP问题以及对偶问题,证明了其结果是稀疏的。最后总结了所学的模型以及如何选择。
下一节课开始学习集成学习模型。