支持向量回归
现在我们来考虑支持向量机得回归问题
对于样本(x,y),传统的回归模型通常直接基于输出f(x)与真实输出y之间的差别来计算损失,当且仅当f(x)和y完全相同时,损失才为零。于此不同,支持向量回归(SVR)假设我们能容忍f(x)和y之间最多有ϵ的偏差,即仅当f(x)和y之间的差别绝对值大于ϵ时才计算损失。
- 于是SVR问题可形式化为
w,bmin21∣∣w∣∣2+Ci=1∑mℓϵ(f(xi)−yi)
其中C为正则化常数,ℓϵ是ϵ-不敏感损失函数。
ℓϵ(z)={0,∣z∣−ϵ,if∣z∣≤ϵotherwise
- 引入松弛变量ξi和ξi,式子重写为:
w,b,ξi,ξimin21∣∣w∣∣2+Ci=1∑m(ξi+ξi)s.t.f(xi)−yi≤ϵ+ξi,yi−f(xi)≤ϵ+ξi,ξi≥0,ξi≥0,i=1,2,...,m.
ϵ-不敏感损失函数
- 拉格朗日函数为:
L(w,b,α,α,ξ,ξ,μ,μ)=21∣∣w∣∣2+Ci=1∑m(ξi+ξi)−i=1∑mμiξi−i=1∑mμiξi+i=1∑mαi(f(xi)−yi−ϵ−ξi)+i=1∑mαi(yi−f(xi)−ϵ−ξi)
- 对w,b,ξi,ξi的偏导为零,可得
w=i=1∑m(αi−αi)xi,0=i=1∑m(αi−αi),C=αi+μi,C=αi+μi
- 带入上式得:
α,αmaxi=1∑myi(αi−αi)−ϵ(αi+αi)−21i=1∑mj=1∑m(αi−αi)(αj−αj)xiTxjs.t.i=1∑m(αi−αi)=0,0≤αi,αi≤C.
- 上式过程中需要满足KKT条件,即要求
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧αi(f(xi)−yi−ϵ−ξi)=0αi(yi−f(xi)−ϵ−ξi)=0αiαi=0ξiξi=0(C−αi)ξi=0(C−αi)ξi=0
当f(xi)−yi−ϵ−ξi=0时αi能取非零值,当且仅当f(xi)−yi−ϵ−ξi=0时αi能取非零值,换言之,仅当样本 (xi,yi)不落入ϵ-间隔带中,相应得αi,αi才能取非零值,此外约束f(xi)−yi−ϵ−ξi=0和yi−f(xi)−ϵ−ξi=0不能同时成立,因此αi,αi中至少有一个为零。
-
SVR的解形如:
f(x)=i=1∑m(αi−αi)xiTxi+b
落在ϵ-间隔带中的样本都满足αi=0且αi=0,使(αi−αi)̸=0的样本即为SVR的支持向量,他们必定落在ϵ-间隔带外。
- 对于,每个样本(xi,yi)都有(C−αi)ξi=0且αi(f(xi)−yi−ϵ−ξi)=0,于是在得到αi后0<αi<C,则必有ξi=0,进而有:
b=yi+ϵ−i=1∑m(αi−αi)xiTxi+b
可以选取多个满足条件0<αi<C的样本求解b后取平均值。
- 考虑映射形式:
ω=i=1∑m(αi−αi)ϕ(xi)
- 然后SVR可表示为:
f(x)=i=1∑m(αi−αi)k(x,xi)+b
k(x,xi)=ϕ(xi)Tϕ(xi)