SVM-支持向量机学习(5):SVR-支持向量回归

1. SVR的原始问题

前面谈的SVM,针对二分类问题。现在考虑回归问题。给定训练样本T, yiR ,希望学得一个回归模型 f(x)=wTx+b ,使得 f(x) 与 y 尽可能接近,w 和 b 是待确定的模型参数。

传统回归模型通常直接基于模型输出 f(x) 与真实输出 y 之间的差别来计算损失,当且仅当两者相等时,损失为0。

SVR,support vector regression,支持向量回归。其基本思想:可容忍 f(x) 与 y 之间的差别绝对值最多为 ε ,仅当两者差值大于 ε 才计算损失。相当于以 f(x) 为中心,构建了一个宽度为 2ε 的间隔带,若训练样本落入此隔离带,则认为预测正确。

SVM-支持向量机学习(5):SVR-支持向量回归_第1张图片

SVR问题可形式化为:

minw,b12||w||2+Ci=1Nlε(f(xi)yi)

C为正则化常数。 lε ε -不敏感损失函数:

lε(z)={0,|z|ε,if |z|  εotherwise

SVM-支持向量机学习(5):SVR-支持向量回归_第2张图片

像前面处理那样,引入松弛变量。考虑到间隔带两侧的松弛程度可有所不同,则有两个变量 ξi,ξ^i ,则上式可重写为:

minw,b12||w||2+Ci=1N(ξi+ξ^i)s.t.f(xi)yiε+ξiyif(xi)ε+ξ^iξi0,ξ^i0,i=1,...,N

这就是 的原始问题。

分类中,合页损失函数是单调的,只需要一个松弛变量。回归中损失函数类似于平方函数,两边可不一样,设两个。

2. SVR的对偶问题

引入拉格朗日乘子法,写出拉格朗日函数:

SVM-支持向量机学习(5):SVR-支持向量回归_第3张图片

求偏导并令其为0,可得:

SVM-支持向量机学习(5):SVR-支持向量回归_第4张图片

代入 L ,即可得到 SVR 的对偶问题:

SVM-支持向量机学习(5):SVR-支持向量回归_第5张图片

上述过程需满足KKT条件,即要求:

SVM-支持向量机学习(5):SVR-支持向量回归_第6张图片

当且仅当 f(xi)yiεξi=0 时, αi 能取非零值。 yif(xi)εξi=0 时, α^i 能取非零值。换言之,仅当样本不落入 ε -区间隔带中,相应的 α 才可取非零值。 αi α^i 至少一个为0。

当样本落在间隔带中时, αi = α^i = 0。

SVR的解为:

这里写图片描述

能使上式中的 αi - α^i != 0的样本,即为SVR的支撑向量。必落在 ε -区间隔带之外。SVR的支撑向量仅是训练样本的一部分,其解仍具有稀疏性。

得到 αi 后,若 0<αi<C ,则必有 ξi=0 ,进而有:

这里写图片描述

有多组b的解。实际中可采用一种鲁棒性的办法:选取多个或所有满足条件的乘子,求解b后取均值。


也可方便的推广到非线性情况:
这里写图片描述

利用核函数技巧,得到:
这里写图片描述

你可能感兴趣的:(机器学习笔记)