支持向量机(Support Vector Machine)是一种二分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持向量机还包括核技巧,这使它称为实质上的非线性分类器。
1. SVM解决线性问题
一般地,当训练数据集线性可分时,存在无穷个分离超平面可将两类数据正确分开。感知机利用误分类最小的策略,求得分离超平面,不过这时的解有无穷多个。线性可分支持向量机利用间隔最大化求最优分离超平面,这时,解是唯一的。
给定线性可分训练数据集,通过间隔最大化等价地求解相应的凸二次规划问题学习得到的分离超平面为 w T ⋅ x + b = 0 \color{blue}w^T\cdot x+b=0 wT⋅x+b=0以及相应的分类决策函数 f ( x ) = s i g n ( w T ⋅ x + b ) \color{blue}f(x)=sign(w^T\cdot x+b) f(x)=sign(wT⋅x+b)称为线性可分支持向量机。其中, w w w和 x x x是向量,其维度是特征空间的维度, b b b是常数。
线性可分可以简单认为是,对数据集的所有实例,有
y i ⋅ [ w T ⋅ x + b ] > 0 \LARGE\bold\color{blue}\textit{y}_ \textit{i}\cdot[ \textit{w}^T\cdot \textit{x}+ \textit{b}] \gt 0 yi⋅[wT⋅x+b]>0
讨论SVM的优化问题之前,我们先回顾两个事实:
- w T ⋅ x + b = 0 \large\color{orange}w^T \cdot x + b=0 wT⋅x+b=0 和 a w T ⋅ x + a b = 0 \large\color{blue}aw^T \cdot x + ab=0 awT⋅x+ab=0 是同一个平面,其中 a ∈ R + a \in \R^+ a∈R+
- 点 x 0 \displaystyle x_0 x0 的坐标为 ( η 1 , η 2 , ⋯ , η n ) T \displaystyle(\eta_1,\eta_2,\cdots,\eta_n)^T (η1,η2,⋯,ηn)T ,则它到超平面 w T ⋅ x + b = 0 w^T \cdot x + b=0 wT⋅x+b=0 的距离 d d d的公式为: d = ∣ w T ⋅ x 0 + b ∣ ∣ ∣ w ∣ ∣ \large\displaystyle d=\frac{|w^T\cdot x_0+b|}{||w||} d=∣∣w∣∣∣wT⋅x0+b∣其中 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣ 表示 w w w 的 l 2 l_2 l2 范数
下面考虑如何求得一个最大间隔的分离超平面,具体地,这个问题可以表示为约束最优化问题:
max
w
,
b
d
=
∣
w
T
⋅
x
+
b
∣
∣
∣
w
∣
∣
s
.
t
.
y
i
⋅
w
T
⋅
x
i
+
b
∣
∣
w
∣
∣
≥
d
,
i
=
1
,
2
,
⋯
,
n
\begin{aligned}\displaystyle &\max_{w,b}\quad d =\frac{|w^T\cdot x+b|}{||w||}\\ \\ &s.t. \quad y_i \cdot \frac{w^T\cdot x_i+b}{||w||} \ge d,\quad\quad i=1,2,\cdots,n \end{aligned}
w,bmaxd=∣∣w∣∣∣wT⋅x+b∣s.t.yi⋅∣∣w∣∣wT⋅xi+b≥d,i=1,2,⋯,n
其含义是我们要求一束平面的法向量,使其与支持向量相切时的两个平面间的距离
d
d
d最大,约束条件自然是每个实例点到分离超平面的距离要大于等于d,这里乘以
y
i
y_i
yi是为了让距离都为正数,避免负数的运算,
y
y
y的取值为
{
−
1
,
+
1
}
\{-1,+1\}
{−1,+1}。
但是,这种形式无法求解,我们需要寻找等价的求解。根据上面提到的事实1,可以发现
max
w
,
b
d
=
∣
a
w
T
⋅
x
+
a
b
∣
∣
∣
a
w
∣
∣
=
a
∣
w
T
⋅
x
+
b
∣
a
∣
∣
w
∣
∣
=
∣
w
T
⋅
x
+
b
∣
∣
∣
w
∣
∣
,
a
∈
R
+
s
.
t
.
y
i
⋅
w
T
⋅
x
i
+
b
∣
∣
w
∣
∣
≥
d
,
i
=
1
,
2
,
⋯
,
n
\begin{aligned}\displaystyle &\max_{w,b}\quad d =\frac{|aw^T\cdot x+ab|}{||aw||}=\frac{a|w^T\cdot x+b|}{a||w||}=\frac{|w^T\cdot x+b|}{||w||},\quad a\in \R^+\\ \\ &s.t. \quad y_i \cdot\frac{w^T\cdot x_i+b}{||w||}\ge d,\quad\quad i=1,2,\cdots,n \end{aligned}
w,bmaxd=∣∣aw∣∣∣awT⋅x+ab∣=a∣∣w∣∣a∣wT⋅x+b∣=∣∣w∣∣∣wT⋅x+b∣,a∈R+s.t.yi⋅∣∣w∣∣wT⋅xi+b≥d,i=1,2,⋯,n所以,我们可以让
∣
w
T
⋅
x
+
b
∣
|w^T\cdot x+b|
∣wT⋅x+b∣等于一个常数
c
c
c,这样,
∣
a
w
T
⋅
x
+
a
b
∣
|aw^T\cdot x+ab|
∣awT⋅x+ab∣就可以表示为
∣
a
c
∣
|ac|
∣ac∣,由
w
,
b
w,b
w,b控制转化为由
a
a
a控制表达式的值,取
c
=
1
c=1
c=1,则,原问题转化为:
max
w
,
b
d
=
∣
a
c
∣
∣
∣
a
w
∣
∣
=
1
∣
∣
w
∣
∣
s
.
t
.
y
i
⋅
w
T
⋅
x
i
+
b
∣
∣
w
∣
∣
≥
d
,
i
=
1
,
2
,
⋯
,
n
\begin{aligned}\displaystyle &\max_{w,b}\quad d =\frac{|ac|}{||aw||}=\frac{1}{||w||}\\ \\ &s.t. \quad y_i \cdot \frac{w^T\cdot x_i+b}{||w||}\ge d,\quad\quad i=1,2,\cdots,n \end{aligned}
w,bmaxd=∣∣aw∣∣∣ac∣=∣∣w∣∣1s.t.yi⋅∣∣w∣∣wT⋅xi+b≥d,i=1,2,⋯,n
【注】对于用一个常数代替 w T ⋅ x + b w^T\cdot x + b wT⋅x+b,我的理解是,对于一个超平面 ( w , b ) (w,b) (w,b),训练集的支持向量是确定的(平面确定了,那么支持向量自然而然应该也确定了,通过平移找到边界相切点即可),所以其到超平面的距离是确定的(都是 w w w 和 b b b 的函数),因而 ∣ w T ⋅ x + b ∣ |w^T\cdot x + b| ∣wT⋅x+b∣ 也是确定的
此问题等价于下面的约束问题:
min
1
2
∣
∣
w
∣
∣
2
s
.
t
.
y
i
⋅
[
w
T
⋅
x
i
+
b
]
≥
1
,
i
=
1
,
2
,
⋯
,
n
\begin{aligned} &\min \quad \frac{1}{2}||w||^2 \\ \\ &s.t. \quad y_i \cdot [w^T\cdot x_i+b]\ge 1,\quad\quad i=1,2,\cdots,n \end{aligned}
min21∣∣w∣∣2s.t.yi⋅[wT⋅xi+b]≥1,i=1,2,⋯,n这里的等价形式设为
1
2
∣
∣
w
∣
∣
2
\frac{1}{2}||w||^2
21∣∣w∣∣2 是为了后面求解时方便求导,至此问题已经转化为凸优化问题中的二次规划问题,其特性是要么无解,要么有唯一解
2. SVM解决非线性问题的思路
- 非线性相比线性问题,只需要做一点小小的改造:
min 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 n ξ i s . t . { y i ⋅ [ w T ⋅ x i + b ] ≥ 1 − ξ i ξ i ≥ 0 i = 1 , 2 , ⋯ , n ⋯ ⋯ ① \begin{aligned}\displaystyle &\min \quad\frac{1}{2}||w||^2+C\sum_{i=1}^n \xi_i \\ &s.t.\quad\quad \begin{cases} y_i \cdot [w^T \cdot x_i+b] \ge1-\xi_i \\ \xi_i \ge0 \end{cases}\quad i=1,2,\cdots,n \end{aligned} \quad\cdots\cdots① min21∣∣w∣∣2+Ci=1∑nξis.t.{yi⋅[wT⋅xi+b]≥1−ξiξi≥0i=1,2,⋯,n⋯⋯①其中, ξ i \xi_i ξi 称为松弛变量(slack variable), C ∑ i = 1 n ξ i \displaystyle C\sum_{i=1}^n \xi_i Ci=1∑nξi 称为正则项(regulation term), C C C是超参数
此优化式并不能解决所有的非线性问题,如异或问题,在当前特征空间找不到分离超平面时,可以通过高维映射,在高维空间中找分离超平面 低 维 x → φ 高 维 φ ( x ) 低维x\xrightarrow{\varphi}高维\varphi(x) 低维xφ高维φ(x)如: x = [ a b ] → φ φ ( x ) = [ a 2 b 2 a b a b ] x=\begin{bmatrix}a\\b\end{bmatrix}\xrightarrow{\varphi}\varphi(x)=\begin{bmatrix}a^2\\b^2\\a\\b\\ab\end{bmatrix} x=[ab]φφ(x)=⎣⎢⎢⎢⎢⎡a2b2abab⎦⎥⎥⎥⎥⎤原来二维空间无法找到分离超平面,现在映射到五维就能够找到分离超平面了。此时,上面的约束条件要做一些改变: min 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 n ξ i s . t . { y i ⋅ [ w T ⋅ φ ( x i ) + b ] ≥ 1 − ξ i ξ i ≥ 0 i = 1 , 2 , ⋯ , n ⋯ ⋯ ② \begin{aligned}\displaystyle &\min \quad\frac{1}{2}||w||^2+C\sum_{i=1}^n \xi_i \\ &s.t.\quad\quad \begin{cases} y_i \cdot [w^T \cdot \varphi(x_i)+b] \ge1-\xi_i \\ \xi_i \ge0 \end{cases}\quad i=1,2,\cdots,n \end{aligned} \quad\cdots\cdots② min21∣∣w∣∣2+Ci=1∑nξis.t.{yi⋅[wT⋅φ(xi)+b]≥1−ξiξi≥0i=1,2,⋯,n⋯⋯②此外,可以证明,映射的维度越高能找到分离超平面的概率越大,维度趋近于无穷时,概率趋近于1,所以选取 φ ( x ) \varphi(x) φ(x)时尽量选择的维度越高越好。但是,趋近于无限维给我们求解带来了困难,我们有如下方法。
- 我们可以不知道无限维映射
φ
(
x
)
\varphi(x)
φ(x) 的显式表达式,我们只要知道一个核函数(kernel function)
K
(
x
1
,
x
2
)
=
φ
(
x
1
)
T
φ
(
x
2
)
K(x_1,x_2)=\varphi(x_1)^T\varphi(x_2)
K(x1,x2)=φ(x1)Tφ(x2)则②这个优化式,仍然可解。下面介绍一些常见核函数。
- 高斯核函数
K ( x 1 , x 2 ) = e − ∣ ∣ x 1 − x 2 ∣ ∣ 2 2 σ 2 = φ ( x 1 ) T φ ( x 2 ) \begin{aligned}K(x_1,x_2)&=\displaystyle e^{-\displaystyle\frac{||x_1-x_2||^2}{2\sigma^2}}\\ \\ &=\varphi(x_1)^T\varphi(x_2)\end{aligned} K(x1,x2)=e−2σ2∣∣x1−x2∣∣2=φ(x1)Tφ(x2) - 多项式核函数
K ( x 1 , x 2 ) = ( x 1 T x 2 + 1 ) d = φ ( x 1 ) T φ ( x 2 ) \begin{aligned}K(x_1,x_2)&=(x_1^Tx_2+1)^d\\ \\ &=\varphi(x_1)^T\varphi(x_2)\end{aligned} K(x1,x2)=(x1Tx2+1)d=φ(x1)Tφ(x2)
- 高斯核函数
现在假设我们知道了核函数,那么如何解优化式②呢?
原问题与对偶问题
- 原问题(Prime Problem)
min f ( w ) s . t . { g i ( w ) ≤ 0 i = 1 ∼ K h j ( w ) = 0 j = 1 ∼ M \begin{aligned}&\min\quad f(w)\\&s.t. \begin{cases}g_i(w)\le0\quad &i=1\sim K \\ h_j(w)=0\quad &j=1\sim M\end{cases}\end{aligned} minf(w)s.t.{gi(w)≤0hj(w)=0i=1∼Kj=1∼M- 对偶问题(Dual Problem)
首先给出如下函数定义
L ( w , α , β ) = f ( w ) + ∑ i = 1 K α i g i ( w ) + ∑ j = 1 M β j h j ( w ) = f ( w ) + α T g ( w ) + β T h ( w ) \begin{aligned}L(w,\alpha,\beta)=& f(w)+\sum_{i=1}^{K}\alpha_i g_i(w)+\sum_{j=1}^{M}\beta_j h_j(w) \\ =& f(w) + \alpha^Tg(w)+\beta^T h(w)\end{aligned} L(w,α,β)==f(w)+i=1∑Kαigi(w)+j=1∑Mβjhj(w)f(w)+αTg(w)+βTh(w)
对偶问题的定义如下
max θ ( α , β ) = inf 所 有 w { L ( w , α , β ) } s . t . α i ≥ 0 i = 1 ∼ K \begin{aligned}&\displaystyle\max\quad \theta(\alpha,\beta)= \inf_{所有 w}\{L(w,\alpha,\beta)\}\\&s.t. \quad\quad\alpha_i\ge0\quad\quad i=1\sim K\end{aligned} maxθ(α,β)=所有winf{L(w,α,β)}s.t.αi≥0i=1∼K其中 inf \inf inf 的含义是求最小值,这里是先把 α , β \alpha,\beta α,β 当做常数,求关于 w w w的最小值。
定理
如果 w ∗ w^* w∗ 是原问题的解,而 α ∗ , β ∗ \alpha^*,\beta^* α∗,β∗ 是对偶问题的解,则有 f ( w ∗ ) ≥ θ ( α ∗ , β ∗ ) f(w^*)\ge\theta(\alpha^*,\beta^*) f(w∗)≥θ(α∗,β∗) 定义 G = f ( w ∗ ) − θ ( α ∗ , β ∗ ) ≥ 0 G=f(w^*)-\theta(\alpha^*,\beta^*)\ge0 G=f(w∗)−θ(α∗,β∗)≥0, G G G叫做原问题与对偶问题的间距(duality gap),对于某些特定优化问题,可以证明 G = 0 G=0 G=0
强对偶定理
若 f ( w ) f(w) f(w)为凸函数,,且 g ( w ) = A w + B , h ( w ) = C w + D g(w)=Aw+B,\quad h(w)=Cw+D g(w)=Aw+B,h(w)=Cw+D,则此优化问题的原问题与对偶问题间距为 0 0 0,即 f ( w ∗ ) = θ ( α ∗ , β ∗ ) f(w^*)=\theta(\alpha^*,\beta^*) f(w∗)=θ(α∗,β∗)
3. 将SVM的原问题化为对偶问题
min f ( w ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 n ξ i ( 凸 函 数 ) s . t . { y i ⋅ [ w T ⋅ φ ( x i ) + b ] ≥ 1 − ξ i ξ i ≥ 0 i = 1 , 2 , ⋯ , n \begin{aligned}\displaystyle &\min \quad f(w)=\frac{1}{2}||w||^2+C\sum_{i=1}^n \xi_i \quad (凸函数)\\ &s.t.\quad \begin{cases} y_i \cdot [w^T \cdot \varphi(x_i)+b] \ge1-\xi_i \\ \xi_i \ge0 \end{cases}\quad i=1,2,\cdots,n \end{aligned} minf(w)=21∣∣w∣∣2+Ci=1∑nξi(凸函数)s.t.{yi⋅[wT⋅φ(xi)+b]≥1−ξiξi≥0i=1,2,⋯,n由于原问题定义中约束条件都是小于等于零的,故第一步改变如下: min f ( w ) = 1 2 ∣ ∣ w ∣ ∣ 2 − C ∑ i = 1 n ξ i ( 凸 函 数 ) s . t . { 1 + ξ i − y i ⋅ [ w T ⋅ φ ( x i ) + b ] ≤ 0 ξ i ≤ 0 i = 1 , 2 , ⋯ , n \begin{aligned}\displaystyle &\min \quad f(w)=\frac{1}{2}||w||^2-C\sum_{i=1}^n \xi_i \quad (凸函数)\\ &s.t.\quad \begin{cases} 1+\xi_i -y_i \cdot [w^T \cdot \varphi(x_i)+b] \le0\\ \xi_i \le0 \end{cases}\quad i=1,2,\cdots,n \end{aligned} minf(w)=21∣∣w∣∣2−Ci=1∑nξi(凸函数)s.t.{1+ξi−yi⋅[wT⋅φ(xi)+b]≤0ξi≤0i=1,2,⋯,n下面将其转化为对偶问题(根据强对偶定理,原问题和对偶问题同解): L ( w , ξ i , b ) = 1 2 ∣ ∣ w ∣ ∣ 2 − C ∑ i = 1 n ξ i + ∑ i = 1 n α i [ 1 + ξ i − y i w T φ ( x i ) + y i b ] + ∑ i = 1 n β i ξ i max θ ( α , β ) = inf 所 有 的 w , ξ i , b L ( w , ξ i , b ) s . t . { α i ≥ 0 β i ≥ 0 i = 1 , 2 , ⋯ , n \begin{aligned}\displaystyle &L(w,\xi_i,b)= \frac{1}{2}||w||^2-C\sum_{i=1}^n \xi_i +\sum_{i=1}^{n}\alpha_i [1+\xi_i -y_i w^T \varphi(x_i)+y_i b]+\sum_{i=1}^{n}\beta_i \xi_i\\ &\max \quad \theta(\alpha,\beta)=\displaystyle\inf_{所有的w,\xi_i,b}L(w,\xi_i,b)\\ &s.t.\quad \begin{cases} \alpha_i \ge0\\ \beta_i \ge0 \end{cases}\quad i=1,2,\cdots,n \end{aligned} L(w,ξi,b)=21∣∣w∣∣2−Ci=1∑nξi+i=1∑nαi[1+ξi−yiwTφ(xi)+yib]+i=1∑nβiξimaxθ(α,β)=所有的w,ξi,binfL(w,ξi,b)s.t.{αi≥0βi≥0i=1,2,⋯,n
- step 1:求解
inf
所
有
的
w
,
ξ
i
,
b
L
(
w
,
ξ
i
,
b
)
\,\,\displaystyle\inf_{所有的w,\xi_i,b}L(w,\xi_i,b)
所有的w,ξi,binfL(w,ξi,b)
{ ∂ L ∂ w = 0 ∂ L ∂ ξ i = 0 ∂ L ∂ b = 0 ⟹ { w = ∑ i = 1 n α i y i φ ( x i ) β i + α i = C ∑ i = 1 n α i y i = 0 \begin{cases}\displaystyle\frac{\partial L}{\partial w}=0 \\ \\ \displaystyle\frac{\partial L}{\partial \xi_i}=0\\ \\ \displaystyle\frac{\partial L}{\partial b}=0 \end{cases}\implies\begin{cases}w=\displaystyle\sum_{i=1}^{n}\alpha_iy_i\varphi(x_i) \\ \beta_i+\alpha_i=C\\ \displaystyle\sum_{i=1}^{n}\alpha_i y_i=0\end{cases} ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧∂w∂L=0∂ξi∂L=0∂b∂L=0⟹⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧w=i=1∑nαiyiφ(xi)βi+αi=Ci=1∑nαiyi=0
这里利用矩阵分析可以得出:
- 若 f ( w ) = 1 2 ∣ ∣ w ∣ ∣ 2 \displaystyle f(w)=\frac{1}{2}||w||^2 f(w)=21∣∣w∣∣2,则 ∂ f ∂ w = w \displaystyle \frac{\partial f}{\partial w}=w ∂w∂f=w
- 若 f ( w ) = w T x \displaystyle f(w)=w^Tx f(w)=wTx,则 ∂ f ∂ w = x \displaystyle \frac{\partial f}{\partial w}=x ∂w∂f=x
- step 2:代入原式
max θ ( α ) = ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j K ( x i , x j ) s . t . { 0 ≤ α i ≤ C ∑ i = 1 n α i y i = 0 i = 1 , 2 , ⋯ , n \begin{aligned}\displaystyle &\max \quad \theta(\alpha)=\sum_{i=1}^{n}\alpha_i-\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}\alpha_i\alpha_jy_iy_jK(x_i,x_j)\\ &s.t.\quad \begin{cases} 0\le\alpha_i\le C\\ \displaystyle\sum_{i=1}^{n}\alpha_iy_i=0 \end{cases}\quad i=1,2,\cdots,n \end{aligned} maxθ(α)=i=1∑nαi−21i=1∑nj=1∑nαiαjyiyjK(xi,xj)s.t.⎩⎪⎨⎪⎧0≤αi≤Ci=1∑nαiyi=0i=1,2,⋯,n至此已经将SVM问题转化为标准的凸优化问题,通用算法是SMO算法 - step 3:假设已经利用SMO算法求出 α \alpha α ,怎么使用
测试流程
- 测试样本X
- 若 w T φ ( x ) + b ≥ 0 \displaystyle w^T\varphi(x)+b\ge0 wTφ(x)+b≥0,则 y = + 1 y=+1 y=+1
- 若 w T φ ( x ) + b < 0 \displaystyle w^T\varphi(x)+b\lt0 wTφ(x)+b<0,则 y = − 1 y=-1 y=−1
根据测试流程,我们不需要知道 w w w和 b b b具体多少,只要能得到表达式的值就行,然后代入 s i g n sign sign函数分类即可。
-
w
T
φ
(
x
)
\large\color{blue}\displaystyle w^T\varphi(x)
wTφ(x)
w T φ ( x ) = ∑ i = 1 n [ α i y i φ ( x i ) ] T φ ( x ) = ∑ i = 1 n α i y i φ ( x i ) T φ ( x ) = ∑ i = 1 n α i y i K ( x i , x ) \begin{aligned}w^T\varphi(x)&=\sum_{i=1}^{n}[\alpha_iy_i\varphi(x_i)]^T\varphi(x)\\&=\sum_{i=1}^{n}\alpha_iy_i\varphi(x_i)^T\varphi(x)\\&=\sum_{i=1}^{n}\alpha_iy_iK(x_i,x)\end{aligned} wTφ(x)=i=1∑n[αiyiφ(xi)]Tφ(x)=i=1∑nαiyiφ(xi)Tφ(x)=i=1∑nαiyiK(xi,x) -
b
\large\color{blue}b
b
这个要用到强对偶定理的结论,即对 ∀ i = 1 ∼ n \forall i=1\sim n ∀i=1∼n,有:
①要么 β i = 0 \beta_i=0 βi=0,要么 ξ i = 0 \xi_i=0 ξi=0
②要么 α i = 0 \alpha_i=0 αi=0,要么 1 + ξ i − y i w T φ ( x i ) − y i b = 0 1+\xi_i-y_iw^T\varphi(x_i)-y_ib=0 1+ξi−yiwTφ(xi)−yib=0
取一个 0 < α i < C ⟹ β i = C − α i > 0 0\lt\alpha_i\lt C\implies \beta_i=C-\alpha_i\gt0 0<αi<C⟹βi=C−αi>0,此时 { β i ≠ 0 ⟹ ξ i = 0 α i ≠ 0 ⟹ 1 + ξ i − y i w T φ ( x i ) − y i b = 0 ⟹ 1 − y i w T φ ( x i ) − y i b = 0 ⟹ b = 1 − y i w T φ ( x i ) y i = 代 入 w T φ ( x ) 的 结 果 1 − y i ∑ j = 1 n α j y j K ( x i , x j ) y i \begin{aligned} &\begin{cases}&\beta_i\ne0 \implies \xi_i=0 \\ &\alpha_i\ne0\implies 1+\xi_i-y_iw^T\varphi(x_i)-y_ib=0 \implies 1-y_iw^T\varphi(x_i)-y_ib=0\end{cases}\\ \\ \implies& b=\displaystyle\frac{1-y_iw^T\varphi(x_i)}{y_i}\xlongequal{代入w^T\varphi(x)的结果}\displaystyle\frac{1-y_i\displaystyle\sum_{j=1}^{n}\alpha_jy_jK(x_i,x_j)}{y_i}\end{aligned} ⟹{βi=0⟹ξi=0αi=0⟹1+ξi−yiwTφ(xi)−yib=0⟹1−yiwTφ(xi)−yib=0b=yi1−yiwTφ(xi)代入wTφ(x)的结果yi1−yij=1∑nαjyjK(xi,xj)实际算法,为了提高精确度,可以找出所有的 α i \alpha_i αi,算出来的 b b b 求平均值作为结果
4. SVM算法总结
4.1 训练流程
- 输入训练样本: { x 1 , y 1 } , { x 2 , y 2 } , ⋯ , { x n , y n } \displaystyle\{x_1,y_1\},\{x_2,y_2\},\cdots,\{x_n,y_n\} {x1,y1},{x2,y2},⋯,{xn,yn}
- 解优化问题,求 α \alpha α (SMO算法) max θ ( α ) = ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j K ( x i , x j ) s . t . { 0 ≤ α i ≤ C ∑ i = 1 n α i y i = 0 i = 1 , 2 , ⋯ , n \begin{aligned}\displaystyle &\max \,\theta(\alpha)=\sum_{i=1}^{n}\alpha_i-\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}\alpha_i\alpha_jy_iy_jK(x_i,x_j)\\ &s.t.\quad \begin{cases} 0\le\alpha_i\le C\\ \displaystyle\sum_{i=1}^{n}\alpha_iy_i=0 \end{cases}\quad i=1,2,\cdots,n \end{aligned} maxθ(α)=i=1∑nαi−21i=1∑nj=1∑nαiαjyiyjK(xi,xj)s.t.⎩⎪⎨⎪⎧0≤αi≤Ci=1∑nαiyi=0i=1,2,⋯,n
- 求出 b b b, b = 1 − y i ∑ j = 1 n α j y j K ( x i , x j ) y i b=\displaystyle\frac{1-y_i\displaystyle\sum_{j=1}^{n}\alpha_jy_jK(x_i,x_j)}{y_i} b=yi1−yij=1∑nαjyjK(xi,xj)
4.2 测试流程
- 输入测试样本: { x 1 , x 2 , ⋯ , x n } \displaystyle\{x_1,x_2,\cdots,x_n\} {x1,x2,⋯,xn}
- { 若 ∑ i = 1 n α i y i K ( x i , x ) + b ≥ 0 , 则 y = + 1 若 ∑ i = 1 n α i y i K ( x i , x ) + b < 0 , 则 y = − 1 \begin{aligned}\begin{cases}若\displaystyle\sum_{i=1}^{n}\alpha_iy_iK(x_i,x)+b\ge0,&则y=+1\\ \\若\displaystyle\sum_{i=1}^{n}\alpha_iy_iK(x_i,x)+b\lt0,&则y=-1 \end{cases}\end{aligned} ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧若i=1∑nαiyiK(xi,x)+b≥0,若i=1∑nαiyiK(xi,x)+b<0,则y=+1则y=−1