SVM(线性模型)数学推导
学习路线:先线性二分类解释清楚,再加入核方法扩展至非线性二分类
几个重要的概念
-
训练样本集
( x i , y i ) (\boldsymbol{x}_i,y_i) (xi,yi),其中 x i \boldsymbol{x_i} xi为 n n n维列向量,表示 n n n维特征; y i y_i yi为标签,当 y i = + 1 y_i=+1 yi=+1时为正样本, y i = − 1 y_i=-1 yi=−1时为负样本。
则训练样本集为: D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x m , y m ) , y ∈ − 1 , + 1 D={( \boldsymbol{x}_{\boldsymbol{1}},y_1 ) ,( \boldsymbol{x}_2,y_2 ) ,\cdots ,( \boldsymbol{x}_m,y_m ) } , y\in {-1,+1 } D=(x1,y1),(x2,y2),⋯,(xm,ym),y∈−1,+1
-
什么叫超平面
如上图,若在二维空间内(两个特征),若数据为线性可分,则可以用一条直线将正负样本区分开来(2分类问题);若在三维空间则为一个平面;三维空间以上无法想象统称为超平面。
但上图中区分正负样本肯定又不止一种划分方法,何者为最优?最优者才叫做SVM的超平面。
最优的判断标准则是,若对数据样本加以扰动(可以理解为采样样本总有误差),那么SVM超平面具有最佳的鲁棒性。从几何上来看,在上图中,若将超平面左右平移,直至触碰到最近的样本,那么这个被界定的范围记为 d d d,则SVM的超平面是有最大 d d d的那个超平面。
-
什么叫支持向量
SVM超平面左右平移最先触碰到的为支持向量
-
超平面的方程
w T x + b = 0 \boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}+b=0 wTx+b=0
其中: w \boldsymbol{w} w和 x \boldsymbol{x} x都是 n × 1 n\times 1 n×1的列向量, n n n是特征维数。 b b b为标量; w \boldsymbol{w} w还是超平面的法向量, b b b控制了超平面到原点的距离。确定了 w \boldsymbol{w} w和 b b b,超平面就被完全确定了。那么在超平面上方数据 w T x + b > 0 \boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}+b>0 wTx+b>0;在超平面下方数据 w T x + b < 0 \boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}+b<0 wTx+b<0;
-
w T x + b = 0 \boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}+b=0 wTx+b=0与 ζ w T x + ζ b = 0 \zeta\boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}+\zeta b=0 ζwTx+ζb=0表示的是同一个超平面
如: 4 x + 4 y = 0 4x+4y=0 4x+4y=0 和 $ x+y=0$是同一个平面, 4 x + 4 y = 4 4x+4y=4 4x+4y=4和$ x+y=1$也是同一个平面
-
线性可分数据集的定义
在数据集 ( x i , y i ) i = 1 ∼ m {( \boldsymbol{x}_i,y_i ) } _{i=1\sim m} (xi,yi)i=1∼m中, ∃ ( w , b ) \exists ( \boldsymbol{w},b ) ∃(w,b),使得对于 ∀ i = 1 ∼ m \forall i=1 \sim m ∀i=1∼m,有:
{ 若 y i = + 1 , 则 w T x i + b > 0 若 y i = − 1 , 则 w T x i + b < 0 \begin{cases} \text{若}y_i=+1, \text{则}\boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}_{\boldsymbol{i}}+b> 0\\ \text{若}y_i=-1, \text{则}\boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}_{\boldsymbol{i}}+b< 0\\ \end{cases} {若yi=+1,则wTxi+b>0若yi=−1,则wTxi+b<0
即正样本全部分到上方,负样本全部分到下方等价于 y i ( w T x i + b ) > 0 y_i(\boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}_{\boldsymbol{i}}+b)> 0 yi(wTxi+b)>0
-
点到平面距离公式
点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)到平面 w 1 x + w 2 y + b = 0 w_1x+w_2y+b=0 w1x+w2y+b=0的距离表示为:
d = ∣ w 1 x 0 + w 2 y 0 + b ∣ w 1 2 + w 2 2 d=\frac{\left| w_1x_0+w_2y_0+b \right|}{\sqrt{w_{1}^{2}+w_{2}^{2}}} d=w12+w22∣w1x0+w2y0+b∣
则样本点到超平面的距离表示为:
d = ∣ w T x i + b ∣ ∥ w ∥ d=\frac{\left| \boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}_{\boldsymbol{i}}+b \right|}{\lVert \boldsymbol{w} \rVert} d=∥w∥∣∣wTxi+b∣∣
-
若假设支持向量过超平面的平行线为 w T x + b = 1 \boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}+b=1 wTx+b=1和 w T x + b = − 1 \boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}+b=-1 wTx+b=−1(如上图所示),那么可求得
支持向量到超平面的距离为:
d = 1 ∥ w ∥ d=\frac{1}{\lVert \boldsymbol{w} \rVert} d=∥w∥1
那么超平面左右平移被限制的范围(即两个异类支持向量到超平面的距离之和)为:
Υ = 2 ∥ w ∥ \varUpsilon =\frac{2}{\lVert \boldsymbol{w} \rVert} Υ=∥w∥2
Υ \varUpsilon Υ被称为SVM的“间隔”(margin)为什么可以假设支持向量过超平面的平行线为 w T x + b = 1 \boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}+b=1 wTx+b=1和 w T x + b = − 1 \boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}+b=-1 wTx+b=−1呢?正如上面第5点所述,由于 W \boldsymbol{W} W和 b b b可以整体缩放倍数,超平面不变。那么总可以通过 ζ ⋅ ( w , b ) → ( w ′ , b ′ ) \zeta \cdot ( \boldsymbol{w},b ) \rightarrow ( \boldsymbol{w'},b' ) ζ⋅(w,b)→(w′,b′),使 ∣ w T x + b ∣ = 1 \left| \boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}+b \right|=1 ∣∣wTx+b∣∣=1。归一化的操作为我们带来便利
求解超平面转化为下列优化问题
在限制条件 y i ( w T x i + b ) ⩾ 1 , i = 1 ∼ m y_i(w^Tx_i+b)\geqslant 1,i=1\sim m yi(wTxi+b)⩾1,i=1∼m 下,最小化 1 2 ∥ w ∥ 2 \frac{1}{2}\lVert \boldsymbol{w} \rVert ^2 21∥w∥2 的问题
即:
min
w
,
b
1
2
∥
w
∥
2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
⩾
1
,
i
=
1
∼
m
\begin{aligned} &\underset{\boldsymbol{w},b}{\min}\,\,\frac{1}{2}\lVert \boldsymbol{w} \rVert ^2 \\ &s.t.\quad y_i(\boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}_{\boldsymbol{i}}+b)\geqslant 1,i=1\sim m \end{aligned}
w,bmin21∥w∥2s.t.yi(wTxi+b)⩾1,i=1∼m
最大化 Υ = 2 ∥ w ∥ \varUpsilon =\frac{2}{\lVert \boldsymbol{w} \rVert} Υ=∥w∥2等价于最小化 1 2 ∥ w ∥ 2 \frac{1}{2}\lVert \boldsymbol{w} \rVert ^2 21∥w∥2,而限制条件 y i ( w T x i + b ) ⩾ 1 , i = 1 ∼ m y_i(w^Tx_i+b)\geqslant 1,i=1\sim m yi(wTxi+b)⩾1,i=1∼m表示求解超平面的前提条件是所有样本都被正确分类的情况下
这样就把支持向量机的求解转化为凸优化问题中的二次规划问题
二次规划(Quadratic Programming)
- 目标函数(Objective Function)为二次项
- 限制条件为一次项
要么无解,要么只有一个极值
SVM(非线性模型)数学推导
若数据集非线性可分,那么线性SVM的优化问题会变得无解。通过加入正则项,可以使SVM应用于非线性可分的数据集。
改写优化目标函数和限制条件
min w , b 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ξ i s . t . { y i ( w T x i + b ) ⩾ 1 − ξ i ξ i ⩾ 0 , i = 1 ∼ m (1) \begin{aligned} &\underset{\boldsymbol{w},b}{\min}\,\,\frac{1}{2}\lVert \boldsymbol{w} \rVert ^2+C\sum_{i=1}^m{\xi _i}\\ &s.t.\quad \begin{cases} y_i( \boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}_{\boldsymbol{i}}+b ) \geqslant 1-\xi _i\\ \xi _i\geqslant 0\\ \end{cases},i=1\sim m\\ \end{aligned} \tag{1} w,bmin21∥w∥2+Ci=1∑mξis.t.{yi(wTxi+b)⩾1−ξiξi⩾0,i=1∼m(1)
其中: ξ i \xi_i ξi称为松弛变量(Slack Variable), ∑ i = 1 m ξ i \sum_{i=1}^m{\xi _i} ∑i=1mξi称为正则项
若 ξ i \xi_i ξi足够大,则限制条件可以被轻易满足(即为限制条件加入了容忍度)。但 ξ i \xi_i ξi又不能太大,那么限制条件就失去了意义。因此在优化目标函数里需要添加 ξ i \xi_i ξi,并用一个超参数 C C C来权衡最小化 1 2 ∥ w ∥ 2 \frac{1}{2}\lVert \boldsymbol{w} \rVert ^2 21∥w∥2与最小化 ∑ i = 1 m ξ i \sum_{i=1}^m{\xi _i} ∑i=1mξi之间的关系
低维到高维的映射
改写优化目标函数和限制条件后的SVM可以应用于非线性可分的数据集中。但是这样的SVM仍然是在试图寻找一条直线将正负样本划分,在某些情况下这仍然不够好,例如:
不同于其他机器学习算法,SVM试图通过高维映射,使低维空间的线性不可分问题变成高维空间中的线性可分问题,从而在高维空间中画出超平面对数据集进行划分。
我们定义高维映射
φ
(
x
)
\varphi (\boldsymbol{x})
φ(x):
x
→
φ
φ
(
x
)
\boldsymbol{x}\xrightarrow{\varphi }\varphi ( \boldsymbol{x} )
xφφ(x)
其中 x \boldsymbol{x} x是低维向量,而 φ ( x ) \varphi (\boldsymbol{x}) φ(x)为高维向量
那么SVM的优化条件变为:
min
w
,
b
1
2
∥
w
∥
2
+
C
∑
i
=
1
m
ξ
i
s
.
t
.
{
y
i
(
w
T
φ
(
x
i
)
+
b
)
⩾
1
−
ξ
i
ξ
i
⩾
0
,
i
=
1
∼
m
\begin{aligned} &\underset{\boldsymbol{w},b}{\min}\,\,\frac{1}{2}\lVert \boldsymbol{w} \rVert ^2 +C\sum_{i=1}^m{\xi _i} \\ &s.t.\quad \begin{cases} y_i(\boldsymbol{w}^{\boldsymbol{T}}\varphi (\boldsymbol{x}_{\boldsymbol{i}})+b) \geqslant 1-\xi _i\\ \xi _i\geqslant 0\\ \end{cases},i=1\sim m \end{aligned}
w,bmin21∥w∥2+Ci=1∑mξis.t.{yi(wTφ(xi)+b)⩾1−ξiξi⩾0,i=1∼m
此时 w \boldsymbol{w} w的维度也升高了,与 φ ( x ) \varphi (\boldsymbol{x}) φ(x)的维度相同
例子:
对于这么一个异或问题,我们有:
x
1
=
[
0
0
]
∈
C
1
,
x
2
=
[
1
1
]
∈
C
1
,
x
3
=
[
1
0
]
∈
C
2
,
x
4
=
[
0
1
]
∈
C
2
\begin{aligned} &\boldsymbol{x}_{\boldsymbol{1}}=\left[ \begin{array}{c} 0\\ 0\\ \end{array} \right] \in C_1,\quad \boldsymbol{x}_{\boldsymbol{2}}=\left[ \begin{array}{c} 1\\ 1\\ \end{array} \right] \in C_1,\quad \\ &\boldsymbol{x}_{\boldsymbol{3}}=\left[ \begin{array}{c} 1\\ 0\\ \end{array} \right] \in C_2,\quad \boldsymbol{x}_{\boldsymbol{4}}=\left[ \begin{array}{c} 0\\ 1\\ \end{array} \right] \in C_2 \end{aligned}
x1=[00]∈C1,x2=[11]∈C1,x3=[10]∈C2,x4=[01]∈C2
定义映射关系:
x
=
[
a
b
]
→
φ
φ
(
x
)
=
[
a
2
b
2
a
b
a
b
]
\boldsymbol{x}=\left[ \begin{array}{c} a\\ b\\ \end{array} \right] \xrightarrow{\varphi }\varphi ( \boldsymbol{x} ) =\left[ \begin{array}{c} a^2\\ b^2\\ a\\ \begin{array}{c} b\\ ab\\ \end{array}\\ \end{array} \right]
x=[ab]φφ(x)=⎣⎢⎢⎢⎢⎡a2b2abab⎦⎥⎥⎥⎥⎤
则升维后的样本为
φ ( x 1 ) = [ 0 0 0 0 0 ] ∈ C 1 , φ ( x 2 ) = [ 1 1 1 1 1 ] ∈ C 1 , φ ( x 3 ) = [ 1 0 1 0 0 ] ∈ C 2 , φ ( x 4 ) = [ 0 1 0 1 0 ] ∈ C 2 \begin{aligned} &\varphi ( \boldsymbol{x}_{\boldsymbol{1}} ) =\left[ \begin{array}{c} \begin{array}{c} 0\\ 0\\ \end{array}\\ \begin{array}{c} 0\\ 0\\ 0\\ \end{array}\\ \end{array} \right] \in C_1,\quad \varphi ( \boldsymbol{x}_{\boldsymbol{2}} ) =\left[ \begin{array}{c} \begin{array}{c} 1\\ 1\\ \end{array}\\ \begin{array}{c} 1\\ 1\\ 1\\ \end{array}\\ \end{array} \right] \in C_1,\quad \\ &\varphi ( \boldsymbol{x}_{\boldsymbol{3}} ) =\left[ \begin{array}{c} \begin{array}{c} 1\\ 0\\ \end{array}\\ \begin{array}{c} 1\\ 0\\ 0\\ \end{array}\\ \end{array} \right] \in C_2,\quad \varphi ( \boldsymbol{x}_{\boldsymbol{4}} ) =\left[ \begin{array}{c} \begin{array}{c} 0\\ 1\\ \end{array}\\ \begin{array}{c} 0\\ 1\\ 0\\ \end{array}\\ \end{array} \right] \in C_2 \end{aligned} φ(x1)=⎣⎢⎢⎢⎢⎡00000⎦⎥⎥⎥⎥⎤∈C1,φ(x2)=⎣⎢⎢⎢⎢⎡11111⎦⎥⎥⎥⎥⎤∈C1,φ(x3)=⎣⎢⎢⎢⎢⎡10100⎦⎥⎥⎥⎥⎤∈C2,φ(x4)=⎣⎢⎢⎢⎢⎡01010⎦⎥⎥⎥⎥⎤∈C2
求得
w
\boldsymbol{w}
w为:
w
=
[
−
1
−
1
−
1
−
1
6
]
,
b
=
1
\boldsymbol{w}=\left[ \begin{array}{c} \begin{array}{c} -1\\ -1\\ \end{array}\\ \begin{array}{c} -1\\ -1\\ 6\\ \end{array}\\ \end{array} \right] ,\quad b=1
w=⎣⎢⎢⎢⎢⎡−1−1−1−16⎦⎥⎥⎥⎥⎤,b=1
则
y
^
1
=
w
T
x
1
+
b
=
1
>
0
y
^
2
=
w
T
x
2
+
b
=
3
>
0
y
^
3
=
w
T
x
3
+
b
=
−
1
<
0
y
^
4
=
w
T
x
4
+
b
=
−
1
<
0
\begin{aligned} \widehat{y}_1&=\boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}_{\boldsymbol{1}}+b\,\,=\,\,1>0\\\widehat{y}_2&=\boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}_{\boldsymbol{2}}+b\,\,=\,\,3>0\\\widehat{y}_3&=\boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}_{\boldsymbol{3}}+b\,\,=\,\,-1<0\\\widehat{y}_4&=\boldsymbol{w}^{\boldsymbol{T}}\boldsymbol{x}_{\boldsymbol{4}}+b\,\,=\,\,-1<0 \end{aligned}
y
1y
2y
3y
4=wTx1+b=1>0=wTx2+b=3>0=wTx3+b=−1<0=wTx4+b=−1<0
可见的确通过升维,在高维空间划分了超平面,实现了非线性可分数据的分类问题。
核函数
可以证明:若升的维度越高,则数据集越有可能在高维空间被线性划分。可以猜想,若 φ ( x ) \varphi (\boldsymbol{x}) φ(x)为无限维度,则必定可以在无限高维空间划分任意数据集。但这样,会使得 w \boldsymbol{w} w也变为无限维度,使优化问题 ( 1 ) (1) (1)变得不可解(因为 w \boldsymbol{w} w是代求参数)。
定理:我们可以不知道无限维映射
φ
(
x
)
\varphi (\boldsymbol{x})
φ(x)的显式表达,我们只要知道一个核函数(Kernel Function)
K
(
x
1
,
x
2
)
=
φ
(
x
1
)
T
⋅
φ
(
x
2
)
K( \boldsymbol{x}_{\boldsymbol{1}},\boldsymbol{x}_{\boldsymbol{2}} ) \,\,=\,\,\varphi ( \boldsymbol{x}_{\boldsymbol{1}} ) ^T\cdot \varphi ( \boldsymbol{x}_{\boldsymbol{2}} )
K(x1,x2)=φ(x1)T⋅φ(x2)
则
(
1
)
(1)
(1)这个优化式仍然可解。
常用核函数:
-
高斯核
K ( x 1 , x 2 ) = e − ∥ x 1 − x 2 ∥ 2 2 σ 2 K( \boldsymbol{x}_{\boldsymbol{1}},\boldsymbol{x}_{\boldsymbol{2}} ) \,\,=\,\,e^{-\frac{\lVert x_1-x_2 \rVert ^2}{2\sigma ^2}} K(x1,x2)=e−2σ2∥x1−x2∥2 -
多项式核
K ( x 1 , x 2 ) = ( x 1 T x 2 + 1 ) d K( \boldsymbol{x}_{\boldsymbol{1}},\boldsymbol{x}_{\boldsymbol{2}} ) \,\,=\,\,( \boldsymbol{x}_{\boldsymbol{1}}^{\boldsymbol{T}}\boldsymbol{x}_{\boldsymbol{2}}+1 ) ^d K(x1,x2)=(x1Tx2+1)d
我们知道核 K ( x 1 , x 2 ) K( \boldsymbol{x}_{\boldsymbol{1}},\boldsymbol{x}_{\boldsymbol{2}} ) K(x1,x2)的表达式,且知道 K ( x 1 , x 2 ) K( \boldsymbol{x}_{\boldsymbol{1}},\boldsymbol{x}_{\boldsymbol{2}} ) K(x1,x2)可以表示为 φ ( x 1 ) T φ ( x 2 ) \varphi ( \boldsymbol{x}_{\boldsymbol{1}} ) ^T \varphi ( \boldsymbol{x}_{\boldsymbol{2}} ) φ(x1)Tφ(x2),并且 φ ( x ) \varphi (\boldsymbol{x}) φ(x)是无限维的(不需要知道 φ ( x ) \varphi (\boldsymbol{x}) φ(x)的显示表达)。
K ( x 1 , x 2 ) K( \boldsymbol{x}_{\boldsymbol{1}},\boldsymbol{x}_{\boldsymbol{2}} ) K(x1,x2)能写成 φ ( x 1 ) T φ ( x 2 ) \varphi ( \boldsymbol{x}_{\boldsymbol{1}} ) ^T \varphi ( \boldsymbol{x}_{\boldsymbol{2}} ) φ(x1)Tφ(x2)的充要条件为(Mercer’s Theorem):
- K ( x 1 , x 2 ) = K ( x 2 , x 1 ) K( \boldsymbol{x}_{\boldsymbol{1}},\boldsymbol{x}_{\boldsymbol{2}} ) = K( \boldsymbol{x}_{\boldsymbol{2}},\boldsymbol{x}_{\boldsymbol{1}} ) K(x1,x2)=K(x2,x1)(交换性)
- ∀ C i , x i ( i = 1 ∼ N ) \forall C_i, \,\, \boldsymbol{x_i}(i=1\sim N) ∀Ci,xi(i=1∼N),有 ∑ i = 1 N ∑ j = 1 N C i C j K ( x 1 , x 2 ) ⩾ 0 \sum_{i=1}^N{\sum_{j=1}^N{C_iC_jK( \boldsymbol{x}_{\boldsymbol{1}},\boldsymbol{x}_{\boldsymbol{2}} ) \geqslant 0}}\,\, ∑i=1N∑j=1NCiCjK(x1,x2)⩾0成立(半正定性)
原问题和对偶问题
现在我们要在只知道 K ( x 1 , x 2 ) K( \boldsymbol{x}_{\boldsymbol{1}},\boldsymbol{x}_{\boldsymbol{2}} ) K(x1,x2)不知道 φ ( x ) \varphi (\boldsymbol{x}) φ(x)的情况下,解优化问题 ( 1 ) (1) (1),因此我们需要一些理论知识铺垫。
这是优化理论的内容,用到就学一下吧
原问题(Prime Problem):
最小化:
f
(
ω
)
f(\boldsymbol{\omega})
f(ω)
限制条件:
g
i
(
ω
)
⩽
0
(
i
=
1
∼
K
)
h
i
(
ω
)
=
0
(
i
=
1
∼
M
)
g_i( \boldsymbol{\omega} ) \leqslant 0 ( i=1\sim K ) \\ h_i( \boldsymbol{\omega} ) =0 ( i=1\sim M )
gi(ω)⩽0(i=1∼K)hi(ω)=0(i=1∼M)
则其对偶问题(Dual Problem)为:
最大化:
Θ
(
α
,
β
)
=
i
n
f
f
o
r
a
l
l
ω
L
(
ω
,
α
,
β
)
\varTheta ( \boldsymbol{\alpha} ,\boldsymbol{\beta}) \,\,=\,\,\underset{for\,\,all\,\,\boldsymbol{\omega}}{inf}{L( \boldsymbol{\omega} ,\boldsymbol{\alpha} ,\boldsymbol{\beta} ) }
Θ(α,β)=forallωinfL(ω,α,β)
限制条件:
α ⩾ 0 \boldsymbol{\alpha }\geqslant 0 α⩾0
其中 L ( ω , α , β ) L( \boldsymbol{\omega} ,\boldsymbol{\alpha },\boldsymbol{\beta } ) L(ω,α,β)为:
L ( ω , α , β ) = f ( ω ) + ∑ i = 1 K α i g i ( ω ) + ∑ i = 1 M β i h i ( ω ) = f ( ω ) + α T g ( ω ) + β T h ( ω ) \begin{aligned} L( \boldsymbol{\omega} ,\boldsymbol{\alpha },\boldsymbol{\beta } ) \,\,&=\,\,f( \boldsymbol{\omega} ) +\sum_{i=1}^K{\alpha _ig_i( \boldsymbol{\omega} )}+\sum_{i=1}^M{\beta _ih_i( \boldsymbol{\boldsymbol{\omega}} )}\,\, \\ &=\,\,f( \boldsymbol{\omega} ) +\boldsymbol{\alpha }^{\boldsymbol{T}}g( \boldsymbol{\omega} ) +\boldsymbol{\beta }^{\boldsymbol{T}}h( \boldsymbol{\omega} ) \end{aligned} L(ω,α,β)=f(ω)+i=1∑Kαigi(ω)+i=1∑Mβihi(ω)=f(ω)+αTg(ω)+βTh(ω)
i n f f o r a l l ω \underset{for\,\,all\,\,\boldsymbol{\omega}}{inf} forallωinf的意思是,在所有 ω \boldsymbol{\omega} ω取值上取得的最小值
原问题和对偶问题的关系:如果
ω
∗
\boldsymbol{\omega}^*
ω∗是原问题的解,而
α
∗
,
β
∗
\boldsymbol{\alpha}^*,\boldsymbol{\beta}^*
α∗,β∗是对偶问题的解,则有:
f
(
ω
∗
)
⩾
θ
(
α
∗
,
β
∗
)
f( \boldsymbol{\omega} ^* ) \geqslant \theta ( \boldsymbol{\alpha} ^*,\boldsymbol{\beta} ^* )
f(ω∗)⩾θ(α∗,β∗)
proof:
θ ( α ∗ , β ∗ ) = i n f f o r a l l ω L ( ω , α ∗ , β ∗ ) ⩽ L ( ω ∗ , α ∗ , β ∗ ) = f ( ω ∗ ) + ∑ i = 1 K α i ∗ g i ( ω ∗ ) + ∑ i = 1 M β i ∗ h i ( ω ∗ ) ⩽ f ( ω ∗ ) \begin{aligned} \theta ( \boldsymbol{\alpha }^*,\boldsymbol{\beta }^* ) \,\,&=\,\,\underset{for\,\,all\,\,\omega}{inf}{L( \boldsymbol{\omega },\boldsymbol{\alpha }^*,\boldsymbol{\beta }^* ) } \leqslant L( \boldsymbol{\omega }^*,\boldsymbol{\alpha }^*,\boldsymbol{\beta }^* ) \\ &=\,\,f( \boldsymbol{\omega }^* ) +\sum_{i=1}^K{\boldsymbol{\alpha }_{i}^{*}g_i( \boldsymbol{\omega }^* )}+\sum_{i=1}^M{\boldsymbol{\beta }_{i}^{*}h_i( \boldsymbol{\omega }^* )}\leqslant \,\,f( \boldsymbol{\omega }^* ) \end{aligned} θ(α∗,β∗)=forallωinfL(ω,α∗,β∗)⩽L(ω∗,α∗,β∗)=f(ω∗)+i=1∑Kαi∗gi(ω∗)+i=1∑Mβi∗hi(ω∗)⩽f(ω∗)
因为其中 α ∗ ⩾ 0 \boldsymbol{\alpha^* }\geqslant 0 α∗⩾0, g i ( ω ∗ ) ⩽ 0 g_i( \boldsymbol{\omega ^*} ) \leqslant 0 gi(ω∗)⩽0, h i ( ω ∗ ) = 0 h_i( \boldsymbol{\omega^* } ) =0 hi(ω∗)=0
强对偶定理
若
f
(
ω
)
f(\boldsymbol{\omega})
f(ω)为凸函数,且
g
(
ω
)
=
A
ω
+
b
g(\boldsymbol{\omega}) = \boldsymbol{A\omega} + b
g(ω)=Aω+b,
h
(
ω
)
=
C
ω
+
d
h(\boldsymbol{\omega}) = \boldsymbol{C\omega} + d
h(ω)=Cω+d,则优化问题的原问题与对偶问题间距为0,即:
f
(
ω
∗
)
=
θ
(
α
∗
,
β
∗
)
f( \boldsymbol{\omega} ^* ) = \theta ( \boldsymbol{\alpha} ^*,\boldsymbol{\beta} ^* )
f(ω∗)=θ(α∗,β∗)
再观察上面的proof过程,可以立即得出:
对 ∀ i = 1 ∼ K \forall i=1 \sim K ∀i=1∼K,有 α i ∗ = 0 \boldsymbol{\alpha^*_i }=0 αi∗=0 或者 g i ( ω ∗ ) = 0 g_i( \boldsymbol{\omega ^*} ) =0 gi(ω∗)=0
以上称为KKT条件
将SVM原问题转化为对偶问题
核函数SVM优化目标可以改写为(为了使形式上靠近优化理论,将 ξ i ⩾ 0 → ξ i ⩽ 0 \xi _i\geqslant 0\rightarrow \xi _i\leqslant 0 ξi⩾0→ξi⩽0)
最小化:
min
w
,
b
1
2
∥
w
∥
2
+
C
∑
i
=
1
m
ξ
i
→
min
w
,
b
1
2
∥
w
∥
2
−
C
∑
i
=
1
m
ξ
i
\underset{\boldsymbol{w},b}{\min}\,\,\frac{1}{2}\lVert \boldsymbol{w} \rVert ^2+C\sum_{i=1}^m{\xi _i}\rightarrow \underset{\boldsymbol{w},b}{\min}\,\,\frac{1}{2}\lVert \boldsymbol{w} \rVert ^2-C\sum_{i=1}^m{\xi _i}
w,bmin21∥w∥2+Ci=1∑mξi→w,bmin21∥w∥2−Ci=1∑mξi
限制条件:
y
i
(
w
T
φ
(
x
i
)
+
b
)
⩾
1
−
ξ
i
→
y
i
(
w
T
φ
(
x
i
)
+
b
)
⩾
1
+
ξ
i
→
1
+
ξ
i
−
y
i
(
w
T
φ
(
x
i
)
+
b
)
⩽
0
ξ
i
⩾
0
→
ξ
i
⩽
0
\begin{aligned} y_i( \boldsymbol{w}^{\boldsymbol{T}}\varphi \boldsymbol{(x}_{\boldsymbol{i}}\text{)}+b ) \geqslant 1-\xi _i\,\,&\rightarrow \,\,y_i( \boldsymbol{w}^{\boldsymbol{T}}\varphi \boldsymbol{(x}_{\boldsymbol{i}}\text{)}+b ) \geqslant 1+\xi _i\,\, \\ &\rightarrow \,\,1+\xi _i-y_i( \boldsymbol{w}^{\boldsymbol{T}}\varphi \boldsymbol{(x}_{\boldsymbol{i}}\text{)}+b ) \leqslant 0 \\ \xi _i\geqslant 0&\rightarrow \xi _i\leqslant 0 \end{aligned}
yi(wTφ(xi)+b)⩾1−ξiξi⩾0→yi(wTφ(xi)+b)⩾1+ξi→1+ξi−yi(wTφ(xi)+b)⩽0→ξi⩽0
1. 原问题 | 1.核函数SVM原问题 |
---|---|
最小化: f ( ω ) f(\boldsymbol{\omega}) f(ω) | 最小化: 1 2 ∥ w ∥ 2 − C ∑ i = 1 m ξ i \frac{1}{2}\lVert \boldsymbol{w} \rVert ^2-C\sum_{i=1}^m{\xi _i} 21∥w∥2−C∑i=1mξi |
限制条件: g i ( ω ) ⩽ 0 ( i = 1 ∼ K ) h i ( ω ) = 0 ( i = 1 ∼ M ) g_i( \boldsymbol{\omega} ) \leqslant 0 ( i=1\sim K ) \\h_i( \boldsymbol{\omega} ) =0 ( i=1\sim M ) gi(ω)⩽0(i=1∼K)hi(ω)=0(i=1∼M) | 限制条件: 1 + ξ i − y i ( w T φ ( x i ) + b ) ⩽ 0 ξ i ⩽ 0 \,1+\xi _i-y_i( \boldsymbol{w}^{\boldsymbol{T}}\varphi \boldsymbol{(x}_{\boldsymbol{i}}\text{)}+b ) \leqslant 0 \\ \xi _i\leqslant 0 1+ξi−yi(wTφ(xi)+b)⩽0ξi⩽0 |
从限制条件可知,左边的不等式限制条件 g i ( ω ) ⩽ 0 g_i( \boldsymbol{\omega} ) \leqslant 0 gi(ω)⩽0对应右边的 1 + ξ i − y i ( w T φ ( x i ) + b ) ⩽ 0 1+\xi _i-y_i( \boldsymbol{w}^{\boldsymbol{T}}\varphi \boldsymbol{(x}_{\boldsymbol{i}})+b ) \leqslant 0 1+ξi−yi(wTφ(xi)+b)⩽0和 ξ i ⩽ 0 \xi _i\leqslant 0 ξi⩽0;而没有等式限制条。
优化目标函数 f ( ω ) f(\boldsymbol{\omega}) f(ω)对应 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ξ i \frac{1}{2}\lVert \boldsymbol{w} \rVert ^2+C\sum_{i=1}^m{\xi _i} 21∥w∥2+C∑i=1mξi
左边只有一个变量 ω \boldsymbol{\omega} ω,而右边对应有三个变量 ω , ξ i , b \boldsymbol{\omega},\xi _i, b ω,ξi,b
因此可以推导出核函数SVM的对偶问题:
2. 对偶问题 | 2. 核函数SVM对偶问题 |
---|---|
最大化: Θ ( α , β ) = i n f f o r a l l ω L ( ω , α , β ) \varTheta ( \boldsymbol{\alpha} ,\boldsymbol{\beta}) \,=\,\underset{for\,\,all\,\,\boldsymbol{\omega}}{inf}{L( \boldsymbol{\omega} ,\boldsymbol{\alpha} ,\boldsymbol{\beta} ) } Θ(α,β)=forallωinfL(ω,α,β) | 最大化: Θ ( α , β ) = i n f f o r a l l ( ω , ξ i , 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 \begin{aligned}\varTheta ( \boldsymbol{\alpha },\boldsymbol{\beta } ) \,=\,\underset{for\,\,all\,( \,\boldsymbol{\omega },\xi _i,b )}{inf}{\frac{1}{2}\lVert \boldsymbol{w} \rVert ^2-C\sum_{i=1}^m{\xi _i}+\sum_{i=1}^m{\alpha _i}\,( 1+\xi _i-y_i( \boldsymbol{w}^{\boldsymbol{T}}\varphi \boldsymbol{(x}_{\boldsymbol{i}}\text{)}+b ) ) +\sum_{i=1}^m{\beta _i\xi _i} }\end{aligned} Θ(α,β)=forall(ω,ξi,b)inf21∥w∥2−Ci=1∑mξi+i=1∑mαi(1+ξi−yi(wTφ(xi)+b))+i=1∑mβiξi |
限制条件: α i ⩾ 0 ( i = 1 ∼ K ) \alpha_i\geqslant 0 \quad (i=1 \sim K) αi⩾0(i=1∼K) | 限制条件: α i ⩾ 0 , β i ⩾ 0 ( i = 1 ∼ m ) \alpha_i\geqslant 0 , \beta_i \geqslant 0 \quad(i=1 \sim m) αi⩾0,βi⩾0(i=1∼m) |
L ( ω , α , β ) = f ( ω ) + ∑ i = 1 K α i g i ( ω ) + ∑ i = 1 M β i h i ( ω ) L( \boldsymbol{\omega },\boldsymbol{\alpha },\boldsymbol{\beta } ) \,\,=\,\,f( \boldsymbol{\omega } ) +\sum_{i=1}^K{\alpha _ig_i( \boldsymbol{\omega } )}+\sum_{i=1}^M{\beta _ih_i( \boldsymbol{\omega } )}\,\, L(ω,α,β)=f(ω)+∑i=1Kαigi(ω)+∑i=1Mβihi(ω) |
注意,由于SVM中的不等式限制条件有 α i \alpha_i αi和 β i \beta_i βi两个,因此实际上左边的 α i \alpha_i αi对应右边的 α i \alpha_i αi和 β i \beta_i βi
现在我们来求解下式的具体表达式
Θ
(
α
,
β
)
=
i
n
f
f
o
r
a
l
l
(
ω
,
ξ
i
,
b
)
L
(
ω
,
ξ
,
b
)
=
i
n
f
f
o
r
a
l
l
(
ω
,
ξ
,
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
\begin{aligned} \varTheta ( \boldsymbol{\alpha },\boldsymbol{\beta } ) \,&=\underset{for\,\,all\,( \,\boldsymbol{\omega },\xi _i,b )}{inf}{L( \boldsymbol{\omega },\boldsymbol{\xi },b ) } \, \\ &=\underset{for\,\,all\,( \,\boldsymbol{\omega },\boldsymbol{\xi },b )}{inf}{\frac{1}{2}\lVert \boldsymbol{w} \rVert ^2-C\sum_{i=1}^m{\xi _i}+\sum_{i=1}^m{\alpha _i}\,( 1+\xi _i-y_i( \boldsymbol{w}^{\boldsymbol{T}}\varphi \boldsymbol{(x}_{\boldsymbol{i}}\text{)}+b ) ) +\sum_{i=1}^m{\beta _i\xi _i} } \end{aligned}
Θ(α,β)=forall(ω,ξi,b)infL(ω,ξ,b)=forall(ω,ξ,b)inf21∥w∥2−Ci=1∑mξi+i=1∑mαi(1+ξi−yi(wTφ(xi)+b))+i=1∑mβiξi
i
n
f
f
o
r
a
l
l
(
ω
,
ξ
i
,
b
)
\underset{for\,\,all\,( \,\boldsymbol{\omega },\xi _i,b )}{inf}
forall(ω,ξi,b)inf表示求关于
(
ω
,
ξ
i
,
b
)
( \,\boldsymbol{\omega },\xi _i,b )
(ω,ξi,b)的最小值,即求
∂
∂
ω
L
(
ω
,
ξ
i
,
b
)
\frac{\partial}{\partial \boldsymbol{\omega }}L( \boldsymbol{\omega },\xi _i,b )
∂ω∂L(ω,ξi,b),
∂
∂
ξ
i
L
(
ω
,
ξ
i
,
b
)
\frac{\partial}{\partial \xi _i}L( \boldsymbol{\omega },\xi _i,b )
∂ξi∂L(ω,ξi,b),
∂
∂
b
L
(
ω
,
ξ
i
,
b
)
\frac{\partial}{\partial b}L( \boldsymbol{\omega },\xi _i,b )
∂b∂L(ω,ξi,b),并使他们等于零:
∂
∂
ω
L
(
ω
,
ξ
i
,
b
)
=
0
→
ω
=
∑
i
=
1
m
α
i
y
i
φ
(
x
i
)
∂
∂
ξ
i
L
(
ω
,
ξ
i
,
b
)
=
0
→
α
i
+
β
i
=
C
∂
∂
b
L
(
ω
,
ξ
i
,
b
)
=
0
→
∑
i
=
1
m
α
i
y
i
=
0
(2)
\begin{aligned} &\frac{\partial}{\partial \boldsymbol{\omega }}L( \boldsymbol{\omega },\xi _i,b ) =0\rightarrow \boldsymbol{\omega }=\sum_{i=1}^m{\alpha _iy_i\varphi ( x_i )}\\ &\frac{\partial}{\partial \xi _i}L( \boldsymbol{\omega },\xi _i,b ) =0\rightarrow \alpha _i+\beta _i=C\\ &\frac{\partial}{\partial b}L( \boldsymbol{\omega },\xi _i,b ) =0\rightarrow \sum_{i=1}^m{\alpha _iy_i=0}\\ \end{aligned} \tag2
∂ω∂L(ω,ξi,b)=0→ω=i=1∑mαiyiφ(xi)∂ξi∂L(ω,ξi,b)=0→αi+βi=C∂b∂L(ω,ξi,b)=0→i=1∑mαiyi=0(2)
其中用到矩阵求导参考矩阵论,这里给出结果
若 f ( ω ) = 1 2 ∥ ω ∥ 2 f( \boldsymbol{\omega } ) =\frac{1}{2}\lVert \boldsymbol{\omega } \rVert ^2 f(ω)=21∥ω∥2,则 ∂ ∂ ω f ( ω ) = ω \frac{\partial}{\partial \boldsymbol{\omega }}f( \boldsymbol{\omega } ) =\boldsymbol{\omega } ∂ω∂f(ω)=ω
若 f ( ω ) = ω T x f( \boldsymbol{\omega } ) =\boldsymbol{\omega }^{\text{T}}x f(ω)=ωTx,则 ∂ ∂ ω f ( ω ) = x \frac{\partial}{\partial \boldsymbol{\omega }}f( \boldsymbol{\omega } ) =x ∂ω∂f(ω)=x
将
(
2
)
(2)
(2)带入
Θ
(
α
,
β
)
\varTheta(\boldsymbol{\alpha},\boldsymbol{\beta})
Θ(α,β),得到:
Θ
(
α
)
=
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
K
(
x
i
,
x
j
)
\varTheta ( \boldsymbol{\alpha }) =\sum_{i=1}^m{\alpha _i-\frac{1}{2}\sum_{i=1}^m{\sum_{j=1}^m{\alpha _i\alpha _jy_iy_j}}}K( x_i,x_j )
Θ(α)=i=1∑mαi−21i=1∑mj=1∑mαiαjyiyjK(xi,xj)
这时,通过把原问题转换为对偶问题,得到了核函数的表示形式!
将
(
2
)
(2)
(2)带入限制条件
α
i
⩾
0
,
β
i
⩾
0
(
i
=
1
∼
m
)
\alpha_i\geqslant 0 , \beta_i \geqslant 0 (i=1 \sim m)
αi⩾0,βi⩾0(i=1∼m)得到:
0
⩽
α
i
⩽
C
∑
i
=
1
m
α
i
y
i
=
0
0\leqslant \alpha _i\leqslant C \\ \sum_{i=1}^m{\alpha _iy_i=0}
0⩽αi⩽Ci=1∑mαiyi=0
于是我们求得了核函数SVM的优化对偶问题
核函数SVM对偶问题 |
---|
最大化: Θ ( α ) = ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j K ( x i , x j ) \varTheta ( \boldsymbol{\alpha }) =\sum_{i=1}^m{\alpha _i-\frac{1}{2}\sum_{i=1}^m{\sum_{j=1}^m{\alpha _i\alpha _jy_iy_j}}}K( x_i,x_j ) Θ(α)=∑i=1mαi−21∑i=1m∑j=1mαiαjyiyjK(xi,xj) |
限制条件: 0 ⩽ α i ⩽ C ∑ i = 1 m α i y i = 0 0\leqslant \alpha _i\leqslant C \quad\quad \sum_{i=1}^m{\alpha _iy_i=0} 0⩽αi⩽C∑i=1mαiyi=0 |
只有一个参数待求解: α \boldsymbol{\alpha} α,通常可以使用SMO算法
在测试流程中,我们可以有如下判断:
{
若
w
T
φ
(
x
i
)
+
b
>
0
,
则
y
i
=
+
1
若
w
T
φ
(
x
i
)
+
b
<
0
,
则
y
i
=
−
1
\begin{cases} \text{若}\boldsymbol{w}^{\boldsymbol{T}}\varphi ( \boldsymbol{x}_{\text{i}} ) +b>0,\text{则}y_{\text{i}}=+1\\ \text{若}\boldsymbol{w}^{\boldsymbol{T}}\varphi ( \boldsymbol{x}_{\text{i}} ) +b<0,\text{则}y_{\text{i}}=-1\\ \end{cases}
{若wTφ(xi)+b>0,则yi=+1若wTφ(xi)+b<0,则yi=−1
在
(
2
)
(2)
(2)中,我们知道有
ω
=
∑
i
=
1
m
α
i
y
i
φ
(
x
i
)
\boldsymbol{\omega }=\sum_{i=1}^m{\alpha _iy_i\varphi ( \boldsymbol{x_i} )}
ω=∑i=1mαiyiφ(xi),则:
w
T
φ
(
x
i
)
=
∑
j
=
1
m
[
α
i
y
i
φ
(
x
j
)
]
T
φ
(
x
i
)
=
∑
j
=
1
m
α
i
y
i
φ
(
x
j
)
T
φ
(
x
i
)
=
∑
j
=
1
m
α
i
y
i
K
(
x
i
,
x
j
)
(3)
\begin{aligned} \boldsymbol{w}^{\boldsymbol{T}}\varphi ( \boldsymbol{x}_{\boldsymbol{i}} ) &=\sum_{j=1}^m{\left[ \alpha _iy_i\varphi ( \boldsymbol{x}_j ) \right] ^{\text{T}}}\varphi ( \boldsymbol{x}_{\boldsymbol{i}} ) \\&=\sum_{j=1}^m{\alpha _iy_i\varphi ( \boldsymbol{x}_{\boldsymbol{j}} ) ^{\text{T}}\varphi ( \boldsymbol{x}_{\boldsymbol{i}} )}\\&=\sum_{j=1}^m{\alpha _iy_iK( \boldsymbol{x}_{\boldsymbol{i}},\boldsymbol{x}_{\boldsymbol{j}} )} \end{aligned} \tag{3}
wTφ(xi)=j=1∑m[αiyiφ(xj)]Tφ(xi)=j=1∑mαiyiφ(xj)Tφ(xi)=j=1∑mαiyiK(xi,xj)(3)
只剩下
b
b
b待求解。确定了
b
b
b,则核函数SVM训练完成
b b b的求解需要用到KKT条件,
3. KKT条件 | 3. SVM的KKT条件 |
---|---|
∀
i
=
1
∼
K
\forall i=1 \sim K
∀i=1∼K, α i ∗ = 0 \boldsymbol{\alpha^*_i }=0 αi∗=0 或者 g i ( ω ∗ ) = 0 g_i( \boldsymbol{\omega ^*} ) =0 gi(ω∗)=0 |
∀
i
=
1
∼
m
\forall i=1 \sim m
∀i=1∼m, 1. α i = 0 \boldsymbol{\alpha_i }=0 αi=0 或者 1 + ξ i − y i ( w T φ ( x i ) + b ) = 0 \,1+\xi _i-y_i( \boldsymbol{w}^{\boldsymbol{T}}\varphi \boldsymbol{(x}_{\boldsymbol{i}}\text{)}+b ) = 0 1+ξi−yi(wTφ(xi)+b)=0 2. β i = 0 \boldsymbol{\beta_i }=0 βi=0或者 ξ i = 0 \xi_i=0 ξi=0 |
取一个
0
<
α
i
<
C
⇒
β
i
=
C
−
α
i
>
0
0<\boldsymbol{\alpha }_{\boldsymbol{i}}<C\Rightarrow \boldsymbol{\beta }_{\boldsymbol{i}}=C-\boldsymbol{\alpha }_{\boldsymbol{i}}>0
0<αi<C⇒βi=C−αi>0,此时有:
β
i
≠
0
⇒
ξ
i
=
0
α
i
≠
0
⇒
1
+
ξ
i
−
y
i
(
w
T
φ
(
x
i
)
+
b
)
=
0
⇒
1
−
y
i
(
w
T
φ
(
x
i
)
+
b
)
=
0
\begin{aligned} \boldsymbol{\beta }_{\boldsymbol{i}}\ne 0&\Rightarrow \xi _i=0 \\ \boldsymbol{\alpha }_{\boldsymbol{i}}\ne 0&\Rightarrow 1+\xi _i-y_i( \boldsymbol{w}^{\boldsymbol{T}}\varphi \boldsymbol{(x}_{\boldsymbol{i}}\text{)}+b ) =0 \\ &\Rightarrow 1-y_i( \boldsymbol{w}^{\boldsymbol{T}}\varphi \boldsymbol{(x}_{\boldsymbol{i}}\text{)}+b ) =0 \end{aligned}
βi=0αi=0⇒ξi=0⇒1+ξi−yi(wTφ(xi)+b)=0⇒1−yi(wTφ(xi)+b)=0
带入
(
3
)
(3)
(3),得到:
b
=
1
y
i
−
w
T
φ
(
x
i
)
=
1
−
y
i
w
T
φ
(
x
i
)
y
i
=
1
−
y
i
∑
j
=
1
m
α
i
y
i
K
(
x
i
,
x
j
)
y
i
\begin{aligned} b&=\frac{1}{y_i}-\boldsymbol{w}^{\boldsymbol{T}}\varphi \boldsymbol{(x}_{\boldsymbol{i}}\text{)}=\frac{1-y_i\boldsymbol{w}^{\boldsymbol{T}}\varphi \boldsymbol{(x}_{\boldsymbol{i}}\text{)}}{y_i} \\ &=\frac{1-y_i\sum_{j=1}^m{\alpha _iy_iK( \boldsymbol{x}_{\boldsymbol{i}},\boldsymbol{x}_{\boldsymbol{j}} )}}{y_i} \end{aligned}
b=yi1−wTφ(xi)=yi1−yiwTφ(xi)=yi1−yi∑j=1mαiyiK(xi,xj)
以上就是核函数SVM原问题转换为对偶问题,并用对偶问题训练SVM(求出 α i \boldsymbol{\alpha_i} αi和 b b b的过程)的推导过程
核函数SVM算法总结
SVM算法
-
训练流程:
-
输入 ( x i , y i ) i = 1 ∼ m {(\boldsymbol{x_i},y_i)}_{i=1 \sim m} (xi,yi)i=1∼m
-
解优化问题:
最大化: Θ ( α ) = ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j K ( x i , x j ) \varTheta ( \boldsymbol{\alpha }) =\sum_{i=1}^m{\alpha _i-\frac{1}{2}\sum_{i=1}^m{\sum_{j=1}^m{\alpha _i\alpha _jy_iy_j}}}K( x_i,x_j ) Θ(α)=∑i=1mαi−21∑i=1m∑j=1mαiαjyiyjK(xi,xj)
限制条件: 0 ⩽ α i ⩽ C , ∑ i = 1 m α i y i = 0 0\leqslant \alpha _i\leqslant C, \quad\sum_{i=1}^m{\alpha _iy_i=0} 0⩽αi⩽C,∑i=1mαiyi=0
求解 b b b:找一个 0 < α i < C 0<\boldsymbol{\alpha }_{\boldsymbol{i}}<C 0<αi<C,可以算得 b = 1 − y i ∑ j = 1 m α i y i K ( x i , x j ) y i b=\frac{1-y_i\sum_{j=1}^m{\alpha _iy_iK( \boldsymbol{x}_{\boldsymbol{i}},\boldsymbol{x}_{\boldsymbol{j}} )}}{y_i} b=yi1−yi∑j=1mαiyiK(xi,xj)
-
-
测试流程
- 输入测试样本
x
\boldsymbol{x}
x
{ 若 ∑ j = 1 m α i y i K ( x i , x j ) + b > 0 , 则 y i = + 1 若 ∑ j = 1 m α i y i K ( x i , x j ) + b < 0 , 则 y i = − 1 \begin{cases} \text{若}\sum_{j=1}^m\alpha _iy_iK( \boldsymbol{x}_{\boldsymbol{i}},\boldsymbol{x}_{\boldsymbol{j}} ) +b>0,\text{则}y_{\text{i}}=+1\\ \text{若}\sum_{j=1}^m\alpha _iy_iK( \boldsymbol{x}_{\boldsymbol{i}},\boldsymbol{x}_{\boldsymbol{j}} ) +b<0,\text{则}y_{\text{i}}=-1\\ \end{cases} {若∑j=1mαiyiK(xi,xj)+b>0,则yi=+1若∑j=1mαiyiK(xi,xj)+b<0,则yi=−1
- 输入测试样本
x
\boldsymbol{x}
x
通过转换为对偶问题,我们可以看到上面没有出现 φ ( x ) \varphi (\boldsymbol{x}) φ(x),而待求解的参数只有 α i \boldsymbol{\alpha_i} αi和 b b b
SVM处理多分类问题
上面都在说如何用SVM处理二分类问题,那么怎么样用SVM处理多分类问题呢?
我们有一下三种方法:
-
改造优化的目标函数和限制条件,使之能处理多分类问题。
这种方法通常效果一般,SVM专为二分类而生
-
一类VS其他类
例子:
若有 C 1 , C 2 , C 3 C_1 ,C_2 ,C_3 C1,C2,C3三类,则可以设计三个SVM
SVM1: ( C 1 , C 2 ) V S ( C 3 ) (C_1 ,C_2)VS(C_3) (C1,C2)VS(C3)
SVM2: ( C 1 , C 3 ) V S ( C 2 ) (C_1 ,C_3)VS(C_2) (C1,C3)VS(C2)
SVM3: ( C 2 , C 3 ) V S ( C 1 ) (C_2 ,C_3)VS(C_1) (C2,C3)VS(C1)
若 y 1 = + 1 , y 2 = + 1 , y 3 = − 1 y_1=+1,y_2=+1,y_3=-1 y1=+1,y2=+1,y3=−1,则 显然为第一类
若 y 1 = + 1 , y 2 = − 1 , y 3 = − 1 y_1=+1,y_2=-1,y_3=-1 y1=+1,y2=−1,y3=−1,在看看SVM1和SVM2的 w T φ ( x i ) + b \boldsymbol{w}^{\boldsymbol{T}}\varphi ( \boldsymbol{x}_{\text{i}} ) +b wTφ(xi)+b哪一个负的比较多就判断为哪一个
-
一类VS另一类
例子:
若有 C 1 , C 2 , C 3 C_1 ,C_2 ,C_3 C1,C2,C3三类,则可以设计三个SVM
SVM1: ( C 1 ) V S ( C 2 ) (C_1 )VS(C_2) (C1)VS(C2)
SVM2: ( C 1 ) V S ( C 3 ) (C_1 )VS(C_3) (C1)VS(C3)
SVM3: ( C 2 ) V S ( C 3 ) (C_2)VS(C_3) (C2)VS(C3)
若 y 1 = + 1 , y 2 = + 1 , y 3 = − 1 y_1=+1,y_2=+1,y_3=-1 y1=+1,y2=+1,y3=−1,则 显然为第一类( C 1 C_1 C1被投了两票, C 3 C_3 C3被投了一票)
对于n分类问题:
用一类VS其他类我们需要用n个SVM;
用一类VS另一类我们需要用 n ( n − 1 ) 2 \frac{n( n-1 )}{2} 2n(n−1)个SVM。
根据经验,用一类VS另一类的效果最佳,但同时也是最复杂的。