支持向量回归(SVR)
方法描述
核心思想:
-
用线性模型( f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b)对回归问题进行拟合
-
确定的线性模型对应 w , b w,b w,b唯一确定一个超平面 w T x + b = 0 w^Tx+b=0 wTx+b=0
-
不同于一般线性模型,在超平面两侧定义间隔 ϵ \epsilon ϵ,在间隔带内则不计算损失,当且仅当f(x)与y之间的差距的绝对值大于 ϵ \epsilon ϵ才计算损失
- 通过最大化间隔带的宽度与最小化总损失来优化模型
相关概念
-
硬间隔
-
最大容忍偏差为 ϵ \epsilon ϵ,仅当 ∣ f ( x ) − y ∣ > ϵ |f(x)-y|>\epsilon ∣f(x)−y∣>ϵ时计算误差
-
即形式化目标为:
m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 n l ϵ ( f ( x i ) , y i ) l ϵ ( f ( x i ) , y i ) = { 0 ∣ f ( x i ) − y i ∣ < ϵ ∣ f ( x i ) − y i ∣ − ϵ e l s e \underset{w,b}{min}\ \frac12||w||^2+C\sum_{i=1}^nl_{\epsilon}(f(x_i),y_i)\\ l_{\epsilon}(f(x_i),y_i)=\begin{cases} 0\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ |f(x_i)-y_i|<\epsilon\\ |f(x_i)-y_i|-\epsilon\ \ \ \ \ \ \ \ \ \ \ \ else \end{cases} w,bmin 21∣∣w∣∣2+Ci=1∑nlϵ(f(xi),yi)lϵ(f(xi),yi)={0 ∣f(xi)−yi∣<ϵ∣f(xi)−yi∣−ϵ else
-
-
软间隔
-
实际任务中,往往很难直接确定合适的 ϵ \epsilon ϵ,使大部分点都在间隔带之内
-
因此引入松弛变量 ξ , ξ ˉ \xi,\bar\xi ξ,ξˉ,从而使函数的间隔要求变的放松,允许一些训练样本不在间隔内
对于任意样本 x i x_i xi,如果它在间隔带里面或者边缘上, ξ i = ( ξ i ˉ ) = 0 \xi_i=\bar{(\xi_i})=0 ξi=(ξiˉ)=0
样本 x i x_i xi在间隔带外,需要通过松弛变量将点移动到间隔带内,此处需要进行两个约束:能移进间隔,不会超出间隔
-
此时,所有样本满足条件
∣ y i − f ( x i ) ∣ ≤ ϵ + ξ i |y_i-f(x_i)|\leq\epsilon+\xi_i ∣yi−f(xi)∣≤ϵ+ξi -
优化目标可以重写为:
m i n w , b , ξ o , ξ ˉ i 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 n ( ξ i + ξ i ˉ ) s . t . f ( x i ) − y i ≤ ϵ + ξ i y i − f ( x i ) ≤ ϵ + ξ i ˉ ξ i > 0 , ξ i ˉ > 0 \underset{w,b,\xi_o,\bar\xi_i}{min}\ \frac12||w||^2+C\sum_{i=1}^n(\xi_i+\bar{\xi_i})\\ \begin{aligned} s.t. &f(x_i)-y_i\leq\epsilon+\xi_i\\ &y_i-f(x_i)\leq\epsilon+\bar{\xi_i}\\ &\xi_i>0,\ \bar{\xi_i}>0 \end{aligned} w,b,ξo,ξˉimin 21∣∣w∣∣2+Ci=1∑n(ξi+ξiˉ)s.t.f(xi)−yi≤ϵ+ξiyi−f(xi)≤ϵ+ξiˉξi>0, ξiˉ>0
-
方法推导
针对软间隔目标进行优化:
-
构建拉格朗日方程:
L ( w , b , ξ , ξ ˉ , α , α ˉ , μ , μ ˉ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 n ( ξ i + ξ i ˉ ) + ∑ i = 1 n α i ( f ( x i ) − y i − ϵ − ξ i ) + ∑ i = 1 n α i ˉ ( y i − f ( x i ) − ϵ − ξ i ˉ ) + ∑ i = 1 n μ i ( 0 − ξ i ) + ∑ i = 1 n μ i ˉ ( 0 − ξ i ˉ ) L(w,b,\xi,\bar{\xi},\alpha,\bar{\alpha},\mu,\bar\mu)=\\ \frac12||w||^2+C\sum_{i=1}^n(\xi_i+\bar{\xi_i})+\sum_{i=1}^n\alpha_i(f(x_i)-y_i-\epsilon-\xi_i)+\sum_{i=1}^n\bar{\alpha_i}(y_i-f(x_i)-\epsilon-\bar{\xi_i})+\sum_{i=1}^n\mu_i(0-\xi_i)+\sum_{i=1}^n\bar{\mu_i}(0-\bar{\xi_i}) L(w,b,ξ,ξˉ,α,αˉ,μ,μˉ)=21∣∣w∣∣2+Ci=1∑n(ξi+ξiˉ)+i=1∑nαi(f(xi)−yi−ϵ−ξi)+i=1∑nαiˉ(yi−f(xi)−ϵ−ξiˉ)+i=1∑nμi(0−ξi)+i=1∑nμiˉ(0−ξiˉ) -
求对 w w w偏导,令为0,得:
∂ L ∂ w = w + ∑ i = 1 n α i x i − ∑ i = 1 n α i ˉ x i = 0 有 : w = ∑ i = 1 n ( α i ˉ − α i ) x i \frac{\partial{L}}{\partial{w}}=w+\sum_{i=1}^n\alpha_ix_i-\sum_{i=1}^n\bar{\alpha_i}x_i=0\\ 有:w=\sum_{i=1}^n(\bar{\alpha_i}-\alpha_i)x_i ∂w∂L=w+i=1∑nαixi−i=1∑nαiˉxi=0有:w=i=1∑n(αiˉ−αi)xi
同时又有其他偏导约束:
∂ L ∂ b = ∑ i = 1 n α i − ∑ i = 1 n α i ˉ = 0 \frac{\partial{L}}{\partial{b}}=\sum_{i=1}^n\alpha_i-\sum_{i=1}^n\bar{\alpha_i}=0\\ ∂b∂L=i=1∑nαi−i=1∑nαiˉ=0 -
同时,满足KKT条件:
α i ∗ ( f ( x i ∗ ) − y i ∗ − ϵ − ξ i ∗ ) = 0 α i ∗ ˉ ( f ( x i ∗ ) − y i ∗ − ϵ − ξ i ∗ ˉ ) = 0 α i ∗ α i ∗ ˉ = 0 , ξ i ∗ ξ i ∗ ˉ = 0 ( C − α i ∗ ) ξ i ∗ = 0 , ( C − α i ∗ ˉ ) ξ i ∗ ˉ = 0 \alpha_i^*(f(x_i^*)-y_i^*-\epsilon-\xi_i^*)=0\\ \bar{\alpha_i^*}(f(x_i^*)-y_i^*-\epsilon-\bar{\xi_i^*})=0\\ \alpha_i^*\bar{\alpha_i^*}=0,\ \xi_i^*\bar{\xi_i^*}=0\\ (C-\alpha_i^*)\xi_i^*=0,\ (C-\bar{\alpha_i^*})\bar{\xi_i^*}=0 αi∗(f(xi∗)−yi∗−ϵ−ξi∗)=0αi∗ˉ(f(xi∗)−yi∗−ϵ−ξi∗ˉ)=0αi∗αi∗ˉ=0, ξi∗ξi∗ˉ=0(C−αi∗)ξi∗=0, (C−αi∗ˉ)ξi∗ˉ=0 -
在 α ∗ , α ∗ ˉ \alpha^*,\bar{\alpha^*} α∗,α∗ˉ确定情况下,有:
w ∗ = ∑ i = 1 n ( α i ˉ − α i ) x i b ∗ = y i ∗ − w ∗ T x w^*=\sum_{i=1}^n(\bar{\alpha_i}-\alpha_i)x_i\\ b^*=y_i^*-{w^*}^Tx w∗=i=1∑n(αiˉ−αi)xib∗=yi∗−w∗Tx -
SVR的解形如:
f ( x ) = ∑ i = 1 n ( α i ˉ − α i ) x i T ⋅ x + b f(x)=\sum_{i=1}^n(\bar{\alpha_i}-\alpha_i)x_i^T·x+b f(x)=i=1∑n(αiˉ−αi)xiT⋅x+b
满足 α i ˉ − α i ≠ 0 \bar{\alpha_i}-\alpha_i\neq0 αiˉ−αi=0的样本(间隔带之外样本)是SVR的支持向量,即 w w w可以视作支持向量线性组合 -
为完成优化,通过SMO方法求解
m i n α , α ˉ L \underset{\alpha,\bar{\alpha}}{min}\ L α,αˉmin L
得到 α ∗ , α ∗ ˉ \alpha^*,\bar{\alpha^*} α∗,α∗ˉ,计算 w = ∑ i = 1 n ( α i ˉ − α i ) x i w=\sum_{i=1}^n(\bar{\alpha_i}-\alpha_i)x_i w=∑i=1n(αiˉ−αi)xi
方法流程
- 构造输入数据矩阵 X = [ x 1 , x 2 , . . . , x n ] X=[x_1,x_2,...,x_n] X=[x1,x2,...,xn],标签矩阵 Y = [ y 1 , y 2 , . . . , y n ] T Y=[y_1,y_2,...,y_n]^T Y=[y1,y2,...,yn]T
- 构造拉格朗日方程L,并用SMO方法求解令 L L L最小的 α ∗ 与 α ∗ ˉ \alpha^*与\bar{\alpha^*} α∗与α∗ˉ
- 计算 w ∗ = ∑ i = 1 n ( α i ˉ − α i ) x i w*=\sum_{i=1}^n(\bar{\alpha_i}-\alpha_i)x_i w∗=∑i=1n(αiˉ−αi)xi与 b ∗ = y i ∗ − w ∗ T x b^*=y_i^*-{w^*}^Tx b∗=yi∗−w∗Tx
- 得到SVR模型: f ( x ) = w T x + b ∗ f(x)=w^Tx+b^* f(x)=wTx+b∗