SVM回归模型损失函数
-
对于回归模型,要让训练集中的每个点(𝑥𝑖,𝑦𝑖)尽量拟合到一个线性模型𝑦𝑖 =𝑤∙𝜙(𝑥𝑖)+𝑏。
-
定义一个常量𝜖>0,对于某一个点, SVM回归模型的损失函数为:
e r r ( x i , y i ) = { 0 ∣ y i − w ∙ ϕ ( x i ) − b ∣ ≤ ϵ ∣ y i − w ∙ ϕ ( x i ) − b ∣ − ϵ ∣ y i − w ∙ ϕ ( x i ) − b ∣ > ϵ err(x_i,y_i) = \begin{cases} 0 & {|y_i - w \bullet \phi(x_i ) -b| \leq \epsilon}\\ |y_i - w \bullet \phi(x_i ) -b| - \epsilon & {|y_i - w \bullet \phi(x_i ) -b| > \epsilon} \end{cases} err(xi,yi)={0∣yi−w∙ϕ(xi)−b∣−ϵ∣yi−w∙ϕ(xi)−b∣≤ϵ∣yi−w∙ϕ(xi)−b∣>ϵ
-
如果是均方差,只要𝑦𝑖−𝑤∙𝜙(𝑥𝑖)−𝑏≠0,那么就会有损失。
在蓝色条带里面的点都是没有损失的,但是外面的点的是有损失的,损失大小为红色线的长度。
SVM回归模型
-
定义SVM目标函数为
m i n 1 2 ∣ ∣ w ∣ ∣ 2 2 s . t ∣ y i − w ∙ ϕ ( x i ) − b ∣ ≤ ϵ ( i = 1 , 2 , . . . m ) min\;\; \frac{1}{2}||w||_2^2 \;\; s.t \;\; |y_i - w \bullet \phi(x_i ) -b| \leq \epsilon (i =1,2,...m) min21∣∣w∣∣22s.t∣yi−w∙ϕ(xi)−b∣≤ϵ(i=1,2,...m)
-
和分类模型相似,回归模型对每个样本(𝑥𝑖,𝑦𝑖)加入松弛变量𝜉𝑖 ≥ 0:
m
i
n
1
2
∣
∣
w
∣
∣
2
2
+
C
∑
i
=
1
m
(
ξ
i
∨
+
ξ
i
∧
)
min\;\; \frac{1}{2}||w||_2^2 + C\sum\limits_{i=1}^{m}(\xi_i^{\lor}+ \xi_i^{\land})
min21∣∣w∣∣22+Ci=1∑m(ξi∨+ξi∧)
s
.
t
.
−
ϵ
−
ξ
i
∨
≤
y
i
−
w
∙
ϕ
(
x
i
)
−
b
≤
ϵ
+
ξ
i
∧
s.t. \;\;\; -\epsilon - \xi_i^{\lor} \leq y_i - w \bullet \phi(x_i ) -b \leq \epsilon + \xi_i^{\land}
s.t.−ϵ−ξi∨≤yi−w∙ϕ(xi)−b≤ϵ+ξi∧
ξ
i
∨
≥
0
,
ξ
i
∧
≥
0
(
i
=
1
,
2
,
.
.
.
,
m
)
\xi_i^{\lor} \geq 0, \;\; \xi_i^{\land} \geq 0 \;(i = 1,2,..., m)
ξi∨≥0,ξi∧≥0(i=1,2,...,m)
-
用拉格朗日函数将目标优化函数变成无约束的形式
L ( w , b , α ∨ , α ∧ , ξ i ∨ , ξ i ∧ , μ ∨ , μ ∧ ) = 1 2 ∣ ∣ w ∣ ∣ 2 2 + C ∑ i = 1 m ( ξ i ∨ + ξ i ∧ ) + ∑ i = 1 m α ∨ ( − ϵ − ξ i ∨ − y i + L(w,b,\alpha^{\lor}, \alpha^{\land}, \xi_i^{\lor}, \xi_i^{\land}, \mu^{\lor}, \mu^{\land}) = \frac{1}{2}||w||_2^2 + C\sum\limits_{i=1}^{m}(\xi_i^{\lor}+ \xi_i^{\land}) + \sum\limits_{i=1}^{m}\alpha^{\lor}(-\epsilon - \xi_i^{\lor} -y_i + L(w,b,α∨,α∧,ξi∨,ξi∧,μ∨,μ∧)=21∣∣w∣∣22+Ci=1∑m(ξi∨+ξi∧)+i=1∑mα∨(−ϵ−ξi∨−yi+ w ∙ ϕ ( x i ) + b ) + ∑ i = 1 m α ∧ ( y i − w ∙ ϕ ( x i ) − b − ϵ − ξ i ∧ ) − ∑ i = 1 m μ ∨ ξ i ∨ − ∑ i = 1 m μ ∧ ξ i ∧ w \bullet \phi(x_i) + b) + \sum\limits_{i=1}^{m}\alpha^{\land}(y_i - w \bullet \phi(x_i ) - b -\epsilon - \xi_i^{\land}) - \sum\limits_{i=1}^{m}\mu^{\lor}\xi_i^{\lor} - \sum\limits_{i=1}^{m}\mu^{\land}\xi_i^{\land} w∙ϕ(xi)+b)+i=1∑mα∧(yi−w∙ϕ(xi)−b−ϵ−ξi∧)−i=1∑mμ∨ξi∨−i=1∑mμ∧ξi∧
其中 μ ∨ ≥ 0 , μ ∧ ≥ 0 , α i ∨ ≥ 0 , α i ∧ ≥ 0 \mu^{\lor} \geq 0, \mu^{\land} \geq 0, \alpha_i^{\lor} \geq 0, \alpha_i^{\land} \geq 0 μ∨≥0,μ∧≥0,αi∨≥0,αi∧≥0均为拉格朗日系数。 -
于是优化对象转化为
m i n ⏟ w , b , ξ i ∨ , ξ i ∧ m a x ⏟ μ ∨ ≥ 0 , μ ∧ ≥ 0 , α i ∨ ≥ 0 , α i ∧ ≥ 0 L ( w , b , α ∨ , α ∧ , ξ i ∨ , ξ i ∧ , μ ∨ , μ ∧ ) \underbrace{min}_{w,b,\xi_i^{\lor}, \xi_i^{\land}}\; \;\;\;\;\;\;\;\;\underbrace{max}_{\mu^{\lor} \geq 0, \mu^{\land} \geq 0, \alpha_i^{\lor} \geq 0, \alpha_i^{\land} \geq 0}\;L(w,b,\alpha^{\lor}, \alpha^{\land}, \xi_i^{\lor}, \xi_i^{\land}, \mu^{\lor}, \mu^{\land}) w,b,ξi∨,ξi∧ minμ∨≥0,μ∧≥0,αi∨≥0,αi∧≥0 maxL(w,b,α∨,α∧,ξi∨,ξi∧,μ∨,μ∧) -
随后通过拉格朗日对偶,求偏导可得
∂ L ∂ w = 0 ⇒ w = ∑ i = 1 m ( α i ∧ − α i ∨ ) ϕ ( x i ) \frac{\partial L}{\partial w} = 0 \;\Rightarrow w = \sum\limits_{i=1}^{m}(\alpha_i^{\land} - \alpha_i^{\lor})\phi(x_i) ∂w∂L=0⇒w=i=1∑m(αi∧−αi∨)ϕ(xi)
∂ L ∂ b = 0 ⇒ ∑ i = 1 m ( α i ∧ − α i ∨ ) = 0 \frac{\partial L}{\partial b} = 0 \;\Rightarrow \sum\limits_{i=1}^{m}(\alpha_i^{\land} - \alpha_i^{\lor}) = 0 ∂b∂L=0⇒i=1∑m(αi∧−αi∨)=0
∂ L ∂ ξ i ∨ = 0 ⇒ C − α ∨ − μ ∨ = 0 \frac{\partial L}{\partial \xi_i^{\lor}} = 0 \;\Rightarrow C-\alpha^{\lor}-\mu^{\lor} = 0 ∂ξi∨∂L=0⇒C−α∨−μ∨=0
∂ L ∂ ξ i ∧ = 0 ⇒ C − α ∧ − μ ∧ = 0 \frac{\partial L}{\partial \xi_i^{\land}} = 0 \;\Rightarrow C-\alpha^{\land}-\mu^{\land} = 0 ∂ξi∧∂L=0⇒C−α∧−μ∧=0 -
把上面4个式子带入 L ( w , b , α ∨ , α ∧ , ξ i ∨ , ξ i ∧ , μ ∨ , μ ∧ ) L(w,b,\alpha^{\lor}, \alpha^{\land}, \xi_i^{\lor}, \xi_i^{\land}, \mu^{\lor}, \mu^{\land}) L(w,b,α∨,α∧,ξi∨,ξi∧,μ∨,μ∧)消去 w , b , ξ i ∨ , ξ i ∧ w,b,\xi_i^{\lor}, \xi_i^{\land} w,b,ξi∨,ξi∧。
-
求最大值时对目标函数取负号:
m i n ⏟ α ∨ , α ∧ 1 2 ∑ i = 1 , j = 1 m ( α i ∧ − α i ∨ ) ( α j ∧ − α j ∨ ) K i j + ∑ i = 1 m ( ϵ − y i ) α i ∧ + ( ϵ + y i ) α i ∨ \underbrace{ min}_{\alpha^{\lor}, \alpha^{\land}}\; \frac{1}{2}\sum\limits_{i=1,j=1}^{m}(\alpha_i^{\land} - \alpha_i^{\lor})(\alpha_j^{\land} - \alpha_j^{\lor})K_{ij} + \sum\limits_{i=1}^{m}(\epsilon-y_i)\alpha_i^{\land}+ (\epsilon+y_i)\alpha_i^{\lor} α∨,α∧ min21i=1,j=1∑m(αi∧−αi∨)(αj∧−αj∨)Kij+i=1∑m(ϵ−yi)αi∧+(ϵ+yi)αi∨
s . t . ∑ i = 1 m ( α i ∧ − α i ∨ ) = 0 s.t. \; \sum\limits_{i=1}^{m}(\alpha_i^{\land} - \alpha_i^{\lor}) = 0 s.t.i=1∑m(αi∧−αi∨)=0
0 < α i ∨ < C ( i = 1 , 2 , . . . m ) 0 < \alpha_i^{\lor} < C \; (i =1,2,...m) 0<αi∨<C(i=1,2,...m)
0 < α i ∧ < C ( i = 1 , 2 , . . . m ) 0 < \alpha_i^{\land} < C \; (i =1,2,...m) 0<αi∧<C(i=1,2,...m) -
SMO算法来求出 α i ∨ , α i ∧ \alpha_i^{\lor} , \alpha_i^{\land} αi∨,αi∧,进而得出回归模型系数𝑤, 𝑏。
回归模型系数的稀疏性
-
SVM分类模型中,对偶互补条件:
α i ∗ ( y i ( w ∙ ϕ ( x i ) + b ) − 1 + ξ i ∗ ) = 0 \alpha_{i}^{*}(y_i(w \bullet \phi(x_i) + b) - 1+\xi_i^{*}) = 0 αi∗(yi(w∙ϕ(xi)+b)−1+ξi∗)=0 -
回归模型中,对偶互补条件:
α i ∨ ( ϵ + ξ i ∨ + y i − w ∙ ϕ ( x i ) − b ) = 0 \alpha_i^{\lor}(\epsilon + \xi_i^{\lor} + y_i - w \bullet \phi(x_i ) - b ) = 0 αi∨(ϵ+ξi∨+yi−w∙ϕ(xi)−b)=0
α i ∧ ( ϵ + ξ i ∧ + y i − w ∙ ϕ ( x i ) − b ) = 0 \alpha_i^{\land}(\epsilon + \xi_i^{\land} + y_i - w \bullet \phi(x_i ) - b ) = 0 αi∧(ϵ+ξi∧+yi−w∙ϕ(xi)−b)=0 -
根据松弛变量定义,如果 |𝑦𝑖−𝑤∙𝜙(𝑥𝑖)−𝑏| < 𝜖,则 ξ i ∨ = 0 , ξ i ∧ = 0 \xi_i^{\lor} = 0, \xi_i^{\land}= 0 ξi∨=0,ξi∧=0,此时 α i ∨ = 0 , α i ∧ = 0 \alpha_i^{\lor} = 0, \alpha_i^{\land}= 0 αi∨=0,αi∧=0
w = ∑ i = 1 m ( α i ∧ − α i ∨ ) ϕ ( x i ) w = \sum\limits_{i=1}^{m}(\alpha_i^{\land} - \alpha_i^{\lor})\phi(x_i) w=i=1∑m(αi∧−αi∨)ϕ(xi) -
𝑤不受在误差范围内的点的影响,只有在边界上或者在边界外的点影响𝑤的取值。
SVM算法总结
SVM算法的主要优点:
- 解决高维特征的分类问题和回归问题很有效,在特征维度大于样本数时依然有很好的效果。
- 仅仅使用一部分支持向量来做超平面的决策,无需依赖全部数据。
- 有大量的核函数可以使用,从而可以很灵活的来解决各种非线性的分类回归问题。
- 样本量不是海量数据的时候,分类准确率高,泛化能力强。
SVM算法的主要缺点:
- 如果特征维度远远大于样本数,则SVM表现一般。
- SVM在样本量非常大,核函数映射维度非常高时,计算量过大,不太适合使用。
- 非线性问题的核函数的选择没有通用标准,难以选择一个合适的核函数。
- SVM对缺失数据敏感。