文章目录
支持向量回归
传统回归模型如线性回归,对于样本 ( x , y ) (x,y) (x,y)是直接基于模型,通过预测值 f ( x i ) y f(x_i){y} f(xi)y和真实值 y y y之间的差别计算损失,并且当 f ( x i ) y = y f(x_i){y}=y f(xi)y=y时损失才为零。
支持向量回归(support vector regression, SVR)则可以容忍 f ( x i ) y f(x_i){y} f(xi)y和 y y y之间有最多 ϵ \epsilon ϵ的偏差,即当 ∣ f ( x i ) y − y ∣ > ϵ |f(x_i){y}-y|>\epsilon ∣f(xi)y−y∣>ϵ的时候才计算损失,这相当于以 f ( x i ) y f(x_i){y} f(xi)y为中心,构建了一个宽度为 2 ϵ 2\epsilon 2ϵ的间隔带,如果样本落入间隔带,则他的分类就是正确的。
支持向量回归学习目标
- 支持向量机和支持向量回归的优化问题
- 支持向量回归目标函数的对偶形式
- 支持向量回归模型系数的稀疏性
- 核支持向量回归
- 支持向量机的优缺点
支持向量回归详解
支持向量机目标函数优化问题回顾
线性可分SVM目标函数优化问题为
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ & \underbrace{…
线性SVM由于在目标函数中加入了松弛因子
ξ
i
>
0
\xi_i>0
ξi>0,目标函数优化问题为
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ & \underbrace{…
支持向量回归损失度量函数
支持向量回归由于有一个间隔带,因此它的损失度量函数为
l
(
f
(
x
i
)
,
y
i
)
=
{
0
,
i
f
∣
f
(
x
i
)
−
y
i
∣
≤
ϵ
∣
f
(
x
i
)
−
y
i
∣
−
ϵ
,
i
f
∣
f
(
x
i
)
−
y
i
∣
>
ϵ
l(f(x_i),y_i) = \begin{cases} 0, & if\,|f(x_i)-y_i|\leq\epsilon \\ |f(x_i)-y_i|-\epsilon, & if\,|f(x_i)-y_i|>\epsilon \\ \end{cases}
l(f(xi),yi)={0,∣f(xi)−yi∣−ϵ,if∣f(xi)−yi∣≤ϵif∣f(xi)−yi∣>ϵ
支持向量回归目标函数优化问题
由于SVR的间隔带是自己引入的,所以SVR的目标函数变为
min
⏟
ω
,
b
1
2
∣
∣
ω
∣
∣
2
+
C
∑
i
=
1
m
l
(
f
(
x
i
)
−
y
i
)
\underbrace{\min}_{\omega,b}\,{\frac{1}{2}}{||\omega||}^2 + C\sum_{i=1}^ml(f(x_i)-y_i)
ω,b
min21∣∣ω∣∣2+Ci=1∑ml(f(xi)−yi)
如果和线性SVM一样引入松弛因子,但是由于我们的误差度量中的
∣
f
(
x
i
)
−
y
i
∣
≤
ϵ
|f(x_i)-y_i|\leq\epsilon
∣f(xi)−yi∣≤ϵ是绝对值小于,因此这个不等式其实是两个不等式,则SVR需要引入两个松弛因子
ξ
i
\xi_i
ξi和
ξ
i
^
\hat{\xi_i}
ξi^,则SVR的优化问题将变成
min
⏟
ω
,
b
,
ξ
i
,
ξ
i
^
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
(
ξ
i
+
ξ
i
^
)
\underbrace{\min}_{\omega,b,\xi_i,\hat{\xi_i}}{\frac{1}{2}}||w||^2+C\sum_{i=1}^m(\xi_i+\hat{\xi_i})
ω,b,ξi,ξi^
min21∣∣w∣∣2+Ci=1∑m(ξi+ξi^)
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ s.t. & f(x_i)-…
对SVR的优化问题引入拉格朗日乘子
μ
i
≥
0
,
μ
i
^
≥
0
,
α
i
≥
0
,
α
i
^
≥
0
\mu_i\geq0,\hat{\mu_i}\geq0,\alpha_i\geq0,\hat{\alpha_i}\geq0
μi≥0,μi^≥0,αi≥0,αi^≥0,通过拉格朗日乘子法即可得到拉格朗日函数
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ & L(w,b,\alpha…
支持向量回归目标函数对偶形式
通过拉格朗日即可得到支持向量回归目标函数的原始形式
m
i
n
⏟
w
,
b
,
ξ
i
,
ξ
i
^
m
a
x
⏟
μ
i
≥
0
,
μ
i
^
≥
0
,
α
i
≥
0
,
α
i
^
≥
0
L
(
w
,
b
,
α
,
α
^
,
ξ
,
ξ
^
,
μ
,
μ
^
)
\underbrace{min}_{w,b,\xi_i,\hat{\xi_i}} \quad \underbrace{max}_{\mu_i\geq0,\hat{\mu_i}\geq0,\alpha_i\geq0,\hat{\alpha_i}\geq0} L(w,b,\alpha,\hat{\alpha},\xi,\hat{\xi},\mu,\hat{\mu})
w,b,ξi,ξi^
minμi≥0,μi^≥0,αi≥0,αi^≥0
maxL(w,b,α,α^,ξ,ξ^,μ,μ^)
可以发现支持向量回归的目标函数的原始形式也满足KTT条件,即可以通过拉格朗日对偶将我们的问题转化为等价的对偶问题,即
m
a
x
⏟
μ
i
≥
0
,
μ
i
^
≥
0
,
α
i
≥
0
,
α
i
^
≥
0
m
i
n
⏟
w
,
b
,
ξ
i
,
ξ
i
^
L
(
w
,
b
,
α
,
α
^
,
ξ
,
ξ
^
,
μ
,
μ
^
)
\underbrace{max}_{\mu_i\geq0,\hat{\mu_i}\geq0,\alpha_i\geq0,\hat{\alpha_i}\geq0} \quad \underbrace{min}_{w,b,\xi_i,\hat{\xi_i}}L(w,b,\alpha,\hat{\alpha},\xi,\hat{\xi},\mu,\hat{\mu})
μi≥0,μi^≥0,αi≥0,αi^≥0
maxw,b,ξi,ξi^
minL(w,b,α,α^,ξ,ξ^,μ,μ^)
首先求优化函数对让
w
,
b
,
ξ
i
,
ξ
i
^
{w,b,\xi_i,\hat{\xi_i}}
w,b,ξi,ξi^的极小值,再求拉格朗日乘子
μ
i
,
μ
i
^
,
α
i
,
α
i
^
{\mu_i,\hat{\mu_i},\alpha_i,\hat{\alpha_i}}
μi,μi^,αi,αi^的极大值,即先得到拉格朗日函数
L
(
w
,
b
,
α
,
α
^
,
ξ
,
ξ
^
,
μ
,
μ
^
)
L(w,b,\alpha,\hat{\alpha},\xi,\hat{\xi},\mu,\hat{\mu})
L(w,b,α,α^,ξ,ξ^,μ,μ^)分别对
w
,
b
,
ξ
i
,
ξ
i
^
w,b,\xi_i,\hat{\xi_i}
w,b,ξi,ξi^求偏导为0可得
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ & w = \sum_{i=…
将拉格朗日函数对
w
,
b
,
ξ
i
,
ξ
i
^
w,b,\xi_i,\hat{\xi_i}
w,b,ξi,ξi^的偏导代入拉格朗日函数,即可得SVR的对偶问题
m
a
x
⏟
α
,
α
^
∑
i
=
1
m
y
i
(
α
i
^
−
α
i
)
−
ϵ
(
α
i
^
+
α
i
)
−
1
2
∑
i
=
1
m
∑
j
=
1
m
(
α
i
^
−
α
i
)
(
α
i
^
−
α
j
)
x
i
T
x
j
\underbrace{max}_{\alpha,\hat{\alpha}} \sum_{i=1}^my_i(\hat{\alpha_i}-\alpha_i)-\epsilon(\hat{\alpha_i}+\alpha_i) - \frac{1}{2} \sum_{i=1}^m\sum_{j=1}^m(\hat{\alpha_i}-\alpha_i)(\hat{\alpha_i}-\alpha_j)x_i^Tx_j
α,α^
maxi=1∑myi(αi^−αi)−ϵ(αi^+αi)−21i=1∑mj=1∑m(αi^−αi)(αi^−αj)xiTxj
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ s.t. & \sum_{i…
对于上述SVR的目标函数的对偶形式取对数,即可变成最小化目标函数的优化问题,即
m
i
n
⏟
α
,
α
^
−
∑
i
=
1
m
y
i
(
α
i
^
−
α
i
)
+
ϵ
(
α
i
^
+
α
i
)
+
1
2
∑
i
=
1
m
∑
j
=
1
m
(
α
i
^
−
α
i
)
(
α
i
^
−
α
j
)
x
i
T
x
j
\underbrace{min}_{\alpha,\hat{\alpha}} -\sum_{i=1}^my_i(\hat{\alpha_i}-\alpha_i)+\epsilon(\hat{\alpha_i}+\alpha_i) + \frac{1}{2} \sum_{i=1}^m\sum_{j=1}^m(\hat{\alpha_i}-\alpha_i)(\hat{\alpha_i}-\alpha_j)x_i^Tx_j
α,α^
min−i=1∑myi(αi^−αi)+ϵ(αi^+αi)+21i=1∑mj=1∑m(αi^−αi)(αi^−αj)xiTxj
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ s.t. & \sum_{i…
对于这个目标函数,依然可以使用SMO算法求出对应的
α
i
,
α
i
^
\alpha_i,\hat{\alpha_i}
αi,αi^,进而求出回归模型的
w
,
b
w,b
w,b。
支持向量回归模型系数的稀疏性
在对支持向量回归的目标函数优化的时候,我们假设该目标函数满足KKT条件,该KKT条件为
{
α
i
(
f
(
x
i
)
−
y
i
−
ϵ
−
ξ
i
)
=
0
,
α
i
^
(
y
i
−
f
(
x
i
)
−
ϵ
−
ξ
i
^
)
=
0
,
α
i
α
i
^
=
0
,
ξ
i
ξ
i
^
=
0
,
(
C
−
α
i
)
ξ
i
=
0
,
(
C
−
α
i
^
ξ
i
^
=
0
\begin{cases} \alpha_i(f(x_i)-y_i-\epsilon-\xi_i)=0, \\ \hat{\alpha_i}(y_i-f(x_i)-\epsilon-\hat{\xi_i})=0, \\ \alpha_i\hat{\alpha_i}=0,\xi_i\hat{\xi_i}=0, \\ (C-\alpha_i)\xi_i=0,(C-\hat{\alpha_i}\hat{\xi_i}=0 \end{cases}
⎩⎪⎪⎪⎨⎪⎪⎪⎧α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
(
x
i
)
−
y
i
−
ϵ
−
ξ
i
=
0
f(x_i)-y_i-\epsilon-\xi_i=0
f(xi)−yi−ϵ−ξi=0的时候
α
i
\alpha_i
αi才可以为非0解,并且只有当
y
i
−
f
(
x
i
)
−
ϵ
−
ξ
i
^
=
0
y_i-f(x_i)-\epsilon-\hat{\xi_i}=0
yi−f(xi)−ϵ−ξi^=0的时候
α
i
^
\hat{\alpha_i}
αi^才可以为非0解。
首先根据松弛变量的定义,如果 ∣ f ( x i ) − y i − ϵ − ξ i ∣ < ϵ |f(x_i)-y_i-\epsilon-\xi_i|<\epsilon ∣f(xi)−yi−ϵ−ξi∣<ϵ,则样本点落在间隔带中,则 ξ i = 0 , ξ i ^ = 0 \xi_i=0,\hat{\xi_i}=0 ξi=0,ξi^=0,既可以得到 f ( x i ) − y i − ϵ − ξ i ≠ 0 , y i − f ( x i ) − ϵ − ξ i ^ ≠ 0 f(x_i)-y_i-\epsilon-\xi_i\neq0,y_i-f(x_i)-\epsilon-\hat{\xi_i}\neq0 f(xi)−yi−ϵ−ξi=0,yi−f(xi)−ϵ−ξi^=0,则可以得到 α i = 0 , α i ^ = 0 \alpha_i=0,\hat{\alpha_i}=0 αi=0,αi^=0,则 α i ^ − α i = 0 \hat{\alpha_i}-\alpha_i=0 αi^−αi=0。
即只有样本点 ( x i , y i ) (x_i,y_i) (xi,yi)不落入间隔带中才能使得相应的 α i \alpha_i αi和 α i ^ \hat{\alpha_i} αi^为非0解,并且由于样本点既不能同时在分隔超平面的两边,即 f ( x i ) − y i − ϵ − ξ i = 0 f(x_i)-y_i-\epsilon-\xi_i=0 f(xi)−yi−ϵ−ξi=0和 y i − f ( x i ) − ϵ − ξ i ^ = 0 y_i-f(x_i)-\epsilon-\hat{\xi_i}=0 yi−f(xi)−ϵ−ξi^=0不能同时存在,即 α i \alpha_i αi和 α i ^ \hat{\alpha_i} αi^至少有一个为0并且不能同时为0,则 α i ^ − α i ≠ 0 \hat{\alpha_i}-\alpha_i\neq0 αi^−αi=0。
假设
α
i
\alpha_i
αi已经通过SMO算法得到,则可以得到
w
=
∑
i
=
1
m
(
α
i
^
−
α
i
)
x
i
w=\sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)x_i
w=∑i=1m(αi^−αi)xi,即可得SVR的分离超平面为
f
(
x
)
=
∑
i
=
1
m
(
α
i
^
−
α
i
)
x
i
T
x
+
b
f(x) = \sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)x_i^Tx+b
f(x)=i=1∑m(αi^−αi)xiTx+b
从上式可以看出当样本点落在间隔带,由于
α
i
^
−
α
i
=
0
\hat{\alpha_i}-\alpha_i=0
αi^−αi=0,即
w
=
0
w=0
w=0,则
w
w
w不受这些间隔带内点的影响,对于间隔带外的样本点,则会对
w
w
w造成影响,即这些点为SVR的支持向量。并且由于SVR的支持向量仅仅是训练样本的一部分,所以SVR的解
w
w
w具有稀疏性。
SVR对于 b b b的求解类似于SVM,由于能得到多个 b b b值,所以最后对 b b b取平均值。
核支持向量回归
上一节得到了SVR的分离超平面为
f
(
x
)
=
∑
i
=
1
m
(
α
i
^
−
α
i
)
x
i
T
x
+
b
f(x) = \sum_{i=1}^m(\hat{\alpha_i}-\alpha_i)x_i^Tx+b
f(x)=i=1∑m(αi^−αi)xiTx+b
如果我们使用和SVM一样的核技巧,即对SVR训练数据做一个样本映射,即另
ϕ
(
x
)
\phi(x)
ϕ(x)表示
x
x
x映射后的特征向量。则分离超平面可以变为
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ f(x) & = \sum_…
其中
k
(
x
,
x
i
)
k(x,x_i)
k(x,xi)为核函数。
小结
SVR除了可以支持回归问题外,其他方面和SVM差不多,由于SVR也算作是SVM的一个分支,此处不多说什么,参考SVM即可。