【机器学习基础】支持向量回归

引言

这一小节介绍一下支持向量回归,我们在之前介绍的核逻辑回归使用表示定理(Representer Theorem),将逻辑回归编程Kernel的形式,这一节我们沿着这个思路出发,看看如何将回归问题和Kernel的形式结合起来。

Kernel Ridge Regression

上次介绍的表示定理告诉我们,如果我们要处理的是有L2的正则项的线性模型,其最优解是数据zn的线性组合。我们可以将这样的线性模型变成Kernel的形式。

既然我们知道这样带有L2-Regularizer的线性回归模型的最佳解的形式,那么我们就可以将这个最佳解代入进原始的ridge regression中,用求解最佳的β来代替求解最佳的w。

我们将w是z的线性组合这个条件带进式子中,得到如下的式子,再将其转换成矩阵相乘的表示形式。

Kernel Ridge Regression的求解

上面我们得到了Kernel Ridge Regression的损失函数,要求解这样的一个无条件的最优化问题,就是对这个损失函数Eaug(β)取梯度:

令▽Eaug(β)=0,就是要将(λI+K)β-y=0,这样我们得到β的解。那么(λI+K)是不是一定可逆呢,我们知道核矩阵K是半正定的,所以这个(λI+K)的逆一定是存在的。

这里的时间复杂度大概是O(N^3),而且注意到矩阵(λI+K)里面的元素大部分都不是0,所以如果求解一个很大的矩阵的逆是一个很困难的问题。

Linear Regression和Kernel Ridge Regression的比较

Linear Regression的缺点是比较受限制,但在计算的复杂度方面,如果当数据量N比维度d大很多,线性回归的计算是比较高效的。

Kernel Ridge Regression由于使用了Kernel trick,比较灵活,适合做复杂的拟合。这种方法我们发现,计算的复杂程度都是和数据量有关的,如果数据量很大的时候,不适合使用这个方法。

所以,线性和核方法的差别在于计算效率和针对复杂问题灵活性的权衡和折中。


Support Vector Regression

在之前的介绍中,我们使用linear regression来作分类的问题,现在使用kernel ridge regression也可以来作分类。

我们把这种kernel ridge regression for classification的情况也成为最小二乘SVM(least-squares SVM, LSSVM)。

我们从上图对比一下SVM和LSSVM的分界效果,我们会发现,虽然这两幅图的分类边界效果是差不多的,但是其标注的支持向量的数量却相差很大,在LSSVM差不多每一个数据都是支持向量,为什么会这样呢?

我们在Kernel Ridge Regression中计算的β的结果,大部分都不是0,所以这种方式的支持向量的数量很多。这样在预测的时候,就会花费很多的时间。

而标准的SVM中,系数α是稀疏的,而这里的β是很稠密的。

Tube Regression

我们现在假设有一个中立区Tube,数据在这个区域中,我们不将其计入误差函数,而只将在这个区域外的数据的距离计入误差函数。

损失函数定义如下:

我们对比一下Tube Regreesion和Squared Regression误差函数的曲线,我们可以看到在误差比较小的情况下,两种误差度量是差不多的,而当误差比较大的时候,squared error就会增长的很快,这说明squared error比较容易受到噪声的影响

接下来,我们使用L2-regularized tube regression来得到稀疏的β。

L2-Regularized Tube Regression

由于含有Regularizer的Tube Regression中含有max函数,而这个函数是不能微分的,所以我们想要模仿SVM中的求解技巧来解这个问题。

我们对比SVM,将w中的常数项b从中独立出来得到要变换的式子:

我们回想一下,在SVM中我们引入了一个新的变量ξn,这个变量记录了对于错误数据的惩罚,所以我们用ξn来代替max,放到目标函数中去:

由于这里还有一个绝对值的运算,它也不是可微的运算,所以我们将其拆开成两个部分,并且设置了两个ξ变量,这样就把我们的条件变成了线性的,于是我们就可以使用二次规划来求解这个式子了:

上面我们得到了标准的Support Vector Regression,我们成为原始的SVR问题。

相比于SVM,这里还多出一个可调节的变量ε。

Support Vector Regression的对偶问题

下面我们使用拉格朗日乘子来化简有条件的最优化问题,分别使用两个拉格朗日乘数α对应两个ξ:

接下来,我们将待优化的目标函数和条件写成拉格朗日函数,然后对其中的变量做微分,再使用KKT条件来替换,和之前介绍SVM的过程是很相似的,下面只给出几个重要的结果:

我们通过对比对偶SVM和对偶SVR来阐述其实这些对偶问题是有迹可循的。

经过以上的步骤求解,我们希望得到最后的结果是稀疏的,那我们来看看什么时候β为0。

当数据在tube中的时候,两个误差变量ξ都为0,那么由松弛条件(complementary slackness)得到两个α为0,这样最终得到的β为0,就可以保证支持向量的稀疏特点,只有在tube外和刚好在tube上的数据才是支持向量。

对Kernel模型的回顾

线性模型

在最初介绍的线性模型中,我们介绍了PLA算法、线性回归(带有正则项的称为Ridge Regression)、逻辑回归,这三个模型分别对应三种不同的误差函数。在最近的博文中我们又介绍了线性软间隔SVM,它也是解决线性的问题,它是通过二次规划来解决的。如果要解决回归的问题,我们还介绍了支持向量回归模型,它是通过tube的误差和二次规划来解决的。

Kernel模型

Kernel的模型我们介绍了SVM和SVR,它们都是使用二次规划来解决化简的对偶问题。我们还介绍了将线性回归变成kernel的方法,即使用表示定理来推导其kernel的形式,核逻辑回归也是用的大体类似的方法。我们还使用概率SVM先做SVM,然后再做逻辑回归进行微调。

针对这些模型,我们很少使用PLA、linear SVR,因为其效果不如另外三个线性模型好。而kernel ridge regression和kernel logistic regression也是不经常用的,因为其系数大都不是0,这样在预测的时候会花费很多无谓的计算。

转载请注明作者Jason Ding及其出处

GitCafe博客主页(http://jasonding1354.gitcafe.io/)

Github博客主页(http://jasonding1354.github.io/)

CSDN博客(http://blog.csdn.net/jasonding1354)

简书主页(http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)

百度搜索jasonding1354进入我的博客主页

时间: 2024-10-04 23:12:15

【机器学习基础】支持向量回归的相关文章

机器学习基础2--评价回归模型

再次回到上一节的13次模型. 这个疯狂的曲线造成了一种现象过拟合. 很明显,你的房子不可能只值这么点价钱,所以看上去,这个13次模型甚至还不如一开始的二次模型. 那么现在有个疑问,我们应该怎样去选择最合适的模型? 我们想要准确预测,但是我们无法观测未来. 下面我们模拟一次预测过程: 1.我们随机将一些房子数据排除在外. 2.然后拟合剩下的数据 3.最后进行预测和推断. 术语: 训练集(training set):用来拟合模型的数据. 测试集(test set):排除出去的数据. 训练损失(tra

《机器学习技法》---支持向量回归

1 核型岭回归 首先,岭回归的形式如下: 在<核型逻辑回归>中我们介绍过一个定理,即以上这种形式的问题,求得的w都能表示为z的线性组合: 因此我们把w代入,问题就转化为求β的问题,同时引入核技巧: 求解这个问题,先求梯度: 令

【机器学习基础】Logistic回归基础

soft binary classification Logistics回归模型要解决的是分类问题,在之前的二元分类问题中,我们将数据分成正例和负例,但是像PLA算法一样,用单位阶跃函数来处理的这种瞬间跳跃的过程有时很难处理.于是,我们希望能得到正例的概率值是多少. logistic regression的假设 我们在PLA和线性回归算法中都用数据的加权来计算一个分数s,在logistic回归中,我们用sigmoid函数来将这个分数s转化成0到1的概率值. 所以,用下面的h(x)来表示一个假设,

【机器学习基础】将回归模型用于分类问题

线性模型回顾 我们回顾一下之前的三种线性模型,它们的共同点是都要对输入的数据x做一个加权的分数s. 下图表示了这三种不同的线性模型的表示方式.误差函数和求解最小的Ein的方法. 这里可以看出,PLA算法这种线性分类模型,在求解Ein的时候是很困难的,相对而言,线性回归和logistic回归都有各自求解Ein的方法,那么我们能不能用这两种回归的计算方法来帮助求解线性分类问题的Ein呢? 误差函数的比较 接下来,我们将这三个方法的误差函数进行一下变形,把y和s凑在一起,方便我们后面的分析.这里ys表

【机器学习基础】线性可分支持向量机

引言 接下里的一系列有关机器学习的博文,我将具体的介绍常用的算法,并且希望在这个过程中尽可能地结合实际应用更加深入的理解其精髓,希望所付出的努力能得到应有的回报. 接下来的有关机器学习基础博文主要根据机器学习技法课程的学习,围绕特征转换(feature transforms)这个主要工具,从以下三个方向进行探讨: 如果现在有很多特征转换可以使用的时候,我们该如何运用这些特征转换,如何控制特征转换中的复杂度的问题,从这个角度刺激了支持向量机(Support Vector Machine)算法的发展

机器学习-正则化(岭回归、lasso)和前向逐步回归

机器学习-正则化(岭回归.lasso)和前向逐步回归 本文代码均来自于<机器学习实战> 这三种要处理的是同样的问题,也就是数据的特征数量大于样本数量的情况.这个时候会出现矩阵不可逆的情况,为什么呢? 矩阵可逆的条件是:1. 方阵 2. 满秩 X.t*X必然是方阵(nxmxmxn=nxn,最终行列数是原来的X矩阵的列数,也就是特征数),但是要满秩的话,由于线性代数的一个结论,X.t*X的秩不会比X大,而X的秩是样本数和特征数中较小的那一个,所以,如果样本数小于特征数的话,X.t*X就不会是可逆的

【机器学习基础】混合和装袋

融合模型(Aggregation Model) 如果我们已经得到了一些特征或者假设,它们和我们做机器学习的目标有若干的一致性的话,我们可以将这些假设综合起来,让预测效果变得更好,这样的模型被称为融合模型. 融合模型是通过混合(mix)和组合(combine)一些假设的方式,得到更好的预测结果. 下面列举了四种不同的混合组合方式,并给出了数学表示形式: 当有多个假设时,我们选择检验误差最小的假设作为我们最信任的目标函数: 我们现在有多个假设,我们可以给每个假设一个投票的权利,综合所有假设的投票结果

第一章:机器学习基础

第一部分:分类 本书前两部分主要探讨监督学习(supervisedieaming).在监督学习的过程中,我们只需要给定输入样本集,机器就可以从中推演出指定目标变量的可能结果.监督学习相对比较简单,机器只需从输入数据中预测合适的模型,并从中计算出目标变量的结果.      监督学习一般使用两种类型的目标变量:标称型和数值型.标称型目标变量的结果只在有限目标集中取值,如真与假.动物分类集合{爬行类.鱼类.哺乳类.两栖类.植物.真菌};数值型目标变量则可以从无限的数值集合中取值,如0.100.42.0

【机器学习实战】第1章 机器学习基础

第1章 机器学习基础 机器学习 概述 机器学习就是把无序的数据转换成有用的信息. 获取海量的数据 从海量数据中获取有用的信息 我们会利用计算机来彰显数据背后的真实含义,这才是机器学习的意义. 机器学习 场景 例如:识别动物猫 模式识别(官方标准):人们通过大量的经验,得到结论,从而判断它就是猫. 机器学习(数据学习):人们通过阅读进行学习,观察它会叫.小眼睛.两只耳朵.四条腿.一条尾巴,得到结论,从而判断它就是猫. 深度学习(深入数据):人们通过深入了解它,发现它会'喵喵'的叫.与同类的猫科动物