台湾大学林轩田机器学习技法课程学习笔记6 -- Support Vector Regression
来源:互联网 发布:易达工程造价软件 编辑:程序博客网 时间:2024/06/05 07:23
上节课我们主要介绍了Kernel Logistic Regression,讨论如何把SVM的技巧应用在soft-binary classification上。方法是使用2-level learning,先利用SVM得到参数b和w,然后再用通用的logistic regression优化算法,通过迭代优化,对参数b和w进行微调,得到最佳解。然后,也介绍了可以通过Representer Theorem,在z空间中,引入SVM的kernel技巧,直接对logistic regression进行求解。本节课将延伸上节课的内容,讨论如何将SVM的kernel技巧应用到regression问题上。
Kernel Ridge Regression
首先回顾一下上节课介绍的Representer Theorem,对于任何包含正则项的L2-regularized linear model,它的最佳化解w都可以写成是z的线性组合形式,因此,也就能引入kernel技巧,将模型kernelized化。
那么如何将regression模型变成kernel的形式呢?我们之前介绍的linear/ridge regression最常用的错误估计是squared error,即
我们先把Kernel Ridge Regression问题写下来:
其中,最佳解
ridge regression可以写成矩阵的形式,其中第一项可以看成是
求解
这里需要关心的问题是
所以说,我们可以通过kernel来解决non-linear regression的问题。下面比较一下linear ridge regression和kernel ridge regression的关系。
如上图所示,左边是linear ridge regression,是一条直线;右边是kernel ridge regression,是一条曲线。大致比较一下,右边的曲线拟合的效果更好一些。这两种regression有什么样的优点和缺点呢?对于linear ridge regression来说,它是线性模型,只能拟合直线;其次,它的训练复杂度是
Support Vector Regression Primal
我们在机器学习基石课程中介绍过linear regression可以用来做classification,那么上一部分介绍的kernel ridge regression同样可以来做classification。我们把kernel ridge regression应用在classification上取个新的名字,叫做least-squares SVM(LSSVM)。
先来看一下对于某个问题,soft-margin Gaussian SVM和Gaussian LSSVM结果有哪些不一样的地方。
如上图所示,如果只看分类边界的话,soft-margin Gaussian SVM和Gaussian LSSVM差别不是很大,即的到的分类线是几乎相同的。但是如果看Support Vector的话(图中方框标注的点),左边soft-margin Gaussian SVM的SV不多,而右边Gaussian LSSVM中基本上每个点都是SV。这是因为soft-margin Gaussian SVM中的
那么,针对LSSVM中dense
方法是引入一个叫做Tube Regression的做法,即在分类线上下分别划定一个区域(中立区),如果数据点分布在这个区域内,则不算分类错误,只有误分在中立区域之外的地方才算error。
假定中立区的宽度为
通常把这个error叫做
首先,我们把tube regression中的error与squared error做个比较:
然后,将err(y,s)与s的关系曲线分别画出来:
上图中,红色的线表示squared error,蓝色的线表示tube error。我们发现,当|s-y|比较小即s比较接近y的时候,squared error与tube error是差不多大小的。而在|s-y|比较大的区域,squared error的增长幅度要比tube error大很多。error的增长幅度越大,表示越容易受到noise的影响,不利于最优化问题的求解。所以,从这个方面来看,tube regression的这种error function要更好一些。
现在,我们把L2-Regularized Tube Regression写下来:
这个最优化问题,由于其中包含max项,并不是处处可微分的,所以不适合用GD/SGD来求解。而且,虽然满足representer theorem,有可能通过引入kernel来求解,但是也并不能保证得到sparsity
所以,我们就可以把L2-Regularized Tube Regression写成跟SVM类似的形式:
值得一提的是,系数
现在我们已经有了Standard Support Vector Regression的初始形式,这还是不是一个标准的QP问题。我们继续对该表达式做一些转化和推导:
如上图右边所示,即为标准的QP问题,其中
SVR的标准QP形式包含几个重要的参数:C和
Support Vector Regression Dual
现在我们已经得到了SVR的primal形式,接下来将推导SVR的Dual形式。首先,与SVM对偶形式一样,先令拉格朗日因子
然后,与SVM一样做同样的推导和化简,拉格朗日函数对相关参数偏微分为零,得到相应的KKT条件:
接下来,通过观察SVM primal与SVM dual的参数对应关系,直接从SVR primal推导出SVR dual的形式。(具体数学推导,此处忽略!)
最后,我们就要来讨论一下SVR的解是否真的是sparse的。前面已经推导了SVR dual形式下推导的解w为:
相应的complementary slackness为:
对于分布在tube中心区域内的点,满足
所以,对于分布在tube内的点,得到的解
Summary of Kernel Models
这部分将对我们介绍过的所有的kernel模型做个概括和总结。我们总共介绍过三种线性模型,分别是PLA/pocket,regularized logistic regression和linear ridge regression。这三种模型都可以使用国立台湾大学的Chih-Jen Lin博士开发的Liblinear库函数来解决。
另外,我们介绍了linear soft-margin SVM,其中的error function是
上图中相应的模型也可以转化为dual形式,引入kernel,整体的框图如下:
其中SVM,SVR和probabilistic SVM都可以使用国立台湾大学的Chih-Jen Lin博士开发的LLibsvm库函数来解决。通常来说,这些模型中SVR和probabilistic SVM最为常用。
总结
本节课主要介绍了SVR,我们先通过representer theorem理论,将ridge regression转化为kernel的形式,即kernel ridge regression,并推导了SVR的解。但是得到的解是dense的,大部分为非零值。所以,我们定义新的tube regression,使用SVM的推导方法,来最小化regularized tube errors,转化为对偶形式,得到了sparse的解。最后,我们对介绍过的所有kernel模型做个总结,简单概述了各自的特点。在实际应用中,我们要根据不同的问题进行合适的模型选择。
注明:
文章中所有的图片均来自台湾大学林轩田《机器学习技法》课程
- 台湾大学林轩田机器学习技法课程学习笔记6 -- Support Vector Regression
- 机器学习技法课程学习笔记6-- Support Vector Regression
- 台湾大学林轩田机器学习技法课程学习笔记1 -- Linear Support Vector Machine
- 台湾大学林轩田机器学习技法课程学习笔记2 -- Dual Support Vector Machine
- 台湾大学林轩田机器学习技法课程学习笔记3 -- Kernel Support Vector Machine
- 台湾大学林轩田机器学习技法课程学习笔记4 -- Soft-Margin Support Vector Machine
- 台湾大学林轩田机器学习技法课程学习笔记5 -- Kernel Logistic Regression
- 林轩田--机器学习技法--SVM笔记6--支持向量回归(Support+Vector+Regression)
- 台湾大学林轩田机器学习技法课程学习笔记7 -- Blending and Bagging
- 台湾大学林轩田机器学习技法课程学习笔记8 -- Adaptive Boosting
- 台湾大学林轩田机器学习技法课程学习笔记9 -- Decision Tree
- 台湾大学林轩田机器学习技法课程学习笔记10 -- Random Forest
- 台湾大学林轩田机器学习技法课程学习笔记11 -- Gradient Boosted Decision Tree
- 台湾大学林轩田机器学习技法课程学习笔记12 -- Neural Network
- 台湾大学林轩田机器学习技法课程学习笔记13 -- Deep Learning
- 台湾大学林轩田机器学习技法课程学习笔记14 -- Radial Basis Function Network
- 台湾大学林轩田机器学习技法课程学习笔记15 -- Matrix Factorization
- 台湾大学林轩田机器学习技法课程学习笔记16(完结) -- Finale
- 方向梯度直方图(HOG,Histogram of Gradient)
- select服务器
- react
- JavaScript事件添加的兼容性写法
- HTML学习笔记(Day3)
- 台湾大学林轩田机器学习技法课程学习笔记6 -- Support Vector Regression
- linux下centOS系统让tomcat以service方式运行
- JAVA多线程基础知识复习一
- GLSL(7)精确限定符
- Trapping Rain Water
- python学习(6)dict字典和set
- hibernate笔记09 hibernate关联关系1
- 开课十一天
- Android Gradle学习记录3 Groovy处理文件