文章目录
相关文章:
支持向量机
支持向量机(Support Vector Machines, SVM)
:是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大化的线性分类器,间隔最大化使它有别于感知器;支持向量机还包括核技巧(通过非线性函数转换为线性模型),这使它成为实质上的非线性分类器。
支持向量机的学习策略就是间隔最大化,可以形式化为一个求解凸二次规划(convex quadratic programming)的问题,也等价于正则化的合页损失函数最小化问题,支持向量机的学习算法是求解凸二次规划的最优算法。[1]
按训练数据分线性可分程度,支持向量机的分类以及对应采取的算法如下:
-
线性可分支持向量机
:硬间隔最大化(线性可分) -
线性支持向量机
:软间隔最大化(近似线性可分) -
非线性支持向量机
:核技巧+软间隔最大化(线性不可分)
线性可分支持向量机可以看作是线性支持向量机的一个特例;非线性支持向量机则通过核函数将线性不可分数据转换为线性可分数据,从而转换为线性支持向量机。
间隔最大化:按间隔中是否能出现样本点,分为硬间隔最大化和软间隔最大化。硬间隔最大化中不允许有样本点出现,因此适合于数据线性可分的情况;软间隔最大化中允许有少量样本点出现,适合于含有噪声的线性可分数据(称为近似线性可分)。
本文将按照上述思路介绍前两类类支持向量机,而非线性支持向量机和核函数在下一篇中再介绍。
1. 线性可分支持向量机
线性可分支持向量机(linear support vector machine in linearly separable case)与硬间隔最大化(hard margin maximization)
首先我们来看一个线性可分的例子,给定训练样本 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) } , y i ∈ { − 1 , + 1 } D=\left\{\left(\boldsymbol{x}_{1}, y_{1}\right),\left(\boldsymbol{x}_{2}, y_{2}\right), \ldots,\left(\boldsymbol{x}_{m}, y_{m}\right)\right\}, y_{i} \in\{-1,+1\} D={(x1,y1),(x2,y2),…,(xm,ym)},yi∈{−1,+1},分类学习最基本的想法就是基于训练集 D D D 在样本空间中找到一个划分超平面,将不同类别的样本分开,但能将训练样本分开的划分超平面可能有很多,如下图所示:
![](https://x1a-alioss.oss-cn-shenzhen.aliyuncs.com/Screen%20Shot%202019-08-16%20at%2011.52.50.png)
直观上,应该去找位于两类训练样本“正中间”的划分超平面,因为该划分超平面对训练样本局部扰动的“容忍”性最好。例如,由于训练集的局限性或噪声的影响,训练集外的样本可能比图 1 中的训练样本更接近两个类的分隔届,这将使许多划分超平面出现错误,而红色的超平面受影响最小。换而言之,这个划分超平面所产生的分类结果鲁棒性是最好的,对预测数据的泛化能力也是最强的。
在样本空间中,划分超平面可通过如下线性方程来描述:
(1) w T x + b = 0 \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b=0 \tag{1} wTx+b=0(1)
其中 w = ( w 1 ; w 2 ; …   ; w d ) \boldsymbol{w}=\left(w_{1} ; w_{2} ; \dots ; w_{d}\right) w=(w1;w2;…;wd) 为法向量,决定了超平面的方向; b b b 为位移项,决定了超平面与原点之间的距离。因此划分超平面可以唯一的被法向量 w \boldsymbol{w} w 和位移项 b b b 确定,我们将这个超平面记为 ( w , b ) (\boldsymbol{w},b) (w,b)。
样本空间中任意点 x \boldsymbol{x} x 到超平面 ( w , b ) (\boldsymbol{w},b) (w,b) 的距离可以写为:
(2) r = ∣ w T x + b ∣ ∥ w ∥ r=\frac{\left|\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right|}{\|\boldsymbol{w}\|}\tag{2} r=∥w∥∣∣wTx+b∣∣(2)
假设超平面 ( w , b ) (\boldsymbol{w},b) (w,b) 能将训练样本正确分类,即对于 ( x i , y i ) ∈ D \left(\boldsymbol{x}_{i}, y_{i}\right) \in D (xi,yi)∈D,若 y i = + 1 y_i=+1 yi=+1,则有 w T x i + b > 0 \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b>0 wTxi+b>0;若 y i = − 1 y_i=-1 yi=−1,则有 w T x i + b < 0 \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b<0 wTxi+b<0,如下:
(3) { w T x i + b ⩾ + 1 , y i = + 1 w T x i + b ⩽ − 1 , y i = − 1 \left\{\begin{array}{ll}{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b \geqslant+1,} & {y_{i}=+1} \\ {\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b \leqslant-1,} & {y_{i}=-1}\end{array}\right. \tag{3} {wTxi+b⩾+1,wTxi+b⩽−1,yi=+1yi=−1(3)
如图 2 所示,距离超平面最近的这几个训练样本点使公式 (3) 的等号成立,它们被称为“支持向量
”(support vector),两个异类向量到超平面的距离之和为:
(4) γ = 2 ∥ w ∥ \gamma=\frac{2}{\|\boldsymbol{w}\|}\tag{4} γ=∥w∥2(4)
它被称为间隔
(margin)。
![](https://x1a-alioss.oss-cn-shenzhen.aliyuncs.com/Screen%20Shot%202019-08-16%20at%2013.55.30.png)
1.1 间隔计算公式推导
首先,设 W = ( w 1 , w 2 ) , x = ( x 1 , x 2 ) W=\left(w_{1}, w_{2}\right), x=\left(x_{1}, x_{2}\right) W=(w1,w2),x=(x1,x2),并且 W x = w 1 x 1 + w 2 x 2 W x=w_{1} x_{1}+w_{2} x_{2} Wx=w1x1+w2x2。
假设我们有三条直线:
∙ W x + b = 1 ∙ W x + b = 0 ∙ W x + b = − 1 \begin{array}{l}{\bullet W x+b=1} \\ {\bullet W x+b=0} \\ {\bullet W x+b=-1}\end{array} ∙Wx+b=1∙Wx+b=0∙Wx+b=−1
其中第二条为超平面的表达式,第一条和第三条为边界的表达式。由于这三条线为等距平行线,因此想要确定间隔(两条边界的距离),只需要计算边界与超平面之间的距离,并乘 2 就得到了间隔。
下面上边界到超平面的距离:
![](https://x1a-alioss.oss-cn-shenzhen.aliyuncs.com/Screen%20Shot%202019-08-16%20at%2014.02.00.png)
由于移动直线并不改边之间的距离,因此可以将超平面移动到与原点相交,此时直线方程变为:
∙ W x = 1 ∙ W x = 0 \begin{array}{l}{\bullet W x=1} \\ {\bullet W x=0}\end{array} ∙Wx=1∙Wx=0
现在,超平面的直线表达式为 W x = 0 W x=0 Wx=0,因此其法向量为 W = ( w 1 , w 2 ) W=\left(w_{1}, w_{2}\right) W=(w1,w2)。
![](https://x1a-alioss.oss-cn-shenzhen.aliyuncs.com/Screen%20Shot%202019-08-16%20at%2014.09.35.png)
法向量 W W W 与边界相交于蓝点,假设该点的坐标为 ( p , q ) (p, q) (p,q),由于该点位于法向量 W = ( w 1 , w 2 ) W=\left(w_{1}, w_{2}\right) W=(w1,w2) 上,所以 ( p , q ) (p,q) (p,q) 是 ( w 1 , w 2 ) (w_1,w_2) (w1,w2) 的倍数,即:
∙ ( p , q ) = k ( w 1 , w 2 ) \bullet (p,q)= k(w_1,w_2) ∙(p,q)=k(w1,w2)
将点 ( p , q ) (p,q) (p,q) 代入边界方程 W x = 1 Wx=1 Wx=1 有:
W x ⇒ ( w 1 , w 2 ) ( x 1 , x 2 ) T ⇒ ( w 1 , w 2 ) ( p , q ) T ⇒ ( w 1 , w 2 ) k ( w 1 , w 2 ) T ⇒ k ( w 1 2 + w 2 2 ) = 1 \begin{aligned} &\quad\quad W x \\ & \Rightarrow (w_1,w_2) (x_1,x_2)^T\\ & \Rightarrow (w_1,w_2) (p,q)^T\\ & \Rightarrow (w_1,w_2) k(w_1,w_2)^T\\ & \Rightarrow k(w_1^2+w_2^2)=1\\ \end{aligned} Wx⇒(w1,w2)(x1,x2)T⇒(w1,w2)(p,q)T⇒(w1,w2)k(w1,w2)T⇒k(w12+w22)=1
因此 k = 1 w 1 2 + w 2 2 = 1 ∣ W ∣ 2 k=\frac{1}{w_{1}^{2}+w_{2}^{2}}=\frac{1}{|W|^{2}} k=w12+w221=∣W∣21,所以蓝点坐标可化为:
( p , q ) = k ( w 1 , w 2 ) = k W = 1 ∣ W ∣ 2 W = W ∣ W ∣ 2 \begin{aligned} (p,q)&= k(w_1,w_2)\\ &=kW \\ &=\frac{1}{|W|^{2}}W\\ &=\frac{W}{|W|^{2}} \end{aligned} (p,q)=k(w1,w2)=kW=∣W∣21W=∣W∣2W
现在,两条直线之间的距离是蓝色向量的范数,由于分母是一个标量,向量 W ∣ W ∣ 2 \frac{W}{|W|^{2}} ∣W∣2W 的范数正是 ∣ W ∣ ∣ W ∣ 2 \frac{|W|}{|W|^{2}} ∣W∣2∣W∣,即 1 ∣ W ∣ \frac{1}{|W|} ∣W∣1,如下图所示:
![](https://x1a-alioss.oss-cn-shenzhen.aliyuncs.com/Screen%20Shot%202019-08-16%20at%2014.54.49.png)
最后,最终的间隔为两倍距离,即:
γ = 2 ∣ w ∣ \gamma=\frac{2}{|\boldsymbol{w}|} γ=∣w∣2
1.2 硬间隔最大化
支持向量机学习的基本想法是求解能够正确划分训练数据集并且间隔最大化的分离超平面。对于线性可分的训练数据集而言,线性可分的分离超平面有无数个,但是间隔最大的分离超平面是唯一的。
这里的间隔最大化又称为硬间隔最大化
,间隔最大化的直观解释是:对训练数据集找到间隔最大的超平面以为着以充分大的确信度对训练数据进行分类,也就是说,不仅将正负实例点分开,而且最最难分的实例点(离超平面最近的点)也有足够大的确信度将它们分开。这样的超平面应该对未知的新实例有很好的分类预测能力。
求解硬间隔最大化下的超平面可以分为一下几步:
-
将间隔最大化问题化为其倒数的最小化问题(为了应用拉格朗日对偶性求解最小化规划问题的解),我们将这个最小化问题称为原始问题,相应的算法1.1称为最大间隔法;
-
利用拉格朗日对偶性将原始问题转换为拉格朗日函数,分两步求解得到算法1.1的最优解,我们将这个算法称为对偶算法;最后利用最优解代入公式可以得到分离超平面以及分离决策函数的方程式。
下面我将详细的介绍这两个步骤。
1.2.1 原始问题
由1.1可知,间隔的计算公式为 γ = 2 ∥ w ∥ \gamma=\frac{2}{\|\boldsymbol{w}\|} γ=∥w∥2,因此最大化间隔 2 ∥ w ∥ \frac{2}{\|\boldsymbol{w}\|} ∥w∥2 相当于最小化 1 2 ∥ w ∥ 2 \frac{1}{2}\|w\|^2 21∥w∥2,于是就得到下面的线性可分支持向量学习的最优化问题:
算法1.1 线性可分支持向量机学习方法——最大间隔法
输入:线性可分训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\} T={(x1,y1),(x2,y2),⋯,(xN,yN)},其中, x i ∈ X = R n x_i \in X=R^n xi∈X=Rn, y i ∈ Y = { − 1 , + 1 } , i = 1 , 2 , ⋯   , N y_{i} \in \mathcal{Y}=\{-1,+1\}, \quad i=1,2, \cdots, N yi∈Y={−1,+1},i=1,2,⋯,N;
输出:最大间隔分离超平面和分类决策函数。
(1) 构造并求解月时最优化问题:
(5) min w , b 1 2 ∥ w ∥ 2 s.t. y i ( w ⋅ x i + b ) − 1 ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{array}{ll}{\min \limits_{w, b}} & {\frac{1}{2}\|w\|^{2}} \tag{5}\\ {\text { s.t. }} & {y_{i}\left(w \cdot x_{i}+b\right)-1 \geqslant 0, \quad i=1,2, \cdots, N}\end{array} w,bmin s.t. 21∥w∥2yi(w⋅xi+b)−1⩾0,i=1,2,⋯,N(5)
求得最优解 w ∗ , b ∗ w^{*}, b^{*} w∗,b∗。
(2)由此得到分离超平面:
(6) w ∗ ⋅ x + b ∗ = 0 w^{*} \cdot x+b^{*}=0\tag{6} w∗⋅x+b∗=0(6)
分离决策函数:
(7) f ( x ) = sign ( w ∗ ⋅ x + b ∗ ) f(x)=\operatorname{sign}\left(w^{*} \cdot x+b^{*}\right)\tag{7} f(x)=sign(w∗⋅x+b∗)(7)
例 1.1
已知一个如图 6 所示的训练数据集,其正例点是 x 1 = ( 3 , 3 ) T , x 2 = ( 4 , 3 ) T x_1=(3,3)^T, x_2=(4,3)^T x1=(3,3)T,x2=(4,3)T,负例点是 x 3 = ( 1 , 1 ) T x_3=(1,1)^T x3=(1,1)T ,试求最大间隔分离超平面。
![](https://x1a-alioss.oss-cn-shenzhen.aliyuncs.com/Screen%20Shot%202019-08-16%20at%2017.50.16.png)
按照算法1.1,根据训练数据集构造约束最优化问题:
min x , b 1 2 ( w 1 2 + w 2 2 ) s.t. 3 w 1 + 3 w 2 + b ⩾ 1 4 w 1 + 3 w 2 + b ⩾ 1 − w 1 − w 2 − b ⩾ 1 \begin{array}{cl} {\min \limits_{x, b}} & {\frac{1}{2}\left(w_{1}^{2}+w_{2}^{2}\right)} \\ {\text { s.t. }} & {3 w_{1}+3 w_{2}+b \geqslant 1} \\ {} & {4 w_{1}+3 w_{2}+b \geqslant 1} \\ {} & {-w_{1}-w_{2}-b \geqslant 1} \end{array} x,bmin s.t. 21(w12+w22)3w1+3w2+b⩾14w1+3w2+b⩾1−w1−w2−b⩾1
求得此最优化问题的解 w 1 = w 2 = 1 2 , b = − 2 w_1=w_2=\frac{1}{2}, b=-2 w1=w2=21,b=−2,于是最大间隔分离超平面为:
1 2 x ( 1 ) + 1 2 x ( 2 ) − 2 = 0 \frac{1}{2}x^{(1)}+\frac{1}{2}x^{(2)}-2=0 21x(1)+21x(2)−2=0
其中, x 1 = ( 3 , 3 ) T x_1=(3,3)^T x1=(3,3)T与 x 2 = ( 1 , 1 ) T x_2=(1,1)^T x2=(1,1)T 为支持向量。
1.2.2 对偶算法
为了求得算法1.1 的最优化约束条件下的解 w ∗ , b ∗ w^{*}, b^{*} w∗,b∗,我们将它作为原始最优化问题,利用拉格朗日对偶性,通过求对偶问题(dual problem)得到原始问题(primal problem)的最优解,这就是线性可分支持向量机的对偶算法。
首先建立拉格朗日函数(Lagrange function),为此,对不等式约束条件
(8) y i ( w ⋅ x i + b ) − 1 ⩾ 0 , i = 1 , 2 , ⋯   , N y_{i}\left(w \cdot x_{i}+b\right)-1 \geqslant 0, \quad i=1,2, \cdots, N\tag{8} yi(w⋅xi+b)−1⩾0,i=1,2,⋯,N(8)
引入拉格朗日乘子(Largrange multiplier):
(9) α i ⩾ 0 , i = 1 , 2 , ⋯   , N \alpha_{i} \geqslant 0, i=1,2, \cdots, N\tag{9} αi⩾0,i=1,2,⋯,N(9)
定义拉格朗日函数:
(10) 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_{i} y_{i}\left(w \cdot x_{i}+b\right)+\sum_{i=1}^{N} \alpha_{i}\tag{10} L(w,b,α)=21∥w∥2−i=1∑Nαiyi(w⋅xi+b)+i=1∑Nαi(10)
其中, α = ( α 1 , α 2 , ⋯   , α N ) T \alpha=\left(\alpha_{1}, \alpha_{2}, \cdots, \alpha_{N}\right)^{\mathrm{T}} α=(α1,α2,⋯,αN)T 为拉格朗日乘子向量。
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
(11) max α min w , b L ( w , b , α ) \max _{\alpha} \min _{w, b} L(w, b, \alpha) \tag{11} αmaxw,bminL(w,b,α)(11)
所以为了得到对偶问题的解,需要先对 L ( w , b , α ) L(w, b, \alpha) L(w,b,α) 求 w , b w,b w,b 的极小,再对 α \alpha α 求极大。
(1) 求 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$ 求偏导数,并令其等于0:
(12) ∇ w L ( w , b , α ) = w − ∑ i = 1 N α i y i x i = 0 ∇ b L ( w , b , α ) = ∑ i = 1 N α i y i = 0 \begin{array}{l}{\nabla_{w} L(w, b, \alpha)=w-\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}=0} \\ {\nabla_{b} L(w, b, \alpha)=\sum_{i=1}^{N} \alpha_{i} y_{i}=0}\end{array}\tag{12} ∇wL(w,b,α)=w−∑i=1Nαiyixi=0∇bL(w,b,α)=∑i=1Nαiyi=0(12)
得:
(13) w = ∑ i = 1 N α i y i x i ∑ i = 1 N α i y i = 0 \begin{array}{l}{w=\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}} \\ {\sum_{i=1}^{N} \alpha_{i} y_{i}=0}\end{array}\tag{13} w=∑i=1Nαiyixi∑i=1Nαiyi=0(13)
将 (13) 代入拉格朗日公式 (10),得:
(14) L ( w , b , α ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i y i ( ( ∑ j = 1 N α j y j x j ) ⋅ x i + b ) + ∑ i = 1 N α i = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i \begin{aligned} L(w, b, \alpha) &=\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i} y_{i}\left(\left(\sum_{j=1}^{N} \alpha_{j} y_{j} x_{j}\right) \cdot x_{i}+b\right)+\sum_{i=1}^{N} \alpha_{i} \\ &=-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i} \end{aligned}\tag{14} L(w,b,α)=21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαiyi((j=1∑Nαjyjxj)⋅xi+b)+i=1∑Nαi=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi(14)
即
(15) min w , b L ( w , b , α ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i \min _{w, b} L(w, b, \alpha)=-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i}\tag{15} w,bminL(w,b,α)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi(15)
(2)求 min w , b L ( w , b , α ) \min _{w, b} L(w, b, \alpha) minw,bL(w,b,α) 对 α \alpha α 的极大,即使对偶问题:
(16) max α [ − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i ] \quad\quad\quad\quad\quad\max _{\alpha}\bigg[-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i}\bigg]\tag{16} αmax[−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi](16)
(17) s.t. ∑ i = 1 N α i y i = 0 α i ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{array}{ll}{\text { s.t. }} & {\sum_{i=1}^{N} \alpha_{i} y_{i}=0} \\ {} & {\alpha_{i} \geqslant 0, \quad i=1,2, \cdots, N}\end{array}\tag{17} s.t. ∑i=1Nαiyi=0αi⩾0,i=1,2,⋯,N(17)
将公式 (16) 的最大化转换为最小化,就得到了下面与之等价的对偶最优化问题:
(18) min α [ 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i ] \quad\quad\quad\quad\min _{\alpha}\bigg[\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i}\bigg]\tag{18} αmin[21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi](18)
(19) s.t. ∑ i = 1 N α i y i = 0 α i ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{array}{ll}{\text { s.t. }} & {\sum_{i=1}^{N} \alpha_{i} y_{i}=0} \\ {} & {\alpha_{i} \geqslant 0, \quad i=1,2, \cdots, N}\end{array}\tag{19} s.t. ∑i=1Nαiyi=0αi⩾0,i=1,2,⋯,N(19)
设 α ∗ = ( α 1 ∗ , α 2 ∗ , ⋯   , α N ∗ ) T \alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T α∗=(α1∗,α2∗,⋯,αN∗)T 是对偶最优化问题 (18-19) 的解,则存在下标 j j j,并可按下式求得原始最优化问题 (5) 的解 w ∗ , b ∗ w^*,b^* w∗,b∗:
(20) w ∗ = ∑ i = 1 N a i ∗ y i x i w^*=\sum_{i=1}^Na_i^*y_ix_i \tag{20} w∗=i=1∑Nai∗yixi(20)
(21) b ∗ = y j − ∑ i = 1 N a i ∗ y i ( x i ⋅ x j ) b^*=y_j-\sum_{i=1}^Na_i^*y_i(x_i\cdot x_j)\tag{21} b∗=yj−i=1∑Nai∗yi(xi⋅xj)(21)
证明如下:
对于原始问题和对偶问题,KKT(Karush-Kuhu-Tucker)条件成立,即得:
(22) ∇ w L ( w ∗ , b ∗ , α ∗ ) = w ∗ − ∑ i = 1 N α i ∗ y i x i = 0 ∇ b L ( w ∗ , b ∗ , α ∗ ) = − ∑ i = 1 N α i ∗ y i = 0 α i ∗ ( y i ( w ∗ ⋅ x i + b ∗ ) − 1 ) = 0 , i = 1 , 2 , ⋯   , N y i ( w ∗ ⋅ x i + b ∗ ) − 1 ⩾ 0 , i = 1 , 2 , ⋯   , N α i ∗ ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{array}{l}{\nabla_{w} L\left(w^{*}, b^{*}, \alpha^{*}\right)=w^{*}-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i}=0} \\ {\nabla_{b} L\left(w^{*}, b^{*}, \alpha^{*}\right)=-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}=0} \\ {\alpha_{i}^{*}\left(y_{i}\left(w^{*} \cdot x_{i}+b^{*}\right)-1\right)=0, \quad i=1,2, \cdots, N} \\ {y_{i}\left(w^{*} \cdot x_{i}+b^{*}\right)-1 \geqslant 0, \quad i=1,2, \cdots, N} \\ {\alpha_{i}^{*} \geqslant 0, \quad i=1,2, \cdots, N}\end{array}\tag{22} ∇wL(w∗,b∗,α∗)=w∗−∑i=1Nαi∗yixi=0∇bL(w∗,b∗,α∗)=−∑i=1Nαi∗yi=0αi∗(yi(w∗⋅xi+b∗)−1)=0,i=1,2,⋯,Nyi(w∗⋅xi+b∗)−1⩾0,i=1,2,⋯,Nαi∗⩾0,i=1,2,⋯,N(22)
由此得:
(23) w ∗ = ∑ i α i ∗ y i x i w^*=\sum_i \alpha_i^*y_ix_i\tag{23} w∗=i∑αi∗yixi(23)
其中至少有一个 a j ∗ > 0 a_j^*>0 aj∗>0 (反证法,假设 a ∗ = 0 a^*=0 a∗=0,由 (22) 第一条公式可知 w ∗ = 0 w^*=0 w∗=0,而 w ∗ = 0 w^*=0 w∗=0 不是原始最优化问题 (5) 的解,产生矛盾),对此 j j j 有:
(24) y j ( w ∗ ⋅ x j + b ∗ ) − 1 = 0 y_j(w^*\cdot x_j+b^*)-1=0\tag{24} yj(w∗⋅xj+b∗)−1=0(24)
将 (20) 代入 (24),并注意到 y j 2 = 1 y_j^2=1 yj2=1,即得:
(25) b ∗ = y j − ∑ i = 1 N a i ∗ y i ( x i ⋅ x j ) b^*=y_j-\sum_{i=1}^Na_i^*y_i(x_i\cdot x_j)\tag{25} b∗=yj−i=1∑Nai∗yi(xi⋅xj)(25)
将 w ∗ , b ∗ w^*, b^* w∗,b∗ 代入公式 (6)、(7)可得分离超平面的计算公式:
(26) ∑ i = 1 N a i ∗ y i ( x ⋅ x i ) + b ∗ = 0 \sum_{i=1}^Na_i^*y_i(x\cdot x_i)+b^*=0 \tag{26} i=1∑Nai∗yi(x⋅xi)+b∗=0(26)
分类决策函数可以写为:
(27) f ( x ) = s i g n [ ∑ i = 1 N a i ∗ y i ( x ⋅ x i ) ] f(x)=sign\bigg[\sum_{i=1}^Na_i^*y_i(x\cdot x_i) \bigg] \tag{27} f(x)=sign[i=1∑Nai∗yi(x⋅xi)](27)
这就是说,对于给定的线性可分数据集,可以首先求对偶问题 (18-19) 的解 a ∗ a^* a∗;再利用公式 (20-21) 求得原始问题的解 w ∗ , b ∗ w^*,b^* w∗,b∗;从而根据公式 (6-7) 得到分离超平面以及分类决策函数。
这种算法分称为线性可分支持向量机的对偶学习算法,是线性可分支持向量机学习的基本算法。
我们可以将上述过程总结为算法 1.2。
算法1.2 线性可分支持向量机学习算法
输入:线性可分训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\} T={(x1,y1),(x2,y2),⋯,(xN,yN)},其中, x i ∈ X = R n x_i \in X=R^n xi∈X=Rn, y i ∈ Y = { − 1 , + 1 } , i = 1 , 2 , ⋯   , N y_{i} \in \mathcal{Y}=\{-1,+1\}, \quad i=1,2, \cdots, N yi∈Y={−1,+1},i=1,2,⋯,N;
输出:最大间隔分离超平面和分类决策函数。
(1) 构造并求解约束时最优化问题:
(28) min α [ 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i ] \quad\quad\quad\quad\min _{\alpha}\bigg[\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i}\bigg]\tag{28} αmin[21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi](28)
(29) s.t. ∑ i = 1 N α i y i = 0 α i ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{array}{ll}{\text { s.t. }} & {\sum_{i=1}^{N} \alpha_{i} y_{i}=0} \\ {} & {\alpha_{i} \geqslant 0, \quad i=1,2, \cdots, N}\end{array}\tag{29} s.t. ∑i=1Nαiyi=0αi⩾0,i=1,2,⋯,N(29)
求得最优解 α ∗ = ( α 1 ∗ , α 2 ∗ , ⋯   , α N ∗ ) T \alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T α∗=(α1∗,α2∗,⋯,αN∗)T 。
(2)计算
(30) w ∗ = ∑ i = 1 N α i ∗ y i x i w^*=\sum_{i=1}^N \alpha_i^*y_ix_i\tag{30} w∗=i=1∑Nαi∗yixi(30)
并选择 α ∗ \alpha^* α∗ 的一个正分量 α j ∗ > 0 \alpha_j^*>0 αj∗>0,计算:
(31) b ∗ = y j − ∑ i = 1 N a i ∗ y i ( x i ⋅ x j ) b^*=y_j-\sum_{i=1}^Na_i^*y_i(x_i\cdot x_j)\tag{31} b∗=yj−i=1∑Nai∗yi(xi⋅xj)(31)
(3)求得分离超平面:
(32) w ∗ ⋅ x + b ∗ = 0 w^{*} \cdot x+b^{*}=0\tag{32} w∗⋅x+b∗=0(32)
分离决策函数:
(33) f ( x ) = sign ( w ∗ ⋅ x + b ∗ ) f(x)=\operatorname{sign}\left(w^{*} \cdot x+b^{*}\right)\tag{33} f(x)=sign(w∗⋅x+b∗)(33)
例 1.2
与例1.1 相同,对一个如图 7 所示的训练数据集,其正例点是 x 1 = ( 3 , 3 ) T , x 2 = ( 4 , 3 ) T x_1=(3,3)^T, x_2=(4,3)^T x1=(3,3)T,x2=(4,3)T,负例点是 x 3 = ( 1 , 1 ) T x_3=(1,1)^T x3=(1,1)T ,试用算法1.2求最大间隔分离超平面。
![](https://x1a-alioss.oss-cn-shenzhen.aliyuncs.com/Screen%20Shot%202019-08-16%20at%2017.50.16.png)
根据所给数据,对偶问题是:
min α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i = 1 2 ( 18 α 1 2 + 25 α 2 2 + 2 α 3 2 + 42 α 1 α 2 − 12 α 1 α 3 − 14 α 2 α 3 ) − α 1 − α 2 − α 3 s.t. α 1 + α 2 − α 3 = 0 α i ⩾ 0 , i = 1 , 2 , 3 \begin{array}{ll}{\min \limits_{\alpha}} & {\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i}} \\ {} & {=\frac{1}{2}\left(18 \alpha_{1}^{2}+25 \alpha_{2}^{2}+2 \alpha_{3}^{2}+42 \alpha_{1} \alpha_{2}-12 \alpha_{1} \alpha_{3}-14 \alpha_{2} \alpha_{3}\right)-\alpha_{1}-\alpha_{2}-\alpha_{3}} \\ {\text { s.t. }} & {\alpha_{1}+\alpha_{2}-\alpha_{3}=0} \\ {} & {\alpha_{i} \geqslant 0, \quad i=1,2,3}\end{array} αmin s.t. 21∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi=21(18α12+25α22+2α32+42α1α2−12α1α3−14α2α3)−α1−α2−α3α1+α2−α3=0αi⩾0,i=1,2,3
解着一最优化问题,将 α 1 = α 1 + α 2 \alpha_1 = \alpha_1+\alpha_2 α1=α1+α2 代入目标函数并记为:
s ( α 1 , α 2 ) = 4 α 1 2 + 13 2 α 2 2 + 10 α 1 α 2 − 2 α 2 − 2 α 2 s(\alpha_1,\alpha_2)=4\alpha_1^2+\frac{13}{2}\alpha_2^2+10\alpha_1\alpha_2-2\alpha_2-2\alpha_2 s(α1,α2)=4α12+213α22+10α1α2−2α2−2α2
对 α 1 , α 2 \alpha_1, \alpha_2 α1,α2 求偏导数并令其为 0,易知 s ( α 1 , α 2 ) s(\alpha_1,\alpha_2) s(α1,α2) 在点 ( 3 2 , − 1 ) T (\frac{3}{2},-1)^T (23,−1)T 取极值,但该点不满足约束条件 α 2 ≥ 0 \alpha_2 \geq 0 α2≥0,所以最小值应在边界上达到。
当 α 1 = 0 \alpha_1=0 α1=0 时,最小值 s ( 0 , 2 13 ) = − 2 13 s(0,\frac{2}{13})=-\frac{2}{13} s(0,132)=−132;当 α 2 = 0 \alpha_2=0 α2=0 时,最小值 s ( 1 4 , 0 ) = − 1 4 s(\frac{1}{4},0)=-\frac{1}{4} s(41,0)=−41,于是 α 1 , α 2 \alpha_1, \alpha_2 α1,α2 在 α 1 = 1 4 , α 2 = 0 \alpha_1=\frac{1}{4},\alpha_2=0 α1=41,α2=0 达到最小,此时 α 3 = α 1 + α 3 = 1 4 \alpha_3=\alpha_1+\alpha_3=\frac{1}{4} α3=α1+α3=41。
由于 α 1 ∗ = α 3 ∗ = 1 4 > 0 \alpha_1^*=\alpha_3^*=\frac{1}{4}>0 α1∗=α3∗=41>0,所以由1.3可知其对应的实例点 x 1 , x 3 x_1,x_3 x1,x3 是支持向量。根据公式 (30-31) 计算得:
w 1 ∗ = w 2 ∗ = 1 2 w_1^*=w_2^*=\frac{1}{2} w1∗=w2∗=21
b ∗ = − 2 b^*=-2 b∗=−2
分离超平面为:
1 2 x ( 1 ) + 1 2 x ( 2 ) − 2 = 0 \frac{1}{2}x^{(1)}+\frac{1}{2}x^{(2)}-2=0 21x(1)+21x(2)−2=0
分类决策函数为:
f ( x ) = s i g n ( 1 2 x ( 1 ) + 1 2 x ( 2 ) − 2 ) f(x)=sign(\frac{1}{2}x^{(1)}+\frac{1}{2}x^{(2)}-2) f(x)=sign(21x(1)+21x(2)−2)
1.3 支持向量
考虑原始最优化问题 (5) 以及对偶最优化问题 (28-29),将训练数据集中对应与
α
i
∗
>
0
\alpha_i^*>0
αi∗>0 的样本点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的实例
x
i
∈
R
n
x_i\in\boldsymbol{R^n}
xi∈Rn 称为支持向量
。
根据这一定义,支持向量一定在间隔边界上,由 KKT 互补条件可知:
(34) α i ∗ ( y i ( w ∗ ⋅ x i + b ∗ ) − 1 ) = 0 , i = 1 , 2 , ⋯   , N {\alpha_{i}^{*}\left(y_{i}\left(w^{*} \cdot x_{i}+b^{*}\right)-1\right)=0, \quad i=1,2, \cdots, N} \tag{34} αi∗(yi(w∗⋅xi+b∗)−1)=0,i=1,2,⋯,N(34)
对应与 a i ∗ > 0 a_i^*>0 ai∗>0 的实例 x i x_i xi,有:
(35) y i ( w ∗ ⋅ x i + b ∗ ) − 1 = 0 y_{i}(w^{*} \cdot x_{i}+b^{*})-1=0 \tag{35} yi(w∗⋅xi+b∗)−1=0(35)
或
(36) w ∗ ⋅ x i + b ∗ = ± 1 w^{*} \cdot x_{i}+b^{*}=\pm1 \tag{36} w∗⋅xi+b∗=±1(36)
即 x i x_i xi 一定在间隔边界上,这里的支持向量的定义与之前给出的支持向量的定义是一致的。
2. 线性支持向量机
线性可分问题的支持向量机学习方法,对线性不可分训练数据是不使用的,因为这是上述方法中的不等式约束并不能都成立。因此此时需要修改硬间隔最大化,使其称为软间隔最大化。
2.1 软间隔最大化
假定给定一个特征空间上的训练数据集:
(37) T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\} \tag{37} T={(x1,y1),(x2,y2),⋯,(xN,yN)}(37)
其中 x i ∈ X = R n x_i \in X=R^n xi∈X=Rn, y i ∈ Y = { − 1 , + 1 } , i = 1 , 2 , ⋯   , N , x i y_{i} \in \mathcal{Y}=\{-1,+1\}, \quad i=1,2, \cdots, N, x_i yi∈Y={−1,+1},i=1,2,⋯,N,xi 为第 i i i 个特征向量, y 1 y_1 y1 为 x i x_i xi 的类标记。再假设训练数据集不是线性可分的。通常情况是,训练数据中有一些特异点(outlier),将这些特异点去除后,剩下大部分的样本点组成的集合是线性可分的,我们称之为近似线性可分的。
近似线性可分意味着某些样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 不能满足函数间隔大于 1 的约束条件 (5)。为了解决这个问题,可以对每个样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 引入一个松弛变量 ξ ≥ 0 \xi \geq 0 ξ≥0,使函数间隔加上松弛变量大于等于 1 。这样,约束条件变为:
(38) y i ( w ⋅ x i + b ) ≥ 1 − ξ i y_i(w\cdot x_i+b)\geq 1-\xi_i \tag{38} yi(w⋅xi+b)≥1−ξi(38)
同时,对每个松弛变量 ξ i \xi_i ξi,支付一个代价 ξ i \xi_i ξi,目标函数由原来的 1 2 ∥ w ∥ 2 \frac{1}{2}\|w\|^2 21∥w∥2 变成:
(38) 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i \frac{1}{2}\|w\|^2+C\sum_{i=1}^N\xi_i\tag{38} 21∥w∥2+Ci=1∑Nξi(38)
这里, C > 0 C>0 C>0 称为惩罚参数,一般由应用问题决定, C C C 值越大时对误分类的惩罚增大, C C C 值小时对误分类的惩罚减小,如下图所示:
![](https://x1a-alioss.oss-cn-shenzhen.aliyuncs.com/Screen%20Shot%202019-08-16%20at%2020.42.42.png)
最小化目标函数 (38) 有两层含义:使 1 2 ∥ w ∥ 2 \frac{1}{2}\|w\|^2 21∥w∥2 尽量小即间隔尽量大,同时使误分类点的个数尽量小, C C C 是调和二者的系数。
有了上面的思路,可以和训练数据集线性可分时一样来考虑训练数据集线性近似可分时的线性支持向量机学习问题,相应于硬间隔最大化,它称为软间隔最大化
(soft margin maximization)。
2.1.1 原始问题
近似线性可分的线性支持向量机的学习问题变成如下凸二次规划问题(原始问题):
(39) min w , b , ξ 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i \min \limits_{w,b,\xi}\quad \frac{1}{2}\|w\|^2+C\sum_{i=1}^N\xi_i\tag{39} w,b,ξmin21∥w∥2+Ci=1∑Nξi(39)
(40) s.t. y i ( w ⋅ x i + b ) ⩾ 1 − ξ i , i = 1 , 2 , ⋯   , N ξ i ⩾ 0 , i = 1 , 2 , ⋯   , N \quad\quad\quad\quad\quad\quad\quad\quad\begin{array}{ll}{\text { s.t. }} & {y_{i}\left(w \cdot x_{i}+b\right) \geqslant 1-\xi_{i}, \quad i=1,2, \cdots, N} \tag{40}\\ {} & {\xi_{i} \geqslant 0, \quad i=1,2, \cdots, N}\end{array} s.t. yi(w⋅xi+b)⩾1−ξi,i=1,2,⋯,Nξi⩾0,i=1,2,⋯,N(40)
原始问题 (39-40) 是一个凸二次规划问题,因而关于 ( w , b , ξ ) (w,b,\xi) (w,b,ξ) 的解时存在的。可以证明 w w w 的解时唯一的, 但 b b b 的解不唯一,但可以证明 b b b 的解存在一个区间。
2.1.2 对偶算法
原始最优化问题 (39-40) 的拉格朗日函数是:
(41) L ( w , b , ξ , α , μ ) ≡ 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i − ∑ i = 1 N α i ( y i ( w ⋅ x i + b ) − 1 + ξ i ) − ∑ i = 1 N μ i ξ i L(w, b, \xi, \alpha, \mu) \equiv \frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{N} \xi_{i}-\sum_{i=1}^{N} \alpha_{i}\left(y_{i}\left(w \cdot x_{i}+b\right)-1+\xi_{i}\right)-\sum_{i=1}^{N} \mu_{i} \xi_{i} \tag{41} L(w,b,ξ,α,μ)≡21∥w∥2+Ci=1∑Nξi−i=1∑Nαi(yi(w⋅xi+b)−1+ξi)−i=1∑Nμiξi(41)
其中, α i ≥ 0 , μ i ≥ 0 \alpha_i \geq0,\mu_i\geq0 αi≥0,μi≥0。
与 1.2.2 相同,对偶问题是拉格朗日函数的极大极小问题,首先求 L ( w , b , ξ , α , μ ) L(w, b, \xi, \alpha, \mu) L(w,b,ξ,α,μ) 对 w , b , ξ w, b, \xi w,b,ξ 的极小并代入 (41) 得:
(42) min w , b , ξ L ( w , b , ξ , α , μ ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i \min _{w, b, \xi} L(w, b, \xi, \alpha, \mu)=-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i} \tag{42} w,b,ξminL(w,b,ξ,α,μ)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi(42)
再对 min w , b , ξ L ( w , b , ξ , α , μ ) \min \limits_{w, b, \xi} L(w, b, \xi, \alpha, \mu) w,b,ξminL(w,b,ξ,α,μ) 求 α \alpha α 的极大,即得对偶问题:
(43) max α [ − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i ] \max _{\alpha}\bigg[-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i} \bigg]\tag{43} αmax[−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi](43)
(44) min w , b , ξ L ( w , b , ξ , α , μ ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i \min _{w, b, \xi} L(w, b, \xi, \alpha, \mu)=-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i}\tag{44} w,b,ξminL(w,b,ξ,α,μ)=−21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)+i=1∑Nαi(44)
将对偶最优化问题 (43-44) 进行变换:利用 (44) 第二条公式消去 μ i \mu_i μi,从而只留下变量 α i \alpha_i αi,同时将目标函数求极大转换为求极小,可得原始问题 (39-40)的对偶问题 (45-46):
(45) min α [ 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i ] \quad\quad\quad\quad\min _{\alpha}\bigg[\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i} \bigg]\tag{45} αmin[21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi](45)
(46) s.t. ∑ i = 1 N α i y i = 0 C − α i − μ i = 0 α i ⩾ 0 μ i ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{array}{ll}{\text { s.t. }} & {\sum_{i=1}^{N} \alpha_{i} y_{i}=0} \\ {} & {C-\alpha_{i}-\mu_{i}=0} \\ {} & {\alpha_{i} \geqslant 0} \\ {} & {\mu_{i} \geqslant 0, \quad i=1,2, \cdots, N}\end{array}\tag{46} s.t. ∑i=1Nαiyi=0C−αi−μi=0αi⩾0μi⩾0,i=1,2,⋯,N(46)
设 α ∗ = ( α 1 ∗ , α 2 ∗ , ⋯   , α N ∗ ) T \alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T α∗=(α1∗,α2∗,⋯,αN∗)T 是对偶问题 (45-46) 的一个解,若存在 α ∗ \alpha^* α∗ 的一个分量 α j ∗ \alpha_j^* αj∗, 0 ≤ α i ≤ C 0 \leq \alpha_i \leq C 0≤αi≤C,则原始问题 (39-40) 的解 w ∗ , b ∗ w^*,b^* w∗,b∗ 可按下式求得:
(47) w ∗ = ∑ i = 1 N α i ∗ y i x i w^*=\sum_{i=1}^N\alpha_i^*y_ix_i\tag{47} w∗=i=1∑Nαi∗yixi(47)
(48) b ∗ = y i − ∑ i = 1 N y i α i ∗ ( x i ⋅ x i ) b^*=y_i-\sum_{i=1}^Ny_i\alpha_i^*(x_i\cdot x_i)\tag{48} b∗=yi−i=1∑Nyiαi∗(xi⋅xi)(48)
综上,可得线性支持向量机学习算法。
算法2 线性支持向量机学习算法
输入:线性可分训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\} T={(x1,y1),(x2,y2),⋯,(xN,yN)},其中, x i ∈ X = R n x_i \in X=R^n xi∈X=Rn, y i ∈ Y = { − 1 , + 1 } , i = 1 , 2 , ⋯   , N y_{i} \in \mathcal{Y}=\{-1,+1\}, \quad i=1,2, \cdots, N yi∈Y={−1,+1},i=1,2,⋯,N;
输出:分离超平面和分类决策函数。
(1) 选择惩罚参数 C > 0 C>0 C>0,构造并求解约束时最优化问题:
(49) min α [ 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i ] \quad\quad\quad\quad\min _{\alpha}\bigg[\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i} \bigg]\tag{49} αmin[21i=1∑Nj=1∑Nαiαjyiyj(xi⋅xj)−i=1∑Nαi](49)
(50) s.t. ∑ i = 1 N α i y i = 0 C − α i − μ i = 0 α i ⩾ 0 μ i ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{array}{ll}{\text { s.t. }} & {\sum_{i=1}^{N} \alpha_{i} y_{i}=0} \\ {} & {C-\alpha_{i}-\mu_{i}=0} \\ {} & {\alpha_{i} \geqslant 0} \\ {} & {\mu_{i} \geqslant 0, \quad i=1,2, \cdots, N}\end{array}\tag{50} s.t. ∑i=1Nαiyi=0C−αi−μi=0αi⩾0μi⩾0,i=1,2,⋯,N(50)
求得最优解 α ∗ = ( α 1 ∗ , α 2 ∗ , ⋯   , α N ∗ ) T \alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T α∗=(α1∗,α2∗,⋯,αN∗)T 。
(2)计算
(51) w ∗ = ∑ i = 1 N α i ∗ y i x i w^*=\sum_{i=1}^N\alpha_i^*y_ix_i\tag{51} w∗=i=1∑Nαi∗yixi(51)
并选择 α ∗ \alpha^* α∗ 的一个分量 0 ≤ α i ≤ C 0 \leq \alpha_i \leq C 0≤αi≤C,计算:
(52) b ∗ = y i − ∑ i = 1 N y i α i ∗ ( x i ⋅ x i ) b^*=y_i-\sum_{i=1}^Ny_i\alpha_i^*(x_i\cdot x_i)\tag{52} b∗=yi−i=1∑Nyiαi∗(xi⋅xi)(52)
(3)求得分离超平面:
(53) w ∗ ⋅ x + b ∗ = 0 w^{*} \cdot x+b^{*}=0\tag{53} w∗⋅x+b∗=0(53)
分离决策函数:
(54) f ( x ) = sign ( w ∗ ⋅ x + b ∗ ) f(x)=\operatorname{sign}\left(w^{*} \cdot x+b^{*}\right)\tag{54} f(x)=sign(w∗⋅x+b∗)(54)
步骤 (2) 中,对任一适合条件 0 ≤ α i ≤ C 0 \leq \alpha_i \leq C 0≤αi≤C 的 α j ∗ \alpha_j^* αj∗,按 (52) 都可以计算出 b ∗ b^* b∗,但是由于原始问题 (43-44) 对 b b b 的解并不唯一,所以实际计算时可以取所有符合条件的样本点上的平均值。
2.2 支持向量
在线性不可分的情况下,将对偶问题 (49-50) 的解 α ∗ = ( α 1 ∗ , α 2 ∗ , ⋯   , α N ∗ ) T \alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T α∗=(α1∗,α2∗,⋯,αN∗)T 中对应于 α i ∗ \alpha_i^* αi∗ 的样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 的实例 x i x_i xi 称为支持向量(软间隔的支持向量)。
如图 9 所示,分离超平面由实现表示,间隔边界由虚线表示,正例点由“ ∘ \circ ∘”表示,负例点由“ × \times ×”表示。实例 x i x_i xi 到间隔边界的距离为 ξ i ∥ w ∥ \frac{\xi_i}{\|w\|} ∥w∥ξi。
![](https://x1a-alioss.oss-cn-shenzhen.aliyuncs.com/Screen%20Shot%202019-08-16%20at%2022.17.12.png)
软间隔的支持向量 x i x_i xi 或者在间隔边界上,或者在间隔边界与分离超平面之间,或者在分离超平面误分一侧:
-
若 α i ∗ < C \alpha_i^*<C αi∗<C ,则 ξ i = 0 \xi_i=0 ξi=0,支持向量 x i x_i xi 恰好落在
区间边界上
; -
若 α i ∗ = C \alpha_i^*=C αi∗=C , 0 < ξ i < 1 0<\xi_i<1 0<ξi<1,则分类正确,支持向量 x i x_i xi 在
区间边界与分离超平面之间
; -
若 α i ∗ = C \alpha_i^*=C αi∗=C , ξ i = 1 \xi_i=1 ξi=1,则支持向量 x i x_i xi 在
分离超平面上
; -
若 α i ∗ = C \alpha_i^*=C αi∗=C , ξ i > 1 \xi_i>1 ξi>1,则支持向量 x i x_i xi 在
分离超平面误分一侧
。
2.3 合页损失函数
对于线性支持向量机来说,其模型为分离超平面 w ∗ ⋅ x + b ∗ = 0 w^* \cdot x + b^*=0 w∗⋅x+b∗=0 以及决策函数 f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ ) f(x)=sign(w^* \cdot x + b^*) f(x)=sign(w∗⋅x+b∗),其学习策略为软间隔最大化,学习算法为凸二次规划。
线性支持向量机学习还有另外一种解释,就是最小以下目标函数:
(55) ∑ i = 1 N [ 1 − y i ( w ⋅ x i + b ) ] + + λ ∥ w ∥ 2 \sum_{i=1}^N[1-y_i(w \cdot x_i+b)]_+ + \lambda \|w\|^2 \tag{55} i=1∑N[1−yi(w⋅xi+b)]++λ∥w∥2(55)
- 目标函数的第一项式
经验损失
或经验风险。
函数:
(56) L ( y ( w ⋅ x + b ) ) = [ 1 − y ( w ⋅ x + b ) ] + L(y(w \cdot x+b)) = [1-y(w \cdot x+b)]_+ \tag{56} L(y(w⋅x+b))=[1−y(w⋅x+b)]+(56)
称为合页损失函数
(hinge loss function)。下标“+”表示以下取的函数:
(57) [ z ] + = { z , z > 0 0 , z ⩽ 0 [z]_{+}=\left\{\begin{array}{ll}{z,} & {z>0} \\ {0,} & {z \leqslant 0}\end{array}\right. \tag{57} [z]+={z,0,z>0z⩽0(57)
这就是说,当样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 被正确分类且函数间隔(确信度) y i ( w ⋅ x i + b ) y_i(w\cdot x_i+b) yi(w⋅xi+b) 大于 1 时,损失时0,否则损失是 1 − y ( w ⋅ x + b ) 1-y(w \cdot x+b) 1−y(w⋅x+b),注意图 9 中的实例点 x 4 x_4 x4 被正确分类但损失不是 0 。
- 目标函数的第 2 项是系数为 λ \lambda λ 的 w w w 的 L 2 L_2 L2 范数,是正则化项。
定理
线性支持向量机原始最优化问题:
(58) min w , b , ξ 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i \min \limits_{w,b,\xi}\quad \frac{1}{2}\|w\|^2+C\sum_{i=1}^N\xi_i\tag{58} w,b,ξmin21∥w∥2+Ci=1∑Nξi(58)
(59) s.t. y i ( w ⋅ x i + b ) ⩾ 1 − ξ i , i = 1 , 2 , ⋯   , N ξ i ⩾ 0 , i = 1 , 2 , ⋯   , N \quad\quad\quad\quad\quad\quad\quad\quad\begin{array}{ll}{\text { s.t. }} & {y_{i}\left(w \cdot x_{i}+b\right) \geqslant 1-\xi_{i}, \quad i=1,2, \cdots, N} \tag{59}\\ {} & {\xi_{i} \geqslant 0, \quad i=1,2, \cdots, N}\end{array} s.t. yi(w⋅xi+b)⩾1−ξi,i=1,2,⋯,Nξi⩾0,i=1,2,⋯,N(59)
等价于最优化问题:
(60) min w , b ∑ i = 1 N [ 1 − y i ( w ⋅ x i + b ) ] + + λ ∥ w ∥ 2 \min \limits_{w,b}\quad \sum_{i=1}^N[1-y_i(w \cdot x_i+b)]_+ + \lambda \|w\|^2 \tag{60} w,bmini=1∑N[1−yi(w⋅xi+b)]++λ∥w∥2(60)
合页损失函数
的图形如下图所示,横轴是函数间隔
y
(
w
⋅
x
+
b
)
y(w \cdot x+b)
y(w⋅x+b), 纵轴是损失,由于函数形状像一个合页,故命名合页损失函数。
![](https://x1a-alioss.oss-cn-shenzhen.aliyuncs.com/Screen%20Shot%202019-08-16%20at%2023.57.34%20copy.png)
图中还画出 0-1 损失函数,可以认为它是二类分类问题的真正的损失函数,而合页损失函数是 0-1 损失函数的上界,由于 0-1 损失函数不是连续可导的,直接优化由其构成的目标函数比较困难,可以认为线性支持向量机就是优化由 0-1 损失函数的上界(合页损失函数)构成的目标函数。这时的上界损失函数由称为代理损失函数(surrograte loss function)。
图中虚线显示的是感知器的损失函数 [ y i ( w ⋅ x i + b ) ] + [y_i(w \cdot x_i+b)]_+ [yi(w⋅xi+b)]+。这时,当样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 被正确分类时,损失是 0,否则损失是 − y i ( w ⋅ x i + b ) -y_i(w \cdot x_i+b) −yi(w⋅xi+b),相比之下,合页损失函数不仅要分类正确,而且确信度足够高时损失才是 0,也就是说,合页损失函数对学习由更高的要求。
参考资料
[1] 李航. 统计学习方法[M]. 北京: 清华大学出版社, 2012: 95-115.
[2] 周志华. 机器学习[M]. 北京: 清华大学出版社, 2016: 121-126.