支持向量机
-
支持向量机(Support Vector Machine ,简称SVM)是一种二分类模型。它是定义在特征空间上的、间隔最大的线性分类器。
-
间隔最大使得支持向量机有别于感知机。
如果数据集是线性可分的,那么感知机获得的模型可能有很多个,而支持向量机选择的是间隔最大的那一个。
-
支持向量机还支持核技巧,从而使它成为实质上的非线性分类器。
-
-
支持向量机支持处理线性可分数据集、非线性可分数据集。
- 当训练数据线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机(也称作硬间隔支持向量机)。
- 当训练数据近似线性可分时,通过软间隔最大化,学习一个线性分类器,即线性支持向量机(也称为软间隔支持向量机)。
- 当训练数据不可分时,通过使用核技巧以及软间隔最大化,学习一个非线性分类器,即非线性支持向量机。
-
当输入空间为欧氏空间或离散集合、特征空间为希尔伯特空间时,将输入向量从输入空间映射到特征空间,得到特征向量。
支持向量机的学习是在特征空间进行的。
- 线性可分支持向量机、线性支持向量机假设这两个空间的元素一一对应,并将输入空间中的输入映射为特征空间中的特征向量。
- 非线性支持向量机利用一个从输入空间到特征空间的非线性映射将输入映射为特征向量。
- 特征向量之间的内积就是核函数,使用核函数可以学习非线性支持向量机。
- 非线性支持向量机等价于隐式的在高维的特征空间中学习线性支持向量机,这种方法称作核技巧。
-
欧氏空间是有限维度的,希尔伯特空间为无穷维度的。
-
欧式空间 ⊆ \subseteq ⊆希尔伯特空间 ⊆ \subseteq ⊆内积空间 ⊆ \subseteq ⊆赋范空间。
-
欧式空间,具有很多美好的性质。
-
若不局限于有限维度,就来到了希尔伯特空间。
从有限到无限是一个质变,很多美好的性质消失了,一些非常有悖常识的现象会出现。
-
如果再进一步去掉完备性,就来到了内积空间。
-
如果再进一步去掉"角度"的概念,就来到了赋范空间。此时还有“长度”和“距离”的概念。
-
-
越抽象的空间具有的性质越少,在这样的空间中能得到的结论就越少
-
如果发现了赋范空间中的某些性质,那么前面那些空间也都具有这个性质。
-
一、间隔与支持向量
-
给定训练样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) } , y i ∈ { − 1 , + 1 } D = \left \{(\mathbf x_1,y_1),(\mathbf x_2,y_2),…,(\mathbf x_m,y_m) \right \},y_i\in \left \{-1,+1 \right \} D={(x1,y1),(x2,y2),…,(xm,ym)},yi∈{−1,+1}
假设训练数据集是线性可分的,则学习的目标是基于训练集 D D D在样本空间中找到一个划分超平面,将不同类别的样本分开。
-
能将训练样本分开的划分超平面可能有很多,而位于两个样本"正中间”的划分超平面对训练样本局部扰动的“容忍”性最好,即图6.1中间的超平面。换言之,这个划分超平面所产生的分类结果是最鲁棒的,对未见示例的泛化能力最强。
划分超平面可通过如下线性方程来描述:
(1) ω T x + b = 0 \mathbf \omega^T\mathbf x+b=0 \tag{1} ωTx+b=0(1)
其中 ω = ( ω 1 ; ω 1 ; … ; ω d ) \mathbf \omega = (\omega_1;\omega_1;…;\omega_d) ω=(ω1;ω1;…;ωd)为法向量,决定了超平面的方向; b b b为位移项,决定了超平面与原点之间的距离。 -
将超平面记为 ( ω , b ) (\mathbf \omega,b) (ω,b)。样本空间任意点 x \mathbf x x到超平面的距离可写为:
(2) r = ∣ ω T x + b ∣ ∣ ∣ ω ∣ ∣ r = \frac{|\mathbf \omega^T\mathbf x+b|}{||\mathbf \omega||} \tag{2} r=∣∣ω∣∣∣ωTx+b∣(2)∣ ∣ ⋅ ∣ ∣ ||·|| ∣∣⋅∣∣ : L 2 :L_2 :L2范数
假设超平面 ( ω , b ) (\mathbf \omega,b) (ω,b)能将训练样本正确分类,即对于 ( x i , y i ) ∈ D (\mathbf x_i,y_i) \in D (xi,yi)∈D,若 y i = + 1 y_i = +1 yi=+1,则有 ω T x i + b > 0 \mathbf \omega^T\mathbf x_i+b > 0 ωTxi+b>0;若 y i = − 1 y_i = -1 yi=−1,则有 ω T x i + b < 0 \mathbf \omega^T\mathbf x_i+b < 0 ωTxi+b<0,令:
(3) { ω T x i + b ⩾ + 1 , y i = + 1 ω T x i + b ⩽ − 1 , y i = − 1 \left\{\begin{matrix} \mathbf \omega^T\mathbf x_i+b \geqslant +1,\ y_i=+1\\ \mathbf \omega^T\mathbf x_i+b \leqslant -1,\ y_i=-1 \end{matrix}\right. \tag{3} {ωTxi+b⩾+1, yi=+1ωTxi+b⩽−1, yi=−1(3)
如图6.2所示,距离超平面最近的这几个训练样本点使式(3)的等号成立,她们被称为支持向量(support vector),两个异类支持向量到超平面的距离之和为:
(4) r = 2 ∣ ∣ ω ∣ ∣ r = \frac{2}{||\mathbf \omega||} \tag{4} r=∣∣ω∣∣2(4)
它被称为间隔(margin)。
- 欲找到具有最大间隔(maximum margin)的划分超平面,也就是要找到能满足式(3)中约束的参数
ω
\mathbf \omega
ω和
b
b
b,使得
γ
\gamma
γ最大,即:
(5) m a x ω , b 2 ∣ ∣ ω ∣ ∣ s . t . y i ( ω T x i + b ) ⩾ 1 , i = 1 , 2 , . . . , m \underset{\mathbf \omega,b}{max}\ \frac{2}{||\mathbf \omega||}\\ s.t.\ y_i(\mathbf \omega^T\mathbf x_i+b)\geqslant 1,\ i=1,2,...,m \tag{5} ω,bmax ∣∣ω∣∣2s.t. yi(ωTxi+b)⩾1, i=1,2,...,m(5)
最大化 ∣ ∣ ω ∣ ∣ − 1 ||\mathbf \omega||^{-1} ∣∣ω∣∣−1等价于最小化 ∣ ∣ ω ∣ ∣ 2 ||\mathbf \omega||^2 ∣∣ω∣∣2,式(5)可重写为:
(6) m i n ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 s . t . y i ( ω T x i + b ) ⩾ 1 , i = 1 , 2 , . . . , m \underset{\mathbf \omega,b}{min}\ \frac{1}{2}||\mathbf \omega||^2\\ s.t.\ y_i(\mathbf \omega^T\mathbf x_i+b)\geqslant 1,\ i=1,2,...,m \tag{6} ω,bmin 21∣∣ω∣∣2s.t. yi(ωTxi+b)⩾1, i=1,2,...,m(6)
这就是支持向量机的基本型。
二、线性可分支持向量机
-
我们希望求解式(6)来得到最大间隔划分超平面所对应的模型:
(7) f ( x ) = ω T x + b f(\mathbf x) = \mathbf \omega^T\mathbf x+b \tag{7} f(x)=ωTx+b(7)
其中 ω \mathbf \omega ω和 b b b是模型参数。式(6)是一个凸二次规划(quadratic programming)问题。凸优化问题 ,指约束最优化问题:
m i n x   f ( x ) s . t . h i ( x ) ⩽ 0 ( i = 1 , 2 , … , m )    g j ( x ) = 0 ( j = 1 , 2 , … , n ) \underset{\mathbf x}{min}\,f(\mathbf x) \\ s.t. h_i(\mathbf x)\leqslant 0\ (i=1, 2, …, m) \\ \ \ \ \ \ \ \,\,g_j(\mathbf x) = 0 \ (j=1, 2, …, n) xminf(x)s.t.hi(x)⩽0 (i=1,2,…,m) gj(x)=0 (j=1,2,…,n)
其中:- 目标函数 f ( x ) f(\mathbf x) f(x)和约束函数 h i ( x ) h_i(x) hi(x)都是 R n \mathbb R^n Rn上的连续可微的凸函数。
- 约束函数 g j ( x ) g_j(\mathbf x) gj(x)是 R n \mathbb R^n Rn上的仿射函数。
当目标函数 f ( x ) f(\mathbf x) f(x)是二次函数且约束函数 g j ( x ) g_j(\mathbf x) gj(x)是仿射函数时,上述凸最优化问题成为凸二次规划问题。
-
凸二次规划问题能直接用现成的优化计算包求解,但是用拉格朗日乘子法更高效。将线性可分支持向量机的最优化问题作为原始最优化问题,应用拉格朗日对偶性,通过求解对偶问题(dual problem)得到原始问题的最优解。这就是线性可分支持向量机的对偶算法。
对偶算法的优点:
- 对偶问题往往更容易求解。
- 引入了核函数,进而推广到非线性分类问题。
-
对式(6)的每条约束添加拉格朗日乘子 α i ⩾ 0 \alpha_i \geqslant 0 αi⩾0,则该问题的拉格朗日函数可写为:
(8) L ( ω , b , α ) = 1 2 ∣ ∣ ω ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( ω T x + b ) ) L(\mathbf \omega,b,\mathbf \alpha) = \frac{1}{2}||\mathbf \omega||^2 + \sum_{i=1}^{m}\alpha_i(1-y_i(\mathbf \omega^T\mathbf x + b)) \tag{8} L(ω,b,α)=21∣∣ω∣∣2+i=1∑mαi(1−yi(ωTx+b))(8)
其中 α = ( α 1 ; α 2 ; … ; α m ) \mathbf \alpha = (\alpha_1;\alpha_2;…;\alpha_m) α=(α1;α2;…;αm)为拉格朗日乘子向量。
-
根据拉格朗日对偶性,原始问题的解 m i n w , b m a x α L ( ω , b , α ) \underset{\mathbf w,b}{min}\ \underset{\mathbf \alpha}{max}\ L(\mathbf \omega,b, \mathbf \alpha) w,bmin αmax L(ω,b,α),对偶问题的解 m a x α m i n w , b L ( ω , b , α ) \underset{\mathbf \alpha}{max}\ \underset{\mathbf w,b}{min}\ L(\mathbf \omega,b, \mathbf \alpha) αmax w,bmin L(ω,b,α)
-
先求 m i n w , b L ( ω , b , α ) \underset{\mathbf w,b}{min}\ L(\mathbf \omega,b, \mathbf \alpha) w,bmin L(ω,b,α)。令 L ( ω , b , α ) L(\mathbf \omega,b,\mathbf \alpha) L(ω,b,α)对 ω \mathbf \omega ω和 b b b的偏导为零可得:
(9) ω = ∑ i = 1 m α i y i x i \mathbf \omega = \sum_{i=1}^{m}\alpha_iy_i\mathbf x_i \tag{9} ω=i=1∑mαiyixi(9)(10) 0 = ∑ i = 1 m α i y i 0 = \sum_{i=1}^{m}\alpha_iy_i \tag{10} 0=i=1∑mαiyi(10)
-
将式(9)和式(10)带入式(8),得到式(6)的对偶问题:
(11) m a x α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ 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 , i = 1 , 2 , . . . , m \underset{\mathbf \alpha}{max}\ \sum_{i=1}^{m}\alpha_i - \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j\mathbf x_{i}^{T}\mathbf x_j\\ s.t.\ \sum_{i=1}^{m}\alpha_iy_i=0\\ \alpha_i \geqslant 0,\ i=1,2,...,m \tag{11} αmax i=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxjs.t. i=1∑mαiyi=0αi⩾0, i=1,2,...,m(11)
解出 α \mathbf \alpha α后,求出 ω \mathbf \omega ω与 b b b即可得到模型:
(12) f ( x ) = ω T x + b = ∑ i = 1 m α i y i x i T x + b f(\mathbf x) = \mathbf \omega^T\mathbf x+b\\ =\sum_{i=1}^{m}\alpha_iy_i\mathbf x_{i}^{T}\mathbf x+b\tag{12} f(x)=ωTx+b=i=1∑mαiyixiTx+b(12)
-
注意式(6)有不等式约束,因此上述过程满足KKT条件:
(13) { α i ⩾ 0 y i f ( x i ) − 1 ⩾ 0 α i ( y i f ( x i ) − 1 ) = 0 \begin{cases} \alpha_i \geqslant 0\\ y_if(\mathbf x_i)-1 \geqslant 0\\ \alpha_i(y_if(\mathbf x_i)-1) = 0 \end{cases} \tag{13} ⎩⎪⎨⎪⎧αi⩾0yif(xi)−1⩾0αi(yif(xi)−1)=0(13)
对任意训练样本 ( x i , y i ) (\mathbf x_i, y_i) (xi,yi),总有 α i = 0 \alpha_i=0 αi=0或 y i f ( x i ) = 1 y_if(\mathbf x_i)=1 yif(xi)=1。若 α i = 0 \alpha_i=0 αi=0,则该样本将不会在式(12)的求和中出现,也就不会对 f ( x ) f(\mathbf x) f(x)有任何影响;若 α i > 0 \alpha_i >0 αi>0,则必有 y i f ( x i ) = 1 y_if(\mathbf x_i)=1 yif(xi)=1,所对应的样本点位于最大间隔边界上,是一个支持向量。这显示出支持向量机的一个重要性质:训练完成后,大部分的 训练样本都不需保留,最终模型仅与支持向量有关。 -
求解式(11)是一个凸二次规划问题。这样的凸二次规划问题具有全局最优解,并且有多种算法可以用于这一问题的求解。
当训练样本容量非常大时,这些算法往往非常低效。而序列最小最优化(Sequential Minimal Optimization:SMO)算法可以高效求解。
-
输入:
- 训练数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) } , y i ∈ { − 1 , + 1 } D = \left \{(\mathbf x_1,y_1),(\mathbf x_2,y_2),…,(\mathbf x_m,y_m) \right \},y_i\in \left \{-1,+1 \right \} D={(x1,y1),(x2,y2),…,(xm,ym)},yi∈{−1,+1}
- 精度 ε \varepsilon ε
-
输出:近似解 α ^ \hat{\mathbf \alpha} α^
-
算法步骤:
-
取初值 α ( 0 ) = 0 , k = 0 \mathbf \alpha^{(0)} = 0,k=0 α(0)=0,k=0
-
选取最优化变量 α 1 ( k ) , α 2 ( k ) \alpha_{1}^{(k)},\alpha_{2}^{(k)} α1(k),α2(k),解析求解两个变量的最优化问题,求得最优解 α 1 ( k + 1 ) , α 2 ( k + 1 ) \alpha_{1}^{(k+1)},\alpha_{2}^{(k+1)} α1(k+1),α2(k+1),更新 α \mathbf \alpha α为 α ( k + 1 ) \mathbf \alpha^{(k+1)} α(k+1)
-
仅考虑 α 1 , \alpha_{1}, α1,和 α 2 , \alpha_{2}, α2,时,式(11)的约束可重写为 α 1 y 1 + α 2 y 2 = C \alpha_{1}y_{1}+\alpha_{2}y_{2}=C α1y1+α2y2=C,其中 C = − ∑ k ≠ 1 , 2 α k y k C=-\sum_{k\neq 1,2}\alpha_ky_k C=−∑k̸=1,2αkyk是使 ∑ i = 1 m α i y i = 0 \sum_{i=1}^{m}\alpha_i y_i=0 ∑i=1mαiyi=0成立的常数。
-
若在精度 ε \varepsilon ε范围内满足停机条件:
(14) ∑ i = 1 m α i y i ~ = 0 0 ⩽ α i ⩽ C , i = 1 , 2 , . . . , m y i ~ f ( x i ) = { ⩾ 1 , α i = 0 = 1 , 0 < α i < C ⩽ 1 , α i = C \sum_{i=1}^{m}\alpha_i\tilde{y_i} = 0\\ 0\leqslant\alpha_i\leqslant C,\ i=1,2,...,m\\ \tilde{y_i}f(\mathbf x_i) = \begin{cases} \geqslant 1,\ \alpha_i=0\\ =1,\ 0<\alpha_i<C\\ \leqslant 1,\ \alpha_i=C \end{cases} \tag{14} i=1∑mαiyi~=00⩽αi⩽C, i=1,2,...,myi~f(xi)=⎩⎪⎨⎪⎧⩾1, αi=0=1, 0<αi<C⩽1, αi=C(14)
则退出迭代并令 α ^ = α ( k + 1 ) \hat{\mathbf \alpha}=\mathbf \alpha^{(k+1)} α^=α(k+1);否则令 k = k + 1 k=k+1 k=k+1,继续迭代。其中 f ( x i ) = ∑ i = 1 m α i y i x i T x + b f(\mathbf x_i)=\sum_{i=1}^{m}\alpha_iy_i\mathbf x_{i}^{T}\mathbf x+b f(xi)=∑i=1mαiyixiTx+b。
-
-
-
对任意支持向量 ( x s , y s ) (\mathbf x_s,y_s) (xs,ys)都有 y s f ( x s ) = 1 y_sf(\mathbf x_s)=1 ysf(xs)=1,即 y ( ∑ i ∈ S α i y i x i T x s + b ) = 1 y(\sum_{i\in S}\alpha_iy_i\mathbf x_i^T\mathbf x_s+b)=1 y(∑i∈SαiyixiTxs+b)=1,S为所有支持向量的下标集。可得, b = 1 ∣ S ∣ ∑ s ∈ S ( 1 / y s − ∑ i ∈ S α i y i x i T x s ) b=\frac{1}{|S|}\sum_{s\in S}(1/y_s-\sum_{i\in S}\alpha_iy_i\mathbf x_i^T\mathbf x_s) b=∣S∣1∑s∈S(1/ys−∑i∈SαiyixiTxs)
三 、非线性可分支持向量机
- 前面假设训练样本是线性可分的,即存在一个划分超平面能正确划分两类样本的超平面。例如"亦或"问题就不是线性可分的。
-
对于这样的问题,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间线性可分。如果原始空间是有限维,即属性有限,那么一定存在一个高维特征空间使样本可分。
-
令 ϕ ( x ) \phi(\mathbf x) ϕ(x)表示将 x \mathbf x x映射后的特征向量,于是,在特征空间中划分超平面所对应的模型可表示为:
(15) f ( x ) = ω T ϕ ( x ) + b f(\mathbf x) = \mathbf \omega^T\phi(\mathbf x)+b\tag{15} f(x)=ωTϕ(x)+b(15)
其中 ω \mathbf \omega ω和 b b b是模型参数。类似式(6),有:
(16) m i n ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 s . t . y i ( ω T ϕ ( x i ) + b ) ⩾ 1 , i = 1 , 2 , . . . , m \underset{\mathbf \omega,b}{min}\ \frac{1}{2}||\mathbf \omega||^2\\ s.t.\ y_i(\mathbf \omega^T\phi(\mathbf x_i)+b)\geqslant 1,\ i=1,2,...,m \tag{16} ω,bmin 21∣∣ω∣∣2s.t. yi(ωTϕ(xi)+b)⩾1, i=1,2,...,m(16)
其对偶问题是:
(17) m a x α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ 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 , i = 1 , 2 , . . . , m \underset{\mathbf \alpha}{max}\ \sum_{i=1}^{m}\alpha_i - \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j\phi(\mathbf x_{i})^T\phi(\mathbf x_j)\\ s.t.\ \sum_{i=1}^{m}\alpha_iy_i=0\\ \alpha_i \geqslant 0,\ i=1,2,...,m\tag{17} αmax i=1∑mαi−21i=1∑mj=1∑mαiαjyiyjϕ(xi)Tϕ(xj)s.t. i=1∑mαiyi=0αi⩾0, i=1,2,...,m(17) -
求解式(17)涉及到计算 ϕ ( x i ) T ϕ ( x j ) \phi(\mathbf x_{i})^T\phi(\mathbf x_j) ϕ(xi)Tϕ(xj),这是样本 x i \mathbf x_i xi与 x j \mathbf x_j xj映射到特征空间之后的内积。由于特征空间维数可能很高,甚至无穷维,因此直接计算 ϕ ( x i T ) ϕ ( x j ) \phi(\mathbf x_{i}^{T})\phi(\mathbf x_j) ϕ(xiT)ϕ(xj)通常是困难的。为了避开这个障碍,设想这样一个函数:
(18) κ ( x i , x j ) = ⟨ ϕ ( x i ) , ϕ ( x j ) ⟩ = ϕ ( x i ) T ϕ ( x j ) \kappa(\mathbf x_i,\mathbf x_j)=\left \langle \phi(\mathbf x_{i}),\phi(\mathbf x_j)\right \rangle=\phi(\mathbf x_{i})^T\phi(\mathbf x_j)\tag{18} κ(xi,xj)=⟨ϕ(xi),ϕ(xj)⟩=ϕ(xi)Tϕ(xj)(18)
x i \mathbf x_i xi与 x j \mathbf x_j xj在特征空间的内积等于它们在原始样本空间中通过函数 κ ( ⋅ , ⋅ ) \kappa(·,·) κ(⋅,⋅)计算的结果。于是式(17)可重写为:
(18) m a x α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j κ ( x i , x j ) s . t . ∑ i = 1 m α i y i = 0 α i ⩾ 0 , i = 1 , 2 , . . . , m \underset{\mathbf \alpha}{max}\ \sum_{i=1}^{m}\alpha_i - \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j\kappa(\mathbf x_i,\mathbf x_j)\\ s.t.\ \sum_{i=1}^{m}\alpha_iy_i=0\\ \alpha_i \geqslant 0,\ i=1,2,...,m\tag{18} αmax i=1∑mαi−21i=1∑mj=1∑mαiαjyiyjκ(xi,xj)s.t. i=1∑mαiyi=0αi⩾0, i=1,2,...,m(18)
求解后得到:
(19) f ( x ) = ω T ϕ ( x ) + b = ∑ i = 1 m α i y i ϕ ( x i ) T ϕ ( x ) + b = ∑ i = 1 m α i y i κ ( x , x i ) + b f(\mathbf x) = \mathbf \omega^T\phi(\mathbf x)+b\\ =\sum_{i=1}^{m}\alpha_iy_i\phi(\mathbf x_{i})^T\phi(\mathbf x)+b\\ =\sum_{i=1}^{m}\alpha_iy_i\kappa(\mathbf x,\mathbf x_i)+b\tag{19} f(x)=ωTϕ(x)+b=i=1∑mαiyiϕ(xi)Tϕ(x)+b=i=1∑mαiyiκ(x,xi)+b(19)
这里的 κ ( ⋅ , ⋅ ) \kappa(·,·) κ(⋅,⋅)就是核函数(kernel function)。式(19)显示出模型最优解可通过训练样本的 核函数展开,这一展示亦称支持向量展式(support vector expansion)。 -
常用核函数:线性核、多项式核、高斯核、拉普拉斯核、Sigmoid核
文本数据通常采用线性核,情况不明时可先尝试线性核。
此外,还可通过函数组合得到:
-
若 κ 1 \kappa_1 κ1和 κ 2 \kappa_2 κ2为核函数,则对于任意整数 γ 1 , γ 2 \gamma_1,\gamma_2 γ1,γ2,其线性组合:
(20) γ 1 κ 1 + γ 2 κ 2 \gamma_1\kappa_1+\gamma_2\kappa_2\tag{20} γ1κ1+γ2κ2(20)
也是核函数。 -
若 κ 1 \kappa_1 κ1和 κ 2 \kappa_2 κ2为核函数,则核函数的直积:
(21) κ 1 ⊗ κ 2 = κ 1 ( x , z ) κ 2 ( x , z ) \kappa_1\otimes\kappa_2=\kappa_1(\mathbf x,\mathbf z)\kappa_2(\mathbf x,\mathbf z)\tag{21} κ1⊗κ2=κ1(x,z)κ2(x,z)(21)
也是核函数。 -
若 κ 1 \kappa_1 κ1和 κ 2 \kappa_2 κ2为核函数,则对任意核函数 g ( x ) g(\mathbf x) g(x):
(22) κ ( x , z ) = g ( x ) κ 1 ( x , z ) g ( z ) \kappa(\mathbf x,\mathbf z)=g(\mathbf x)\kappa_1(\mathbf x,\mathbf z)g(\mathbf z)\tag{22} κ(x,z)=g(x)κ1(x,z)g(z)(22)
-
-
用线性分类方法求解非线性分类问题分两步:
- 首先用一个变换将原空间的数据映射到新空间。
- 再在新空间里用线性分类学习方法从训练数据中学习分类模型。
这一策略称作核技巧。
四、软间隔与正则化
-
在前面的讨论中,我们一直假定训练样本在样本空间或特征空间中是线性可分的,即存在一个超平面能将不同类的样本完全划分开。然而,在显示任务中往往很难确定合适的核函数使得训练样本在特征空间中线性可分;即便恰好找到了谋个核函数是训练集在特征空间线性可分,也很难断定这个貌似线性可分的结果是不是由于过拟合造成的。
-
缓解该问题的一个办法是允许支持向量机在一些样本上出错。为此,要引入软间隔(soft margin)的概念。
-
前面介绍的支持向量机形式是要求所有样本均满足约束(3),即所有样本都必须正确划分,这称为硬间隔(hard margin),而软间隔则是允许某些样本不满足约束:
(23) y i ( ω T x i + b ) ⩾ 1 y_i(\mathbf \omega^T\mathbf x_i+b) \geqslant 1 \tag{23} yi(ωTxi+b)⩾1(23) -
在最大化间隔的同时,不满足约束的样本应尽可能少。于是,优化目标可写为:
(24) m i n ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m l 0 / 1 ( y i ( ω T x i + b ) − 1 ) \underset{\mathbf \omega,b}{min}\ \frac{1}{2}||\mathbf \omega||^2+C\sum_{i=1}^{m}l_{0/1}(y_i(\mathbf \omega^T\mathbf x_i+b)-1) \tag{24} ω,bmin 21∣∣ω∣∣2+Ci=1∑ml0/1(yi(ωTxi+b)−1)(24)
其中 C > 0 C>0 C>0是一个常数, l 0 / 1 l_{0/1} l0/1是"0/1损失函数"
(25) l 0 / 1 = { 1 , i f z < 0 0 , o t h e r w i s e l_{0/1} = \begin{cases} 1,\ if z < 0\\ 0,\ otherwise \end{cases} \tag{25} l0/1={1, ifz<00, otherwise(25)
C称作惩罚参数,一般由应用问题决定。- C值大时,对误分类的惩罚增大,此时误分类点凸显的更重要。
- C值较大时,对误分类的惩罚增加,此时误分类点比较重要。
- C值较小时,对误分类的惩罚减小,此时误分类点相对不重要。
显然,当C为无穷大时,式(24)迫使所有样本均满足约束(23),于是式(24)等价于式(6);当C取有限值时,式(24)允许一些样本不满足约束。
-
l 0 / 1 l_{0/1} l0/1非凸、非连续,使得式(24)不易直接求解,于是,使用其他一些函数来替代 l 0 / 1 l_{0/1} l0/1,称为替代损失(surrogate loss)。三种常用的替代损失函数为:
hinge损失: (26) l h i n g e ( z ) = m a x ( 0 , 1 − z ) l_{hinge}(z)=max(0,1-z)\tag{26} lhinge(z)=max(0,1−z)(26)
指数损失(exponential loss): (27) l e x p ( z ) = e x p ( − z ) l_{exp}(z)=exp(-z)\tag{27} lexp(z)=exp(−z)(27)
对率损失(logistic loss): (28) l l o g ( z ) = l o g ( 1 + e x p ( − z ) ) l_{log}(z)=log(1+exp(-z))\tag{28} llog(z)=log(1+exp(−z))(28)
-
若采用hinge损失(合页函数),式(24)变成:
(29) m i n ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m m a x ( 0 , ( y i ( ω T x i + b ) − 1 ) ) \underset{\mathbf \omega,b}{min}\ \frac{1}{2}||\mathbf \omega||^2+C\sum_{i=1}^{m}max(0,(y_i(\mathbf \omega^T\mathbf x_i+b)-1)) \tag{29} ω,bmin 21∣∣ω∣∣2+Ci=1∑mmax(0,(yi(ωTxi+b)−1))(29) -
引入松弛变量(slack variable) ξ i ⩾ 0 \xi_i\geqslant 0 ξi⩾0,线性不可分的线性支持向量机的学习问题变成了凸二次规划问题,式(21)重写为:
(30) m i n ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i s . t . y i ( ω T x i + b ) ⩾ 1 − ξ i ξ i ⩾ 0 , i = 1 , 2 , . . . , m \underset{\mathbf \omega,b}{min}\ \frac{1}{2}||\mathbf \omega||^2+C\sum_{i=1}^{m}\xi_i\\ s.t.\ y_i(\mathbf \omega^T\mathbf x_i+b) \geqslant 1-\xi_i\\ \xi_i\geqslant0,\ i=1,2,...,m \tag{30} ω,bmin 21∣∣ω∣∣2+Ci=1∑mξis.t. yi(ωTxi+b)⩾1−ξiξi⩾0, i=1,2,...,m(30)-
这称为线性支持向量机的原始问题。
-
因为这是个凸二次规划问题,因此解存在。
可以证明 x \mathbf x x的解是唯一的; b b b的解不是唯一的, b b b的解存在于一个区间。
-
-
对于给定的线性不可分的训练集数据,通过求解软间隔最大化问题得到的分离超平面为: ω T x + b = 0 \mathbf \omega^T\mathbf x+b=0 ωTx+b=0以及对应的分类决策函数: f ( x ) = ω T x + b = 0 f(\mathbf x)=\mathbf \omega^T\mathbf x+b=0 f(x)=ωTx+b=0,称之为线性支持向量机。
- 线性支持向量机包含线性可分支持向量机。
- 现实应用中训练数据集往往是线性不可分的,线性支持向量机具有更广泛的适用性。
-
通过拉格朗日乘子法可得到式(30)的拉格朗日函数:
(31) L ( ω , b , α , ξ , μ ) = m i n ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i + ∑ i = 1 m α i ( 1 − ξ i − y i ( ω T x i + b ) ) − ∑ i = 1 m μ i ξ i L(\mathbf \omega,b,\mathbf \alpha,\mathbf \xi,\mathbf \mu)=\underset{\mathbf \omega,b}{min}\ \frac{1}{2}||\mathbf \omega||^2+C\sum_{i=1}^{m}\xi_i+\sum_{i=1}^{m}\alpha_i(1-\xi_i-y_i(\mathbf \omega^T\mathbf x_i+b))-\sum_{i=1}^{m}\mu_i\xi_i\tag{31} L(ω,b,α,ξ,μ)=ω,bmin 21∣∣ω∣∣2+Ci=1∑mξi+i=1∑mαi(1−ξi−yi(ωTxi+b))−i=1∑mμiξi(31)
其中 α i ⩾ 0 , μ ⩾ 0 \alpha_i\geqslant0,\mu\geqslant0 αi⩾0,μ⩾0是拉格朗日乘子。令 L ( ω , b , α , ξ , μ ) L(\mathbf \omega,b,\mathbf \alpha,\mathbf \xi,\mathbf \mu) L(ω,b,α,ξ,μ)对 ω , b , ξ i \mathbf \omega,b,\xi_i ω,b,ξi的偏导为零可得:
(32) ω = ∑ i = 1 m α i y i x i \mathbf \omega=\sum_{i=1}^{m}\alpha_iy_i\mathbf x_i \tag{32} ω=i=1∑mαiyixi(32)(33) 0 = ∑ i = 1 m α i y i 0=\sum_{i=1}^{m}\alpha_iy_i\tag{33} 0=i=1∑mαiyi(33)
(34) C = α i + μ i C=\alpha_i+\mu_i\tag{34} C=αi+μi(34)
-
将式(32)-(34)带入式(31)可得到式(30)的对偶问题:
(35) m a x α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j s . t . ∑ i = 1 m α i y i = 0 0 ⩽ α i ⩽ C , i = 1 , 2 , . . . , m \underset{\mathbf \alpha}{max}\ \sum_{i=1}^{m}\alpha_i - \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j\mathbf x_{i}^{T}\mathbf x_j\\ s.t.\ \sum_{i=1}^{m}\alpha_iy_i=0\\ 0\leqslant\alpha_i \leqslant C,\ i=1,2,...,m \tag{35} αmax i=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxjs.t. i=1∑mαiyi=00⩽αi⩽C, i=1,2,...,m(35) -
上述过程满足KKT条件:
(36) { α ⩾ 0 , μ ⩾ 0 y i f ( x i ) − 1 + ξ i ⩾ 0 α i ( y i f ( x i ) − 1 + ξ i ) = 0 ξ i ⩾ 0 , μ i ⩾ 0 \begin{cases} \alpha\geqslant0,\mu\geqslant0\\ y_if(\mathbf x_i)-1+\xi_i\geqslant0\\ \alpha_i(y_if(\mathbf x_i)-1+\xi_i)=0\\ \xi_i\geqslant0,\mu_i\geqslant0\tag{36} \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧α⩾0,μ⩾0yif(xi)−1+ξi⩾0αi(yif(xi)−1+ξi)=0ξi⩾0,μi⩾0(36) -
线性不可分的支持向量比线性可分时的情况复杂一些:
- 若 α i < C \alpha_i<C αi<C,则 μ i > 0 \mu_i>0 μi>0, 则松弛量 ξ i > 0 \xi_i>0 ξi>0。此时:支持向量恰好落在了间隔边界上。
- 若
α
i
=
C
\alpha_i=C
αi=C, 则
μ
i
=
0
\mu_i=0
μi=0,于是
ξ
i
\xi_i
ξi可能为任何正数:
- 若 0 < ξ i < 1 0<\xi_i<1 0<ξi<1,则支持向量落在间隔边界与分离超平面之间,分类正确。
- 若 ξ i = 1 \xi_i=1 ξi=1,则支持向量落在分离超平面上。
- 若 ξ i > 1 \xi_i>1 ξi>1,则支持向量落在分离超平面误分类一侧,分类错误。
五、支持向量回归
- 对样本 ( x , y ) (\mathbf x,y) (x,y),传统回归模型通常直接基于模型输出 f ( x ) f(\mathbf x) f(x)与真实输出 y y y之间的 差别来计算损失,当且仅当 f ( x ) f(\mathbf x) f(x)与 y y y完全相同时,损失才为零。支持向量回归(Support Vector Regression,简称SVR)假设 f ( x ) f(\mathbf x) f(x)与 y y y之间最多有 ϵ \epsilon ϵ的偏差,即仅当 f ( x ) f(\mathbf x) f(x)与 y y y之间的差别绝对值大于 ϵ \epsilon ϵ时才计算损失。这相当于以 f ( x ) f(\mathbf x) f(x)为中心,构建了一个宽度为 2 ϵ 2\epsilon 2ϵ的间隔带,若样本落入此间隔带,则被认为是预测正确的。
-
SVR问题形式化为:
(37) m i n ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m l ϵ ( f ( x ) − y i ) \underset{\mathbf \omega,b}{min}\ \frac{1}{2}||\mathbf \omega||^2+C\sum_{i=1}^{m}l_\epsilon(f(\mathbf x)-y_i)\tag{37} ω,bmin 21∣∣ω∣∣2+Ci=1∑mlϵ(f(x)−yi)(37)
其中 C C C为正则化常数, l ϵ l_\epsilon lϵ是如下图所示的 ϵ \epsilon ϵ-不敏感损失( ϵ \epsilon ϵ-insensitive loss)函数:
(38) l ϵ ( z ) = { 0 , i f   ∣ z ∣ ⩽ ϵ z − ϵ , o t h e r w i s e l_\epsilon(z)=\begin{cases} 0,\ \ \ \ \ \ \ \ if\,|z|\leqslant\epsilon\\ z-\epsilon,\ otherwise \end{cases}\tag{38} lϵ(z)={0, if∣z∣⩽ϵz−ϵ, otherwise(38)
引入松弛变量 ξ i \xi_i ξi和 ξ ^ i \hat \xi_i ξ^i,可将式(38)重写为:
(39) m i n ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ( ξ i + ξ ^ i ) s . t . f ( x ) − y i ⩽ ϵ + ξ i , y i − f ( x ) ⩽ ϵ + ξ ^ i , ξ i ⩾ 0 , ξ ^ i ⩾ 0 , i = 1 , 2 , . . . , m \underset{\mathbf \omega,b}{min}\ \frac{1}{2}||\mathbf \omega||^2+C\sum_{i=1}^{m}(\xi_i+\hat\xi_i)\\ s.t.\ f(\mathbf x)-y_i\leqslant\epsilon+\xi_i,\\ \ \ \ \ \ \ \ y_i-f(\mathbf x)\leqslant\epsilon+\hat\xi_i,\\ \xi_i\geqslant0,\hat\xi_i\geqslant0,i=1,2,...,m \tag{39} ω,bmin 21∣∣ω∣∣2+Ci=1∑m(ξi+ξ^i)s.t. f(x)−yi⩽ϵ+ξi, yi−f(x)⩽ϵ+ξ^i,ξi⩾0,ξ^i⩾0,i=1,2,...,m(39)间隔带两侧的松弛程度可有所不同
-
引入拉格朗日乘子 μ i ⩾ 0 , μ ^ i ⩾ 0 , α i ⩾ 0 , α ^ i ⩾ 0 \mu_i\geqslant0,\hat\mu_i\geqslant0,\alpha_i\geqslant0,\hat\alpha_i\geqslant0 μi⩾0,μ^i⩾0,αi⩾0,α^i⩾0,得到拉格朗日函数:
(40) L ( ω , b , α , α ^ , ξ , ξ ^ , μ , μ ^ ) = 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ( ξ i + ξ ^ i ) − ∑ i = 1 m μ i ξ i − ∑ i = 1 m μ ^ i ξ ^ i + ∑ i = 1 m α i ( f ( x ) − y i − ϵ − ξ i ) + ∑ i = 1 m α ^ i ( y i − f ( x ) − ϵ − ξ ^ i ) L(\mathbf \omega,b,\mathbf \alpha,\mathbf {\hat\alpha},\mathbf \xi,\mathbf {\hat\xi},\mathbf \mu,\mathbf {\hat\mu})\\ =\frac{1}{2}||\mathbf \omega||^2+C\sum_{i=1}^{m}(\xi_i+\hat\xi_i)-\sum_{i=1}^{m}\mu_i\xi_i-\sum_{i=1}^{m}\hat\mu_i\hat\xi_i\\ +\sum_{i=1}^{m}\alpha_i(f(\mathbf x)-y_i-\epsilon-\xi_i)+\sum_{i=1}^{m}\hat\alpha_i(y_i-f(\mathbf x)-\epsilon-\hat\xi_i)\tag{40} L(ω,b,α,α^,ξ,ξ^,μ,μ^)=21∣∣ω∣∣2+Ci=1∑m(ξi+ξ^i)−i=1∑mμiξi−i=1∑mμ^iξ^i+i=1∑mαi(f(x)−yi−ϵ−ξi)+i=1∑mα^i(yi−f(x)−ϵ−ξ^i)(40)
将式(7)代入,再令 L ( ω , b , α , α ^ , ξ , ξ ^ , μ , μ ^ ) L(\mathbf \omega,b,\mathbf \alpha,\mathbf {\hat\alpha},\mathbf \xi,\mathbf {\hat\xi},\mathbf \mu,\mathbf {\hat\mu}) L(ω,b,α,α^,ξ,ξ^,μ,μ^)对 ω , b , ξ i , ξ ^ i \mathbf \omega,b,\xi_i,\hat\xi_i ω,b,ξi,ξ^i偏导为零可得:
(41) ω = ∑ i = 1 m ( α ^ i − α i ) x i \mathbf \omega=\sum_{i=1}^{m}(\hat\alpha_i-\alpha_i)\mathbf x_i\tag{41} ω=i=1∑m(α^i−αi)xi(41)(42) 0 = ∑ i = 1 m α ^ i − α i 0=\sum_{i=1}^{m}\hat\alpha_i-\alpha_i\tag{42} 0=i=1∑mα^i−αi(42)
(43) C = α i + μ i C=\alpha_i+\mu_i\tag{43} C=αi+μi(43)
(44) C = α ^ i + μ ^ i C=\hat\alpha_i+\hat\mu_i\tag{44} C=α^i+μ^i(44)
将式(41)-(44)代入式(40),即可得到SVR的对偶问题:
(45) m a x α , α ^ ∑ i = 1 m y i ( α ^ i − α i ) − ϵ ( α ^ i + α i ) − 1 2 ∑ i = 1 m ∑ j = 1 m ( α ^ i − α i ) ( α ^ j − α j ) x i T x j s . t . ∑ i = 1 m ( α ^ i − α i ) = 0 0 ⩽ α i , α ^ i ⩽ C \underset{\mathbf \alpha,\mathbf{\hat\alpha}}{max}\ \sum_{i=1}^{m}y_i(\hat\alpha_i-\alpha_i)-\epsilon(\hat\alpha_i+\alpha_i)\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ - \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}(\hat\alpha_i-\alpha_i)(\hat\alpha_j-\alpha_j)\mathbf x_{i}^{T}\mathbf x_j\\ s.t.\ \sum_{i=1}^{m}(\hat\alpha_i-\alpha_i)=0\\ 0\leqslant\alpha_i, \hat\alpha_i\leqslant C\tag{45} α,α^max i=1∑myi(α^i−αi)−ϵ(α^i+αi) −21i=1∑mj=1∑m(α^i−αi)(α^j−αj)xiTxjs.t. i=1∑m(α^i−αi)=00⩽αi,α^i⩽C(45)
上述过程满足KKT条件:
(46) { α i ( f ( x ) − y i − ϵ − ξ i ) = 0 α ^ i ( y i − f ( x ) − ϵ − ξ ^ i ) = 0 α i α ^ i = 0 , μ i μ i ^ = 0 ( C − α i ) ξ i = 0 , ( C − α ^ i ) ξ ^ i = 0 \begin{cases} \alpha_i(f(\mathbf x)-y_i-\epsilon-\xi_i)=0\\ \hat\alpha_i(y_i-f(\mathbf x)-\epsilon-\hat\xi_i)=0\\ \alpha_i\hat\alpha_i=0,\mu_i\hat{\mu_i}=0\\ (C-\alpha_i)\xi_i=0,(C-\hat\alpha_i)\hat\xi_i=0\tag{46} \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧αi(f(x)−yi−ϵ−ξi)=0α^i(yi−f(x)−ϵ−ξ^i)=0αiα^i=0,μiμi^=0(C−αi)ξi=0,(C−α^i)ξ^i=0(46) -
将式(41)带入式(7),SVR的解形如:
(47) f ( x ) = ∑ i = 1 m ( α ^ i − α i ) x i T x + b f(\mathbf x)=\sum_{i=1}^{m}(\hat\alpha_i-\alpha_i)\mathbf x_{i}^{T}\mathbf x+b\tag{47} f(x)=i=1∑m(α^i−αi)xiTx+b(47)
使 ( α ^ i − α i ) ≠ 0 (\hat\alpha_i-\alpha_i)\neq0 (α^i−αi)̸=0的样本即为SVR的支持向量,它们必落在 ϵ \epsilon ϵ-间隔带之外。SVR的支持向量仅是训练样本的一部分,即其解仍具有稀疏性。 -
由KKT条件可以看出,对每个样本 ( x i , y i ) (\mathbf x_i,y_i) (xi,yi)都有 ( C − α i ) ξ i = 0 (C-\alpha_i)\xi_i=0 (C−αi)ξi=0且 α i ( f ( x i ) − y i − ϵ − ξ i ) = 0 \alpha_i(f(\mathbf x_i)-y_i-\epsilon-\xi_i)=0 αi(f(xi)−yi−ϵ−ξi)=0。于是,在得到 α i \alpha_i αi后,若 0 < α i < C 0<\alpha_i<C 0<αi<C,则必有 ξ i = 0 \xi_i=0 ξi=0,进而有:
(48) b = y i + ϵ − ∑ j = 1 m ( ( α ^ j − α j ) x j T x i ) b=y_i+\epsilon-\sum_{j=1}^{m}((\hat\alpha_j-\alpha_j)\mathbf x_{j}^{T}\mathbf x_i)\tag{48} b=yi+ϵ−j=1∑m((α^j−αj)xjTxi)(48)
可以选任意满足 0 < α i < C 0<\alpha_i<C 0<αi<C的样本求得 b b b,或选取多个(或所有)满足 0 < α i < C 0<\alpha_i<C 0<αi<C的样本求得 b b b后取平均值 -
若考虑到特征映射,则相应的式(41)将形如:
(49) ω = ∑ i = 1 m ( α ^ i − α i ) ϕ ( x i ) \mathbf \omega=\sum_{i=1}^{m}(\hat\alpha_i-\alpha_i)\phi(\mathbf x_i)\tag{49} ω=i=1∑m(α^i−αi)ϕ(xi)(49)
则SVR可表示为:
(47) f ( x ) = ∑ i = 1 m ( α ^ i − α i ) κ ( x , x i ) + b f(\mathbf x)=\sum_{i=1}^{m}(\hat\alpha_i-\alpha_i)\kappa(\mathbf x,\mathbf x_i)+b\tag{47} f(x)=i=1∑m(α^i−αi)κ(x,xi)+b(47)
其中 κ ( x , x i ) = ϕ ( x i ) T ϕ ( x i ) \kappa(\mathbf x,\mathbf x_i)=\phi(\mathbf x_i)^T\phi(\mathbf x_i) κ(x,xi)=ϕ(xi)Tϕ(xi)
六、其他讨论
-
支持向量机的优点:
- 有严格的数学理论支持,可解释性强。
- 能找出对任务至关重要的关键样本(即:支持向量)。
- 采用核技巧之后,可以处理非线性分类/回归任务。
-
支持向量机的缺点:
- 训练时间长。当采用SMO算法时,由于每次都需要挑选一对参数,因此时间复杂度为 O ( N 2 ) O(N^2) O(N2),其中 N N N为 α \mathbf \alpha α的长度,也就是训练样本的数量。
- 当采用核技巧时,如果需要存储核矩阵,则空间复杂度为 O ( N 2 ) O(N^2) O(N2)。
- 模型预测时,预测时间与支持向量的个数成正比。当支持向量的数量较大时,预测计算复杂度较高。
因此支持向量机目前只适合小批量样本的任务,无法适应百万甚至上亿样本的任务。
七、公式推导
-
式(3)
假设超平面是 ( ω ′ ) T x + b ′ = 0 (\mathbf \omega')^T\mathbf x+b'=0 (ω′)Tx+b′=0,对于 ( x i , y i ) ∈ D (\mathbf x_i,y_i)\in D (xi,yi)∈D有:
{ ( ω ′ ) T x i + b ′ > 0 , y i = + 1 ( ω ′ ) T x i + b ′ < 0 , y i = − 1 \left\{\begin{matrix} (\mathbf \omega')^T\mathbf x_i+b'>0,\ y_i=+1\\ (\mathbf \omega')^T\mathbf x_i+b'<0,\ y_i=-1 \end{matrix}\right. {(ω′)Txi+b′>0, yi=+1(ω′)Txi+b′<0, yi=−1
根据几何间隔,上述关系修正为:
{ ( ω ′ ) T x i + b ′ ⩾ + ζ , y i = + 1 ( ω ′ ) T x i + b ′ ⩽ − ζ , y i = − 1 \left\{\begin{matrix} (\mathbf \omega')^T\mathbf x_i+b'\geqslant+\zeta,\ y_i=+1\\ (\mathbf \omega')^T\mathbf x_i+b'\leqslant-\zeta,\ y_i=-1 \end{matrix}\right. {(ω′)Txi+b′⩾+ζ, yi=+1(ω′)Txi+b′⩽−ζ, yi=−1
其中 ζ \zeta ζ为某个大于零的常数,两边同时除以 ζ \zeta ζ,在此修正上述关系为:
{ ( 1 ζ ω ′ ) T x i + b ′ ζ ⩾ + 1 , y i = + 1 ( 1 ζ ω ′ ) T x i + b ′ ζ ⩽ − 1 , y i = − 1 \left\{\begin{matrix} (\frac{1}{\zeta}\mathbf \omega')^T\mathbf x_i+\frac{b'}{\zeta}\geqslant+1,\ y_i=+1\\ (\frac{1}{\zeta}\mathbf \omega')^T\mathbf x_i+\frac{b'}{\zeta}\leqslant-1,\ y_i=-1 \end{matrix}\right. {(ζ1ω′)Txi+ζb′⩾+1, yi=+1(ζ1ω′)Txi+ζb′⩽−1, yi=−1
令 ω = 1 ζ ω ′ \mathbf \omega = \frac{1}{\zeta}\mathbf \omega' ω=ζ1ω′, b = b ′ ζ b=\frac{b'}{\zeta} b=ζb′,则以上关系可写为:
{ ω T x i + b ⩾ + 1 , y i = + 1 ω T x i + b ⩽ − 1 , y i = − 1 \left\{\begin{matrix} \mathbf \omega^T\mathbf x_i+b \geqslant +1,\ y_i=+1\\ \mathbf \omega^T\mathbf x_i+b \leqslant -1,\ y_i=-1 \end{matrix}\right. {ωTxi+b⩾+1, yi=+1ωTxi+b⩽−1, yi=−1 -
式(11)
式(9)带入式(8):
m i n w , b L ( ω , b , α ) = 1 2 ω T ω + ∑ i = 1 m α i − ∑ i = 1 m α i y i ω T x i − ∑ i = 1 m α i y i b = 1 2 ω T ∑ i = 1 m α i y i x i − ω T ∑ i = 1 m α i y i x i + ∑ i = 1 m α i − b ∑ i = 1 m α i y i = − 1 2 ω T ∑ i = 1 m α i y i x i + ∑ i = 1 m α i − b ∑ i = 1 m α i y i \underset{\mathbf w,b}{min}\ L(\mathbf \omega,b, \mathbf \alpha)=\frac{1}{2}\mathbf \omega^T\mathbf \omega+\sum_{i=1}^{m}\alpha_i-\sum_{i=1}^{m}\alpha_i y_i\mathbf \omega^T\mathbf x_i-\sum_{i=1}^{m}\alpha_iy_ib\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\frac{1}{2}\mathbf \omega^T\sum_{i=1}^{m}\alpha_i y_i\mathbf x_i-\mathbf \omega^T\sum_{i=1}^{m}\alpha_i y_i\mathbf x_i+\sum_{i=1}^{m}\alpha_i-b\sum_{i=1}^{m}\alpha_i y_i\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =-\frac{1}{2}\mathbf \omega^T\sum_{i=1}^{m}\alpha_i y_i\mathbf x_i+\sum_{i=1}^{m}\alpha_i-b\sum_{i=1}^{m}\alpha_i y_i w,bmin L(ω,b,α)=21ωTω+i=1∑mαi−i=1∑mαiyiωTxi−i=1∑mαiyib =21ωTi=1∑mαiyixi−ωTi=1∑mαiyixi+i=1∑mαi−bi=1∑mαiyi =−21ωTi=1∑mαiyixi+i=1∑mαi−bi=1∑mαiyi
又 ∑ i = 1 m α i y i = 0 \sum_{i=1}^{m}\alpha_iy_i=0 ∑i=1mαiyi=0,所以上式最后一项可化为0,于是得:
m i n w , b L ( ω , b , α ) = − 1 2 ω T ∑ i = 1 m α i y i x i + ∑ i = 1 m α i = − 1 2 ( ∑ i = 1 m α i y i x i ) T ∑ i = 1 m α i y i x i + ∑ i = 1 m α i = − 1 2 ∑ i = 1 m α i y i x i T ∑ i = 1 m α i y i x i + ∑ i = 1 m α i = ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j \underset{\mathbf w,b}{min}\ L(\mathbf \omega,b, \mathbf \alpha)=-\frac{1}{2}\mathbf \omega^T\sum_{i=1}^{m}\alpha_i y_i\mathbf x_i+\sum_{i=1}^{m}\alpha_i\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =-\frac{1}{2}(\sum_{i=1}^{m}\alpha_i y_i\mathbf x_i)^T\sum_{i=1}^{m}\alpha_i y_i\mathbf x_i+\sum_{i=1}^{m}\alpha_i\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =-\frac{1}{2}\sum_{i=1}^{m}\alpha_i y_i\mathbf x_i^T\sum_{i=1}^{m}\alpha_i y_i\mathbf x_i+\sum_{i=1}^{m}\alpha_i\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\sum_{i=1}^{m}\alpha_i - \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j\mathbf x_{i}^{T}\mathbf x_j w,bmin L(ω,b,α)=−21ωTi=1∑mαiyixi+i=1∑mαi =−21(i=1∑mαiyixi)Ti=1∑mαiyixi+i=1∑mαi =−21i=1∑mαiyixiTi=1∑mαiyixi+i=1∑mαi =i=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj
所以:
m a x α m i n w , b L ( ω , b , α ) = m a x α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j \underset{\mathbf \alpha}{max}\ \underset{\mathbf w,b}{min}\ L(\mathbf \omega,b, \mathbf \alpha)=\underset{\mathbf \alpha}{max}\ \sum_{i=1}^{m}\alpha_i - \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j\mathbf x_{i}^{T}\mathbf x_j\\ αmax w,bmin L(ω,b,α)=αmax i=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj
参考:
- 《机器学习》
- AI算法工程师手册
- 南瓜书PumpkinBook