机器学习复习:支持向量机(SVM)之二:线性不可分向量机

机器学习复习:支持向量机(SVM)之一:线性可分向量机
机器学习复习:支持向量机(SVM)之二:线性不可分向量机

一、硬间隔SVM和软间隔SVM
  前面简单介绍了以下线性可分SVM,本质上前面介绍的SVM属于硬间隔SVM,因为我们已经知道存在一个超平面 S : ω ⋅ x + b = 0 S:\omega \cdot x + b = 0 S:ωx+b=0 可以将所有的样本数据完美分开。但是实际上,并不是所有的样本数据都这么完美。有时候存在这种情况,给定一个样本数据集,绝大多数的样本都是线性可分的,但是存在某些特别的样本是线性不可分的。例如,如果我们将 y = 0 y = 0 y=0 这条直线看作一个分类的超平面, y = 0 y = 0 y=0 以上的点标记为1, y = 0 y = 0 y=0 以下的点标记为-1,那么绝大多数的样本点符合这个规则,但是有一些点位于 y = 0 y = 0 y=0 以上,却被标记为-1,有些点位于 y = 0 y = 0 y=0 以下,却被标记为了1,这样就会导致整个数据集线性不可分。

  线性不可分的数据集不能使用硬间隔SVM,根本原因在于硬间隔SVM对于函数距离的使用较为严格,必须满足 y i ( ω ⋅ x + b ) ≥ 1 y_i(\omega \cdot x + b) \geq 1 yi(ωx+b)1 这个条件。所以为了可以解决上面提到的问题,我们可以在硬间隔SVM的表达式上进行一些修改。既然条件比较严格,那么我们就对每一个条件进行一定的松弛操作,所以我们需要引入一个新的松弛变量 ξ \xi ξ ,于是对每一个条件,我们有:
(1) y i ( ω ⋅ x i + b ) ≥ 1 − ξ i ( 1 ≤ i ≤ m ) y_i (\omega \cdot x_i + b) \geq 1 - \xi_i \quad (1 \leq i \leq m) \tag{1} yi(ωxi+b)1ξi(1im)(1)
  其中, ξ i ≥ 0 \xi_i \geq 0 ξi0。因为引入了多余的参数,所有我们需要对原目标函数和松弛变量之间的关系进行平衡,因此,目标函数更改为:
(2) 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i ( 1 ≤ i ≤ m ) \frac{1}{2} ||\omega||^2 + C \sum_{i = 1}^{m} \xi_i \quad (1 \leq i \leq m) \tag{2} 21ω2+Ci=1mξi(1im)(2)
  这里的 C C C 是一个人为设定的超参数,通常 C > 0 C > 0 C>0,或者可以叫做平衡系数,或者惩罚参数,主要是用来平衡两者之间的关系。当 C C C 比较大的时候对那些对那些误分类的样本数据的惩罚作用就会比较大,反之则会比较小,所以最小化目标函数就包括了既要使得超平面 S S S 到最近样本的 距离之和最小,又要使得误分类的数据样本的数目最小。

  所以,我们需要求解的问题就变成了如下形式( m m m 为样本数目):
(3) min ⁡ ω , b , ξ 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i s . t . y i ( ω ⋅ x i + b ) ≥ 1 − ξ i ( 1 ≤ i ≤ m ) ξ i ≥ 0 ( 1 ≤ i ≤ m ) \begin{aligned} \min \limits_{\omega, b, \xi} & \quad \frac{1}{2} ||\omega||^2 + C \sum_{i = 1}^{m} \xi_i \\ s.t. & \quad y_i (\omega \cdot x_i + b) \geq 1 - \xi_i \quad (1 \leq i \leq m) \\ & \quad \xi_i \geq 0 \quad (1 \leq i \leq m) \tag{3} \end{aligned} ω,b,ξmins.t.21ω2+Ci=1mξiyi(ωxi+b)1ξi(1im)ξi0(1im)(3)

二、学习的对偶问题
  首先我们对式(3)进行一个小小的变化,如下:
(4) min ⁡ ω , b , ξ 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i s . t . y i ( ω ⋅ x i + b ) − 1 + ξ i ≥ 0 ( 1 ≤ i ≤ m ) ξ i ≥ 0 ( 1 ≤ i ≤ m ) \begin{aligned} \min \limits_{\omega, b, \xi} & \quad \frac{1}{2} ||\omega||^2 + C \sum_{i = 1}^{m} \xi_i \\ s.t. & \quad y_i (\omega \cdot x_i + b) - 1 + \xi_i \geq 0 \quad (1 \leq i \leq m) \\ & \quad \xi_i \geq 0 \quad (1 \leq i \leq m) \tag{4} \end{aligned} ω,b,ξmins.t.21ω2+Ci=1mξiyi(ωxi+b)1+ξi0(1im)ξi0(1im)(4)
  和前面一样,我们对上面的式子使用拉格朗日数乘法,因为上面由两个不同类型的约束条件,所以我们需要使用两个不同的变量进行控制。在这里我们使用 α = ( α 1 , α 2 , . . . , α i ) \alpha = (\alpha_1, \alpha_2, ..., \alpha_i) α=(α1,α2,...,αi) 来对第一个条件进行约束,使用 μ = ( μ 1 , μ 2 , . . . , μ i ) \mu = (\mu_1, \mu_2, ..., \mu_i) μ=(μ1,μ2,...,μi) 来对第二个条件进行约束,于是我们的问题就转换成了求解下面的式子的极大极小值的问题( L ( w , b , ξ , α , μ ) L(w, b, \xi, \alpha, \mu) L(w,b,ξ,α,μ) 表示我们使用的拉格朗日函数):
(5) max ⁡ α , μ min ⁡ ω , b , ξ L ( w , b , ξ , α , μ ) \max_{\alpha, \mu} \min_{\omega, b, \xi} \quad L(w, b, \xi, \alpha, \mu) \tag{5} α,μmaxω,b,ξminL(w,b,ξ,α,μ)(5)
  我们的拉格朗日函数定义如下:
(6) L ( w , b , ξ , α , μ ) = 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i − ∑ i = 1 m α i ( y i ( ω ⋅ x i + b ) − 1 + ξ i ) − ∑ i = 1 m μ i ξ i = 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i − ∑ i = 1 m α i y i ( ω ⋅ x i + b ) + ∑ i = 1 m α i − ∑ i = 1 m α i ξ i − ∑ i = 1 m μ i ξ i = 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i − ω ⋅ ∑ i = 1 m α i y i x i − b ∑ i = 1 m α i y i + ∑ i = 1 m α i − ∑ i = 1 m α i ξ i − ∑ i = 1 m μ i ξ i \begin{aligned} L(w, b, \xi, \alpha, \mu) &= \frac{1}{2} ||\omega||^2 + C \sum_{i = 1}^{m} \xi_i - \sum_{i = 1}^{m} \alpha_i (y_i (\omega \cdot x_i + b) - 1 + \xi_i) - \sum_{i = 1}^{m} \mu_i \xi_i \\ &= \frac{1}{2} ||\omega||^2 + C \sum_{i = 1}^{m} \xi_i - \sum_{i = 1}^{m} \alpha_i y_i (\omega \cdot x_i + b) + \sum_{i = 1}^{m} \alpha_i - \sum_{i = 1}^{m} \alpha_i \xi_i - \sum_{i = 1}^{m} \mu_i \xi_i \\ &= \frac{1}{2} ||\omega||^2 + C \sum_{i = 1}^{m} \xi_i - \omega \cdot \sum_{i = 1}^{m} \alpha_i y_i x_i - b \sum_{i = 1}^{m} \alpha_i y_i + \sum_{i = 1}^{m} \alpha_i - \sum_{i = 1}^{m} \alpha_i \xi_i - \sum_{i = 1}^{m} \mu_i \xi_i \tag{6} \end{aligned} L(w,b,ξ,α,μ)=21ω2+Ci=1mξii=1mαi(yi(ωxi+b)1+ξi)i=1mμiξi=21ω2+Ci=1mξii=1mαiyi(ωxi+b)+i=1mαii=1mαiξii=1mμiξi=21ω2+Ci=1mξiωi=1mαiyixibi=1mαiyi+i=1mαii=1mαiξii=1mμiξi(6)
  接着,我们需要先求出目标拉格朗日函数对于 ω \omega ω b b b ξ \xi ξ 的极小值,所以我们需要对着三个变量分别求偏导,(注意,由于 ξ \xi ξ 的每一个分量都是相同地位的,所以我们只需要对其中的一个分量求偏导即可。)如下:
(7) ∂ ∂ ω L ( w , b , ξ , α , μ ) = ω − ∑ i = 1 m α i y i x i \frac{\partial}{\partial \omega} L(w, b, \xi, \alpha, \mu)= \omega - \sum_{i = 1}^{m} \alpha_i y_i x_i \tag{7} ωL(w,b,ξ,α,μ)=ωi=1mαiyixi(7)
(8) ∂ ∂ b L ( w , b , ξ , α , μ ) = ∑ i = 1 m α i y i \frac{\partial}{\partial b} L(w, b, \xi, \alpha, \mu) = \sum_{i = 1}^{m} \alpha_i y_i \tag{8} bL(w,b,ξ,α,μ)=i=1mαiyi(8)
(9) ∂ ∂ ξ i L ( w , b , ξ , α , μ ) = C − α i − μ i \frac{\partial}{\partial \xi_i} L(w, b, \xi, \alpha, \mu) = C - \alpha_i - \mu_i \tag{9} ξiL(w,b,ξ,α,μ)=Cαiμi(9)
  我们分别令上面的三个偏导数为0,于是我们可以得到:
(10) ω = ∑ i = 1 m α i y i x i \omega = \sum_{i = 1}^{m} \alpha_i y_i x_i \tag{10} ω=i=1mαiyixi(10)
(11) ∑ i = 1 m α i y i = 0 \sum_{i = 1}^{m} \alpha_i y_i = 0 \tag{11} i=1mαiyi=0(11)
(12) C = α i + μ i C = \alpha_i + \mu_i \tag{12} C=αi+μi(12)
  我们将上面的结果代入到 L ( w , b , ξ , α , μ ) L(w, b, \xi, \alpha, \mu) L(w,b,ξ,α,μ) 中:
(13) L ( w , b , ξ , α , μ ) = 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i − ω ⋅ ∑ i = 1 m α i y i x i − b ∑ i = 1 m α i y i + ∑ i = 1 m α i − ∑ i = 1 m α i ξ i − ∑ i = 1 m μ i ξ i = 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i − ω ⋅ ω + ∑ i = 1 m α i − ∑ i = 1 m α i ξ i − ∑ i = 1 m μ i ξ i = 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i − ω ⋅ ω + ∑ i = 1 m α i − ∑ i = 1 m ( α i ξ i + μ i ξ i ) = 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i − ω ⋅ ω + ∑ i = 1 m α i − ∑ i = 1 m ξ i ( α i + μ i ) = 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i − ω ⋅ ω + ∑ i = 1 m α i − C ∑ i = 1 m ξ i = − 1 2 ∣ ∣ ω ∣ ∣ 2 + ∑ i = 1 m α i = − 1 2 ( ∑ i = 1 m α i y i x i ) ( ∑ j = 1 m α j y j x j ) + ∑ i = 1 m α i = − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 m α i \begin{aligned} L(w, b, \xi, \alpha, \mu) &= \frac{1}{2} ||\omega||^2 + C \sum_{i = 1}^{m} \xi_i - \omega \cdot \sum_{i = 1}^{m} \alpha_i y_i x_i - b \sum_{i = 1}^{m} \alpha_i y_i + \sum_{i = 1}^{m} \alpha_i - \sum_{i = 1}^{m} \alpha_i \xi_i - \sum_{i = 1}^{m} \mu_i \xi_i \\ &= \frac{1}{2} ||\omega||^2 + C \sum_{i = 1}^{m} \xi_i - \omega \cdot \omega + \sum_{i = 1}^{m} \alpha_i - \sum_{i = 1}^{m} \alpha_i \xi_i - \sum_{i = 1}^{m} \mu_i \xi_i \\ &= \frac{1}{2} ||\omega||^2 + C \sum_{i = 1}^{m} \xi_i - \omega \cdot \omega + \sum_{i = 1}^{m} \alpha_i - \sum_{i = 1}^{m} (\alpha_i \xi_i + \mu_i \xi_i) \\ &= \frac{1}{2} ||\omega||^2 + C \sum_{i = 1}^{m} \xi_i - \omega \cdot \omega + \sum_{i = 1}^{m} \alpha_i - \sum_{i = 1}^{m} \xi_i (\alpha_i + \mu_i) \\ &= \frac{1}{2} ||\omega||^2 + C \sum_{i = 1}^{m} \xi_i - \omega \cdot \omega + \sum_{i = 1}^{m} \alpha_i - C \sum_{i = 1}^{m} \xi_i \\ &= - \frac{1}{2} ||\omega||^2 + \sum_{i = 1}^{m} \alpha_i \\ &= -\frac{1}{2} (\sum_{i= 1}^{m} \alpha_i y_i x_i)(\sum_{j= 1}^{m} \alpha_j y_j x_j) + \sum_{i= 1}^{m} \alpha_i \\ &= -\frac{1}{2} \sum_{i= 1}^{m}\sum_{j= 1}^{m} \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) + \sum_{i= 1}^{m} \alpha_i \tag{13} \end{aligned} L(w,b,ξ,α,μ)=21ω2+Ci=1mξiωi=1mαiyixibi=1mαiyi+i=1mαii=1mαiξii=1mμiξi=21ω2+Ci=1mξiωω+i=1mαii=1mαiξii=1mμiξi=21ω2+Ci=1mξiωω+i=1mαii=1m(αiξi+μiξi)=21ω2+Ci=1mξiωω+i=1mαii=1mξi(αi+μi)=21ω2+Ci=1mξiωω+i=1mαiCi=1mξi=21ω2+i=1mαi=21(i=1mαiyixi)(j=1mαjyjxj)+i=1mαi=21i=1mj=1mαiαjyiyj(xixj)+i=1mαi(13)
  所以问题就变成了求解下面式子的极大值:
max ⁡ α , μ − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 m α i \max \limits_{\alpha, \mu} \quad -\frac{1}{2} \sum_{i= 1}^{m}\sum_{j= 1}^{m} \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) + \sum_{i= 1}^{m} \alpha_i α,μmax21i=1mj=1mαiαjyiyj(xixj)+i=1mαi
  反转一下正负号,就会有:
(14) min ⁡ α , μ 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 m α i \min \limits_{\alpha, \mu} \quad \frac{1}{2} \sum_{i= 1}^{m}\sum_{j= 1}^{m} \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) - \sum_{i= 1}^{m} \alpha_i \tag{14} α,μmin21i=1mj=1mαiαjyiyj(xixj)i=1mαi(14)
  所以我们所需要的原问题的对偶问题可以表示如下:
(15) min ⁡ α , μ 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 m α i s . t . ∑ i = 1 m α i y i = 0 C − α i − μ i = 0 α i ≥ 0 μ i ≥ 0 , 1 ≤ i ≤ m \begin{aligned} \min \limits_{\alpha, \mu} &\quad \frac{1}{2} \sum_{i= 1}^{m}\sum_{j= 1}^{m} \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) - \sum_{i= 1}^{m} \alpha_i \\ s.t. &\quad \sum_{i = 1}^{m} \alpha_i y_i = 0 \\ &\quad C - \alpha_i - \mu_i = 0 \\ &\quad \alpha_i \geq 0 \\ &\quad \mu_i \geq 0, \quad 1 \leq i \leq m \tag{15} \end{aligned} α,μmins.t.21i=1mj=1mαiαjyiyj(xixj)i=1mαii=1mαiyi=0Cαiμi=0αi0μi0,1im(15)
  观察到上式中存在一个等式关系,于是,我们可以利用这个等式关系消去 μ i \mu_i μi 这个变量:
∵ C − α i − μ i = 0 ∴ μ i = C − α i ∴ μ i = C − α i ≥ 0 ∴ C ≥ α i \because C - \alpha_i - \mu_i = 0 \\ \therefore \mu_i = C - \alpha_i \\ \therefore \mu_i = C - \alpha_i \geq 0 \\ \therefore C \geq \alpha_i Cαiμi=0μi=Cαiμi=Cαi0Cαi
  于是,我们的问题可以有如下的表达:
(16) min ⁡ α 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 m α i s . t . ∑ i = 1 m α i y i = 0 0 ≤ α i ≤ C , 1 ≤ i ≤ m \begin{aligned} \min \limits_{\alpha} &\quad \frac{1}{2} \sum_{i= 1}^{m}\sum_{j= 1}^{m} \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) - \sum_{i= 1}^{m} \alpha_i \\ s.t. &\quad \sum_{i = 1}^{m} \alpha_i y_i = 0 \\ &\quad 0 \leq \alpha_i \leq C, \quad 1 \leq i \leq m \tag{16} \end{aligned} αmins.t.21i=1mj=1mαiαjyiyj(xixj)i=1mαii=1mαiyi=00αiC,1im(16)
  以上就是我们需要求出的线性不可分SVM原问题的对偶形式。

求解 ω \omega ω b b b 参数

  我们求出最后满足公式(16)所设定的条件的最优解的 α \alpha α 的数值之后,接下来就需要计算超平面的 ω \omega ω b b b 参数了。根据公式(10),再结合我们计算出的 α \alpha α 的最优解,就可以计算出超平面的 ω \omega ω 参数,即:
(17) ω ∗ = ∑ i = 1 m α i y i x i \omega^* = \sum_{i= 1}^{m} \alpha_i y_i x_i \tag{17} ω=i=1mαiyixi(17)
  由于超平面方程只和某些特定的数据样本有关,和很多数据样本无关,这些无关的样本点对应的 α \alpha α 参数为0。因此,我们可以选择某一个 α \alpha α 的分量 α i \alpha_i αi,该分量满足 0 &lt; α i &lt; C 0 &lt; \alpha_i &lt; C 0<αi<C ,就可以求得超平面的 b b b 参数。因为对于这类样本数据,我们可以知道它的函数间隔是1(或者-1),于是有:
(18) y i ( ω ∗ ⋅ x i + b ∗ ) = 1 y_i (\omega^* \cdot x_i + b^*) = 1 \tag{18} yi(ωxi+b)=1(18)
  由上可以计算出 b ∗ b^* b 的数值为:
(18) b ∗ = y i − ω ∗ ⋅ x i b ∗ = y i − x i ⋅ ∑ j = 1 m α j y j x j b^* = y_i - \omega^* \cdot x_i \\ b^* = y_i - x_i \cdot \sum_{j = 1}^{m} \alpha_j y_j x_j \tag{18} b=yiωxib=yixij=1mαjyjxj(18)

三、支持向量和决策函数
  当我们根据上面的对偶问题求解出了需要的 ω ∗ \omega^* ω b ∗ b^* b 参数后,我们就可以知道该分类模型的决策函数如下:
(19) f ( x ) = s i g n ( ω ∗ ⋅ x + b ∗ ) f(x) = sign(\omega^* \cdot x + b^*) \tag{19} f(x)=sign(ωx+b)(19)
  其中, s i g n ( ) sign() sign() 函数表示的是取数值的符号,如果数值是正数,返回1,如果数值是负数,返回-1。
  在线性不可分SVM的求解过程中,因为引入了松弛变量,所以支持向量的判定会较为复杂。会出现以下的情况:

  1. 如果 α i &lt; C \alpha_i &lt; C αi<C,这时 ξ i = 0 \xi_i = 0 ξi=0,我们可以知道此时该样本位于间隔的边界上,正好属于一个支持向量。
  2. 如果 α i = C \alpha_i = C αi=C,这时我们知道该样本的数据已经偏离了正确的间隔边界,所以又存在以下的几种情况:
    1. 如果此时 0 &lt; ξ i &lt; 1 0 &lt; \xi_i &lt; 1 0<ξi<1,那我们根据函数间隔的性质可以知道,虽然样本数据已经越过了间隔的边界,但是仍然属于分类正确的样本,此时样本数据位于超平面和间隔边界之间。
    2. 如果此时 ξ i = 1 \xi_i = 1 ξi=1,那么我们根据函数间隔的性质,可以知道的是样本正好位于分类的超平面上。
    3. 如果此时 ξ i &gt; 1 \xi_i &gt; 1 ξi>1,那么这时候,样本数据已经越过了分类的超平面,已经属于误分类的样本数据了,且 ξ i \xi_i ξi 的数值越大,距离超平面越远。

  以上的样本数据统称为支持向量

  综上就是线性不可分SVM的全部求解过程。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值