前面提到,对于回归问题,
核岭回归,即最小二乘SVM(LSSVM),
β
β
的值大部分不为0,其支持向量非常多,也就是稠密的,而并不像soft-SVM中的
α
α
一样,大部分
α
α
`为0. 支持向量回归(SVR)模型可以解决这个问题。
1 敏感度损失函数
为了得到,岭回归得到的是稠密的 β β ,本质上是其采用了最小二乘损失,为了得到稀疏的支持向量回归,首先引入tube回归中的敏感度损失(insensitive loss)。
上图有三个子图,第一个图是tube回归模型,第二个图是线性回归模型,第三个图两个模型的损失函数比较。
敏感度损失的思想是设置一个敏感度 ϵ>0 ϵ > 0 :
- 当 f(x) f ( x ) 于 y y 的差别绝对值 小于 敏感度 时,我们不计损失,此时损失值 err(y,f(x)) e r r ( y , f ( x ) ) 为 0.
- 当 f(x) f ( x ) 于 y y 的差别绝对值 大于 敏感度 时,将损失值计算为 “ f(x) f ( x ) 于 y y 的差别绝对值 敏感度 ϵ ϵ ”
这个思想在图上可以直观地看出来,图1中红色竖直线代表损失,蓝色阴影代表 2ϵ 2 ϵ 的间隔带,样本落入此带,应认为是正确预测,损失为0;落入带外的样本的损失为样本到隔离带边界的距离,这个距离为“ f(x) f ( x ) 于 y y 的差别绝对值 敏感度 ϵ ϵ ”
上面思想用公式表示出来,可以表示为:
- |y−f(x)|≤ϵ, err(y,f(x))=0 | y − f ( x ) | ≤ ϵ , e r r ( y , f ( x ) ) = 0
- |y−f(x)|>ϵ, err(y,f(x))=|y−f(x)|−ϵ | y − f ( x ) | > ϵ , e r r ( y , f ( x ) ) = | y − f ( x ) | − ϵ
这个分段函数可以写成:
err(y,f(x))=max(0,|y−f(x)|−ϵ)
e
r
r
(
y
,
f
(
x
)
)
=
m
a
x
(
0
,
|
y
−
f
(
x
)
|
−
ϵ
)
2 支持向量回归模型的导出
我们知道,标准的软间隔SVM问题可以转化成L2正则+合页损失函数的无约束问题:
min w,b 12||w||2+C∑Ni=1max(0,1−yi(w⋅xi+b)) (1)
m
i
n
w
,
b
1
2
|
|
w
|
|
2
+
C
∑
i
=
1
N
m
a
x
(
0
,
1
−
y
i
(
w
⋅
x
i
+
b
)
)
(
1
)
其中,松弛变量 margin violation
ξi=max(0,1−yi(w⋅xi+b))
ξ
i
=
m
a
x
(
0
,
1
−
y
i
(
w
⋅
x
i
+
b
)
)
现在把合页损失函数换成敏感度损失函数,可以得到支持向量回归的无约束条件形式:
min w,b 12||w||2+C∑Ni=1max(0,|w⋅xi+b−yi|−ϵ) (2) m i n w , b 1 2 | | w | | 2 + C ∑ i = 1 N m a x ( 0 , | w ⋅ x i + b − y i | − ϵ ) ( 2 )
引入松弛变量 ξi=max(0,|w⋅xi+b−yi|−ϵ) ξ i = m a x ( 0 , | w ⋅ x i + b − y i | − ϵ ) , ξi≥0 ξ i ≥ 0 转化成有约束问题
min w,b, ξ 12||w||2+C∑Ni=1ξi m i n w , b , ξ 1 2 | | w | | 2 + C ∑ i = 1 N ξ i
s.t. |w⋅xi+b−yi|−ϵ≤ξi,ξi≥0 s . t . | w ⋅ x i + b − y i | − ϵ ≤ ξ i , ξ i ≥ 0
记:
1. 目标函数和软间隔svm形式相同
2. 约束条件是损失值(红色线)必须小于等于松弛变量
ξi
ξ
i
,其中损失值等于
f(x)
f
(
x
)
于
y
y
的差别绝对值 减去 敏感度 ,公式表示为
|f(xi)−yi|−ϵ≤ξi,ξi≥0
|
f
(
x
i
)
−
y
i
|
−
ϵ
≤
ξ
i
,
ξ
i
≥
0
可以看到约束条件并不是凸函数,进一步转化为:
min w,b, ξ 12||w||2+C∑Ni=1(ξ∨i+ξ∧i) m i n w , b , ξ 1 2 | | w | | 2 + C ∑ i = 1 N ( ξ i ∨ + ξ i ∧ )
s.t. −ϵ−ξ∨i≤w⋅xi+b−yi≤ξ∧i+ϵ s . t . − ϵ − ξ i ∨ ≤ w ⋅ x i + b − y i ≤ ξ i ∧ + ϵ
ξ∨i≥0,ξ∧i≥0 ξ i ∨ ≥ 0 , ξ i ∧ ≥ 0
其中, ξ∧i ξ i ∧ 表示下图中在敏感度隔离带上方的损失, ξ∨i ξ i ∨ 表示下图中在敏感度隔离带下方的损失。
我们最终得到的SVR模型为:
min w,b, ξ∨, ξ∧ 12||w||2+C∑Ni=1(ξ∨i+ξ∧i) m i n w , b , ξ ∨ , ξ ∧ 1 2 | | w | | 2 + C ∑ i = 1 N ( ξ i ∨ + ξ i ∧ )
s.t. yi−f(xi)≤ξ∧i+ϵ s . t . y i − f ( x i ) ≤ ξ i ∧ + ϵ
f(xi)−yi≤ϵ+ξ∨i f ( x i ) − y i ≤ ϵ + ξ i ∨
ξ∨i≥0,ξ∧i≥0,i=1,2…,N ξ i ∨ ≥ 0 , ξ i ∧ ≥ 0 , i = 1 , 2 … , N
3 对偶形式的导出
写出拉格朗日函数L.
然后分别对 w,b, ξ∨, ξ∧ w , b , ξ ∨ , ξ ∧ 求偏导数并令其为0,可得:
w w 仍然是输入的线性组合,系数是拉格朗日乘子 ( α∧−α∨) ( α ∧ − α ∨ )
w=∑Ni=0( α∧i−α∨i)⋅xi=∑Ni=0βi⋅xi w = ∑ i = 0 N ( α i ∧ − α i ∨ ) ⋅ x i = ∑ i = 0 N β i ⋅ x i
对b求偏导会得到一个约束条件,这可以看成 是 yi y i 等于1,得:
0=∑Ni=0( α∧−α∨) 0 = ∑ i = 0 N ( α ∧ − α ∨ )
C 等于两类拉格朗日乘子的和:
C=(α∧i+μ∧i) C = ( α i ∧ + μ i ∧ )
C=(α∨i+μ∨i) C = ( α i ∨ + μ i ∨ )
重新代入拉格朗日函数,得到对偶问题:
4 KKT条件导出支持向量
上诉过程要满足KKT条件,现在可以根据KKT条件中的互补松弛条件推导出b及支持向量的等价关系,进而得到整个模型的形式。
互补松弛条件如下:
对于在2
ϵ
ϵ
的隔离带内的点,必然有
|y−f(x)|−ϵ≤0
|
y
−
f
(
x
)
|
−
ϵ
≤
0
且
ξ=0
ξ
=
0
.那么可以得到:
由互补松弛条件,得到 ( α∧i−α∨i)=0 ( α i ∧ − α i ∨ ) = 0
因此,支持向量是 ( α∧i−α∨i)≠0 ( α i ∧ − α i ∨ ) ≠ 0 的样本点,由此我们获得稀疏的 βi=( α∧i−α∨i) β i = ( α i ∧ − α i ∨ ) 。
5 KKT条件导出b的值
在求解完对偶问题后,只需要选取一个满足 0<α∨i<C 0 < α i ∨ < C 的样本,并通过下式求解b。
b∗=yj+ϵ−∑Ni=1β∗iyiK(xi⋅xj) b ∗ = y j + ϵ − ∑ i = 1 N β i ∗ y i K ( x i ⋅ x j )
证明过程利用了两个互补松弛条件。可参看软间隔SVM。
参考书籍:林轩田机器学习技法 周志华机器学习