支持向量机回归——vincen的学习笔记

你。 提交于 2020-02-29 00:01:54

1 前言

胡浩基老师的机器学习课程作业

SVMSVM推导类似,下面推导需要承认一个结论:

对于下述优化问题
minωf(ω) \min_{\omega}f(\omega)
s.ts.t
gi(ω)0(i=1,,k) ①g_i(\omega)\leqslant 0\quad (i = 1,\cdots,k)
hi(ω)=0(i=1,,l) ②h_i(\omega) = 0\quad (i = 1,\cdots,l)
f(ω)f(\omega)为凸函数,且gi(ω)g_i(\omega),hj(ω)h_j(\omega)是关于ω\omega的线性函数(i=1,,k;j=1,,li = 1,\cdots,k;j = 1,\cdots,l),原问题与其对偶问题等价。

下面的博客可以帮助简单了解何为原问题,对偶问题,KKTKKT条件。

拉格朗日对偶性(Lagrange duality)

看之前最好重温下数学分析中的隐函数存在定理与LagrangeLagrange乘子法。

下推导参考周志华老师的《机器学习》一书。

2 支持向量机回归

首先明确目标

输入:训练样本集X=(xi,yi)i=1N,yiRX = {(x_i,y_i)}_{i = 1\thicksim N},y_i\in R

欲得到形式为f(x)=ωTϕ(x)+bf(x)=\omega^T\phi(x)+b的回归模型

假设我们能容忍f(x)f(x)与真实标签值yy之间最多有ϵ\epsilon的偏差,即仅当f(x)f(x)yy之间的差别绝对值大于ϵ\epsilon时才计算损失。

我把西瓜书的图放上来帮助理解

在特征只有一维的情况下,

  • 图中的圆点代表训练样本,对每一个训练样本而言,作xx轴垂线,垂线与红线相交点的yy值即为模型对该样本标签的预测值。
  • 对红线上的每一个点,分别上下平移ϵ\epsilon所构成的两条虚线称为间隔带。
  • 于是,所有f(x)f(x)yy之间的差别绝对值小于ϵ\epsilon的点一定会落到图中长度为2ϵ2\epsilon的间隔带中,这部分点不需要计算误差。
  • 要注意区分ϵ\epsilonSVMSVM中的函数间隔,虚线与红线的距离大部分情形下并非ϵ\epsilon

于是SVRSVR模型可以表述如下

min(ω,b,ξ,ξi^)12ω2+Ci=1N(ξi+ξi^) \min_{(\omega,b,\xi,\hat{\xi_i})}\frac{1}{2}\|\omega\|^2+C\sum_{i=1}^N({\xi_i+\hat{\xi_i}})
s.ts.t
f(xi)yiϵ+ξi ①f(x_i)-y_i\leqslant\epsilon+\xi_i
yif(xi)ϵ+ξi^ ②y_i - f(x_i)\leqslant\epsilon+\hat{\xi_i}
ξi,ξi^0 ③ \xi_i,\hat{\xi_i} \geqslant 0
对于红线上方的训练样本xix_i,明显有ξi^=0\hat{\xi_i} = 0,红线下方的训练样本xjx_j,则有ξi=0\xi_i = 0

也许你会问为什么不利用一个松弛变量来描述上面的优化问题,比如下面这种样子
f(xi)yiϵ+ξi \mid f(x_i)-y_i\mid\leqslant\epsilon+\xi_i
的确上下两种描述是等价的,但是后续中我们对该优化问题的求解思路与SVMSVM是相同的,即将原问题转化为对偶问题(这样才能从形式看到核函数那个美丽的巧合),第二种形式的描述很明显与原问题的形式还是有一定的偏差的。

解释完了上面的符号含义问题,来说说让我理解过程中最为困惑的一件事,
我们来看目标函数的形式
min(ω,b,ξ,ξi^)12ω2+Ci=1N(ξi+ξi^) \min_{(\omega,b,\xi,\hat{\xi_i})}\frac{1}{2}\|\omega\|^2+C\sum_{i=1}^N({\xi_i+\hat{\xi_i}})
这与SVMSVM的软间隔形式几乎相同,但我们需要强调:原始的SVMSVM是用来解决分类问题的,它的出发点是使支持向量到平面的间隔最大化,一步步推导出了形如
minω12ω2 \min_{\omega}\frac{1}{2}\|\omega\|^2
的目标函数形式,可在回归问题中,我们还能从这个idea出发吗?

那是咋回事嘞,周大佬写错了??

说说我的理解

我们将SVRSVR的优化目标
min(ω,b,ξ,ξi^)12ω2+Ci=1N(ξi+ξi^) \min_{(\omega,b,\xi,\hat{\xi_i})}\frac{1}{2}\|\omega\|^2+C\sum_{i=1}^N({\xi_i+\hat{\xi_i}})
分两部分说明。

  • 12ω2\frac{1}{2}\|\omega\|^2部分并非是推导而来的,我将它理解为是一个规范化惩罚,偏差方差分解告诉我们方差过大会导致泛化误差的增大,也就是常说的过拟合,ω\|\omega\|过大会造成方差过大,这是我们不希望看到的。(这里跟RidgeRidgeLassoLasso的出发点是一样的)
  • Ci=1N(ξi+ξi^)C\sum_{i=1}^N({\xi_i+\hat{\xi_i}})部分我认为是损失衡量的主体,这里蕴含的想法我认为是使预测值与真实值偏差较大(f(x)yϵ|f(x)-y|\geqslant \epsilon)的那些训练样本的偏差尽可能小。(细品下和SVMSVM的想法还是蛮接近的)

大概说清楚初始优化问题的来源后,下面的推导方法基本上和SVMSVM类似了,虽然很麻烦,但还是写在这里,支持向量机最后的形式真的很漂亮。
min(ω,b,ξ,ξi^)12ω2+Ci=1N(ξi+ξi^) \min_{(\omega,b,\xi,\hat{\xi_i})}\frac{1}{2}\|\omega\|^2+C\sum_{i=1}^N({\xi_i+\hat{\xi_i}})
s.ts.t
f(xi)yiϵ+ξi ①f(x_i)-y_i\leqslant\epsilon+\xi_i
yif(xi)ϵ+ξi^ ②y_i - f(x_i)\leqslant\epsilon+\hat{\xi_i}
ξi,ξi^0 ③ \xi_i,\hat{\xi_i} \geqslant 0
老规矩,目标函数是个凸函数(你要不信可以用凸函数定义去证明下,最后用下CaucCauchyhy不等式就完事了),优化目标是决策变量的一次式(线性),还记得一开始承认下的结论吗?先把LagrangeLagrange函数写出来。

L(ω,b,α,α^,μ,μ^)=12ω2+Ci=1N(ξi+ξi^)i=1Nμiξi L(\omega,b,\alpha,\hat{\alpha},\mu,\hat{\mu})=\frac{1}{2}\|\omega\|^2+C\sum_{i=1}^N({\xi_i+\hat{\xi_i}})- \sum_{i=1}^N\mu_i\xi_i
i=1Nμi^ξi^+i=1Nαi(ωTϕ(xi)+byi1ξi) -\sum_{i=1}^N\hat{\mu_i}\hat{\xi_i}+\sum_{i=1}^N\alpha_i(\omega^T\phi(x_i)+b-y_i-1-\xi_i)
+i=1Nαi^(ωTϕ(xi)+byi1ξi^) +\sum_{i=1}^N\hat{\alpha_i}(\omega^T\phi(x_i)+b-y_i-1-\hat{\xi_i})
求下关于各向量的梯度
{Lω=0ω=i=1N(αi^αi)ϕ(xi)Lb=0i=1N(αi^αi)=0Lξi=0μi+αi=CLξi^=0μi^+αi^=C \begin{cases} \frac{\partial L}{\partial \omega} = 0\Rightarrow\omega = \sum_{i=1}^N(\hat{\alpha_i}-\alpha_i)\phi(x_i) \\ \frac{\partial L}{\partial b} = 0\Rightarrow \sum_{i=1}^N(\hat{\alpha_i}-\alpha_i) = 0 \\ \frac{\partial L}{\partial \xi_i} = 0\Rightarrow \mu_i+\alpha_i = C \\ \frac{\partial L}{\partial \hat{\xi_i}} = 0\Rightarrow \hat{\mu_i}+\hat{\alpha_i} = C \\ \end{cases}
这里用到了一些简单的矩阵求导公式:

  • ω2ω=ω\frac{\partial \|\omega\|^2}{\partial \omega}=\omega
  • ωTxω=x\frac{\partial \omega^Tx}{\partial \omega} = x

把上面求出的LL极小值点的必要条件带到LL里面去,转化成对偶问题

maxα,α^Θ(α,α^) \max_{\alpha,\hat{\alpha}}\Theta(\alpha,\hat{\alpha})
s.ts.t
i=1N(αi^αi)=0 ①\sum_{i=1}^N(\hat{\alpha_i}-\alpha_i) = 0
0αi,αi^C ②0 \leqslant\alpha_i,\hat{\alpha_i}\leqslant C

Θ(α,α^)\Theta(\alpha,\hat{\alpha})具体形式为
i=1N(αi^αi)yiϵi=1N(αi^+αi) \sum_{i=1}^N(\hat{\alpha_i}-\alpha_i)y_i-\epsilon\sum_{i=1}^N(\hat{\alpha_i}+\alpha_i)
12i=1Nj=1N(αi^αi)(αj^αj)ϕ(xi)Tϕ(xj) -\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}(\hat{\alpha_i}-\alpha_i)(\hat{\alpha_j}-\alpha_j)\phi(x_i)^T\phi(x_j)
简单解释下优化条件
第一个优化条件是求导产生的约束,而第二个优化条件是考虑以下两点得到的

  • 目标函数 Θ(α)\Theta(\alpha)不含μ\mu,考虑用不含μ\mu的约束表示原有的约束
  • μi^+αi^=C\hat{\mu_i}+\hat{\alpha_i} = Cμi+αi=C\mu_i+\alpha_i = C综合μ0\mu\geqslant0(不等约束引入的LagrangeLagrange有不小于0的限制,仔细看上面附的超链接)

Θ(α,α^)\Theta(\alpha,\hat{\alpha})高维映射的内积部分换成核函数形式
Θ(α,α^)=i=1N(αi^αi)yiϵi=1N(αi^+αi) \Theta(\alpha,\hat{\alpha}) = \sum_{i=1}^N(\hat{\alpha_i}-\alpha_i)y_i-\epsilon\sum_{i=1}^N(\hat{\alpha_i}+\alpha_i)
12i=1Nj=1N(αi^αi)(αj^αj)κ(xixj) -\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}(\hat{\alpha_i}-\alpha_i)(\hat{\alpha_j}-\alpha_j)\kappa({x_i}{x_j})
需要说明的是,这还是一个关于(α,α^)(\alpha,\hat{\alpha})的凸函数,用凸函数的求解方法求解出(α,α^)(\alpha,\hat{\alpha})后,回带入
ω=i=1N(αi^αi)ϕ(xi)\omega = \sum_{i=1}^N(\hat{\alpha_i}-\alpha_i)\phi(x_i)
于是超平面方程形式为
f(x)=i=1N(αi^αi)ϕ(xi)Tϕ(x)+b f(x)=\sum_{i=1}^N(\hat{\alpha_i}-\alpha_i)\phi(x_i)^T\phi(x)+b
高维空间内积更换为核函数
f(x)=i=1N(αi^αi)κ(xi,x)+b f(x)=\sum_{i=1}^N(\hat{\alpha_i}-\alpha_i)\kappa(x_i,x)+b
对于bb的求解,需要用到KKTKKT条件中的松弛互补条件

  • (Cαi)ξi=0(C-\alpha_i)\xi_i=0
  • αi(ωTϕ(xi)+byi1ξi)=0\alpha_i(\omega^T\phi(x_i)+b-y_i-1-\xi_i)=0
    取一个计算出的00<αi\alpha_i<CC,由第一个条件得ξi=0\xi_i = 0

带入第二式解得
b=yi+ϵj=1N(αj^αj)ϕ(xj)Tϕ(xi)b = y_i+\epsilon-\sum_{j=1}^{N}(\hat{\alpha_j}-\alpha_j)\phi(x_j)^T\phi(x_i)
=yi+ϵj=1N(αj^αj)κ(xj,xi) =y_i+\epsilon-\sum_{j=1}^{N}(\hat{\alpha_j}-\alpha_j)\kappa(x_j,x_i)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!