前言
支持向量机是定义在特征空间上使得间隔最大的线性分类器。它可以形式化为凸二次规划问题。对于这样的凸二次规划问题,我们往往使用拉格朗日方法转为为它的对偶问题。对于这样的对偶问题,我们可以使用SMO最小序列算法进行求解。
我们将介绍三种支持向量机。当数据线性可分时,我们采用线性可分支持向量机;当数据近似线性可分,或者说去除掉数据中的某些点后剩余数据是线性可分的,则可以采用线性支持向量机;当数据线性不可分,则应该采用非线性支持向量机。
在进入具体的模型之前,我们先来看一个问题。
给定一个超曲面 w ⋅ x + b = 0 w\cdot x+b=0 w⋅x+b=0,如果存在另一个点 x 1 x_1 x1,则这个点与超平面距离是多少?
我们假设超平面上的一点 x 2 x_2 x2,则 x 1 x_1 x1 与超平面的距离可以表示为
∣ w ∣ ∣ w ∣ ∣ ⋅ ( x 1 − x 2 ) ∣ = ∣ w ⋅ x 1 − w ⋅ x 2 ∣ ∣ ∣ w ∣ ∣ = ∣ w ⋅ x 1 + b ∣ ∣ ∣ w ∣ ∣ \begin{array}{lll} \vert\frac{w}{|| w||}\cdot (x_1-x_2)\vert&=&\frac{\vert w\cdot x_1-w\cdot x_2\vert}{|| w||}\\ &=&\frac{\vert w\cdot x_1+b\vert}{|| w||} \end{array} ∣∣∣w∣∣w⋅(x1−x2)∣==∣∣w∣∣∣w⋅x1−w⋅x2∣∣∣w∣∣∣w⋅x1+b∣
这里, w ∣ ∣ w ∣ ∣ \frac{w}{|| w||} ∣∣w∣∣w 为超平面的单位法向量。第二个等号成立是因为 x 2 x_2 x2 在超平面上,也就意味着满足 w ⋅ x 2 + b = 0 w\cdot x_2+b=0 w⋅x2+b=0。
有了上面的结论,我们就可以接着来介绍 函数距离和几何距离。
对于线性可分的数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1, y_1), (x_2, y_2), ..., (x_N, y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)}, y i ∈ { − 1 , + 1 } y_i\in\{-1, +1\} yi∈{−1,+1},必然存在一个超平面 w ⋅ x + b = 0 w\cdot x+b=0 w⋅x+b=0 使得能够正确分割正负类别的数据点,也就是说,满足 对所有的 i i i,不等式 y i ( w ⋅ x i + b ) > 0 y_i(w\cdot x_i+b)>0 yi(w⋅xi+b)>0恒成立。
此时,借助上面问题的结论,我们有数据集中任意一点 x i x_i xi 到超平面 w ⋅ x + b = 0 w\cdot x+b=0 w⋅x+b=0 的距离为
∣ w ⋅ x i + b ∣ ∣ ∣ w ∣ ∣ = y i ( w ⋅ x i + b ) ∣ ∣ w ∣ ∣ \frac{\vert w\cdot x_i+b\vert}{|| w||}=\frac{y_i(w\cdot x_i+b)}{||w||} ∣∣w∣∣∣w⋅xi+b∣=∣∣w∣∣yi(w⋅xi+b)
这个等式成立,是因为正确分类的数据点 x i x_i xi 始终满足 y i ( w ⋅ x i + b ) > 0 y_i(w\cdot x_i+b)>0 yi(w⋅xi+b)>0 且 y i = ± 1 y_i=\pm 1 yi=±1,则 ∣ w ⋅ x i + b ∣ = y i ( w ⋅ x i + b ) \vert w\cdot x_i+b\vert=y_i(w\cdot x_i+b) ∣w⋅xi+b∣=yi(w⋅xi+b)。
在这里,我们将 y i ( w ⋅ x i + b ) ∣ ∣ w ∣ ∣ \frac{y_i(w\cdot x_i+b)}{||w||} ∣∣w∣∣yi(w⋅xi+b) 称为 x i x_i xi 到超平面的几何距离,而 y i ( w ⋅ x i + b ) y_i(w\cdot x_i+b) yi(w⋅xi+b) 称为 x i x_i xi 到超平面的函数距离。
有了函数距离和几何距离的定义,下面我们将依次介绍三种支持向量机。
1. 线性可分支持向量机
1.1 凸二次规划问题
对于线性可分的数据集,根据线性可分数据集的定义,我们知道必然有一个超平面,使得该超平面能够正确分开所有数据点。
但支持向量机的目标是,找到那个具有最大几何距离的那个超平面,也就是说,使得超平面能够尽可能在不同类别的数据中间,同时尽可能远离数据点。这样,超平面就可以更加明显地区分不同标记的数据点。
因此,对于线性可分的数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1, y_1), (x_2, y_2), ..., (x_N, y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)},我们给出如下最优化问题:
max w , b min i = 1 , 2 , . . . , N y i ( w ⋅ x i + b ) ∣ ∣ w ∣ ∣ \max\limits_{w, b}\min_{i=1, 2, ..., N}\frac{y_i(w\cdot x_i+b)}{||w||} w,bmaxi=1,2,...,Nmin∣∣w∣∣yi(w⋅xi+b)
将上式展开,有
max w , b γ s . t . y i ( w ⋅ x i + b ) ∣ ∣ w ∣ ∣ ≥ γ , i = 1 , 2 , . . . , N \begin{array}{lll} &\max\limits_{w, b}& \gamma\\ &s.t.& \frac{y_i(w\cdot x_i+b)}{||w||}\ge \gamma, i=1, 2, ..., N \end{array} w,bmaxs.t.γ∣∣w∣∣yi(w⋅xi+b)≥γ,i=1,2,...,N
显然, max w , b min i = 1 , 2 , . . . , N y i ( w ⋅ x i + b ) ∣ ∣ w ∣ ∣ = max w , b 1 ∣ ∣ w ∣ ∣ min i = 1 , 2 , . . . , N y i ( w ⋅ x i + b ) \max\limits_{w, b}\min_{i=1, 2, ..., N}\frac{y_i(w\cdot x_i+b)}{||w||}=\max\limits_{w, b}\frac{1}{||w||}\min_{i=1, 2, ..., N}y_i(w\cdot x_i+b) w,bmaxi=1,2,...,Nmin∣∣w∣∣yi(w⋅xi+b)=w,bmax∣∣w∣∣1i=1,2,...,Nminyi(w⋅xi+b)
而这意味着上面的最优化问题等价于
max w , b γ ∣ ∣ w ∣ ∣ ( 1 ) s . t . y i ( w ⋅ x i + b ) ≥ γ , i = 1 , 2 , . . . , N \begin{array}{lll} &\max\limits_{w, b}& \frac{\gamma}{||w||}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(1)\\ &s.t.& y_i(w\cdot x_i+b)\ge \gamma, i=1, 2, ..., N \end{array} w,bmaxs.t.∣∣w∣∣γ (1)yi(w⋅xi+b)≥γ,i=1,2,...,N
我们接下来说明优化问题(1)与
max w , b 1 ∣ ∣ w ∣ ∣ ( 2 ) s . t . y i ( w ⋅ x i + b ) ≥ 1 , i = 1 , 2 , . . . , N \begin{array}{lll} &\max\limits_{w, b}& \frac{1}{||w||}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(2)\\ &s.t.& y_i(w\cdot x_i+b)\ge 1, i=1, 2, ..., N \end{array} w,bmaxs.t.∣∣w∣∣1 (2)yi(w⋅xi+b)≥1,i=1,2,...,N
等价。
令 γ ( w , b ) = min i = 1 , 2 , . . . , N y i ( w ⋅ x i + b ) \gamma(w, b)=\min\limits_{i=1, 2, ..., N}y_i(w\cdot x_i+b) γ(w,b)=i=1,2,...,Nminyi(w⋅xi+b)。假设问题(1)的最优解为 ( w 1 , b 1 ) (w_1, b_1) (w1,b1),问题(2)的最优解为 ( w 2 , b 2 ) (w_2, b_2) (w2,b2)。
- ( w 1 γ ( w 1 , b 1 ) , b 1 γ ( w 1 , b 1 ) ) (\frac{w_1}{\gamma(w_1, b_1)}, \frac{b_1}{\gamma(w_1, b_1)}) (γ(w1,b1)w1,γ(w1,b1)b1) 是问题(2)的一个可行解,这是因为 γ ( w 1 γ ( w 1 , b 1 ) , b 1 γ ( w 1 , b 1 ) ) = 1 \gamma\left(\frac{w_1}{\gamma(w_1, b_1)}, \frac{b_1}{\gamma(w_1, b_1)}\right)=1 γ(γ(w1,b1)w1,γ(w1,b1)b1)=1。由于 ( w 2 , b 2 ) (w_2, b_2) (w2,b2) 是问题(2)的最优解,所以,我们有 1 ∣ ∣ w 2 ∣ ∣ ≥ 1 ∣ ∣ w 1 γ ( w 1 , b 1 ) ∣ ∣ = γ ( w 1 , b 1 ) ∣ ∣ w 1 ∣ ∣ \frac{1}{||w_2||}\ge\frac{1}{||\frac{w_1}{\gamma(w_1, b_1)}||}=\frac{\gamma(w_1, b_1)}{||w_1||} ∣∣w2∣∣1≥∣∣γ(w1,b1)w1∣∣1=∣∣w1∣∣γ(w1,b1)
- ( w 2 , b 2 ) (w_2, b_2) (w2,b2) 同样是问题(1)的一个可行解,这是因为问题(1)等价于 max w , b 1 ∣ ∣ w ∣ ∣ min i = 1 , 2 , . . . , N y i ( w ⋅ x i + b ) \max\limits_{w, b}\frac{1}{||w||}\min\limits_{i=1, 2, ..., N}y_i(w\cdot x_i+b) w,bmax∣∣w∣∣1i=1,2,...,Nminyi(w⋅xi+b),则 max w , b 1 ∣ ∣ w ∣ ∣ min i = 1 , 2 , . . . , N y i ( w ⋅ x i + b ) = γ ( w 1 , b 1 ) ∣ ∣ w 1 ∣ ∣ ≥ γ ( w 2 , b 2 ) ∣ ∣ w 2 ∣ ∣ = 1 ∣ ∣ w 2 ∣ ∣ \begin{array}{lll} &&\max\limits_{w, b}\frac{1}{||w||}\min\limits_{i=1, 2, ..., N}y_i(w\cdot x_i+b)\\ &=&\frac{\gamma(w_1, b_1)}{||w_1||}\\ &\ge&\frac{\gamma(w_2, b_2)}{||w_2||}\\ &=&\frac{1}{||w_2||} \end{array} =≥=w,bmax∣∣w∣∣1i=1,2,...,Nminyi(w⋅xi+b)∣∣w1∣∣γ(w1,b1)∣∣w2∣∣γ(w2,b2)∣∣w2∣∣1
- 综合上面两点,我们有等式 1 ∣ ∣ w 2 ∣ ∣ = γ ( w 1 , b 1 ) ∣ ∣ w 1 ∣ ∣ \frac{1}{||w_2||}=\frac{\gamma(w_1, b_1)}{||w_1||} ∣∣w2∣∣1=∣∣w1∣∣γ(w1,b1) 这就说明 ( w 1 γ ( w 1 , b 1 ) , b 1 γ ( w 1 , b 1 ) ) (\frac{w_1}{\gamma(w_1, b_1)}, \frac{b_1}{\gamma(w_1, b_1)}) (γ(w1,b1)w1,γ(w1,b1)b1) 是问题(2)的一个最优解;而 ( w 2 , b 2 ) (w_2, b_2) (w2,b2) 是问题(1)的一个最优解。联系到问题(1)与问题(2)的最优解的唯一性,因此,我们有 ( w 1 , b 1 ) = ( w 2 , b 2 ) (w_1, b_1)=(w_2, b_2) (w1,b1)=(w2,b2) 且 γ ( w 1 , b 1 ) = 1 \gamma(w_1, b_1)=1 γ(w1,b1)=1。因此,问题(1)与问题(2)是等价的。
对于问题(2), max w , b 1 ∣ ∣ w ∣ ∣ \max\limits_{w, b}\frac{1}{||w||} w,bmax∣∣w∣∣1 等价于 min w , b ∣ ∣ w ∣ ∣ \min\limits_{w, b}||w|| w,bmin∣∣w∣∣,而 min w , b ∣ ∣ w ∣ ∣ \min\limits_{w, b}||w|| w,bmin∣∣w∣∣ 等价于 min w , b 1 2 ∣ ∣ w ∣ ∣ 2 \min\limits_{w, b}\frac{1}{2}||w||^2 w,bmin21∣∣w∣∣2。因此,问题(2)等价于
min w , b 1 2 ∣ ∣ w ∣ ∣ 2 ( 3 ) s . t . y i ( w ⋅ x i + b ) ≥ 1 , i = 1 , 2 , . . . , N \begin{array}{lll} &\min\limits_{w, b}&\frac{1}{2}||w||^2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(3)\\ &s.t.& y_i(w\cdot x_i+b)\ge 1, i=1, 2, ..., N \end{array} w,bmins.t.21∣∣w∣∣2 (3)yi(w⋅xi+b)≥1,i=1,2,...,N
最终,我们将问题转化为问题(3)的形式,而问题(3)是一个凸二次规划的问题。
1.2 对偶问题
我们通过拉格朗日方法,将问题(3)转化为对偶问题。之所以转化为对偶问题,是因为对偶问题相对简单,同时自然引入核函数的概念。
通过拉格朗日方法,我们有拉格朗日函数
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 N α i y i ( w ⋅ x i + b ) + ∑ i = 1 N α i L(w, b, \alpha)=\frac{1}{2}||w||^2-\sum_{i=1}^N\alpha_iy_i(w\cdot x_i+b)+\sum_{i=1}^N\alpha_i L(w,b,α)=21∣∣w∣∣2−i=1∑Nαiyi(w⋅xi+b)+i=1∑Nαi
其中, α i ≥ 0 , i = 1 , 2 , . . . , N \alpha_i\ge0,i=1, 2, ..., N αi≥0,i=1,2,...,N。
原始问题可以写为 min w , b max α L ( w , b , α ) \min\limits_{w, b}\max\limits_{\alpha}L(w, b, \alpha) w,bminαmaxL(w,b,α)
之所以这是原始问题,是因为从上面的表达式中,可以还原出问题(3)。我们可以这样看:
- 我们要选择 ( w , b ) (w, b) (w,b) 使得选出最小的 max α L ( w , b , α ) \max\limits_{\alpha}L(w, b, \alpha) αmaxL(w,b,α);
- 仔细观察 L ( w , b , α ) L(w, b, \alpha) L(w,b,α),可以看到 α i \alpha_i αi 前面的系数为 1 − y i ( w ⋅ x i + b ) 1-y_i(w\cdot x_i+b) 1−yi(w⋅xi+b);
- 如果 1 − y i ( w ⋅ x i + b ) > 0 1-y_i(w\cdot x_i+b)>0 1−yi(w⋅xi+b)>0,则我们可以选择特别大的 α i \alpha_i αi,使得 max α L ( w , b , α ) = + ∞ \max\limits_{\alpha}L(w, b, \alpha)=+\infty αmaxL(w,b,α)=+∞;
- 因此,为了确保使得 max α L ( w , b , α ) \max\limits_{\alpha}L(w, b, \alpha) αmaxL(w,b,α) 不是无限大,我们必须挑选 ( w , b ) (w, b) (w,b) 使得 1 − y i ( w ⋅ x i + b ) ≤ 0 1-y_i(w\cdot x_i+b)\le0 1−yi(w⋅xi+b)≤0 对任意 i i i 恒成立,这就意味着问题(3)的约束条件被还原出来;
- 当 1 − y i ( w ⋅ x i + b ) ≤ 0 1-y_i(w\cdot x_i+b)\le0 1−yi(w⋅xi+b)≤0 时,为了 max α L ( w , b , α ) \max\limits_{\alpha}L(w, b, \alpha) αmaxL(w,b,α),显然,对于 1 − y i ( w ⋅ x i + b ) < 0 1-y_i(w\cdot x_i+b)<0 1−yi(w⋅xi+b)<0 严格成立的点,我们必须令 α i = 0 \alpha_i=0 αi=0;而对于 1 − y i ( w ⋅ x i + b ) = 0 1-y_i(w\cdot x_i+b)=0 1−yi(w⋅xi+b)=0 的点,我们则对 α i > 0 \alpha_i>0 αi>0;
- 这样,我们可以保证 ∑ i = 1 N ( 1 − y i ( w ⋅ x i + b ) ) = 0 \sum_{i=1}^N\left(1-y_i(w\cdot x_i+b)\right)=0 ∑i=1N(1−yi(w⋅xi+b))=0,此时, min w , b max α L ( w , b , α ) = min w , b 1 2 ∣ ∣ w ∣ ∣ 2 \min\limits_{w, b}\max\limits_{\alpha}L(w, b, \alpha)=\min\limits_{w, b}\frac{1}{2}||w||^2 w,bminαmaxL(w,b,α)=w,bmin21∣∣w∣∣2。这时,目标函数也被还原出来。
综合上面的叙述,我们可以看出,原始问题为
min w , b max α L ( w , b , α ) \min\limits_{w, b}\max\limits_{\alpha}L(w, b, \alpha) w,bminαmaxL(w,b,α)
此时,所谓的对偶问题为
max α min w , b L ( w , b , α ) \max\limits_{\alpha}\min\limits_{w, b}L(w, b, \alpha) αmaxw,bminL(w,b,α)
一般来说,这两个问题的解并不一定相等,但从库恩塔克定理可以知道,只要原问题的目标函数以及不等式约束是凸函数,则原问题与对偶问题的解一致。
现在,我们尝试求解对偶问题。
给定 α \alpha α,我们求 min w , b L ( w , b , α ) \min\limits_{w, b}L(w, b, \alpha) w,bminL(w,b,α)。具体的,我们对 L ( w , b , α ) L(w, b, \alpha) L(w,b,α) 分别关于 ( w , b ) (w, b) (w,b) 求导,则
∂ L ( w , b , α ) ∂ w = w − ∑ i = 1 N α i y i x i = 0 \frac{\partial L(w, b, \alpha)}{\partial w}=w-\sum_{i=1}^N\alpha_iy_ix_i=0 ∂w∂L(w,b,α)=w−i=1∑Nαiyixi=0
∂ L ( w , b , α ) ∂ b = − ∑ i = 1 N α i y i = 0 \frac{\partial L(w, b, \alpha)}{\partial b}=-\sum_{i=1}^N\alpha_iy_i=0 ∂b∂L(w,b,α)=−i=1∑Nαiyi=0
解得 w = ∑ i = 1 N α i y i x i w=\sum_{i=1}^N\alpha_iy_ix_i w=∑i=1Nαiyixi 和 ∑ i = 1 N α i y i = 0 \sum_{i=1}^N\alpha_iy_i=0 ∑i=1Nαiyi=0。将结果代入 L ( w , b , α ) L(w, b, \alpha) L(w,b,α),可得
L ( w ( α ) , b ( α ) , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 N α i y i ( w ⋅ x i + b ) + ∑ i = 1 N α i = 1 2 w ⋅ w − ∑ i = 1 N α i y i x i ⋅ w − b ∑ i = 1 N α i y i + ∑ α i = 1 2 w ⋅ w − w ⋅ w + ∑ α i = − 1 2 w ⋅ w + ∑ α i = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i ⋅ x j + ∑ i = 1 N α i \begin{array}{lll} L(w(\alpha), b(\alpha), \alpha)&=&\frac{1}{2}||w||^2-\sum_{i=1}^N\alpha_iy_i(w\cdot x_i+b)+\sum_{i=1}^N\alpha_i\\ &=&\frac{1}{2}w\cdot w-\sum_{i=1}^N\alpha_iy_ix_i\cdot w-b\sum_{i=1}^N\alpha_iy_i+\sum\alpha_i\\ &=&\frac{1}{2}w\cdot w-w\cdot w+\sum\alpha_i\\ &=&-\frac{1}{2}w\cdot w+\sum\alpha_i\\ &=&-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_i\cdot x_j+\sum_{i=1}^N\alpha_i \end{array} L(w(α),b(α),α)=====21∣∣w∣∣2−∑i=1Nαiyi(w⋅xi+b)+∑i=1Nαi21w⋅w−∑i=1Nαiyixi⋅w−b∑i=1Nαiyi+∑αi21w⋅w−w⋅w+∑αi−21w⋅w+∑αi−21∑i=1N∑j=1Nαiαjyiyjxi⋅xj+∑i=1Nαi
因此,对偶问题转化为问题
max α L ( α ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i ⋅ x j + ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 α i ≥ 0 , i = 1 , 2 , . . . , N \begin{array}{lll} &\max\limits_{\alpha}&L(\alpha)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_i\cdot x_j+\sum_{i=1}^N\alpha_i\\ &s.t.&\sum_{i=1}^N\alpha_iy_i=0\\ &&\alpha_i\ge0, i=1, 2, ..., N \end{array} αmaxs.t.L(α)=−21∑i=1N∑j=1Nαiαjyiyjxi⋅xj+∑i=1Nαi∑i=1Nαiyi=0αi≥0,i=1,2,...,N
上面的问题可以通过SMO算法(快速最小序列算法)得到解 α ∗ \alpha^* α∗。
根据库恩塔克条件,我们知道最优解 ( w ∗ , b ∗ , α ∗ ) (w^*, b^*, \alpha^*) (w∗,b∗,α∗) 满足
∂ L ∂ w ∣ ( w , b , α ) = ( w ∗ , b ∗ , α ∗ ) = w ∗ − ∑ i = 1 N α i ∗ y i x i = 0 ∂ L ∂ b ∣ ( w , b , α ) = ( w ∗ , b ∗ , α ∗ ) = − ∑ i = 1 N α i ∗ y i = 0 α i ∗ ( 1 − y i ( w ∗ ⋅ x i + b ∗ ) ) = 0 , i = 1 , 2 , . . . , N 1 − y i ( w ∗ ⋅ x i + b ∗ ) ≤ 0 , i = 1 , 2 , . . . , N α i ∗ ≥ 0 , i = 1 , 2 , . . . , N \begin{array}{rll} \frac{\partial L}{\partial w}|_{(w, b, \alpha)=(w^*, b^*, \alpha^*)}&=&w^*-\sum_{i=1}^N\alpha_i^*y_ix_i=0\\ \frac{\partial L}{\partial b}|_{(w, b, \alpha)=(w^*, b^*, \alpha^*)}&=&-\sum_{i=1}^N\alpha_i^*y_i=0\\ \alpha_i^*(1-y_i(w^*\cdot x_i+b^*))&=&0, i=1, 2, ..., N\\ 1-y_i(w^*\cdot x_i+b^*)&\le& 0, i=1, 2, ..., N\\ \alpha_i^*&\ge&0, i=1, 2, ..., N \end{array} ∂w∂L∣(w,b,α)=(w∗,b∗,α∗)∂b∂L∣(w,b,α)=(w∗,b∗,α∗)αi∗(1−yi(w∗⋅xi+b∗))1−yi(w∗⋅xi+b∗)αi∗===≤≥w∗−∑i=1Nαi∗yixi=0−∑i=1Nαi∗yi=00,i=1,2,...,N0,i=1,2,...,N0,i=1,2,...,N
从条件可知
- 由第一个等式可知, w ∗ = ∑ i = 1 N α i ∗ y i x i w^*=\sum_{i=1}^N\alpha_i^*y_ix_i w∗=i=1∑Nαi∗yixi
- 由第三个等式可知,必然存在一个 α j ∗ > 0 \alpha_j^*>0 αj∗>0,这是因为如果所有的 α j ∗ = 0 \alpha_j^*=0 αj∗=0,则 w ∗ = 0 w^*=0 w∗=0,这显然不是最优解,因此,对于第j个数据,有 1 − y j ( w ∗ ⋅ x j + b ∗ ) = 0 1-y_j(w^*\cdot x_j+b^*)=0 1−yj(w∗⋅xj+b∗)=0,得 b ∗ = y j − ∑ i = 1 N α i ∗ y i x i ⋅ x j b^*=y_j-\sum_{i=1}^N\alpha_i^*y_ix_i\cdot x_j b∗=yj−i=1∑Nαi∗yixi⋅xj
2. 线性支持向量机
现实生活中,我们可能遇到不能够严格线性可分的数据集,但是当去掉一些点之后,这个数据集便是线性可分的。对于这种数据集,我们可以使用线性支持向量机。
回忆到问题(3)中,约束条件 y i ( w ⋅ x i + b ) ≥ 1 , i = 1 , 2 , . . . , N y_i(w\cdot x_i+b)\ge 1, i=1, 2, ..., N yi(w⋅xi+b)≥1,i=1,2,...,N 意味着所有数据的函数间隔最少为1,这确保了线性可分。
如果线性不可分,则意味着对于某些数据,约束条件不满足。我们引入松弛变量 ξ i ≥ 0 , i = 1 , 2 , . . . , N \xi_i\ge0, i=1, 2, ..., N ξi≥0,i=1,2,...,N,将约束条件放松为 y i ( w ⋅ x i + b ) ≥ 1 − ξ i , i = 1 , 2 , . . . , N y_i(w\cdot x_i+b)\ge 1-\xi_i, i=1, 2, ..., N yi(w⋅xi+b)≥1−ξi,i=1,2,...,N;为了使得约束条件不至于没有任何约束作用,我们需要取尽可能紧凑的松弛变量,也就是让松弛变量尽可能小,我们可以在目标函数上加入松弛变量的惩罚项,也就是 max w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i \max\limits_{w, b}\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i w,bmax21∣∣w∣∣2+C∑i=1Nξi,其中, C ≥ 0 C\ge0 C≥0。
因此,线性支持向量机的问题可以表述为
min w , b , ξ 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i ( 4 ) s . t . y i ( w ⋅ x i + b ) ≥ 1 − ξ i , i = 1 , 2 , . . . , N ξ i ≥ 0 , i = 1 , 2 , . . . , N \begin{array}{lll} &\min\limits_{w, b, \xi}&\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i~~~~~~~~~~~~~~~~~~~~~~~~~~~(4)\\ &s.t.& y_i(w\cdot x_i+b)\ge 1-\xi_i, i=1, 2, ..., N\\ && \xi_i\ge0, i=1, 2, ..., N \end{array} w,b,ξmins.t.21∣∣w∣∣2+C∑i=1Nξi (4)yi(w⋅xi+b)≥1−ξi,i=1,2,...,Nξi≥0,i=1,2,...,N
同样的,我们用拉格朗日方法,将原始问题转化为对偶问题进行求解。此时,拉格朗日函数为
L ( w , b , ξ , α , μ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i − ∑ i = 1 N α i y i ( w ⋅ x i + b ) + ∑ i = 1 N α i ( 1 − ξ i ) − ∑ i = 1 N μ i ξ i L(w,b, \xi, \alpha, \mu)=\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i-\sum_{i=1}^N\alpha_iy_i(w\cdot x_i+b)+\sum_{i=1}^N\alpha_i(1-\xi_i)-\sum_{i=1}^N\mu_i\xi_i L(w,b,ξ,α,μ)=21∣∣w∣∣2+Ci=1∑Nξi−i=1∑Nαiyi(w⋅xi+b)+i=1∑Nαi(1−ξi)−i=1∑Nμiξi
其中, α i ≥ 0 , μ i ≥ 0 , i = 1 , 2 , . . . , N \alpha_i\ge0, \mu_i\ge0, i=1, 2, ..., N αi≥0,μi≥0,i=1,2,...,N。
这时,原始问题为
min w , b , ξ max α , μ L ( w , b , ξ , α , μ ) \min_{w, b, \xi}\max_{\alpha, \mu}L(w, b, \xi, \alpha, \mu) w,b,ξminα,μmaxL(w,b,ξ,α,μ)
对偶问题为
max α , μ min w , b , ξ L ( w , b , ξ , α , μ ) \max_{\alpha, \mu}\min_{w, b, \xi}L(w, b, \xi, \alpha, \mu) α,μmaxw,b,ξminL(w,b,ξ,α,μ)
类似的,这里的对偶问题和原始问题等价。为了求得对偶问题的解,我们有
∂ L ( w , b , ξ , α , μ ) ∂ w = w − ∑ i = 1 N α i y i x i = 0 \frac{\partial L(w,b, \xi, \alpha, \mu)}{\partial w}=w-\sum_{i=1}^N\alpha_iy_ix_i=0 ∂w∂L(w,b,ξ,α,μ)=w−i=1∑Nαiyixi=0
∂ L ( w , b , ξ , α , μ ) ∂ b = − ∑ i = 1 N α i y i = 0 \frac{\partial L(w,b, \xi, \alpha, \mu)}{\partial b}=-\sum_{i=1}^N\alpha_iy_i=0 ∂b∂L(w,b,ξ,α,μ)=−i=1∑Nαiyi=0
∂ L ( w , b , ξ , α , μ ) ∂ ξ i = C − α i − μ i = 0 , i = 1 , 2 , . . . , N \frac{\partial L(w,b, \xi, \alpha, \mu)}{\partial \xi_i}=C-\alpha_i-\mu_i=0, i=1, 2, ..., N ∂ξi∂L(w,b,ξ,α,μ)=C−αi−μi=0,i=1,2,...,N
- 通过第一个式子,我们有 w = ∑ i = 1 N α i y i x i w=\sum_{i=1}^N\alpha_iy_ix_i w=∑i=1Nαiyixi
- 通过第二个式子,我们有 ∑ i = 1 N α i y i = 0 \sum_{i=1}^N\alpha_iy_i=0 ∑i=1Nαiyi=0
- 通过第三个式子,我们有 α i = C − μ i , i = 1 , 2 , . . . , N \alpha_i=C-\mu_i, i=1, 2, ..., N αi=C−μi,i=1,2,...,N
将上面的结果,代入拉格朗日函数 L ( w , b , ξ , α , μ ) L(w,b, \xi, \alpha, \mu) L(w,b,ξ,α,μ),可以得到
L ( α , μ ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i ⋅ x j + ∑ i = 1 N α i L(\alpha, \mu)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_i\cdot x_j+\sum_{i=1}^N\alpha_i L(α,μ)=−21i=1∑Nj=1∑Nαiαjyiyjxi⋅xj+i=1∑Nαi
约束条件有 ∑ i = 1 N α i y i = 0 \sum_{i=1}^N\alpha_iy_i=0 ∑i=1Nαiyi=0 和 α i = C − μ i , i = 1 , 2 , . . . , N \alpha_i=C-\mu_i, i=1, 2, ..., N αi=C−μi,i=1,2,...,N。考虑到目标函数 L ( α , μ ) L(\alpha, \mu) L(α,μ) 中实际上并没有 μ i \mu_i μi,所以我们可以消去 μ i \mu_i μi,将等式 α i = C − μ i \alpha_i=C-\mu_i αi=C−μi 变成 0 ≤ α i ≤ C 0\le \alpha_i\le C 0≤αi≤C。
因此,我们有如下最优化问题
max α L ( α ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i ⋅ x j + ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2 , . . . , N \begin{array}{lll} &\max\limits_{\alpha}&L(\alpha)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_i\cdot x_j+\sum_{i=1}^N\alpha_i\\ &s.t.&\sum_{i=1}^N\alpha_iy_i=0\\ &&0\le \alpha_i\le C, i=1, 2, ..., N \end{array} αmaxs.t.L(α)=−21∑i=1N∑j=1Nαiαjyiyjxi⋅xj+∑i=1Nαi∑i=1Nαiyi=00≤αi≤C,i=1,2,...,N
类似的,通过库恩塔克条件,我们有最优解 ( w ∗ , b ∗ ) (w^*, b^*) (w∗,b∗) 需要满足 w ∗ = ∑ i = 1 N α i ∗ y i x i w^*=\sum_{i=1}^N\alpha_i^*y_ix_i w∗=i=1∑Nαi∗yixi b ∗ = y j − ∑ i = 1 N α i ∗ y i x i ⋅ x j b^*=y_j-\sum_{i=1}^N\alpha_i^*y_ix_i\cdot x_j b∗=yj−i=1∑Nαi∗yixi⋅xj
其中, j j j 满足 0 < α j ∗ ≤ C 0<\alpha_j^*\le C 0<αj∗≤C。
3. 非线性支持向量机
对于更加一般的非线性可分数据集,我们可以采用核函数方法。
这种方法的起因来自于对上述两种方法的观察得来的。
- 线性可分支持向量机,求最优 α ∗ \alpha^* α∗ 的问题
max α L ( α ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i ⋅ x j + ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 α i ≥ 0 , i = 1 , 2 , . . . , N \begin{array}{lll} &\max\limits_{\alpha}&L(\alpha)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_i\cdot x_j+\sum_{i=1}^N\alpha_i\\ &s.t.&\sum_{i=1}^N\alpha_iy_i=0\\ &&\alpha_i\ge 0, i=1, 2, ..., N \end{array} αmaxs.t.L(α)=−21∑i=1N∑j=1Nαiαjyiyjxi⋅xj+∑i=1Nαi∑i=1Nαiyi=0αi≥0,i=1,2,...,N - 线性支持向量机,求最优 α ∗ \alpha^* α∗ 的问题
max α L ( α ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i ⋅ x j + ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C , i = 1 , 2 , . . . , N \begin{array}{lll} &\max\limits_{\alpha}&L(\alpha)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_i\cdot x_j+\sum_{i=1}^N\alpha_i\\ &s.t.&\sum_{i=1}^N\alpha_iy_i=0\\ &&0\le \alpha_i\le C, i=1, 2, ..., N \end{array} αmaxs.t.L(α)=−21∑i=1N∑j=1Nαiαjyiyjxi⋅xj+∑i=1Nαi∑i=1Nαiyi=00≤αi≤C,i=1,2,...,N
观察上述问题,我们发现,对于线性可分或者接近线性可分的数据集,我们关心的往往不是具体的特征 x i x_i xi,而是特征的内积 x i ⋅ x j x_i\cdot x_j xi⋅xj。
当我们能够将一个线性不可分的数据,通过变换 ϕ \phi ϕ 将特征投射到另一个空间上去,从而让这些数据可分。在那个空间上,我们关心的依然只是内积 ϕ ( x i ) ⋅ ϕ ( x j ) \phi(x_i)\cdot \phi(x_j) ϕ(xi)⋅ϕ(xj)。
举一个例子。在图1中,有两类数据,标记为1的数据基本包围标记为-1的数据。可以想象,当我们把数据特征 x = ( x ( 1 ) , x ( 2 ) ) x=(x^{(1)}, x^{(2)}) x=(x(1),x(2)) 映射为 ϕ ( x ) = ( ( x ( 1 ) ) 2 , ( x ( 2 ) ) 2 ) \phi(x)=((x^{(1)})^2, (x^{(2)})^2) ϕ(x)=((x(1))2,(x(2))2),外面的一圈圆点数据会被映射到一条直线上去,而里面的×数据则被映射到该条直线的下方,如图2所示。
经过这样的映射变换之后,我们就可以在新的特征空间中按照现行可分的数据集进行处理。注意到在求解过程中,我们仅仅关心特征的内积 ϕ ( x 1 ) ⋅ ϕ ( x 2 ) \phi(x_1)\cdot \phi(x_2) ϕ(x1)⋅ϕ(x2)。
因此,我们可以求新的特征空间中的超平面。具体问题为
max α L ( α ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ϕ ( x i ) ⋅ ϕ ( x j ) + ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 α i ≥ 0 , i = 1 , 2 , . . . , N \begin{array}{lll} &\max\limits_{\alpha}&L(\alpha)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j\phi(x_i)\cdot \phi(x_j)+\sum_{i=1}^N\alpha_i\\ &s.t.&\sum_{i=1}^N\alpha_iy_i=0\\ &&\alpha_i\ge 0, i=1, 2, ..., N \end{array} αmaxs.t.L(α)=−21∑i=1N∑j=1Nαiαjyiyjϕ(xi)⋅ϕ(xj)+∑i=1Nαi∑i=1Nαiyi=0αi≥0,i=1,2,...,N
这样求得的 ( w ∗ , b ∗ ) (w^*, b^*) (w∗,b∗) 等于
w ∗ = ∑ i = 1 N α i ∗ y i ϕ ( x i ) w^*=\sum_{i=1}^N\alpha_i^*y_i\phi(x_i) w∗=i=1∑Nαi∗yiϕ(xi) b ∗ = y j − ∑ i = 1 N α i ∗ y i ϕ ( x i ) ⋅ ϕ ( x j ) b^*=y_j-\sum_{i=1}^N\alpha_i^*y_i\phi(x_i)\cdot \phi(x_j) b∗=yj−i=1∑Nαi∗yiϕ(xi)⋅ϕ(xj)
其中, j j j 满足 α j ∗ ≥ 0 \alpha_j^*\ge 0 αj∗≥0。
要求的超平面为
f ( x ) = w ∗ ⋅ ϕ ( x ) + b ∗ = ∑ i = 1 N α i ∗ y i ϕ ( x i ) ⋅ ϕ ( x ) + y j − ∑ i = 1 N α i ∗ y i ϕ ( x i ) ⋅ ϕ ( x j ) \begin{array}{lll} f(x)&=&w^*\cdot \phi(x)+b^*\\ &=&\sum_{i=1}^N\alpha_i^*y_i\phi(x_i)\cdot\phi(x)+y_j-\sum_{i=1}^N\alpha_i^*y_i\phi(x_i)\cdot \phi(x_j) \end{array} f(x)==w∗⋅ϕ(x)+b∗∑i=1Nαi∗yiϕ(xi)⋅ϕ(x)+yj−∑i=1Nαi∗yiϕ(xi)⋅ϕ(xj)
显而易见,上面的超平面表达式中依然只与内积有关。我们将这种特征内积定义为核函数 K ( x i , x j ) K(x_i, x_j) K(xi,xj),即
K ( x i , x j ) = ϕ ( x i ) ⋅ ϕ ( x j ) K(x_i, x_j)=\phi(x_i)\cdot \phi(x_j) K(xi,xj)=ϕ(xi)⋅ϕ(xj)
上面那个例子中, ϕ ( x ) = ( ( x ( 1 ) ) 2 , ( x ( 2 ) ) 2 ) \phi(x)=((x^{(1)})^2, (x^{(2)})^2) ϕ(x)=((x(1))2,(x(2))2),这里,对应的核函数 K ( x i , x j ) = ( x 1 ( 1 ) x 2 ( 1 ) ) 2 + ( x 1 ( 2 ) x 2 ( 2 ) ) 2 K(x_i, x_j)=(x_1^{(1)}x_2^{(1)})^2+(x_1^{(2)}x_2^{(2)})^2 K(xi,xj)=(x1(1)x2(1))2+(x1(2)x2(2))2,作用就是将环形分布的数据转换为线性分布。
实际上,我们并不关心具体的特征函数 ϕ ( ⋅ ) \phi(\cdot) ϕ(⋅) 是什么,甚至于 ϕ ( ⋅ ) \phi(\cdot ) ϕ(⋅) 与核函数 K ( ⋅ , ⋅ ) K(\cdot, \cdot ) K(⋅,⋅) 也没有一一对应关系。上面的例子仅仅是说,这样的核函数,你可以从这样的特征函数构造,然后可以这样理解。
实际上,我们通常就是直接应用而已~
通常,我们应用的核函数为多项式核函数和高斯核函数。关于如何通过特征映射构造出多项式核函数和高斯核函数,可以参考
机器学习有很多关于核函数的说法,核函数的定义和作用是什么? - 优达学城(Udacity)的回答 - 知乎
求解 α ∗ \alpha^* α∗ 的 SMO 算法,后面有时间再详细介绍。