探究算法细节,深入了解算法原理
参考摘抄:刘建平博客
支持向量机 SVM
1. 线性SVM的硬间隔
- 能找出泛化能力最强的分类超平面
- 是二分类算法,支持非线性分类,支持多元分类,支持回归问题
- 仅仅使用部分支持向量来做超平面的决策,无需依赖全部数据
- SVM在样本量非常大,核函数映射维度非常高时,计算量过大,不太适合使用
1.1 支持向量
二分类问题:分类超平面为 w T x + b = 0 w^Tx+b=0 wTx+b=0
线性模型:当 w T x + b > 0 w^Tx+b>0 wTx+b>0 时 y=1,当 w T x + b < 0 w^Tx+b<0 wTx+b<0 时 y=-1。
SVM思想
- 希望所有的样本点远离分类超平面。
- 实际上离超平面很远的点已经被正确分类,再让其远离超平面没有意义。
- 更关心的是离超平面很近的点,这些点容易被误分类。
- 为了更好的分类效果,让离超平面比较近的点尽可能远离超平面。

支持向量到分类超平面的距离: 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} ∣∣w∣∣1,优化目标是最大化这个距离。
任意样本点到分类超平面的距离为: r = w T x + b ∣ ∣ w ∣ ∣ r=\frac{w^Tx+b}{||w||} r=∣∣w∣∣wTx+b,距离推导
当 w T x + b ≥ 1 w^Tx+b\geq1 wTx+b≥1 时 y=1,当 w T x + b ≤ − 1 w^Tx+b\leq-1 wTx+b≤−1 时 y=-1。
函数间隔: γ ′ = y ( w T x + b ) \gamma^{'}=y(w^Tx+b) γ′=y(wTx+b)
1.2 SVM的目标函数及对偶优化
SVM模型是让所有样本点到超平面的距离大于一定的距离,也就是所有的样本点要在各自类别的支持向量两边。
(1)优化目标函数为:
max
⎵
w
,
b
1
∣
∣
w
∣
∣
s.t.
y
i
(
w
T
x
i
+
b
)
≥
1
(
i
=
1
,
2
,
…
m
)
\underbrace{\max }_{w,b} \frac{1}{||w||} \quad \text { s.t. }\quad y_{i}\left(w^{T} x_{i}+b\right) \geq 1(i=1,2, \dots m)
w,b
max∣∣w∣∣1 s.t. yi(wTxi+b)≥1(i=1,2,…m)
等价于:
min
⎵
w
,
b
1
2
∣
∣
w
∣
∣
2
s.t.
y
i
(
w
T
x
i
+
b
)
≥
1
(
i
=
1
,
2
,
…
m
)
\underbrace{\min }_{w,b} \frac{1}{2}||w||^2 \quad \text { s.t. }\quad y_{i}\left(w^{T} x_{i}+b\right) \geq 1(i=1,2, \dots m)
w,b
min21∣∣w∣∣2 s.t. yi(wTxi+b)≥1(i=1,2,…m)
(2)对于所有的样本点满足 1 − y i ( w T x i + b ) ≤ 0 1-y_{i}\left(w^{T} x_{i}+b\right) \leq0 1−yi(wTxi+b)≤0,说明存在最大值
目标函数 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21∣∣w∣∣2 是凸函数,根据凸优化理论,通过拉格朗日乘子法将不等式约束条件转化为无约束的目标函数:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 + ∑ i = 1 m α i [ 1 − y i ( w T x i + b ) ] 满 足 α i ≥ 0 L(w, b, \alpha)=\frac{1}{2}\|w\|^{2}+\sum_{i=1}^{m} \alpha_{i}\left[1-y_{i}\left(w^{T} x_{i}+b\right)\right] 满足 \alpha_{i} \geq 0 L(w,b,α)=21∥w∥2+i=1∑mαi[1−yi(wTxi+b)]满足αi≥0
KKT条件: 对于一般的任意问题而言,KKT条件是使一组解成为最优解的必要条件,当原问题是凸问题的时候,KKT条件也是充分条件。
优化目标变成:
min ⎵ w , b [ max ⎵ α i ≥ 0 L ( w , b , α ) ] \underbrace{\min }_{w, b} \left[ \underbrace{\max }_{\alpha_{i}\geq0} L(w, b, \alpha) \right] w,b min[αi≥0 maxL(w,b,α)]
(3)通过拉格朗日对偶,将优化问题转换为等价的对偶问题来求解:
max ⎵ α i ≥ 0 [ min ⎵ w , b L ( w , b , α ) ] \underbrace{\max }_{\alpha_{i}\geq0}\left[\underbrace{\min }_{w, b} L(w, b, \alpha) \right] αi≥0 max⎣⎡w,b minL(w,b,α)⎦⎤
即无约束的优化目标为:
max
⎵
α
i
≥
0
[
min
⎵
w
,
b
1
2
∥
w
∥
2
+
∑
i
=
1
m
α
i
[
1
−
y
i
(
w
T
x
i
+
b
)
]
]
\underbrace{\max }_{\alpha_{i}\geq 0}\left[\underbrace{\min }_{w, b} \frac{1}{2}\|w\|^{2}+\sum_{i=1}^{m} \alpha_{i}\left[1-y_{i}\left(w^{T} x_{i}+b\right)\right] \right]
αi≥0
max⎣⎡w,b
min21∥w∥2+i=1∑mαi[1−yi(wTxi+b)]⎦⎤
(4)先求目标函数对于w和b的极小值,再求拉格朗日乘子α的极大值。
对 w、b 求偏导,求 L(w,b,α) 的极小值
∂ L ∂ w = 0 ⇒ w = ∑ i = 1 m α i y i x i \frac{\partial L}{\partial w}=0 \Rightarrow w=\sum_{i=1}^{m} \alpha_{i} y_{i} x_{i} ∂w∂L=0⇒w=i=1∑mαiyixi
∂ L ∂ b = 0 ⇒ ∑ i = 1 m α i y i = 0 \frac{\partial L}{\partial b}=0 \Rightarrow \sum_{i=1}^{m} \alpha_{i} y_{i}=0 ∂b∂L=0⇒i=1∑mαiyi=0
- 得到了 w 和 α 的关系,只要求出 α,就能求出 w
- α 通过极大化目标函数来求取
- 上两个式子将 b 消去了,b 通过支持向量来求取
(5)将上两个式子带入目标函数,定义
ψ
(
α
)
=
min
⎵
w
,
b
L
(
w
,
b
,
α
)
\psi(\alpha)=\underbrace{\min }_{w, b} L(w, b, \alpha)
ψ(α)=w,b
minL(w,b,α)
ψ ( α ) = ∑ i = 1 m α i − 1 2 ∣ ∣ ∑ i = 1 m α i y i x i ∣ ∣ 2 = ∑ i = 1 m α i − 1 2 ∑ i = 1 , j = 1 m α i α j y i y j x i T x j \begin{aligned} \psi(\alpha) &= \sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} ||\sum_{i=1}^{m}\alpha_iy_ix_i||^2 \\&=\sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j} \end{aligned} ψ(α)=i=1∑mαi−21∣∣i=1∑mαiyixi∣∣2=i=1∑mαi−21i=1,j=1∑mαiαjyiyjxiTxj
(6)优化目标函数变为:
max ⎵ α i ≥ 0 ( ψ ( α ) ) = max ⎵ α ( ∑ i = 1 m α i − 1 2 ∑ i = 1 , j = 1 m α i α j y i y j x i T x j ) s . t . ∑ i = 1 m α i y i = 0 , α i ≥ 0 \underbrace{\max }_{\alpha_{i}\geq0}\left(\psi(\alpha)\right)=\underbrace{\max }_{\alpha}\left(\sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j}\right) \quad s.t. \quad \sum_{i=1}^{m}\alpha_iy_i=0,\quad \alpha_i \geq 0 αi≥0 max(ψ(α))=α max(i=1∑mαi−21i=1,j=1∑mαiαjyiyjxiTxj)s.t.i=1∑mαiyi=0,αi≥0
等价于极小化问题:
min
⎵
α
(
1
2
∑
i
=
1
,
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
−
∑
i
=
1
m
α
i
)
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
,
α
i
≥
0
\underbrace{\min }_{\alpha}\left(\frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j}-\sum_{i=1}^{m} \alpha_{i}\right) \quad s.t. \quad \sum_{i=1}^{m}\alpha_iy_i=0,\quad \alpha_i \geq 0
α
min(21i=1,j=1∑mαiαjyiyjxiTxj−i=1∑mαi)s.t.i=1∑mαiyi=0,αi≥0
(7)使用SMO算法求解 α,后面会讲,暂时假设已经求得了 α ∗ \alpha^* α∗
1.3 求取SVM的w、b
w ∗ = ∑ i = 1 m α i ∗ y i x i w^{*}=\sum_{i=1}^{m} \alpha_{i}^{*} y_{i} x_{i} w∗=i=1∑mαi∗yixi
求b则稍微麻烦一点。对于任意支持向量
(
x
s
,
y
s
)
(x_s,y_s)
(xs,ys),都有
y
s
(
w
T
x
s
+
b
)
=
y
s
(
∑
i
=
1
m
α
i
y
i
x
i
T
x
s
+
b
)
=
1
y_{s}\left(w^{T} x_{s}+b\right)=y_{s}\left(\sum_{i=1}^{m} \alpha_{i} y_{i} x_{i}^{T} x_{s}+b\right)=1
ys(wTxs+b)=ys(i=1∑mαiyixiTxs+b)=1
- 假设有S个支持向量,求出S个 b ∗ b^* b∗,理论上这些b∗都可以作为最终的结果
- 采用一种更健壮的办法,即求出所有支持向量对应的 b ∗ b^* b∗,平均值作为最后的结果
- 对于严格线性可分的SVM,b的值是有唯一解的,即所有 b ∗ b^* b∗都是一样的
- 这里仍然这么写是为了和后面加入软间隔后的SVM的算法描述一致
如何得到支持向量?
- 根据KKT条件中的对偶互补条件, α i ∗ ( y i ( w T x i + b ) − 1 ) = 0 \alpha_{i}^{*}\left(y_{i}\left(w^{T} x_{i}+b\right)-1\right)=0 αi∗(yi(wTxi+b)−1)=0
- 如果 α i > 0 \alpha_i>0 αi>0,则 y i ( w T x i + b ) = 1 y_{i}(w^{T} x_{i}+b)=1 yi(wTxi+b)=1,样本点是支持向量
- 否则如果 α i = 0 \alpha_i=0 αi=0,则有 y i ( w T x i + b ) ≥ 1 y_{i}(w^{T} x_{i}+b)\geq1 yi(wTxi+b)≥1,样本点是支持向量,或被正确分类
找出所有的S个支持向量,就是满足 α s > 0 \alpha_s>0 αs>0 对应的样本 ( x s , y s ) (x_s,y_s) (xs,ys)
最终的分类超平面为:
w
∗
∙
x
+
b
∗
=
0
w^*\bullet x+b^*=0
w∗∙x+b∗=0
最终的分类决策函数为:
f
(
x
)
=
s
i
g
n
(
w
∗
∙
x
+
b
∗
)
f(x)=sign(w^*\bullet x+b^*)
f(x)=sign(w∗∙x+b∗)
2. 线性SVM的软间隔
硬间隔:有异常点时无法线性可分,或者泛化性能下降
软间隔:对训练集中的每个样本
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)引入一个松弛变量
ξ
i
≥
0
\xi_i \geq0
ξi≥0
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
y_i(w^Tx_i+b)\geq1-\xi_i
yi(wTxi+b)≥1−ξi
软间隔,对样本到超平面的距离要求放松了
2.1 线性SVM的软间隔最大化
目标函数:
min
(
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ξ
i
)
\min\left( \frac{1}{2}||w||^2+C\sum_{i=1}^{m}\xi_i\right)
min(21∣∣w∣∣2+Ci=1∑mξi)
s . t . y i ( w T x i + b ) ≥ 1 − ξ i , ξ i ≥ 0 ( i = 1 , 2... , m ) s.t. \quad y_i(w^Tx_i+b) \geq 1-\xi_i, \quad \xi_i \geq 0\quad(i=1,2...,m) s.t.yi(wTxi+b)≥1−ξi,ξi≥0(i=1,2...,m)
C>0 为惩罚系数,相当于正则化系数,C越大, ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣越小,分类错误的点越少,越容易过拟合
2.2 软间隔最大化目标函数的优化
利用拉格朗日乘子法,将约束问题转换成无约束问题
L
(
w
,
b
,
ξ
,
α
,
μ
)
=
1
2
∥
w
∥
2
+
C
∑
i
=
1
m
ξ
i
+
∑
i
=
1
m
α
i
[
1
−
ξ
i
−
y
i
(
w
T
x
i
+
b
)
]
−
∑
i
=
1
m
μ
i
ξ
i
L(w, b, \xi, \alpha, \mu)=\frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{m} \xi_{i}+\sum_{i=1}^{m} \alpha_{i}\left[1-\xi_{i}-y_{i}\left(w^{T} x_{i}+b\right)\right]-\sum_{i=1}^{m} \mu_{i} \xi_{i}
L(w,b,ξ,α,μ)=21∥w∥2+Ci=1∑mξi+i=1∑mαi[1−ξi−yi(wTxi+b)]−i=1∑mμiξi
其中 μ i ≥ 0 \mu_i\geq0 μi≥0, α i ≥ 0 \alpha_i\geq0 αi≥0,均为拉格朗日系数。
要优化的目标函数为:
min
⎵
w
,
b
,
ξ
[
max
⎵
α
i
≥
0
,
μ
i
≥
0
L
(
w
,
b
,
α
,
ξ
,
μ
)
]
\underbrace{\min }_{w, b, \xi}\left[ \underbrace{\max }_{\alpha_{i} \geq 0, \mu_{i} \geq 0} L(w, b, \alpha, \xi, \mu)\right]
w,b,ξ
min⎣⎡αi≥0,μi≥0
maxL(w,b,α,ξ,μ)⎦⎤
这个优化目标满足KKT条件,通过拉格朗日对偶,转换为等价的对偶问题:
max
⎵
α
i
≥
0
,
μ
i
≥
0
[
min
⎵
w
,
b
,
ξ
L
(
w
,
b
,
α
,
ξ
,
μ
)
]
\underbrace{\max }_{\alpha_{i} \geq 0, \mu_{i} \geq 0}\left[\underbrace{\min }_{w, b, \xi} L(w, b, \alpha, \xi, \mu)\right]
αi≥0,μi≥0
max⎣⎡w,b,ξ
minL(w,b,α,ξ,μ)⎦⎤
先求优化函数对 w , b , ξ w,b,\xi w,b,ξ的极小值,再求拉格朗日乘子 α , μ \alpha,\mu α,μ的极大值
∂ L ∂ w = 0 ⇒ w = ∑ i = 1 m α i y i x i \frac{\partial L}{\partial w}=0 \Rightarrow w=\sum_{i=1}^{m} \alpha_{i} y_{i} x_{i} ∂w∂L=0⇒w=i=1∑mαiyixi
∂ L ∂ b = 0 ⇒ ∑ i = 1 m α i y i = 0 \frac{\partial L}{\partial b}=0 \Rightarrow \sum_{i=1}^{m} \alpha_{i} y_{i}=0 ∂b∂L=0⇒i=1∑mαiyi=0
∂ L ∂ ξ = 0 ⇒ C − α i − μ i = 0 \frac{\partial L}{\partial \xi}=0 \Rightarrow C-\alpha_{i}-\mu_{i}=0 ∂ξ∂L=0⇒C−αi−μi=0
带入后可得,
min
⎵
w
,
b
,
ξ
L
(
w
,
b
,
α
,
ξ
,
μ
)
=
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
,
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
\underbrace{\min }_{w, b, \xi} L(w, b, \alpha, \xi, \mu)=\sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j}
w,b,ξ
minL(w,b,α,ξ,μ)=i=1∑mαi−21i=1,j=1∑mαiαjyiyjxiTxj
与硬间隔目标函数一样,约束条件不同,优化目标为:
max
⎵
α
(
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
,
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
)
\underbrace{\max }_{\alpha} \left(\sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j}\right)
α
max(i=1∑mαi−21i=1,j=1∑mαiαjyiyjxiTxj)
s . t . ∑ i = 1 m α i y i = 0 , C − α i − μ i = 0 , α i ≥ 0 , μ i ≥ 0 ( i = 1 , 2... , m ) s.t.\quad \sum_{i=1}^{m}\alpha_iy_i=0,\quad C-\alpha_i-\mu_i=0,\quad \alpha_i\geq0,\quad \mu_i\geq0\quad (i=1,2...,m) s.t.i=1∑mαiyi=0,C−αi−μi=0,αi≥0,μi≥0(i=1,2...,m)
消去 μ i ≥ 0 \mu_i\geq0 μi≥0,则 0 ≤ α i ≤ C 0\leq \alpha_i \leq C 0≤αi≤C,同时将目标函数变号,求极小值
min ⎵ α ( 1 2 ∑ i = 1 , j = 1 m α i α j y i y j x i T x j − ∑ i = 1 m α i ) \underbrace{\min }_{\alpha} \left(\frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j}-\sum_{i=1}^{m} \alpha_{i}\right) α min(21i=1,j=1∑mαiαjyiyjxiTxj−i=1∑mαi)
s . t . ∑ i = 1 m α i y i = 0 , 0 ≤ α i ≤ C ( i = 1 , 2... , m ) s.t.\quad \sum_{i=1}^{m}\alpha_iy_i=0,\quad 0\leq \alpha_i \leq C (i=1,2...,m) s.t.i=1∑mαiyi=0,0≤αi≤C(i=1,2...,m)
优化目标与硬间隔相比,仅仅是多了约束条件 0 ≤ α i ≤ C 0\leq \alpha_i \leq C 0≤αi≤C
仍然通过SMO算法对上式极小化,求取 α ∗ α^* α∗,然后求出 w , b w,b w,b
2.3 软间隔最大化的支持向量
第i个点到对应类别支持向量的距离为 ξ i ∣ ∣ w ∣ ∣ \frac{\xi_i}{||w||} ∣∣w∣∣ξi
根据软间隔最大化时 KKT条件中的对偶互补条件:
α
i
∗
(
y
i
(
w
T
x
i
+
b
)
−
1
+
ξ
i
∗
)
=
0
\alpha_{i}^{*}\left(y_{i}\left(w^{T} x_{i}+b\right)-1+\xi_{i}^{*}\right)=0
αi∗(yi(wTxi+b)−1+ξi∗)=0
(1)如果 α = 0 \alpha=0 α=0,那么 y i ( w T x i + b ) − 1 ≥ 0 y_i(w^Tx_i+b)-1\geq0 yi(wTxi+b)−1≥0,样本在间隔边界上,或者被正确分类
(2)如果 0 < α < C 0<\alpha<C 0<α<C,那么 ξ i = 0 , y i ( w T x i + b ) − 1 = 0 \xi_i=0, y_i(w^Tx_i+b)-1=0 ξi=0,yi(wTxi+b)−1=0,即点在间隔边界上
(3)如果 α = C \alpha=C α=C
- 如果 0 ≤ ξ i ≤ 1 0\leq \xi_i \leq 1 0≤ξi≤1,点被正确分类,但是在分类超平面和间隔边界之间,如样本2和4
- 如果 ξ i = 1 \xi_i=1 ξi=1,则点在分类超平面上
- 如果 ξ i > 1 \xi_i>1 ξi>1,则点在超平面的另一侧,误分类,如样本1和3
所有的S个支持向量对应的样本 ( x s , y s ) (x_s,y_s) (xs,ys),通过 y s ( ∑ i = 1 S α i y i x i T x s + b ) = 1 y_s(\sum_{i=1}^{S}\alpha_iy_ix_i^Tx_s+b)=1 ys(∑i=1SαiyixiTxs+b)=1 求出 b s ∗ b_s^* bs∗
软间隔中, w ∗ w^* w∗是唯一的, b ∗ b^* b∗不是唯一的
b s ∗ = y s − ∑ i = 1 S α i y i x i T x s b_s^*=y_s-\sum_{i=1}^{S}\alpha_iy_ix_i^Tx_s bs∗=ys−∑i=1SαiyixiTxs, b ∗ = 1 S ∑ i = 1 S b s ∗ b^*=\frac{1}{S}\sum_{i=1}^{S}b_s^* b∗=S1∑i=1Sbs∗

2.4 经验风险和结构风险
经验函数:对训练集的平均损失称为经验风险, 1 m ∑ i = 1 m L ( y i , f ( x i ) ) \frac{1}{m}\sum_{i=1}^{m}L(y_i,f(x_i)) m1∑i=1mL(yi,f(xi))
监督学习的两种策略:经验风险最小化、结构风险最小化
经验风险最小化:经验风险最小,样本少时容易过拟合
结构风险最小化:在经验风险最小化的基础上,加了正则化
2.5 合页损失函数(Hinge Loss)
对于线性SVM来说,模型分类超平面为 w T x + b = 0 w^Tx+b=0 wTx+b=0,决策函数为 f ( x ) = s i g n ( w T x + b ) f(x)=sign(w^Tx+b) f(x)=sign(wTx+b),学习策略是软间隔最大化,学习算法是凸二次规划。
线性SVM还有另一种解释,最小化以下目标函数:
min ⎵ w , b ( [ ∑ i = 1 m 1 − y i ( w T x i + b ) ] + + λ ∥ w ∥ 2 ) \underbrace{\min }_{w, b}\left(\left[\sum_{i=1}^{m}1-y_{i}(w^T x_i+b)\right]_{+}+\lambda\|w\|^{2}\right) w,b min([i=1∑m1−yi(wTxi+b)]++λ∥w∥2)
目标函数第一项是经验损失或经验风险,
L ( y ( w T x + b ) ) = [ 1 − y ( w T x + b ) ] + L(y(w^Tx+b))=[1-y(w^Tx+b)]_+ L(y(wTx+b))=[1−y(wTx+b)]+ 称为合页损失函数, [ z ] + = { z z > 0 0 z ≤ 0 [z]_{+}=\left\{\begin{array}{ll}{z} & {z>0} \\ {0} & {z \leq 0}\end{array}\right. [z]+={z0z>0z≤0
- Hinge Loss:如果点被正确分类,且函数间隔大于1,损失是0,否则损失是 1 − y ( w T x + b ) 1−y(w^Tx+b) 1−y(wTx+b)
- 0-1损失:如果正确分类,损失是0,误分类损失1,可见0-1损失函数是不可导的。
- 感知机损失函数: [ − y ( w T x + b ) ] + [−y(w^Tx+b)]_+ [−y(wTx+b)]+,正确分类时,损失是0,误分类时,损失是 − y ( w T x + b ) −y(w^Tx+b) −y(wTx+b)
- 逻辑回归、最大熵模型对应的对数损失,损失函数是 l o g [ 1 + e x p ( − y ( w T x + b ) ) ] log[1+exp(−y(w^Tx+b))] log[1+exp(−y(wTx+b))]

3. 非线性SVM与核函数
3.1 核方法
- 核函数比SVM出现的早,被引入到SVM算法中
- 在低维线性不可分的数据,映射到高维后,变成线性可分的,再利用线性SVM方法
h θ ( x 1 , x 2 ) = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 1 2 + θ 4 x 2 2 + θ 5 x 1 x 2 h_{\theta}\left(x_{1}, x_{2}\right)=\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\theta_{3} x_{1}^{2}+\theta_{4} x_{2}^{2}+\theta_{5} x_{1} x_{2} hθ(x1,x2)=θ0+θ1x1+θ2x2+θ3x12+θ4x22+θ5x1x2
h θ ( x 1 , x 2 ) = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 3 + θ 4 x 4 + θ 5 x 5 h_{\theta}\left(x_{1}, x_{2}\right)=\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\theta_{3} x_{3}+\theta_{4} x_{4}+\theta_{5} x_{5} hθ(x1,x2)=θ0+θ1x1+θ2x2+θ3x3+θ4x4+θ5x5
将一个只有两个特征的二阶多项式,转换成五元线性回归。
核函数表达式为:
K
(
x
,
x
′
)
=
z
T
z
′
=
Φ
(
x
)
T
Φ
(
x
′
)
K(x,x^{'})=z^T z^{'}= \Phi(x)^T\Phi(x^{'})
K(x,x′)=zTz′=Φ(x)TΦ(x′)
核方法思想:将特征转换、内积运算这两个步骤合并起来,降低计算复杂度
二阶多项式转换的例子:
原始特征为: x = ( 1 , x 1 , x 2 , . . . , x d ) x=(1,x_1,x_2,...,x_d) x=(1,x1,x2,...,xd)
转换后的特征为: Φ 2 ( x ) = ( 1 , x 1 , x 2 , … , x d , x 1 2 , x 1 x 2 , … , x 1 x d , x 2 x 1 , x 2 2 , … , x 2 x d , … , x d 2 ) \Phi_{2}(\mathbf{x})=\left(1, x_{1}, x_{2}, \ldots, x_{d}, x_{1}^{2}, x_{1} x_{2}, \ldots, x_{1} x_{d}, x_{2} x_{1}, x_{2}^{2}, \ldots, x_{2} x_{d}, \ldots, x_{d}^{2}\right) Φ2(x)=(1,x1,x2,…,xd,x12,x1x2,…,x1xd,x2x1,x22,…,x2xd,…,xd2)
核方法:
Φ
2
(
x
)
T
Φ
2
(
x
′
)
=
1
+
∑
i
=
1
d
x
i
x
i
′
+
∑
i
=
1
d
∑
j
=
1
d
x
i
x
j
x
i
′
x
j
′
=
1
+
∑
i
=
1
d
x
i
x
i
′
+
∑
i
=
1
d
x
i
x
i
′
∑
j
=
1
d
x
j
x
j
′
=
1
+
x
T
x
′
+
(
x
T
x
′
)
(
x
T
x
′
)
\begin{aligned} \Phi_{2}(x)^{T} \Phi_{2}\left(x^{\prime}\right) &=1+\sum_{i=1}^{d} x_{i} x_{i}^{\prime}+\sum_{i=1}^{d} \sum_{j=1}^{d} x_{i} x_{j} x_{i}^{\prime} x_{j}^{\prime} \\ &=1+\sum_{i=1}^{d} x_{i} x_{i}^{\prime}+\sum_{i=1}^{d} x_{i} x_{i}^{\prime} \sum_{j=1}^{d} x_{j} x_{j}^{\prime} \\ &=1+x^{T} x^{\prime}+\left(x^{T} x^{\prime}\right)\left(x^{T} x^{\prime}\right) \end{aligned}
Φ2(x)TΦ2(x′)=1+i=1∑dxixi′+i=1∑dj=1∑dxixjxi′xj′=1+i=1∑dxixi′+i=1∑dxixi′j=1∑dxjxj′=1+xTx′+(xTx′)(xTx′)
3.2 几种核函数
(1)线性核函数: K ( x , x ′ ) = x T x ′ K(x,x^{'})=x^Tx^{'} K(x,x′)=xTx′
(2)多项式核函数: K ( x , x ′ ) = ( γ x T x ′ + r ) d K(x,x^{'})=(\gamma x^Tx^{'}+r)^d K(x,x′)=(γxTx′+r)d
(3)高斯核函数(径向基核函数RBF): K ( x , x ′ ) = e − γ ∣ ∣ x − x ′ ∣ ∣ 2 K(x,x^{'})=e^{-\gamma||x-x^{'}||^2} K(x,x′)=e−γ∣∣x−x′∣∣2
- 高斯核函数,特征转换后是无限多维的,展开 Φ ( x ) = e − x 2 ⋅ ( 1 , 2 1 ! x , 2 2 2 ! x 2 , ⋯   ) \Phi(x)=e^{-x^{2}} \cdot\left(1, \sqrt{\frac{2}{1 !}} x, \sqrt{\frac{2^{2}}{2 !}} x^{2}, \cdots\right) Φ(x)=e−x2⋅(1,1!2x,2!22x2,⋯)
- γ > 0 \gamma >0 γ>0, γ \gamma γ 越大,越容易过拟合
3.3 带核函数的软间隔SVM算法总结
(1)优化目标和约束条件:
min
⎵
α
(
1
2
∑
i
=
1
,
j
=
1
m
α
i
α
j
y
i
y
j
K
(
x
i
,
x
j
)
−
∑
i
=
1
m
α
i
)
\underbrace{\min }_{\alpha} \left(\frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} K\left(x_{i}, x_{j}\right)-\sum_{i=1}^{m} \alpha_{i}\right)
α
min(21i=1,j=1∑mαiαjyiyjK(xi,xj)−i=1∑mαi)
s . t . ∑ i = 1 m α i y i = 0 , 0 ≤ α i ≤ C s.t. \quad \sum_{i=1}^{m}\alpha_iy_i=0,\quad 0 \leq \alpha_i \leq C s.t.i=1∑mαiyi=0,0≤αi≤C
(2)利用SMO算法求出 α ∗ \alpha^* α∗
(3)计算出 w ∗ w^* w∗, w ∗ = ∑ i = 1 m α i ∗ y i Φ ( x i ) w^*=\sum_{i=1}^{m}\alpha_i^*y_i\Phi(x_i) w∗=∑i=1mαi∗yiΦ(xi)
(4)找出所有的S个支持向量,即 0 < α s < C 0 < \alpha_s < C 0<αs<C 对应的样本 ( x s , y s ) (x_s,y_s) (xs,ys),通过 y s ( ∑ i = 1 m α i y i K ( x i , x s ) + b ) = 1 y_{s}\left(\sum_{i=1}^{m} \alpha_{i} y_{i} K\left(x_{i}, x_{s}\right)+b\right)=1 ys(∑i=1mαiyiK(xi,xs)+b)=1计算出每个支持向量对应的 b s ∗ b^*_s bs∗,求平均值, b ∗ = 1 S ∑ i − 1 S b s ∗ b^*=\frac{1}{S}\sum_{i-1}^{S}b^*_s b∗=S1∑i−1Sbs∗
(5)分类超平面为: w ∗ Φ ( x ) + b ∗ = 0 w^*\Phi(x)+b^*=0 w∗Φ(x)+b∗=0,分类决策函数为: f ( x ) = s i g n ( w ∗ Φ ( x ) + b ∗ ) f(x)=sign(w^*\Phi(x)+b^*) f(x)=sign(w∗Φ(x)+b∗)
4. SVM的SMO算法原理
参考:http://www.cnblogs.com/pinard/p/6111471.html
4.1 优化目标函数
目标函数和约束条件:
min
⎵
α
(
1
2
∑
i
=
1
,
j
=
1
m
α
i
α
j
y
i
y
j
K
(
x
i
,
x
j
)
−
∑
i
=
1
m
α
i
)
\underbrace{\min }_{\alpha} \left(\frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} K\left(x_{i}, x_{j}\right)-\sum_{i=1}^{m} \alpha_{i}\right)
α
min(21i=1,j=1∑mαiαjyiyjK(xi,xj)−i=1∑mαi)
s . t . ∑ i = 1 m α i y i = 0 , 0 ≤ α i ≤ C s.t. \quad \sum_{i=1}^{m}\alpha_iy_i=0,\quad 0 \leq \alpha_i \leq C s.t.i=1∑mαiyi=0,0≤αi≤C
我们的解要满足的KKT条件的对偶互补条件为:
α i ∗ ( y i ( w T x i + b ) − 1 + ξ i ∗ ) = 0 \alpha_{i}^{*}\left(y_{i}\left(w^{T} x_{i}+b\right)-1+\xi_{i}^{*}\right)=0 αi∗(yi(wTxi+b)−1+ξi∗)=0
根据这个KKT条件的对偶互补条件,我们有:
α i ∗ = 0 ⇒ y i ( w ∗ ∙ ϕ ( x i ) + b ) ≥ 1 \alpha_{i}^{*}=0 \Rightarrow y_{i}\left(w^{*} \bullet \phi\left(x_{i}\right)+b\right) \geq 1 αi∗=0⇒yi(w∗∙ϕ(xi)+b)≥1
0 < α i ∗ < C ⇒ y i ( w ∗ ∙ ϕ ( x i ) + b ) = 1 0<\alpha_{i}^{*}<C \Rightarrow y_{i}\left(w^{*} \bullet \phi\left(x_{i}\right)+b\right)=1 0<αi∗<C⇒yi(w∗∙ϕ(xi)+b)=1
α i ∗ = C ⇒ y i ( w ∗ ∙ ϕ ( x i ) + b ) ≤ 1 \alpha_{i}^{*}=C \Rightarrow y_{i}\left(w^{*} \bullet \phi\left(x_{i}\right)+b\right) \leq 1 αi∗=C⇒yi(w∗∙ϕ(xi)+b)≤1
即:
α
i
∗
=
0
⇒
y
i
g
(
x
i
)
≥
1
\alpha_{i}^{*}=0 \Rightarrow y_{i} g\left(x_{i}\right) \geq 1
αi∗=0⇒yig(xi)≥1
0 < α i ∗ < C ⇒ y i g ( x i ) = 1 0<\alpha_{i}^{*}<C \Rightarrow y_{i} g\left(x_{i}\right)=1 0<αi∗<C⇒yig(xi)=1
α i ∗ = C ⇒ y i g ( x i ) ≤ 1 \alpha_{i}^{*}=C \Rightarrow y_{i} g\left(x_{i}\right) \leq 1 αi∗=C⇒yig(xi)≤1
4.2 SMO算法基本思想
- 上面这个优化式子比较复杂,由m个变量组成的 α 需要在目标函数极小化的时候求出。
- SMO算法采用一种启发式的方法,每次只优化两个变量,其他变量视为常数。
- 由于 ∑ i = 1 m α i y i = 0 \sum_{i=1}^{m}\alpha_iy_i=0 ∑i=1mαiyi=0,假如将 α 3 , α 4 , . . . , α m α_3,α_4,...,α_m α3,α4,...,αm 固定,那么 α 1 , α 2 α_1,α_2 α1,α2之间的关系也确定了。
- 这样SMO算法将一个复杂的优化算法转化为一个比较简单的两变量优化问题。
为了后面表示方便,定义 K i j = ϕ ( x j ) ϕ ( x j ) K_{ij}=\phi(x_j)\phi(x_j) Kij=ϕ(xj)ϕ(xj)
由于 α 3 , . . . , α m \alpha_3,...,\alpha_m α3,...,αm 都成了常量,所有的常量都从目标函数去除,目标优化函数变为:
min ⎵ α 1 , α 2 ( 1 2 K 11 α 1 2 + 1 2 K 22 α 2 2 + y 1 y 2 K 12 α 1 α 2 − ( α 1 + α 2 ) + y 1 α 1 ∑ i = 3 m y i α i K i 1 + y 2 α 2 ∑ i = 3 m y i α i K i 2 ) \underbrace{\min }_{\alpha_{1}, \alpha_{2}}\left(\frac{1}{2} K_{11} \alpha_{1}^{2}+\frac{1}{2} K_{22} \alpha_{2}^{2}+y_{1} y_{2} K_{12} \alpha_{1} \alpha_{2}-\left(\alpha_{1}+\alpha_{2}\right)+y_{1} \alpha_{1} \sum_{i=3}^{m} y_{i} \alpha_{i} K_{i 1}+y_{2} \alpha_{2} \sum_{i=3}^{m} y_{i} \alpha_{i} K_{i 2}\right) α1,α2 min(21K11α12+21K22α22+y1y2K12α1α2−(α1+α2)+y1α1i=3∑myiαiKi1+y2α2i=3∑myiαiKi2)
s . t . α 1 y 1 + α 2 y 2 = − ∑ i = 3 m y i α i = ζ s.t. \quad \quad \alpha_{1} y_{1}+\alpha_{2} y_{2}=-\sum_{i=3}^{m} y_{i} \alpha_{i}=\zeta s.t.α1y1+α2y2=−i=3∑myiαi=ζ
0 ≤ α i ≤ C i = 1 , 2 0 \leq \alpha_{i} \leq C \quad i=1,2 0≤αi≤Ci=1,2
具体的参考刘建平的博客
5. SVM的回归方法
5.1 SVM回归模型的损失函数度量
- 目标函数:与分类保持一致为 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21∣∣w∣∣2
- 约束条件:不能是各个样本尽量远离自己类别的支持向量
- 模型的目标:各个点尽量拟合到线性模型 y i = w ∙ ϕ ( x i ) + b y_i=w \bullet \phi(x_i)+b yi=w∙ϕ(xi)+b,不用均方差作为损失函数
- 损失度量:定义一个常量 ϵ > 0 \epsilon>0 ϵ>0,对于样本点 ( x i , y i ) (x_i,y_i) (xi,yi),如果 ∣ y i − w ∙ ϕ ( x i ) − b ∣ ≤ ϵ \left|y_{i}-w \bullet \phi\left(x_{i}\right)-b\right| \leq \epsilon ∣yi−w∙ϕ(xi)−b∣≤ϵ,损失为0,如果 ∣ y i − w ∙ ϕ ( x i ) − b ∣ > ϵ \left|y_{i}-w \bullet \phi\left(x_{i}\right)-b\right| > \epsilon ∣yi−w∙ϕ(xi)−b∣>ϵ,则损失为 ∣ y i − w ∙ ϕ ( x i ) − b ∣ − ϵ \left|y_{i}-w \bullet \phi\left(x_{i}\right)-b\right| - \epsilon ∣yi−w∙ϕ(xi)−b∣−ϵ,与均方差不同
如下图,蓝色条带内的点没有损失,外面点的损失为红线长度

SVM回归模型的损失函数度量为:
err
(
x
i
,
y
i
)
=
{
0
∣
y
i
−
w
∙
ϕ
(
x
i
)
−
b
∣
≤
ϵ
∣
y
i
−
w
∙
ϕ
(
x
i
)
−
b
∣
−
ϵ
∣
y
i
−
w
∙
ϕ
(
x
i
)
−
b
∣
>
ϵ
\operatorname{err}\left(x_{i}, y_{i}\right)=\left\{\begin{array}{ll}{0} & {\left|y_{i}-w \bullet \phi\left(x_{i}\right)-b\right| \leq \epsilon} \\ {\left|y_{i}-w \bullet \phi\left(x_{i}\right)-b\right|-\epsilon} & {\left|y_{i}-w \bullet \phi\left(x_{i}\right)-b\right|>\epsilon}\end{array}\right.
err(xi,yi)={0∣yi−w∙ϕ(xi)−b∣−ϵ∣yi−w∙ϕ(xi)−b∣≤ϵ∣yi−w∙ϕ(xi)−b∣>ϵ
5.2 SVM回归模型的目标函数
目标函数:
min ( 1 2 ∥ w ∥ 2 s . t . ∣ y i − w ∙ ϕ ( x i ) − b ∣ ≤ ϵ ( i = 1 , 2 , … m ) ) \min \left(\frac{1}{2}\|w\|^{2} \quad { s.t. }\left|y_{i}-w \bullet \phi\left(x_{i}\right)-b\right| \leq \epsilon(i=1,2, \ldots m)\right) min(21∥w∥2s.t.∣yi−w∙ϕ(xi)−b∣≤ϵ(i=1,2,…m))
加入松弛变量 ξ i ≥ 0 \xi_i\geq0 ξi≥0,由于这里是绝对值,实际上是两个不等式,也就是说两边都需要松弛变量,定义为 ξ i ∨ , ξ i ∧ \xi_{i}^{\vee},\xi_{i}^{\wedge} ξi∨,ξi∧
优化目标变为:
min
(
1
2
∥
w
∥
2
+
C
∑
i
=
1
m
(
ξ
i
∨
+
ξ
i
∧
)
)
\min \left(\frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{m}\left(\xi_{i}^{\mathrm{\vee}}+\xi_{i}^{\wedge}\right)\right)
min(21∥w∥2+Ci=1∑m(ξi∨+ξi∧))
s . t . − ϵ − ξ i ∨ ≤ y i − w ∙ ϕ ( x i ) − b ≤ ϵ + ξ i ∧ s.t. \quad-\epsilon-\xi_{i}^{\mathrm{\vee}} \leq y_{i}-w \bullet \phi\left(x_{i}\right)-b \leq \epsilon+\xi_{i}^{\wedge} s.t.−ϵ−ξi∨≤yi−w∙ϕ(xi)−b≤ϵ+ξi∧
ξ i ∨ ≥ 0 , ξ i ∧ ≥ 0 ( i = 1 , 2 , … , m ) \xi_{i}^{\mathrm{\vee}} \geq 0, \xi_{i}^{\wedge} \geq 0(i=1,2, \ldots, m) ξi∨≥0,ξi∧≥0(i=1,2,…,m)
利用拉格朗日乘子法,转换成无约束的优化目标
L ( w , b , α ∨ , α ∧ , ξ i ∨ , ξ i ∧ , μ ∨ , μ ∧ ) = 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ( ξ i ∨ + ξ i ∧ ) + ∑ i = 1 m α ∨ ( − ϵ − ξ i ∨ − y i + w ∙ ϕ ( x i ) + b ) + ∑ i = 1 m α ∧ ( y i − w ∙ ϕ ( x i ) − b − ϵ − ξ i ∧ ) − ∑ i = 1 m μ ∨ ξ i ∨ − ∑ i = 1 m μ ∧ ξ i ∧ L\left(w, b, \alpha^{\vee}, \alpha^{\wedge}, \xi_{i}^{\vee}, \xi_{i}^{\wedge}, \mu^{\vee}, \mu^{\wedge}\right)=\frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{m}\left(\xi_{i}^{\mathrm{\vee}}+\xi_{i}^{\wedge}\right)+\sum_{i=1}^{m} \alpha^{\vee}\left(-\epsilon-\xi_{i}^{\vee}-y_{i}+w \bullet \phi\left(x_{i}\right)+b\right)+\sum_{i=1}^{m} \alpha^{\wedge}\left(y_{i}-w \bullet \phi\left(x_{i}\right)-b-\epsilon-\xi_{i}^{\wedge}\right)-\sum_{i=1}^{m} \mu^{\vee} \xi_{i}^{\vee}-\sum_{i=1}^{m} \mu^{\wedge} \xi_{i}^{\wedge} L(w,b,α∨,α∧,ξi∨,ξi∧,μ∨,μ∧)=21∥w∥2+Ci=1∑m(ξi∨+ξi∧)+i=1∑mα∨(−ϵ−ξi∨−yi+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^{\mathrm{\vee}} \geq 0, \mu^{\wedge} \geq 0, \alpha_{i}^{\mathrm{\vee}} \geq 0, \alpha_{i}^{\wedge} \geq 0 μ∨≥0,μ∧≥0,αi∨≥0,αi∧≥0,均为拉格朗日系数。
5.3 SVM回归模型的目标函数对偶优化
优化目标为:
min
⎵
w
,
b
,
ξ
i
∨
,
ξ
i
∧
(
m
a
x
⎵
μ
∨
≥
0
,
μ
∧
≥
0
,
α
∨
≥
0
,
α
∧
≥
0
L
(
w
,
b
,
α
∨
,
α
∧
,
ξ
i
∨
,
ξ
i
∧
,
μ
∨
,
μ
∧
)
)
\underbrace{\min}_{w,b,\xi_i^{\vee},\xi_i^{\wedge}}\left(\underbrace{max}_{\mu^\vee\geq0,\mu^\wedge\geq0,\alpha^\vee\geq0,\alpha^\wedge\geq0}L\left(w, b, \alpha^{\vee}, \alpha^{\wedge}, \xi_{i}^{\vee}, \xi_{i}^{\wedge}, \mu^{\vee}, \mu^{\wedge}\right)\right)
w,b,ξi∨,ξi∧
min⎝⎛μ∨≥0,μ∧≥0,α∨≥0,α∧≥0
maxL(w,b,α∨,α∧,ξi∨,ξi∧,μ∨,μ∧)⎠⎞
优化目标满足KKT条件,通过拉格朗日对偶将优化问题,转化为等价的对偶问题:
m
a
x
⎵
μ
∨
≥
0
,
μ
∧
≥
0
,
α
∨
≥
0
,
α
∧
≥
0
(
min
⎵
w
,
b
,
ξ
i
∨
,
ξ
i
∧
L
(
w
,
b
,
α
∨
,
α
∧
,
ξ
i
∨
,
ξ
i
∧
,
μ
∨
,
μ
∧
)
)
\underbrace{max}_{\mu^\vee\geq0,\mu^\wedge\geq0,\alpha^\vee\geq0,\alpha^\wedge\geq0}\left(\underbrace{\min}_{w,b,\xi_i^{\vee},\xi_i^{\wedge}}L\left(w, b, \alpha^{\vee}, \alpha^{\wedge}, \xi_{i}^{\vee}, \xi_{i}^{\wedge}, \mu^{\vee}, \mu^{\wedge}\right)\right)
μ∨≥0,μ∧≥0,α∨≥0,α∧≥0
max⎝⎛w,b,ξi∨,ξi∧
minL(w,b,α∨,α∧,ξi∨,ξi∧,μ∨,μ∧)⎠⎞
我们可以先求优化函数对于 w , b , ξ i ∨ , ξ i ∧ w, b, \xi_{i}^{\vee}, \xi_{i}^{\wedge} w,b,ξi∨,ξi∧ 的极小值, 接着再求拉格朗日乘子 α ∨ , α ∧ , μ ∨ , μ ∧ \alpha^{\vee}, \alpha^{\wedge},\mu^{\vee}, \mu^{\wedge} α∨,α∧,μ∨,μ∧ 的极大值
首先求优化函数对于
w
,
b
,
ξ
i
∨
,
ξ
i
∧
w, b, \xi_{i}^{\vee}, \xi_{i}^{\wedge}
w,b,ξi∨,ξi∧ 的极小值,通过求偏导求得:
∂
L
∂
w
=
0
⇒
w
=
∑
i
=
1
m
(
α
i
∧
−
α
i
∨
)
ϕ
(
x
i
)
\frac{\partial L}{\partial w}=0 \Rightarrow w=\sum_{i=1}^{m}\left(\alpha_{i}^{\wedge}-\alpha_{i}^{\vee}\right) \phi\left(x_{i}\right)
∂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_{i=1}^{m}\left(\alpha_{i}^{\wedge}-\alpha_{i}^{\vee}\right)=0 ∂b∂L=0⇒i=1∑m(αi∧−αi∨)=0
∂ L ∂ ξ i ∨ = 0 ⇒ C − α ∨ − μ ∨ = 0 \frac{\partial L}{\partial \xi_{i}^{\mathrm{\vee}}}=0 \Rightarrow C-\alpha^{\vee}-\mu^{\vee}=0 ∂ξi∨∂L=0⇒C−α∨−μ∨=0
∂ L ∂ ξ i ∧ = 0 ⇒ C − α ∧ − μ ∧ = 0 \frac{\partial L}{\partial \xi_{i}^{\wedge}}=0 \Rightarrow C-\alpha^{\wedge}-\mu^{\wedge}=0 ∂ξi∧∂L=0⇒C−α∧−μ∧=0
带入,优化目标变成:
m a x ⎵ α ∨ , α ∧ ( − ∑ i = 1 m ( ϵ − y i ) α i ∧ + ( ϵ + y i ) α i ∨ ) − 1 2 ∑ i = 1 , j = 1 m ( α i ∧ − α i ∨ ) ( α j ∧ − α j ∨ ) K i j ) \underbrace{max}_{\alpha^\vee,\alpha^\wedge}\left(-\sum_{i=1}^{m}\left(\epsilon-y_{i}\right) \alpha_{i}^{\wedge}+\left(\epsilon+y_{i}\right) \alpha_{i}^{\vee} )-\frac{1}{2} \sum_{i=1, j=1}^{m}\left(\alpha_{i}^{\wedge}-\alpha_{i}^{\vee}\right)\left(\alpha_{j}^{\wedge}-\alpha_{j}^{\vee}\right) K_{i j}\right) α∨,α∧ max(−i=1∑m(ϵ−yi)αi∧+(ϵ+yi)αi∨)−21i=1,j=1∑m(αi∧−αi∨)(αj∧−αj∨)Kij)
s . t . ∑ i = 1 m ( α i ∧ − α i ∨ ) = 0 s.t. \quad\sum_{i=1}^{m}\left(\alpha_{i}^{\wedge}-\alpha_{i}^{\vee}\right)=0 s.t.i=1∑m(αi∧−αi∨)=0
0 < α i ∨ < C , 0 < α i ∧ < C ( i = 1 , 2... , m ) 0<\alpha_i^\vee<C,\quad 0<\alpha_i^\wedge<C\quad(i=1,2...,m) 0<αi∨<C,0<αi∧<C(i=1,2...,m)
对目标函数取负号,转换成极小值问题
m i n ⎵ α ∨ , α ∧ ( ∑ i = 1 m ( ϵ − y i ) α i ∧ + ( ϵ + y i ) α i ∨ ) + 1 2 ∑ i = 1 , j = 1 m ( α i ∧ − α i ∨ ) ( α j ∧ − α j ∨ ) K i j ) \underbrace{min}_{\alpha^\vee,\alpha^\wedge}\left(\sum_{i=1}^{m}\left(\epsilon-y_{i}\right) \alpha_{i}^{\wedge}+\left(\epsilon+y_{i}\right) \alpha_{i}^{\vee} )+\frac{1}{2} \sum_{i=1, j=1}^{m}\left(\alpha_{i}^{\wedge}-\alpha_{i}^{\vee}\right)\left(\alpha_{j}^{\wedge}-\alpha_{j}^{\vee}\right) K_{i j}\right) α∨,α∧ min(i=1∑m(ϵ−yi)αi∧+(ϵ+yi)αi∨)+21i=1,j=1∑m(αi∧−αi∨)(αj∧−αj∨)Kij)
s . t . ∑ i = 1 m ( α i ∧ − α i ∨ ) = 0 s.t. \quad\sum_{i=1}^{m}\left(\alpha_{i}^{\wedge}-\alpha_{i}^{\vee}\right)=0 s.t.i=1∑m(αi∧−αi∨)=0
0 < α i ∨ < C , 0 < α i ∧ < C ( i = 1 , 2... , m ) 0<\alpha_i^\vee<C,\quad 0<\alpha_i^\wedge<C\quad(i=1,2...,m) 0<αi∨<C,0<αi∧<C(i=1,2...,m)
通过SMO算法,求出 α ∨ , α ∧ \alpha^\vee,\alpha^\wedge α∨,α∧,从而求出回归模型系数 w , b w,b w,b
5.4 SVM回归模型系数的稀疏性
分类问题,KKT条件的对偶互补条件为:
α
i
∗
(
y
i
(
w
∙
ϕ
(
x
i
)
+
b
)
−
1
+
ξ
i
∗
)
=
0
\alpha_{i}^{*}\left(y_{i}\left(w \bullet \phi\left(x_{i}\right)+b\right)-1+\xi_{i}^{*}\right)=0
αi∗(yi(w∙ϕ(xi)+b)−1+ξi∗)=0
回归问题,KKT条件的对偶互补条件为:
α
i
∨
(
ϵ
+
ξ
i
∨
+
y
i
−
w
∙
ϕ
(
x
i
)
−
b
)
=
0
\alpha_{i}^{\vee}\left(\epsilon+\xi_{i}^{\vee}+y_{i}-w \bullet \phi\left(x_{i}\right)-b\right)=0
αi∨(ϵ+ξi∨+yi−w∙ϕ(xi)−b)=0
α i ∧ ( ϵ + ξ i ∨ − y i + w ∙ ϕ ( x i ) − b ) = 0 \alpha_{i}^{\wedge}\left(\epsilon+\xi_{i}^{\vee}-y_{i}+w \bullet \phi\left(x_{i}\right)-b\right)=0 αi∧(ϵ+ξi∨−yi+w∙ϕ(xi)−b)=0
-
根据松弛变量定义的条件,如果 ∣ y i − w ∙ ϕ ( x i ) − b ∣ < ϵ \left|y_{i}-w \bullet \phi\left(x_{i}\right)-b\right| < \epsilon ∣yi−w∙ϕ(xi)−b∣<ϵ,则有 ξ i ∨ = 0 , ξ i ∧ = 0 \xi_{i}^{\vee}=0, \xi_{i}^{\wedge}=0 ξi∨=0,ξi∧=0
-
此时, ϵ + ξ i ∨ + y i − w ∙ ϕ ( x i ) − b ≠ 0 \epsilon+\xi_{i}^{\mathrm{\vee}}+y_{i}-w \bullet \phi\left(x_{i}\right)-b \neq 0 ϵ+ξi∨+yi−w∙ϕ(xi)−b̸=0, ϵ + ξ i ∧ − y i + w ∙ ϕ ( x i ) + b ≠ 0 \epsilon+\xi_{i}^{\wedge}-y_{i}+w \bullet \phi\left(x_{i}\right)+b \neq 0 ϵ+ξi∧−yi+w∙ϕ(xi)+b̸=0,这样要满足对偶互补条件,只有 α i ∨ = 0 , α i ∧ = 0 \alpha_{i}^{\vee}=0, \alpha_{i}^{\wedge}=0 αi∨=0,αi∧=0(不等号显示异常)
-
定义样本系数为: β i = α i ∧ − α i ∨ \beta_{i}=\alpha_{i}^{\wedge}-\alpha_{i}^{\vee} βi=αi∧−αi∨
根据 w = ∑ i = 1 m ( α i ∧ − α i ∨ ) ϕ ( x i ) w=\sum_{i=1}^{m}\left(\alpha_{i}^{\wedge}-\alpha_{i}^{\vee}\right) \phi\left(x_{i}\right) w=∑i=1m(αi∧−αi∨)ϕ(xi),发现此时 β i = 0 \beta_i=0 βi=0,也就是说 w w w 不受这些在误差范围内的点的影响。
对于在边界上或边界外的点, α i ∨ , α i ^ ∧ \alpha_{i}^{\mathrm{\vee}} , \alpha_{\hat{i}}^{\wedge} αi∨,αi^∧ 都不等于0,此时 β i \beta_i βi也不等于0
6. sklearn.svm.SVC & sklearn.svm.SVR
6.1 sklearn.svm.SVC
class sklearn.svm.SVC(C=1.0, kernel=’rbf’, degree=3, gamma=’auto_deprecated’, coef0=0.0, shrinking=True,
probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1,
decision_function_shape=’ovr’, random_state=None)¶
- C:惩罚系数,通过交叉验证选择
- kernel:核函数,一般选径向基rbf
- degree:多项式核函数的参数 d,一般交叉验证选择合适的 γ , r , d \gamma, r,d γ,r,d
- gamma:多项式、径向基、sigmoid核函数都有这个参数,交叉验证
- coef0:多项式核函数参数 r
- cache_size:缓存大小会影响训练速度,默认200,即200M
- class_weight:类别权重,可以指定各个样本的权重
- decision_function_shape:ovr 无论多少类别,都看成二分类,ovo每次选出两个类别进行二分类,要进行(k-1)k/2次,k为类别数
6.2 sklearn.svm.SVR
class sklearn.svm.SVR(kernel=’rbf’, degree=3, gamma=’auto_deprecated’, coef0=0.0, tol=0.001,
C=1.0, epsilon=0.1, shrinking=True, cache_size=200, verbose=False, max_iter=-1)
- epsilon:距离误差,控制损失值
参考博客
1. 支持向量机原理(一) 线性支持向量机
2. 支持向量机原理(二) 线性支持向量机的软间隔最大化模型
3. 损失函数及经验风险和结构风险
4. 机器学习总结(lecture 10)算法:支持向量机SVM
5. 支持向量机原理(四) SMO算法原理
6. 支持向量机原理(五)线性支持回归