从零逐步实现SVM(含公式推导)上

支持向量机(SVM)相关概念

  • 支持向量:支持或支撑平面上把两类类别划分开的超平面的向量点
  • 线性可分支持向量机:通过间隔最大化,学习一个线性分类器
  • 线性支持向量机:通过间隔最大,学习一个线性分类器
  • 非线性支持向量机:通过核技巧,学习一个非线性分类器

线性可分支持向量机

  • 目标:找到能把不同点分开,并且间隔最大的直线。

几何间隔

  • 对于1个二元一次方程:

a x + b y + c = 0 ax+by+c = 0 ax+by+c=0

  • ( A , B ) (A,B) (A,B)到这条直线的距离为:

d = ∣ a A + b B + c ∣ a 2 + b 2 d = \frac{|aA + bB + c|}{\sqrt{a^2 + b^2}} d=a2+b2 aA+bB+c

  • 将上述二元一次方程中的 a , b , . . . a,b,... a,b,...变为 w 0 , w 1 , . . . w_0, w_1, ... w0,w1,...,常数 c c c变为 b b b x x x变为 x 0 x_0 x0 y y y变为 x 1 x_1 x1,则原式变为:

w 0 x 0 + w 1 x 1 + b = 0 w_0x_0 + w_1x_1 + b =0 w0x0+w1x1+b=0

  • ( A , B ) (A,B) (A,B),变为 ( x 0 ( 1 ) , x 1 ( 1 ) ) (x_0^{(1)}, x_1^{(1)}) (x0(1),x1(1)),其中 x 0 ( 1 ) x_0^{(1)} x0(1)表示第1个样本的第0个特征, x 1 ( 1 ) x_1^{(1)} x1(1)表示第1个样本的第1个特征,此时距离公式变为:

d = ∣ w 0 x 0 ( 1 ) + w 1 x 1 ( 1 ) + b ∣ w 0 2 + w 1 2 d = \frac{|w_0x_0^{(1)} + w_1x_1^{(1)} + b|}{\sqrt{w_0^2 + w_1^2}} d=w02+w12 w0x0(1)+w1x1(1)+b

  • 可以看到,距离公式的分母其实就是 w w w的二范式,分子写成向量的形式,则距离公式变为:

d ( i ) = ∣ w ⋅ x ( i ) + b ∣ ∥ w ∥ d^{(i)} = \frac{|w\cdot x^{(i)} + b|}{\lVert w \rVert} d(i)=wwx(i)+b

  • 在支持向量机中,正样本一般使用 + 1 +1 +1来表示,负样本一般使用 − 1 -1 1来表示。当距离公式中的分子 w ⋅ x ( i ) + b w\cdot x^{(i)} + b wx(i)+b为正时,说明此时的样本为正样本,也就是 y = 1 y=1 y=1,当分子为负时,也就是 y = − 1 y=-1 y=1,那我们就可以在距离公式的前面乘上 y y y,将分子中的绝对值符号去掉,为了保持机器学习数学表达式的通用规范,将距离 d d d,变为 γ \gamma γ,则此时距离公式变为:

γ ( i ) = y ( i ) w ⋅ x ( i ) + b ∥ w ∥ \gamma^{(i)} = y^{(i)}\frac{w \cdot x^{(i)} + b}{\lVert w \rVert} γ(i)=y(i)wwx(i)+b

函数间隔

  • 这里先给出函数间隔的数学表达式:

γ ^ ( i ) = y ( i ) ( w ⋅ x ( i ) + b ) \hat{\gamma}^{(i)} = y^{(i)}(w \cdot x^{(i)} + b) γ^(i)=y(i)(wx(i)+b)

  • 可以看到,相较于几何间隔,函数间隔去掉了 w w w的二范式,类似于去掉了一个标准化系数。举个例子,现在有一条直线:

2 x + y + 1 = 0 2x+y+1 = 0 2x+y+1=0

( 1 , 2 ) (1,2) (1,2)到这条直线的几何间隔为:
d = ∣ 2 + 2 + 1 ∣ 5 = 5 5 d = \frac{|2 + 2 + 1|}{\sqrt{5}} = \frac{5}{\sqrt5} d=5 ∣2+2+1∣=5 5
函数间隔为:
d ^ = ∣ 2 + 2 + 1 ∣ = 5 \hat{d} = |2+2+1| = 5 d^=∣2+2+1∣=5

现在我将这条直线的系数全部扩大两倍:
4 x + 2 y + 2 = 0 4x+2y+2 = 0 4x+2y+2=0
显然,扩大系数后的直线和没扩大之前的直线是相同的,此时几何间隔为:
d = ∣ 4 + 4 + 2 ∣ 20 = 10 2 5 = 5 5 d = \frac{|4 + 4 + 2|}{\sqrt{20}} = \frac{10}{2\sqrt5} = \frac{5}{\sqrt5} d=20 ∣4+4+2∣=25 10=5 5
函数间隔为:
d ^ = ∣ 4 + 4 + 2 ∣ = 10 \hat{d} = |4 + 4 + 2| = 10 d^=∣4+4+2∣=10

  • 可以发现,两条直线的几何间隔是相等的,但是函数间隔是呈系数扩大倍(2倍)关系的。所以即使是对于同一条直线,几何间隔是不会变的,但是函数间隔可以随系数缩放而改变,这一点非常重要!
  • 所以如果我们想让函数间隔 γ ^ \hat{\gamma} γ^达到1,总归可以通过成倍的缩小或者放大系数来实现这个目的,并且不会改变原本的直线。

几何间隔与函数间隔间的关系

  • 经过上述推导与证明,我们可以得到几何间隔函数间隔之间的关系:

γ ( i ) = γ ^ ( i ) ∥ w ∥ \gamma^{(i)} = \frac{\hat{\gamma}^{(i)}}{\lVert w \rVert} γ(i)=wγ^(i)

即:
γ = γ ^ ∥ w ∥ \gamma = \frac{\hat{\gamma}}{\lVert w \rVert} γ=wγ^

分离超平面

  • 我们希望找到一个最大间隔分离超平面,就可以表示为下面的优化问题:

m a x w , b    γ s . t .   y ( i ) w ⋅ x ( i ) + b ∥ w ∥ ≥ γ ,    i = 1 , 2 , . . . , m \mathop{max}\limits_{w,b}\ \ \gamma\\ s.t.\ y^{(i)}\frac{w \cdot x^{(i)} + b}{\lVert w \rVert} \geq \gamma,\ \ i = 1,2,...,m w,bmax  γs.t. y(i)wwx(i)+bγ,  i=1,2,...,m

其中, m m m表示样本数量。

  • 根据几何间隔函数间隔之间的关系,上式也可以表示为:

m a x w , b    γ ^ ∥ w ∥ s . t .   y ( i ) ( w ⋅ x ( i ) + b ) ≥ γ ^ ,    i = 1 , 2 , . . . , m \mathop{max}\limits_{w,b}\ \ \frac{\hat{\gamma}}{\lVert w \rVert}\\ s.t.\ y^{(i)}(w \cdot x^{(i)} + b)\geq \hat{\gamma},\ \ i = 1,2,...,m w,bmax  wγ^s.t. y(i)(wx(i)+b)γ^,  i=1,2,...,m

  • 根据前面得到的结论,我们可以令 γ ^ = 1 \hat{\gamma} = 1 γ^=1,则原式变为:

m a x w , b    1 ∥ w ∥ s . t .   y ( i ) ( w ⋅ x ( i ) + b ) ≥ 1 ,    i = 1 , 2 , . . . , m \mathop{max}\limits_{w,b}\ \ \frac{1}{\lVert w \rVert}\\ s.t.\ y^{(i)}(w \cdot x^{(i)} + b)\geq 1,\ \ i = 1,2,...,m w,bmax  w1s.t. y(i)(wx(i)+b)1,  i=1,2,...,m

  • 求一个变量的最大值等于求这个变量倒数的最小值,即:

m a x w , b    1 ∥ w ∥ ⇒ m i n w , b    ∥ w ∥ ⇒ m i n w , b    ∥ w ∥ 2 ⇒ m i n w , b    1 2 ∥ w ∥ 2 \mathop{max}\limits_{w,b}\ \ \frac{1}{\lVert w \rVert} \Rightarrow \mathop{min}\limits_{w,b}\ \ \lVert w \rVert \Rightarrow \mathop{min}\limits_{w,b}\ \ \lVert w \rVert ^2 \Rightarrow \mathop{min}\limits_{w,b} \ \ \frac{1}{2}\lVert w \rVert ^2 w,bmax  w1w,bmin  ww,bmin  w2w,bmin  21w2

  • 为了方便后面使用拉格朗日乘子法求解带有不等式约束条件的极值问题,将约束条件变为:

s . t .   1 − y ( i ) ( w ⋅ x ( i ) + b ) ≤ 0 ,    i = 1 , 2 , . . . , m s.t.\ 1 - y^{(i)}(w \cdot x^{(i)} + b)\leq 0,\ \ i = 1,2,...,m s.t. 1y(i)(wx(i)+b)0,  i=1,2,...,m

  • 则最终的优化问题为:

m i n w , b    1 2 ∥ w ∥ 2 s . t .   1 − y ( i ) ( w ⋅ x ( i ) + b ) ≤ 0 ,    i = 1 , 2 , . . . , m \mathop{min}\limits_{w,b} \ \ \frac{1}{2}\lVert w \rVert ^2 \\ s.t.\ 1 - y^{(i)}(w \cdot x^{(i)} + b)\leq 0,\ \ i = 1,2,...,m w,bmin  21w2s.t. 1y(i)(wx(i)+b)0,  i=1,2,...,m

拉格朗日乘子法

等式约束条件

  • 这里先给出求极值的步骤,后面再讲原理。

    • f ( x ) f(x) f(x)的极小值, s . t .   h ( x ) = 0 s.t.\ h(x) = 0 s.t. h(x)=0
    • 构造拉格朗日函数

    L ( x , α ) = f ( x ) + α h ( x )   且   α ≥ 0 L(x,\alpha) = f(x) + \alpha h(x) \ \ 且\ \ \alpha \geq 0 L(x,α)=f(x)+αh(x)    α0

    • 求梯度,并令梯度等于 0 0 0,得到解

    ∇ x L ( x , α ) = ∇ x f ( x ) + α ∇ x h ( x ) = 0 \nabla_xL(x,\alpha) = \nabla_xf(x) + \alpha\nabla_xh(x) = 0 xL(x,α)=xf(x)+αxh(x)=0

  • 还是举一个具体的例子,对于函数

f ( x 1 , x 2 ) = x 1 + x 2 f(x_1,x_2) = x_1 + x_2 f(x1,x2)=x1+x2

求在:
h ( x 1 , x 2 ) = x 1 2 + x 2 2 − 2 = 0 h(x_1, x_2) = x_1^2 + x_2^2-2=0 h(x1,x2)=x12+x222=0
的条件下, f ( x 1 , x 2 ) f(x_1, x_2) f(x1,x2)的极值。

  • 构造拉格朗日函数:
    L ( x 1 , x 2 ) = f ( x ) + α h ( x ) = x 1 + x 2 + α ( x 1 2 + x 2 2 − 2 ) L(x_1, x_2) = f(x) + \alpha h(x) = x_1 + x_2 + \alpha(x_1^2 + x_2^2 -2) L(x1,x2)=f(x)+αh(x)=x1+x2+α(x12+x222)

  • 分别求 L L L x 1 , x 2 x_1, x_2 x1,x2的偏导,并使其等于0:
    ∂ L ∂ x 1 = 1 + 2 α x 1 = 0 ⇒ x 1 = − 1 2 α ∂ L ∂ x 2 = 1 + 2 α x 2 = 0 ⇒ x 2 = − 1 2 α \frac{\partial L}{\partial x_1} = 1 + 2\alpha x_1 = 0 \Rightarrow x_1 = -\frac{1}{2}\alpha\\ \frac{\partial L}{\partial x_2} = 1 + 2\alpha x_2 = 0 \Rightarrow x_2 = -\frac{1}{2}\alpha\\ x1L=1+2αx1=0x1=21αx2L=1+2αx2=0x2=21α

  • 带回约束条件 h ( x ) h(x) h(x)中得:

1 4 α 2 + 1 4 α 2 − 2 = 0 ⇒ α = 2 2 \frac{1}{4}\alpha^2 + \frac{1}{4}\alpha^2-2=0 \Rightarrow \alpha=2\sqrt2 41α2+41α22=0α=22

  • 则:

x 1 = x 2 = − 2 x_1 = x_2 = -\sqrt2 x1=x2=2

  • 为了探究背后的原理,我们将 f ( x 1 , x 2 ) f(x_1,x_2) f(x1,x2) h ( x 1 , x 2 ) h(x_1,x_2) h(x1,x2)的图像画出来:

请添加图片描述

  • 从右上到左下的红色直线分别是 f ( x 1 , x 2 ) = 2 , 1 , 0 , − 1 , − 2 f(x_1,x_2)=2,1,0,-1,-2 f(x1,x2)=2,1,0,1,2时的曲线,绿色的圆则是 h ( x 1 , x 2 ) h(x_1,x_2) h(x1,x2)。因为 h ( x 1 , x 2 ) h(x_1,x_2) h(x1,x2)是等式约束,则 x 1 , x 2 x_1,x_2 x1,x2的取值只能在红色直线与绿色圆的交点。由于我们要求 f ( x 1 , x 2 ) f(x_1,x_2) f(x1,x2)的极值,对 f ( x 1 , x 2 ) f(x_1,x_2) f(x1,x2)求偏导

f ( x 1 , x 2 ) = x 1 + x 2 ∇ f ( x 1 , x 2 ) = ( 1 1 ) f(x_1, x_2) = x_1 + x_2\\ \nabla f(x_1,x_2) = \begin{pmatrix} 1 \\ 1 \\ \end{pmatrix} f(x1,x2)=x1+x2f(x1,x2)=(11)

  • f ( x 1 , x 2 ) f(x_1,x_2) f(x1,x2)的正梯度方向是右上,与 x 1 x_1 x1轴正半轴呈45度角,则负梯度方向为左下,与 x 1 x_1 x1轴负半轴呈45度角。对 h ( x 1 , x 2 ) h(x_1,x_2) h(x1,x2)求偏导

h ( x 1 , x 2 ) = x 1 2 + x 2 2 − 2 ∇ h ( x 1 , x 2 ) = ( 2 x 1 2 x 2 ) h(x_1,x_2) = x_1^2 + x_2^2 -2\\ \nabla h(x_1,x_2) = \begin{pmatrix} 2x_1 \\ 2x_2 \\ \end{pmatrix} h(x1,x2)=x12+x222h(x1,x2)=(2x12x2)

  • 可以发现,当 x 1 = x 2 = 1 x_1 = x_2 = 1 x1=x2=1时, h ( x 1 , x 2 ) h(x_1,x_2) h(x1,x2)的梯度方向为右上,与 x 1 x_1 x1轴正半轴呈45度角,此时刚好与 f ( x 1 , x 2 ) f(x_1,x_2) f(x1,x2)负梯度方向相反。当 x 1 = x 2 = − 1 x_1 = x_2 = -1 x1=x2=1时, h ( x 1 , x 2 ) h(x_1,x_2) h(x1,x2)的梯度方向为左下,与 x 1 x_1 x1轴负半轴呈45度角,此时刚好与 f ( x 1 , x 2 ) f(x_1,x_2) f(x1,x2)负梯度方向相同。我们知道,当梯度方向相反时会相互抵消的,而当梯度方向相同时会相互叠加,因为要求的是极小值,那我们希望 h ( x 1 , x 2 ) h(x_1,x_2) h(x1,x2)的梯度方向能和 f ( x 1 , x 2 ) f(x_1,x_2) f(x1,x2)的负梯度方向相同,数学表达式为:

− ∇ f ( x 1 , x 2 ) = α ∇ h ( x 1 , x 2 ) -\nabla f(x_1,x_2) = \alpha \nabla h(x_1,x_2) f(x1,x2)=αh(x1,x2)

  • 因为梯度是一个数值,为了让等式相等,引入了 α \alpha α系数。回过头来看拉格朗日函数:

L ( x , α ) = f ( x ) + α h ( x ) L(x,\alpha) = f(x) + \alpha h(x) L(x,α)=f(x)+αh(x)

∇ L ( x , α ) = 0 \nabla L(x,\alpha) = 0 L(x,α)=0,则:
∇ L = ∇ f ( x ) + α ∇ h ( x ) = 0 ⇒ − ∇ f ( x 1 , x 2 ) = α ∇ h ( x 1 , x 2 ) \nabla L = \nabla f(x) + \alpha \nabla h(x) = 0 \Rightarrow -\nabla f(x_1,x_2) = \alpha \nabla h(x_1,x_2) L=f(x)+αh(x)=0f(x1,x2)=αh(x1,x2)

  • 这就是为什么要构造拉格朗日函数的原因。

不等式约束条件

  • 对于不等式约束条件,我们依然可以使用在等式约束条件中的方法,但是需要注意的是,不等式约束一定是 ≤ 0 \leq 0 0的形式,如果是 ≥ \geq 的形式,一定要转换成 ≤ 0 \leq 0 0的形式
  • 还是举一个具体的例子,对于函数:

f ( x 1 , x 2 ) = x 1 2 + x 2 2 f(x_1,x_2) = x_1^2 + x_2^2 f(x1,x2)=x12+x22

求在:
g ( x 1 , x 2 ) = x 1 2 + x 2 2 − 1 ≤ 0 g(x_1,x_2) = x_1^2 + x_2^2-1 \leq 0 g(x1,x2)=x12+x2210
条件下的极值。

构造拉格朗日函数:
L ( x 1 , x 2 ) = f ( x ) + α h ( x ) = x 1 2 + x 2 2 + α ( x 1 2 + x 2 2 − 1 ) L(x_1, x_2) = f(x) + \alpha h(x) = x_1^2 + x_2^2 + \alpha(x_1^2 + x_2^2 -1) L(x1,x2)=f(x)+αh(x)=x12+x22+α(x12+x221)

  • 分别求 L L L x 1 , x 2 x_1, x_2 x1,x2的偏导,并使其等于0:
    ∂ L ∂ x 1 = 2 x 1 + 2 α x 1 = 0 ⇒ x 1 = 0 ∂ L ∂ x 2 = 2 x 2 + 2 α x 2 = 0 ⇒ x 2 = 0 \frac{\partial L}{\partial x_1} = 2x_1 + 2\alpha x_1 = 0 \Rightarrow x_1 = 0\\ \frac{\partial L}{\partial x_2} = 2x_2 + 2\alpha x_2 = 0 \Rightarrow x_2 = 0\\ x1L=2x1+2αx1=0x1=0x2L=2x2+2αx2=0x2=0

  • f ( x 1 , x 2 ) f(x_1,x_2) f(x1,x2) h ( x 1 , x 2 ) h(x_1,x_2) h(x1,x2)的图像画出来:

请添加图片描述

  • 上图中红色的圆由内到外分别为 f ( x 1 , x 2 ) = 1 , 2 , 3 f(x_1,x_2) = 1,2,3 f(x1,x2)=1,2,3,因为 f ( x 1 , x 2 ) = 1 f(x_1,x_2) = 1 f(x1,x2)=1 h ( x 1 , x 2 ) h(x_1,x_2) h(x1,x2)边界重合,所以上图中使用虚线。图中绿色的区域为 h ( x 1 , x 2 ) h(x_1,x_2) h(x1,x2)​的图像,一般称该区域为可行域。

  • 大家可以发现, f ( x 1 , x 2 ) f(x_1,x_2) f(x1,x2)的极小值点 ( 0 , 0 ) (0,0) (0,0)落在可行域内,这种情况不等式约束实际上是不起作用的,我们只需要让 − ∇ f ( x 1 , x 2 ) = 0 -\nabla f(x_1,x_2) = 0 f(x1,x2)=0就可以得到极小值点。此时 g ( x 1 , x 2 ) < 0 , − ∇ f ( x 1 , x 2 ) = 0 g(x_1,x_2) < 0, -\nabla f(x_1,x_2) = 0 g(x1,x2)<0,f(x1,x2)=0

  • 考虑另一种情况,目标函数:

f ( x 1 , x 2 ) = ( x 1 − 1.1 ) 2 + ( x 2 + 1.1 ) 2 f(x_1, x_2) = (x_1-1.1)^2 + (x_2+1.1)^2 f(x1,x2)=(x11.1)2+(x2+1.1)2

不等式约束为:
g ( x 1 , x 2 ) = x 1 2 + x 2 2 − 1 ≤ 0 g(x_1,x_2) = x_1^2 + x_2^2-1 \leq 0 g(x1,x2)=x12+x2210
f ( x 1 , x 2 ) f(x_1,x_2) f(x1,x2)​极值。

  • f ( x 1 , x 2 ) f(x_1,x_2) f(x1,x2) h ( x 1 , x 2 ) h(x_1,x_2) h(x1,x2)​的图像画出来:

请添加图片描述

  • 图中红色圆由内到外分别为 f ( x 1 , x 2 ) = 0.5 , 1 , 2 , 3 f(x_1,x_2) = 0.5,1,2,3 f(x1,x2)=0.5,1,2,3,图中绿色的区域为 h ( x 1 , x 2 ) h(x_1,x_2) h(x1,x2)的图像,即可行域。
  • 显然, f ( x 1 , x 2 ) f(x_1,x_2) f(x1,x2)的极小值点为 ( 1.1 , − 1.1 ) (1.1,-1.1) (1.1,1.1),落在可行域外。此时,约束条件起作用,要考虑 f ( x 1 , x 2 ) f(x_1,x_2) f(x1,x2)在可行域内的极小值点。在极小值点, g ( x 1 , x 2 ) g(x_1,x_2) g(x1,x2)的梯度和 f ( x 1 , x 2 ) f(x_1,x_2) f(x1,x2)的负梯度同向叠加:

− ∇ f ( x 1 , x 2 ) = α ∇ h ( x 1 , x 2 ) -\nabla f(x_1,x_2) = \alpha \nabla h(x_1,x_2) f(x1,x2)=αh(x1,x2)

  • 又因为极小值点在可行域边界上,此时 g ( x 1 , x 2 ) = 0 g(x_1,x_2) = 0 g(x1,x2)=0。所以依然使用在上面等式约束中的方法,构造拉格朗日函数进行求解就可以了。

KKT条件

  • 根据上述两种情况,整理一下,当极小值在可行域内时:

g ( x ∗ ) = 0 − ∇ x f ( x ∗ ) = 0 g(x^*) = 0\\ -\nabla_x f(x^*) = 0 g(x)=0xf(x)=0

  • 当极小值在可行域外时:

g ( x ∗ ) = 0 − ∇ x f ( x ∗ ) = α ∇ x g ( x ∗ ) α ≥ 0 g(x^*) = 0\\ -\nabla_x f(x^*) = \alpha \nabla_x g(x^*)\\ \alpha \geq0 g(x)=0xf(x)=αxg(x)α0

  • 其中 x ∗ x^* x表示极值点
  • KKT条件整合了上面的两种情况:

∇ x L ( x ∗ , α ∗ ) = 0 α ∗ ≥ 0 α ∗ g ( x ∗ ) = 0 g ( x ∗ ) ≤ 0 \nabla_x L(x^*,\alpha^*) = 0\\ \alpha^* \geq 0\\ \alpha^*g(x^*) = 0\\ g(x^*) \leq 0 xL(x,α)=0α0αg(x)=0g(x)0

  • 上面的表达式中 α ∗ g ( x ∗ ) = 0 \alpha^*g(x^*) = 0 αg(x)=0实际上有两种含义:
    • g ( x ∗ ) < 0 g(x^*) < 0 g(x)<0时, α = 0 \alpha = 0 α=0,对应了当极小值在可行域内时的情况。
    • g ( x ∗ ) = 0 g(x^*) = 0 g(x)=0时, α > 0 \alpha > 0 α>0,对应了当极小值在可行域外时的情况。

线性可分SVM目标函数求解

  • 根据上述分析线性可分SVM目标函数为:

m i n w , b    1 2 ∥ w ∥ 2 s . t .   1 − y ( i ) ( w ⋅ x ( i ) + b ) ≤ 0 ,    i = 1 , 2 , . . . , m \mathop{min}\limits_{w,b} \ \ \frac{1}{2}\lVert w \rVert ^2 \\ s.t.\ 1 - y^{(i)}(w \cdot x^{(i)} + b)\leq 0,\ \ i = 1,2,...,m w,bmin  21w2s.t. 1y(i)(wx(i)+b)0,  i=1,2,...,m

  • 对目标函数构建拉格朗日函数:

L ( w , b , α ) = 1 2 ∥ w ∥ 2 − α ( i ) ( 1 − y ( i ) ( w ⋅ x ( i ) + b ) ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 m α ( i ) y ( i ) ( w ⋅ x ( i ) + b ) + ∑ i = 1 m α ( i ) \begin{align} L(w,b,\alpha) &= \frac{1}{2}\lVert w \rVert ^2 - \alpha^{(i)}(1 - y^{(i)}(w \cdot x^{(i)} + b))\\ &= \frac{1}{2}\lVert w \rVert ^2 - \sum_{i=1}^{m}\alpha^{(i)}y^{(i)}(w \cdot x^{(i)} + b) + \sum_{i=1}^{m}\alpha^{(i)} \end{align} L(w,b,α)=21w2α(i)(1y(i)(wx(i)+b))=21w2i=1mα(i)y(i)(wx(i)+b)+i=1mα(i)

  • 考虑拉格朗日函数:

L ( x ) = f ( x ) + α g ( x ) L(x) = f(x) + \alpha g(x) L(x)=f(x)+αg(x)

g ( x ) = 0 g(x) = 0 g(x)=0时(即极值点落在可行域内):
L ( x ) = f ( x ) L(x) = f(x) L(x)=f(x)
g ( x ) < 0 g(x) < 0 g(x)<0时(即极值点落在可行域外),因为 α ≥ 0 \alpha \geq 0 α0,所以:
L ( x ) ≥ f ( x ) L(x) \geq f(x) L(x)f(x)

  • 现在我们最大化 L ( x ) L(x) L(x)

m a x α    L ( x ) \mathop{max}\limits_{\alpha} \ \ L(x) αmax  L(x)

理想情况下该值等于 f ( x ) f(x) f(x),我们原目标是求解
m i n w , b    f ( x ) \mathop{min}\limits_{w,b} \ \ f(x) w,bmin  f(x)
所以需要对最大化 L ( x ) L(x) L(x)进行最小化,即:
m i n w , b   m a x α    L ( w , b , a ) \mathop{min}\limits_{w,b}\ \mathop{max}\limits_{\alpha} \ \ L(w,b,a) w,bmin αmax  L(w,b,a)

  • 为了方便求解,将原始问题转换为其对偶问题:

m a x α   m i n w , b    L ( w , b , a ) \mathop{max}\limits_{\alpha}\ \mathop{min}\limits_{w,b} \ \ L(w,b,a) αmax w,bmin  L(w,b,a)

  • 先求$ \mathop{min}\limits_{w,b} \ \ L(w,b,a) ,对 ,对 ,对L(w,b,\alpha)$​进行求导:

L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 m α ( i ) y ( i ) ( w ⋅ x ( i ) + b ) + ∑ i = 1 m α ( i ) L(w,b,\alpha) = \frac{1}{2}\lVert w \rVert ^2 - \sum_{i=1}^{m}\alpha^{(i)}y^{(i)}(w \cdot x^{(i)} + b) + \sum_{i=1}^{m}\alpha^{(i)} L(w,b,α)=21w2i=1mα(i)y(i)(wx(i)+b)+i=1mα(i)

∂ L ∂ w = w − ∑ i = 1 m α ( i ) y ( i ) x ( i ) = 0 ⇒ w = ∑ i = 1 m α ( i ) y ( i ) x ( i ) ∂ L ∂ b = − ∑ i = 1 m α ( i ) y ( i ) = 0 ⇒ ∑ i = 1 m α ( i ) y ( i ) = 0 \frac{\partial L}{\partial w} =w - \sum_{i=1}^m\alpha^{(i)}y^{(i)}x^{(i)} = 0 \Rightarrow w = \sum^{m}_{i=1}\alpha^{(i)}y^{(i)}x^{(i)}\\ \frac{\partial L}{\partial b} =-\sum_{i=1}^m \alpha^{(i)}y^{(i)} = 0 \Rightarrow \sum_{i=1}^m \alpha^{(i)}y^{(i)} = 0\\ wL=wi=1mα(i)y(i)x(i)=0w=i=1mα(i)y(i)x(i)bL=i=1mα(i)y(i)=0i=1mα(i)y(i)=0

  • 将得到的推导式带回 L ( w , b , α ) L(w,b,\alpha) L(w,b,α)

L ( w , b , α ) = 1 2 ( ∑ i = 1 m α ( i ) y ( i ) x ( i ) ) × ( ∑ j = 1 m α ( j ) y ( j ) x ( j ) ) − ∑ i = 1 m α ( i ) y ( i ) [ ( ∑ j = 1 m α ( j ) y ( j ) x ( j ) ) × x ( i ) + b ] + ∑ 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 ∑ j = 1 m [ α ( i ) α ( j ) y ( i ) y ( j ) ( x ( i ) ⋅ x ( j ) ) ] − b ∑ i = 1 m [ α ( i ) y ( i ) ] + ∑ 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{align} L(w,b,\alpha) &= \frac{1}{2}\left(\sum_{i=1}^{m}\alpha^{(i)}y^{(i)}x^{(i)}\right) \times \left(\sum_{j=1}^m \alpha^{(j)}y^{(j)}x^{(j)}\right) - \sum_{i=1}^m\alpha^{(i)}y^{(i)}\left[\left(\sum_{j=1}^m\alpha^{(j)}y^{(j)}x^{(j)}\right) \times x^{(i)} + b\right] + \sum_{i=1}^m\alpha^{(i)}\\ &= \frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\left[\alpha^{(i)}\alpha^{(j)}y^{(i)}y^{(j)}(x^{(i)} \cdot x^{(j)})\right] - \sum_{i=1}^m\sum_{j=1}^m\left[\alpha^{(i)}\alpha^{(j)}y^{(i)}y^{(j)}(x^{(i)} \cdot x^{(j)})\right] - b\sum_{i=1}^m\left[\alpha^{(i)}y^{(i)}\right] + \sum^{m}_{i=1}\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)} \end{align} L(w,b,α)=21(i=1mα(i)y(i)x(i))×(j=1mα(j)y(j)x(j))i=1mα(i)y(i)[(j=1mα(j)y(j)x(j))×x(i)+b]+i=1mα(i)=21i=1mj=1m[α(i)α(j)y(i)y(j)(x(i)x(j))]i=1mj=1m[α(i)α(j)y(i)y(j)(x(i)x(j))]bi=1m[α(i)y(i)]+i=1mα(i)=21i=1mj=1mα(i)α(j)y(i)y(j)(x(i)x(j))+i=1mα(i)

  • 上面的推导过程中需要注意的地方:

    • ∥ w ∥ 2 \lVert w \rVert ^2 w2带入 w w w时,为了区分,第1个 w w w使用 ∑ i = 1 m \sum\limits_{i=1}^m i=1m,第2个 w w w使用 ∑ j = 1 m \sum^m\limits_{j=1} j=1m
    • ( x ( i ) ⋅ x ( j ) ) (x^{(i)} \cdot x^{(j)}) (x(i)x(j))向量相乘,这里一定要注意!
    • 因为 ∑ i = 1 m α ( i ) y ( i ) = 0 \sum\limits_{i=1}^m \alpha^{(i)}y^{(i)} = 0 i=1mα(i)y(i)=0所以倒数第2步的 − b ∑ i = 1 m [ a ( i ) y ( i ) ] -b\sum^m\limits_{i=1}[a^{(i)}y^{(i)}] bi=1m[a(i)y(i)]​就没有了
  • 完成 m i n w , b    L ( w , b , a ) \mathop{min}\limits_{w,b} \ \ L(w,b,a) w,bmin  L(w,b,a)后,再求 m i n w , b    L ( w , b , a ) \mathop{min}\limits_{w,b} \ \ L(w,b,a) w,bmin  L(w,b,a) α \alpha α极大,即:

m a x α − 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     α ( i ) ≥ 0 ,   i = 1 , 2 , ⋯   , m \mathop{max}\limits_{\alpha}-\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.\ \ \sum_{i=1}^m\alpha^{(i)}y^{(i)}=0 \ \ \ \alpha^{(i)} \geq 0,\ i=1,2,\cdots,m αmax21i=1mj=1mα(i)α(j)y(i)y(j)(x(i)x(j))+i=1mα(i)s.t.  i=1mα(i)y(i)=0   α(i)0, i=1,2,,m

  • 将符号和前面的 m a x α \mathop{max}\limits_{\alpha} αmax合并,变为:

m i n α 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     α ( i ) ≥ 0 ,   i = 1 , 2 , ⋯   , m \mathop{min}\limits_{\alpha} \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.\ \ \sum_{i=1}^m\alpha^{(i)}y^{(i)}=0 \ \ \ \alpha^{(i)} \geq 0,\ i=1,2,\cdots,m αmin21i=1mj=1mα(i)α(j)y(i)y(j)(x(i)x(j))i=1mα(i)s.t.  i=1mα(i)y(i)=0   α(i)0, i=1,2,,m

  • 若有办法求出 α ( i ) \alpha^{(i)} α(i)则原问题就解决了。现在假设已经求出来了 α ( i ) \alpha^{(i)} α(i)(这里先给出结论,后面再进行推导),那么:

w ∗ = ∑ i = 1 m α ( i ) ∗ y ( i ) x ( i ) w^* = \sum_{i=1}^m\alpha^{(i)^*}y^{(i)}x^{(i)} w=i=1mα(i)y(i)x(i)

  • 其中 α ( i ) ∗ \alpha^{(i)^*} α(i)表示第 i i i个样本的最优 α \alpha α值, w ∗ w^* w表示 w w w最优值。又因为目标函数的不等式约束条件为:

1 − y ( i ) ( w ⋅ x ( i ) + b ) ≤ 0 ,    i = 1 , 2 , . . . , m 1 - y^{(i)}(w \cdot x^{(i)} + b)\leq 0,\ \ i = 1,2,...,m 1y(i)(wx(i)+b)0,  i=1,2,...,m

  • 最优结果会在边界上取得,所以可以认为:

1 − y ( i ) ( w ∗ ⋅ x ( i ) + b ∗ ) = 0 1 - y^{(i)}(w^* \cdot x^{(i)} + b^*) = 0 1y(i)(wx(i)+b)=0

  • 得到:

b ∗ = y ( i ) − ∑ j = 1 m α ( i ) ∗ y ( i ) ( x ( i ) ⋅ x ( j ) ) b^{*} = y^{(i)} - \sum_{j=1}^m\alpha^{(i)^*}y^{(i)}(x^{(i)} \cdot x^{(j)}) b=y(i)j=1mα(i)y(i)(x(i)x(j))

  • 则分离超平面为:

w ∗ ⋅ x + b ∗ = 0 w^* \cdot x + b^* = 0 wx+b=0

  • 分类决策函数为:

f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ ) f(x) = sign(w^* \cdot x + b^*) f(x)=sign(wx+b)

  • 其中:

s i g n ( z ) = { 1 ,    z ≥ 0 − 1 ,    z < 0 sign(z) = \begin{cases} 1,\ \ z \geq 0\\ -1,\ \ z < 0 \end{cases} sign(z)={1,  z01,  z<0

线性可分支持向量机实例

正例点是 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,求线性可分支持向量机

  • 根据上面推导出的公式:

m i n α 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     α ( i ) ≥ 0 ,   i = 1 , 2 , ⋯   , m \mathop{min}\limits_{\alpha} \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.\ \ \sum_{i=1}^m\alpha^{(i)}y^{(i)}=0 \ \ \ \alpha^{(i)} \geq 0,\ i=1,2,\cdots,m αmin21i=1mj=1mα(i)α(j)y(i)y(j)(x(i)x(j))i=1mα(i)s.t.  i=1mα(i)y(i)=0   α(i)0, i=1,2,,m

  • 带入数值:

m i n α 1 2 ∑ i = 1 m ∑ j = 1 m α ( i ) α ( j ) y ( i ) y ( j ) ( x ( i ) ⋅ x ( j ) ) − ∑ i = 1 m α ( i ) = 1 2 [ α ( 1 ) 2 y ( 1 ) 2 × ( 3 × 3 + 3 × 3 ) + α ( 1 ) α ( 2 ) y ( 1 ) y ( 2 ) × ( 3 × 4 + 3 × 3 ) + α ( 1 ) α ( 3 ) y ( 1 ) y ( 3 ) × ( 3 × 1 + 3 × 1 ) +       α ( 2 ) α ( 1 ) y ( 2 ) y ( 1 ) × ( 4 × 3 + 3 × 3 ) + α ( 2 ) 2 y ( 2 ) 2 × ( 4 × 4 + 3 × 3 ) + α ( 2 ) α ( 3 ) y ( 2 ) y ( 3 ) × ( 4 × 1 + 3 × 1 ) +       α ( 3 ) α ( 1 ) y ( 3 ) y ( 1 ) × ( 1 × 3 + 1 × 3 ) + α ( 3 ) α ( 2 ) y ( 3 ) y ( 2 ) × ( 1 × 4 + 1 × 3 ) + α ( 3 ) 2 y ( 3 ) 2 × ( 1 × 1 + 1 × 3 ) ]       − ( α ( 1 ) + α ( 2 ) + α ( 3 ) ) = 1 2 ( 18 α ( 1 ) 2 + 25 α ( 2 ) 2 + 2 α ( 3 ) 2 + 42 α ( 1 ) α ( 2 ) − 12 α ( 1 ) α ( 3 ) − 14 α ( 2 ) α ( 3 ) ) − ( α ( 1 ) + α ( 2 ) + α ( 3 ) ) \begin{align} \mathop{min}\limits_{\alpha} & \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)}\\ =& \frac{1}{2}\Big[\alpha^{(1)^2}y^{(1)^2}\times (3 \times 3 + 3\times 3) + \alpha^{(1)}\alpha^{(2)}y^{(1)}y^{(2)} \times(3 \times 4 + 3 \times 3) + \alpha^{(1)}\alpha^{(3)}y^{(1)}y^{(3)} \times (3 \times 1 + 3 \times 1) + \\ & \ \ \ \ \ \alpha^{(2)}\alpha^{(1)}y^{(2)}y^{(1)} \times (4 \times 3 + 3 \times 3) + \alpha^{(2)^2}y^{(2)^2} \times (4 \times 4 + 3 \times 3) + \alpha^{(2)}\alpha^{(3)}y^{(2)}y^{(3)} \times (4 \times 1 + 3 \times 1) + \\ & \ \ \ \ \ \alpha^{(3)}\alpha^{(1)}y^{(3)}y^{(1)} \times (1 \times 3 + 1 \times 3) + \alpha^{(3)}\alpha^{(2)}y^{(3)}y^{(2)} \times (1 \times 4 + 1 \times 3) + \alpha^{(3)^2}y^{(3)^2} \times(1\times 1 + 1\times 3) \Big]\\ & \ \ \ \ \ -\left(\alpha^{(1)} + \alpha^{(2)} + \alpha^{(3)}\right)\\ =& \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) - \left(\alpha^{(1)} + \alpha^{(2)} + \alpha^{(3)}\right)\\ \end{align} αmin==21i=1mj=1mα(i)α(j)y(i)y(j)(x(i)x(j))i=1mα(i)21[α(1)2y(1)2×(3×3+3×3)+α(1)α(2)y(1)y(2)×(3×4+3×3)+α(1)α(3)y(1)y(3)×(3×1+3×1)+     α(2)α(1)y(2)y(1)×(4×3+3×3)+α(2)2y(2)2×(4×4+3×3)+α(2)α(3)y(2)y(3)×(4×1+3×1)+     α(3)α(1)y(3)y(1)×(1×3+1×3)+α(3)α(2)y(3)y(2)×(1×4+1×3)+α(3)2y(3)2×(1×1+1×3)]     (α(1)+α(2)+α(3))21(18α(1)2+25α(2)2+2α(3)2+42α(1)α(2)12α(1)α(3)14α(2)α(3))(α(1)+α(2)+α(3))

  • 约束条件为:

s . t .    ∑ i = 1 m α ( i ) y ( i ) = 0     α ( i ) ≥ 0 ,   i = 1 , 2 , ⋯   , m s . t .    α ( 1 ) + α ( 2 ) − α ( 3 ) = 0 ,    α ( 1 ) , α ( 2 ) , α ( 3 ) ≥ 0 s.t.\ \ \sum_{i=1}^m\alpha^{(i)}y^{(i)}=0 \ \ \ \alpha^{(i)} \geq 0,\ i=1,2,\cdots,m\\ s.t.\ \ \alpha^{(1)} + \alpha^{(2)} - \alpha^{(3)}=0,\ \ \alpha^{(1)},\alpha^{(2)},\alpha^{(3)} \geq 0 s.t.  i=1mα(i)y(i)=0   α(i)0, i=1,2,,ms.t.  α(1)+α(2)α(3)=0,  α(1),α(2),α(3)0

  • 根据约束条件得到:

α ( 3 ) = α ( 1 ) + α ( 2 ) \alpha^{(3)} = \alpha^{(1)} + \alpha^{(2)} α(3)=α(1)+α(2)

  • 代入目标函数(令代入后的目标函数为 S S S):

S ( α ( 1 ) , α ( 2 ) ) = 4 α ( 1 ) 2 + 13 2 α ( 2 ) 2 + 10 α ( 1 ) α ( 2 ) − 2 α ( 1 ) − 2 α ( 2 ) S(\alpha^{(1)}, \alpha^{(2)}) = 4\alpha^{(1)^2} + \frac{13}{2}\alpha^{(2)^2} + 10\alpha^{(1)}\alpha^{(2)} - 2\alpha^{(1)}-2\alpha^{(2)} S(α(1),α(2))=4α(1)2+213α(2)2+10α(1)α(2)2α(1)2α(2)

  • 为了得到 S S S的极值,分别对 α ( 1 ) , α ( 2 ) \alpha^{(1)}, \alpha^{(2)} α(1),α(2)求偏导:

∂ S ∂ α ( 1 ) = 8 α ( 1 ) + 10 α ( 2 ) − 2 = 0 ∂ S ∂ α ( 2 ) = 13 α ( 2 ) + 10 α ( 1 ) − 2 = 0 \frac{\partial S}{\partial \alpha^{(1)}} = 8\alpha^{(1)} + 10\alpha^{(2)}-2=0\\ \frac{\partial S}{\partial \alpha^{(2)}} = 13\alpha^{(2)} + 10\alpha^{(1)}-2=0\\ α(1)S=8α(1)+10α(2)2=0α(2)S=13α(2)+10α(1)2=0

  • 联立上面的两个式子,得到:

α ( 1 ) = 1.5 ,    α ( 2 ) = − 1 \alpha^{(1)} = 1.5,\ \ \alpha^{(2)} = -1 α(1)=1.5,  α(2)=1

  • 因为拉格朗日乘子大于等于0,即 α ( 1 ) , α ( 2 ) , α ( 3 ) ≥ 0 \alpha^{(1)},\alpha^{(2)},\alpha^{(3)} \geq 0 α(1),α(2),α(3)0,所以 S S S的极值肯定不在 ( 1.5 , − 1 ) (1.5,-1) (1.5,1)处取得,而是应该在边界上,即 α ( 1 ) = 0 \alpha^{(1)} = 0 α(1)=0 α ( 2 ) = 0 \alpha^{(2)}=0 α(2)=0。对于 α ( 1 ) = 0 \alpha^{(1)} = 0 α(1)=0的情况,代入 ∂ S ∂ α ( 2 ) \frac{\partial S}{\partial \alpha^{(2)}} α(2)S中得:

α ( 1 ) = 0 ⇒ α ( 2 ) = 2 13 ⇒ S ( α ( 1 ) , α ( 2 ) ) = − 2 13 \alpha^{(1)} = 0 \Rightarrow \alpha^{(2)} = \frac{2}{13} \Rightarrow S(\alpha^{(1)},\alpha^{(2)} )=-\frac{2}{13} α(1)=0α(2)=132S(α(1),α(2))=132

  • 对于 α ( 2 ) = 0 \alpha^{(2)} = 0 α(2)=0的情况,代入 ∂ S ∂ α ( 1 ) \frac{\partial S}{\partial \alpha^{(1)}} α(1)S中得:

α ( 2 ) = 0 ⇒ α ( 1 ) = 1 4 ⇒ S ( α ( 1 ) , α ( 2 ) ) = − 1 4 \alpha^{(2)} = 0 \Rightarrow \alpha^{(1)} = \frac{1}{4} \Rightarrow S(\alpha^{(1)}, \alpha^{(2)} ) = -\frac{1}{4} α(2)=0α(1)=41S(α(1),α(2))=41

  • 显然当 α ( 2 ) = 0 \alpha^{(2)} = 0 α(2)=0时, S S S函数的值更小,所以我们应该取:

α ( 2 ) = 0 , α ( 1 ) = 1 4 ⇒ α ( 3 ) = α ( 1 ) + α ( 2 ) = 1 4 \alpha^{(2)} = 0, \alpha^{(1) }= \frac{1}{4} \Rightarrow \alpha^{(3)} = \alpha^{(1)} + \alpha^{(2)} = \frac{1}{4} α(2)=0,α(1)=41α(3)=α(1)+α(2)=41

  • 最终结果:

{ α ( 1 ) = 1 4 α ( 2 ) = 0 α ( 3 ) = 1 4 \begin{cases} \alpha^{(1)} = \frac{1}{4}\\ \alpha^{(2)} = 0\\ \alpha^{(3)} = \frac{1}{4} \end{cases} α(1)=41α(2)=0α(3)=41

  • 根据公式 w w w为:

w = ∑ i = 1 m α ( i ) y ( i ) x ( i ) = 1 4 × 1 × ( 3 , 3 ) + 0 + 1 4 × − 1 × ( 1 , 1 ) = ( 3 4 , 3 4 ) + ( − 1 4 , − 1 4 ) = ( 1 2 , 1 2 ) \begin{align} w &= \sum_{i=1}^m\alpha^{(i)}y^{(i)}x^{(i)} \\ &= \frac{1}{4} \times 1 \times (3,3) + 0 + \frac{1}{4} \times -1 \times (1,1)\\ &=\left(\frac{3}{4}, \frac{3}{4}\right) + \left(-\frac{1}{4}, -\frac{1}{4}\right)\\ &=\left(\frac{1}{2},\frac{1}{2}\right) \end{align} w=i=1mα(i)y(i)x(i)=41×1×(3,3)+0+41×1×(1,1)=(43,43)+(41,41)=(21,21)

  • 根据公式 b b b为(取 i = 1 i=1 i=1):

b ∗ = y ( i ) − ∑ j = 1 m α ( j ) ∗ y ( j ) ( x ( j ) ⋅ x ( i ) ) = 1 − [ 1 4 × 1 × ( 3 × 3 + 3 × 3 ) + 0 + 1 4 × ( − 1 ) × ( 1 × 3 + 1 × 3 ) ] = − 2 \begin{align} b^{*} &= y^{(i)} - \sum_{j=1}^m\alpha^{(j)^*}y^{(j)}(x^{(j)} \cdot x^{(i)})\\ &= 1-\left[\frac{1}{4} \times 1 \times (3 \times 3 + 3 \times 3) + 0 + \frac{1}{4} \times (-1) \times (1 \times 3 + 1\times 3)\right]\\ &=-2 \end{align} b=y(i)j=1mα(j)y(j)(x(j)x(i))=1[41×1×(3×3+3×3)+0+41×(1)×(1×3+1×3)]=2

  • 分离超平面为:

w ∗ ⋅ x + b ∗ = 0 1 2 x 1 + 1 2 x 2 − 2 = 0 w^* \cdot x + b^* = 0\\ \frac{1}{2}x_1 + \frac{1}{2}x_2 -2 = 0 wx+b=021x1+21x22=0

  • 分离正样本的间隔平面表达式为:

1 2 x 1 + 1 2 x 2 − 2 = 1 \frac{1}{2}x_1 + \frac{1}{2}x_2 -2 = 1 21x1+21x22=1

  • 分离负样本的间隔平面表达式为:

1 2 x 1 + 1 2 x 2 − 2 = − 1 \frac{1}{2}x_1 + \frac{1}{2}x_2 -2 = -1 21x1+21x22=1

  • 可视化点与分离超平面、间隔平面:

请添加图片描述

  • 可以看到点 ( 3 , 3 ) , ( 1 , 1 ) (3,3),(1,1) (3,3),(1,1)在间隔屏幕上,我们将这样的点称作支撑(支持)向量。

线性支持向量机

  • 线性支持向量机是为了应对有些样本点不能满足函数间隔大于1的条件,甚至在错误的一侧的情况,具体的就是对每个样本点引入松弛变量 ξ \xi ξ,则约束条件变为:

y ( i ) ( w ⋅ x ( i ) + b ) ≥ 1 − ξ ( i ) y^{(i)}(w \cdot x^{(i)} + b) \geq 1 - \xi^{(i)} y(i)(wx(i)+b)1ξ(i)

  • 目标函数变为:

1 2 ∥ w ∥ 2 + C ∑ i = 1 m ξ ( i ) \frac{1}{2}\lVert w \rVert ^2 + C\sum_{i=1}^m\xi^{(i)} 21w2+Ci=1mξ(i)

  • 则线性支持向量机转换为如下优化问题:

m i n w , b , ξ    1 2 ∥ w ∥ 2 + C ∑ i = 1 m ξ ( i ) s . t .    y ( i ) ( w ⋅ x ( i ) + b ) ≥ 1 − ξ ( i ) \mathop{min}\limits_{w,b,\xi} \ \ \frac{1}{2}\lVert w \rVert ^2 + C\sum_{i=1}^m\xi^{(i)} \\ s.t.\ \ y^{(i)}(w \cdot x^{(i)} + b) \geq 1 - \xi^{(i)} w,b,ξmin  21w2+Ci=1mξ(i)s.t.  y(i)(wx(i)+b)1ξ(i)

  • 整理一下,使其满足拉格朗日乘子法应用规则:

m i n w , b , ξ    1 2 ∥ w ∥ 2 + C ∑ i = 1 m ξ ( i ) s . t .    1 − y ( i ) ( w ⋅ x ( i ) + b ) − ξ ( i ) ≤ 0 ,    i = 1 , 2 , ⋯   , m − ξ ( i ) ≤ 0 ,    i = 1 , 2 , ⋯   , m \mathop{min}\limits_{w,b,\xi} \ \ \frac{1}{2}\lVert w \rVert ^2 + C\sum_{i=1}^m\xi^{(i)} \\ s.t.\ \ 1 - y^{(i)}(w \cdot x^{(i)} + b) - \xi^{(i)} \leq 0,\ \ i=1,2,\cdots,m\\ -\xi^{(i)} \leq 0,\ \ i=1,2,\cdots,m w,b,ξmin  21w2+Ci=1mξ(i)s.t.  1y(i)(wx(i)+b)ξ(i)0,  i=1,2,,mξ(i)0,  i=1,2,,m

线性SVM目标函数求解

  • 根据上述分析,线性支持向量机目标函数:

m i n w , b , ξ    1 2 ∥ w ∥ 2 + C ∑ i = 1 m ξ ( i ) s . t .    1 − y ( i ) ( w ⋅ x ( i ) + b ) − ξ ( i ) ≤ 0 ,    i = 1 , 2 , ⋯   , m − ξ ( i ) ≤ 0 ,    i = 1 , 2 , ⋯   , m \mathop{min}\limits_{w,b,\xi} \ \ \frac{1}{2}\lVert w \rVert ^2 + C\sum_{i=1}^m\xi^{(i)} \\ s.t.\ \ 1 - y^{(i)}(w \cdot x^{(i)} + b) - \xi^{(i)} \leq 0,\ \ i=1,2,\cdots,m\\ -\xi^{(i)} \leq 0,\ \ i=1,2,\cdots,m w,b,ξmin  21w2+Ci=1mξ(i)s.t.  1y(i)(wx(i)+b)ξ(i)0,  i=1,2,,mξ(i)0,  i=1,2,,m

  • 构造拉格朗日函数:

L ( w , b , ξ , α , μ ) = 1 2 ∥ w ∥ 2 + C ∑ i = 1 m ξ ( i ) + ∑ i = 1 m α ( i ) ( 1 − y ( i ) ( w ⋅ x ( i ) ) − ξ ( i ) ) + ∑ i = 1 m − μ ( i ) ξ ( i ) L(w,b,\xi,\alpha,\mu) = \frac{1}{2}\lVert w \rVert ^2 + C\sum_{i=1}^m\xi^{(i)} + \sum_{i=1}^m\alpha^{(i)}\left(1 - y^{(i)}(w \cdot x^{(i)}) - \xi^{(i)}\right) + \sum_{i=1}^m-\mu^{(i)}\xi^{(i)} L(w,b,ξ,α,μ)=21w2+Ci=1mξ(i)+i=1mα(i)(1y(i)(wx(i))ξ(i))+i=1mμ(i)ξ(i)

  • 上式中 α ( i ) \alpha^{(i)} α(i) μ ( i ) \mu^{(i)} μ(i)都是拉格朗日乘子,为了区分两个拉格朗日乘子,第二个使用 μ \mu μ来代替
  • 根据拉格朗日函数对偶性,原始问题的对偶问题是极大极小问题:

m a x α   m i n w , b , ξ    L ( w , b , ξ , α , μ ) \mathop{max}\limits_{\alpha}\ \mathop{min}\limits_{w,b,\xi}\ \ L(w,b,\xi,\alpha,\mu) αmax w,b,ξmin  L(w,b,ξ,α,μ)

  • 先求:

m i n w , b , ξ    L ( w , b , ξ , α , μ ) \mathop{min}\limits_{w,b,\xi}\ \ L(w,b,\xi,\alpha,\mu) w,b,ξmin  L(w,b,ξ,α,μ)

  • 目标函数 L L L依次对 w , b , ξ ( i ) w,b,\xi^{(i)} w,b,ξ(i)求偏导:

∇ w L ( w , b , ξ , α , μ ) = w − ∑ i = 1 m α ( i ) y ( i ) x ( i ) = 0 ⇒ w = ∑ i = 1 m α ( i ) y ( i ) x ( i ) ∇ b L ( w , b , ξ , α , μ ) = − ∑ i = 1 m α ( i ) y ( i ) = 0 ⇒ ∑ i = 1 m α ( i ) y ( i ) = 0 ∇ ξ ( i )   L ( w , b , ξ , α , μ ) = C − α ( i ) − μ ( i ) = 0 ⇒ C − α ( i ) − μ ( i ) = 0 \nabla_wL(w,b,\xi,\alpha,\mu) = w-\sum_{i=1}^m\alpha^{(i)}y^{(i)}x^{(i)} = 0 \Rightarrow w = \sum_{i=1}^m\alpha^{(i)}y^{(i)}x^{(i)}\\ \nabla_bL(w,b,\xi,\alpha,\mu) = -\sum_{i=1}^m\alpha^{(i)}y^{(i)} = 0 \Rightarrow \sum_{i=1}^m\alpha^{(i)}y^{(i)}=0\\ \nabla_{\xi^{(i)}}\ L(w,b,\xi,\alpha,\mu) = C-\alpha^{(i)} - \mu^{(i)} = 0 \Rightarrow C-\alpha^{(i)}-\mu^{(i)} = 0 wL(w,b,ξ,α,μ)=wi=1mα(i)y(i)x(i)=0w=i=1mα(i)y(i)x(i)bL(w,b,ξ,α,μ)=i=1mα(i)y(i)=0i=1mα(i)y(i)=0ξ(i) L(w,b,ξ,α,μ)=Cα(i)μ(i)=0Cα(i)μ(i)=0

  • 将上述推导的结果代回目标函数 L L L中,得:

m i n w , b , ξ    L ( w , b , ξ , α , μ ) = − 1 2 ∑ i = 1 m ∑ j = 1 m α ( i ) α ( j ) y ( i ) y ( j ) ( x ( i ) ⋅ x ( j ) ) + ∑ i = 1 m α ( i ) \mathop{min}\limits_{w,b,\xi}\ \ L(w,b,\xi,\alpha,\mu) = -\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)} w,b,ξmin  L(w,b,ξ,α,μ)=21i=1mj=1mα(i)α(j)y(i)y(j)(x(i)x(j))+i=1mα(i)

  • 接下来求 m i n w , b , ξ    L ( w , b , ξ , α , μ ) \mathop{min}\limits_{w,b,\xi}\ \ L(w,b,\xi,\alpha,\mu) w,b,ξmin  L(w,b,ξ,α,μ) α \alpha α的极大:

m a x α − 1 2 ∑ i = 1 m ∑ j = 1 m α ( i ) α ( j ) y ( i ) y ( j ) ( x ( i ) ⋅ x ( j ) ) + ∑ i = 1 m α ( i ) ⇓ m i n α 1 2 ∑ i = 1 m ∑ j = 1 m α ( i ) α ( j ) y ( i ) y ( j ) ( x ( i ) ⋅ x ( j ) ) − ∑ i = 1 m α ( i ) \mathop{max}\limits_{\alpha}-\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)}\\ \Downarrow\\ \mathop{min}\limits_{\alpha}\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)α(j)y(i)y(j)(x(i)x(j))+i=1mα(i)αmin21i=1mj=1mα(i)α(j)y(i)y(j)(x(i)x(j))i=1mα(i)

  • 约束条件为:

s . t .   { ∑ j = 1 m α ( i ) y ( i ) = 0 C − α ( i ) − μ ( i ) = 0 α ( i ) ≥ 0 μ ( i ) ≥ 0 s.t.\ \begin{cases} \sum\limits_{j=1}^{m}\alpha^{(i)}y^{(i)} = 0\\ C-\alpha^{(i)} - \mu^{(i)}=0\\ \alpha^{(i)} \geq 0\\ \mu^{(i)} \geq 0 \end{cases} s.t.  j=1mα(i)y(i)=0Cα(i)μ(i)=0α(i)0μ(i)0

  • 整理一下约束条件,可以写成:

s . t .   { ∑ j = 1 m α ( i ) y ( i ) = 0 0 ≤ α ( i ) ≤ C ,   i = 1 , 2 , . . . , m s.t.\ \begin{cases} \sum\limits_{j=1}^{m}\alpha^{(i)}y^{(i)} = 0\\ 0 \leq \alpha^{(i)} \leq C,\ i=1,2,...,m\\ \end{cases} s.t.  j=1mα(i)y(i)=00α(i)C, i=1,2,...,m

  • 总结起来,写到一起就是:

m i n α 1 2 ∑ i = 1 m ∑ j = 1 m α ( i ) α ( j ) y ( i ) y ( j ) ( x ( i ) ⋅ x ( j ) ) − ∑ i = 1 m α ( i ) s . t .   { ∑ j = 1 m α ( i ) y ( i ) = 0 0 ≤ α ( i ) ≤ C ,   i = 1 , 2 , . . . , m \mathop{min}\limits_{\alpha}\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.\ \begin{cases} \sum\limits_{j=1}^{m}\alpha^{(i)}y^{(i)} = 0\\ 0 \leq \alpha^{(i)} \leq C,\ i=1,2,...,m\\ \end{cases} αmin21i=1mj=1mα(i)α(j)y(i)y(j)(x(i)x(j))i=1mα(i)s.t.  j=1mα(i)y(i)=00α(i)C, i=1,2,...,m

非线性支持向量机

  • 核技巧(核方法):线性不可分的低维特征数据将其映射到高维,就能线性可分。
  • 核函数:设 ϕ ( x ) : X → H \phi(x):X \rightarrow H ϕ(x):XH,对所有 x , z ∈ X x,z \in X x,zX函数 K ( x , z ) K(x,z) K(x,z),满足 K ( x , z ) = ϕ ( x ) ⋅ ϕ ( z ) K(x,z) = \phi(x) \cdot \phi(z) K(x,z)=ϕ(x)ϕ(z)
  • 核技巧的思想是在学习与预测中只定义核函数 K ( x , z ) K(x,z) K(x,z),而不显示定义映射函数 ϕ ( x ) \phi(x) ϕ(x)
  • 在前面的线性支持向量机中,对偶问题的目标函数中 x ( i ) ⋅ x ( j ) x^{(i)} \cdot x^{(j)} x(i)x(j)可使用核函数 k ( x ( i ) ⋅ x ( j ) ) k(x^{(i)}\cdot x^{(j)}) k(x(i)x(j))来代替,即:

m i n α 1 2 ∑ i = 1 m ∑ j = 1 m α ( i ) α ( j ) y ( i ) y ( j ) ( x ( i ) ⋅ x ( j ) ) − ∑ i = 1 m α ( i ) ⇓ m i n α 1 2 ∑ i = 1 m ∑ j = 1 m α ( i ) α ( j ) y ( i ) y ( j ) k ( x ( i ) ⋅ x ( j ) ) − ∑ i = 1 m α ( i ) \mathop{min}\limits_{\alpha}\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)}\\ \Downarrow \\ \mathop{min}\limits_{\alpha}\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha^{(i)}\alpha^{(j)}y^{(i)}y^{(j)}k(x^{(i)} \cdot x^{(j)}) - \sum_{i=1}^m\alpha^{(i)}\\ αmin21i=1mj=1mα(i)α(j)y(i)y(j)(x(i)x(j))i=1mα(i)αmin21i=1mj=1mα(i)α(j)y(i)y(j)k(x(i)x(j))i=1mα(i)

  • 常用核函数有两个,多项式核函数:

k ( x , z ) = ( x ⋅ z + 1 ) p k(x,z) = (x \cdot z + 1)^p k(x,z)=(xz+1)p

  • 高斯核函数:

k ( x , z ) = e x p ( − ∥ x − z ∥ 2 z σ 2 ) k(x,z) = exp(-\frac{\lVert x-z \rVert^2}{z\sigma^2}) k(x,z)=exp(zσ2xz2)

  • 其中经常被用于实际项目中的还是高斯核函数
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羽星_s

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值