机器学习之支持向量机(SVM)

支持向量机是一种二分类模型。有简至繁:

  • 线性可分支持向量机(linear support vector machine in linearly separate case),当训练数据线性可分时,可以通过硬间隔最大化,学习一个线性分类器。
  • 线性支持向量机(linear support vector machine),当训练数据近似线性可分时,通过软间隔最大化,学习线性分类器。
  • 非线性支持向量机(non-linear support vector machine),当训练数据不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。

本章节参考李航的《统计学习方法》

1. 线性可分支持向量机与硬间隔最大化
1.1 间隔最大化

假设给定一个特征空间上的训练数据集

T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } (1) T = \{(x_1, y_1), (x_2, y_2), ..., (x_N, y_N) \} \tag1 T={(x1,y1),(x2,y2),...,(xN,yN)}(1)

其中 x i x_i xi是第 i i i个样本的特征向量, y i y_i yi是第 i i i个样本的标签, y i ∈ { + 1 , − 1 } y_i \in \{+1, -1 \} yi{+1,1}.

学习目标是在特征空间中找到一个分离超平面,能将实例分到不同的类。分离超平面对应的方程 w ∗ x + b = 0 w*x+b=0 wx+b=0,分离超平面将特征空间划分为两部分,一部分为正类,另一部分为负类。

一般来说,一个点距离分离超平面的远近可以表示分类预测的确信程度。 ∣ w ∗ x + b ∣ |w*x+b| wx+b能够相对表示点 x x x距离超平面的距离,而 w ∗ x + b w*x+b wx+b的符号与类标记 y y y的符号是否一致能够表示分类是否正确。所以可以用 y ( w ∗ x + b ) y(w*x+b) y(wx+b)表示函数间隔(functional margin)。

定义超平面关于样本点 ( x i , y i ) (x_i, y_i) (xi,yi)的函数间隔为

γ ^ i = y i ( w ∗ x i + b ) (2) \hat \gamma_i = y_i(w*x_i +b) \tag{2} γ^i=yi(wxi+b)(2)

所有样本中的最小间隔为

γ ^ = min ⁡ i = 1 , . . , N γ ^ i (3) \hat \gamma = \min_{i=1,..,N} \hat \gamma_i \tag{3} γ^=i=1,..,Nminγ^i(3)

上面的表示中,成比例改变 w , b w,b w,b不会改变超平面,但是会改变函数间隔,所以可以做一些规范化操作

也就是几何间隔:

γ i = y i ( w ∣ ∣ w ∣ ∣ ∗ x + b ∣ ∣ w ∣ ∣ ) (4) \gamma_i = y_i(\frac {w} {||w||} * x + \frac{b} {||w||}) \tag{4} γi=yi(wwx+wb)(4)

则最小几何间隔

γ = min ⁡ i = 1 , . . . , N γ i (5) \gamma = \min_{i=1,...,N} \gamma_i \tag{5} γ=i=1,...,Nminγi(5)

下面考虑如何求得一个几何间隔最大的分离超平面,这个问题可以表示为下面的约束最优化问题:

max ⁡ w , b γ s t . . . y i ( w ∣ ∣ w ∣ ∣ ∗ x i + b ∣ ∣ w ∣ ∣ ) ≥ γ , i = 1 , 2 , . . . , N (6) \begin{aligned} & \max_{w,b} \gamma \\ & st... y_i(\frac {w} {||w||} * x_i + \frac {b} {||w||}) \ge \gamma, i=1, 2, ...,N \tag{6} \end{aligned} w,bmaxγst...yi(wwxi+wb)γ,i=1,2,...,N(6)

也可以写为:

max ⁡ w , b γ ^ ∣ ∣ w ∣ ∣ s t . . . y i ( w ∗ x i + b ) ≥ γ ^ , i = 1 , 2 , . . . , N (7) \begin{aligned} & \max_{w,b} \frac {\hat \gamma} {||w||} \\ & st... y_i(w * x_i + b) \ge \hat \gamma, i=1, 2, ...,N \tag{7} \end{aligned} w,bmaxwγ^st...yi(wxi+b)γ^,i=1,2,...,N(7)

其中 γ ^ \hat \gamma γ^的取值并不影响最优化问题的解, 去 γ ^ = 1 \hat \gamma=1 γ^=1,又最大化 γ ^ ∣ ∣ w ∣ ∣ \frac {\hat \gamma} {||w||} wγ^等价于最小化 1 2 ∣ ∣ w ∣ ∣ 2 \frac {1}{2} {||w||^2} 21w2。于是就可以得到线性可分支持向量机学习的最优化问题:

min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 s t . . . y i ( w ∗ x i + b ) ≥ 1 , i = 1 , 2 , . . . , N . (8) \begin{aligned} & \min_{w,b} \frac {1}{2} {||w||^2} \\ & st... y_i(w * x_i + b) \ge 1, i=1, 2, ...,N. \tag{8} \end{aligned} w,bmin21w2st...yi(wxi+b)1,i=1,2,...,N.(8)

1.2 学习的对偶算法

首先构建拉格朗日函数,引进拉格朗日乘子 α i ≥ 0 , i = 1 , 2 , . . . , N \alpha_i \ge 0, i=1, 2, ..., N αi0,i=1,2,...,N,定义拉格朗日函数:

L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 N α i y i ( w ∗ x i + b ) + ∑ i = 1 N α i (9) L(w, b, \alpha) = \frac {1}{2} {||w||^2} - \sum_{i=1}^N \alpha_i y_i (w*x_i + b) + \sum_{i=1}^N \alpha_i \tag{9} L(w,b,α)=21w2i=1Nαiyi(wxi+b)+i=1Nαi(9)

其中, α = ( α 1 , α 2 , . . . , α N ) T \alpha = (\alpha_1, \alpha_2, ..., \alpha_N)^T α=(α1,α2,...,αN)T为拉格朗日乘子向量。

根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:

max ⁡ α min ⁡ w , b L ( w , b , α ) (10) \max_\alpha \min_{w,b} L(w, b, \alpha) \tag{10} αmaxw,bminL(w,b,α)(10)

(1)求 min ⁡ w , b L ( w , b , α ) \min_{w,b} L(w, b, \alpha) minw,bL(w,b,α)

将拉格朗日函数 L ( w , b , α ) L(w,b,\alpha) L(w,b,α)分别对 w , b w,b w,b求偏导并令其等于0.

∂ L ∂ w = w − ∑ i = 1 N α i y i x i = 0 \frac {\partial L} {\partial w} = w - \sum_{i=1}^N \alpha_i y_i x_i = 0 wL=wi=1Nαiyixi=0

∂ L ∂ b = − ∑ i = 1 N α i y i = 0 \frac {\partial L} {\partial b} = - \sum_{i=1}^N \alpha_i y_i = 0 bL=i=1Nαiyi=0

得到:

w = ∑ i = 1 N α i y i x i (11) w = \sum_{i=1}^N \alpha_i y_i x_i \tag{11} w=i=1Nαiyixi(11)

∑ i = 1 N α i y i = 0 (12) \sum_{i=1}^N \alpha_i y_i = 0 \tag{12} i=1Nαiyi=0(12)

将上式结果带回拉格朗日函数得到:

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 (x_i * x_j) - \sum_{i=1}^N \alpha_i y_i ((\sum_{j=1}^N \alpha_j y_j x_j) * x_i + b) + \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 (x_i * x_j) + \sum_{i=1}^N \alpha_i \end{aligned} L(w,b,α)=21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαiyi((j=1Nαjyjxj)xi+b)+i=1Nαi=21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi

即:

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 (13) \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 (x_i * x_j) + \sum_{i=1}^N \alpha_i \tag{13} w,bminL(w,b,α)=21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi(13)

(2)求 m i n w , b L ( w , b , α ) min_{w, b}L(w,b,\alpha) minw,bL(w,b,α) α \alpha α的极大,即是对偶问题:

max ⁡ α − 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 (14) \begin{aligned} & \max_{\alpha} - \frac {1} {2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (x_i * x_j) + \sum_{i=1}^N \alpha_i \\ & st... \sum_{i=1}^N \alpha_i y_i = 0 ; \alpha_i \ge 0, i=1, 2, ...,N \tag{14} \end{aligned} αmax21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαist...i=1Nαiyi=0;αi0,i=1,2,...,N(14)

将求极大转化为求极小可以得到:

min ⁡ α 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 (15) \begin{aligned} & \min_{\alpha} \frac {1} {2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (x_i * x_j) + \sum_{i=1}^N \alpha_i \\ & st... \sum_{i=1}^N \alpha_i y_i = 0 ; \alpha_i \ge 0, i=1, 2, ...,N \tag{15} \end{aligned} αmin21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαist...i=1Nαiyi=0;αi0,i=1,2,...,N(15)

KKT条件

  • Lagrangian: Inequality Constraint
    min ⁡ f ( x ) s t . . . h ( x ) ≤ 0 \min f(x) \\ st... h(x) \le 0 minf(x)st...h(x)0
    转化为:
    min ⁡ f ( x ) + λ h ( x ) \min f(x) + \lambda h(x) minf(x)+λh(x)
    设有条件的最优解正好满足限制条件 h ( x ) ≤ 0 h(x) \le 0 h(x)0 λ = 0 , h ( x ) ≤ 0 \lambda = 0, h(x) \le 0 λ=0,h(x)0
    设有条件的最优解不满足限制条件 h ( x ) ≤ 0 h(x) \le 0 h(x)0 λ > 0 , h ( x ) = 0 \lambda > 0, h(x) = 0 λ>0,h(x)=0
    以上两个条件合并就可以得到: λ h ( x ) = 0 \lambda h(x) = 0 λh(x)=0
    所以:

min ⁡ f ( x ) s t . . . h ( x ) ≤ 0 \min f(x) \\ st... h(x) \le 0 minf(x)st...h(x)0
转化为:
min ⁡ f ( x ) + λ h ( x ) s t . . . λ h ( x ) = 0 ; h ( x ) ≤ 0 \min f(x) + \lambda h(x) \\ st... \lambda h(x) = 0; h(x) \le 0 minf(x)+λh(x)st...λh(x)=0;h(x)0

  • KKT条件
    如果我们有等式的条件也有不等式的条件
    min ⁡ : f ( x ) s t . . . : g i ( x ) = 0 h i ( x ) ≤ 0 , i = 1 , 2 , . . . , N \begin{aligned} \min: & f(x) \\ st... :& g_i(x) = 0 \\ & h_i(x) \le 0, i= 1,2, ..., N \end{aligned} min:st...:f(x)gi(x)=0hi(x)0,i=1,2,...,N
    转化为
    min ⁡ : f ( x ) + ∑ i = 1 N λ i g i ( x ) + ∑ j = 1 N μ j h j ( x ) s t . . . : λ i , μ j > 0 μ j h j ( x ) = 0 , h i ( x ) ≤ 0 , i = 1 , 2 , . . . , N \begin{aligned} \min: & f(x) + \sum_{i=1}^N \lambda_i g_i(x) + \sum_{j=1}^N \mu_j h_j(x) \\ st... :& \lambda_i, \mu_j > 0 \\ & \mu_j h_j(x) = 0,\\ & h_i(x) \le 0, i= 1,2, ..., N \end{aligned} min:st...:f(x)+i=1Nλigi(x)+j=1Nμjhj(x)λi,μj>0μjhj(x)=0,hi(x)0,i=1,2,...,N

下面就用KKT条件进行求解

首先线性可分支持向量机学习的最优化问题:

min ⁡ w , b : 1 2 ∣ ∣ w ∣ ∣ 2 s t . . . : y i ( w ∗ x i + b ) ≥ 1 , i = 1 , 2 , . . . , N . \begin{aligned} & \min_{w,b} :\frac {1}{2} {||w||^2} \\ & st...: y_i(w * x_i + b) \ge 1, i=1, 2, ...,N. \end{aligned} w,bmin21w2st...yi(wxi+b)1,i=1,2,...,N.

根据KKT条件可以转化为:

min ⁡ w , b : 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 N λ i [ 1 − y i ( w ∗ x i + b ) ] s t . . . : λ i ≥ 0 , λ i [ 1 − y i ( w ∗ x i + b ) ] = 0 , 1 − y i ( w ∗ x i + b ) ≤ 0 , i = 1 , 2 , . . . , N . \begin{aligned} \min_{w,b}: & \frac {1}{2} {||w||^2} + \sum_{i=1}^N \lambda_i [1 - y_i (w * x_i + b)] \\ st...: & \lambda_i \ge 0, \\ & \lambda_i [1 - y_i(w * x_i + b)] = 0, \\ & 1 - y_i(w * x_i + b) \le 0, i=1, 2, ...,N. \end{aligned} w,bmin:st...:21w2+i=1Nλi[1yi(wxi+b)]λi0,λi[1yi(wxi+b)]=0,1yi(wxi+b)0,i=1,2,...,N.

α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α l ∗ ) \alpha^* = (\alpha_1^*, \alpha_2^*,...,\alpha_l^*) α=(α1,α2,...,αl)是对偶最优化问题的解。

可以得到

∂ L ∂ w = w − ∑ i = 1 N α i ∗ y i x i = 0 ∂ L ∂ 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{aligned} &\frac {\partial L}{\partial w} = w - \sum_{i=1}^N \alpha_i^* y_i x_i = 0 \\ & \frac {\partial L} {\partial b} = - \sum_{i=1}^N \alpha_i^* y_i = 0 \\ & \alpha_i [1 - y_i(w * x_i + b)] = 0, i=1, 2, ..., N \\ & 1 - y_i(w * x_i + b) \le 0, i=1, 2, ...,N \\ & \lambda_i \ge 0, i=1,2,..,N \end{aligned} wL=wi=1Nαiyixi=0bL=i=1Nαiyi=0αi[1yi(wxi+b)]=0,i=1,2,...,N1yi(wxi+b)0,i=1,2,...,Nλi0,i=1,2,..,N

由此可以得到:

w ∗ = ∑ i = 1 N α i ∗ y i x i w^* = \sum_{i=1}^N \alpha_i^* y_i x_i w=i=1Nαiyixi

其中至少一个 α j ∗ > 0 \alpha_j^* > 0 αj>0,因为 α j ∗ ≥ 0 \alpha_j^* \ge 0 αj0, 不可能全部为0,所以至少一个大于0.

所以就有

1 − y j ( w ∗ x j + b ) = 0 1 - y_j(w * x_j + b) = 0 1yj(wxj+b)=0

因为 y j 2 = 1 y_j^2 = 1 yj2=1

可以得到

b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ∗ x j ) b^* = y_j -\sum_{i=1}^N \alpha_i^* y_i (x_i * x_j) b=yji=1Nαiyi(xixj)

分离超平面可以写为

∑ i = 1 N α i ∗ y i ( x ∗ x i ) + b ∗ = 0 \sum_{i=1}^N \alpha_i^* y_i(x * x_i) + b^* = 0 i=1Nαiyi(xxi)+b=0

分类决策函数可以写为

f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i ( x ∗ x i ) + b ∗ ) f(x) = sign(\sum_{i=1}^N \alpha_i^* y_i(x * x_i) + b^*) f(x)=sign(i=1Nαiyi(xxi)+b)

2. 线性支持向量机与软间隔最大化
2.1 软间隔

如果训练数据中有不可分奇异点,硬间隔最大化就不能成立,所以需要一个松弛变量 ξ i ≥ 0 \xi_i \ge 0 ξi0,使得函数间隔加上松弛变量大于1。这样,约束条件就变成为了:

y i ( w ∗ x i + b ) ≥ 1 − ξ i (16) y_i (w * x_i + b) \ge 1 - \xi_i \tag{16} yi(wxi+b)1ξi(16)

同时,目标函数变为:

1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i (17) \frac {1} {2} ||w||^2 + C\sum_{i=1}^N \xi_i \tag{17} 21w2+Ci=1Nξi(17)

其中, C > 0 C > 0 C>0为惩罚参数, C C C值大时对误分类的惩罚增大。

线性不可分的线性支持向量机的学习问题变成如下凸二次规划问题:

min ⁡ w , b , α 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i s t . . . y i ( w ∗ x i + b ) ≥ 1 − ξ i ; ξ i ≥ 0 , i = 1 , 2 , . . . , N (18) \begin{aligned} &\min_{w,b,\alpha} \frac {1} {2} ||w||^2 + C\sum_{i=1}^N \xi_i \\ & st... y_i(w * x_i + b) \ge 1-\xi_i; \xi_i \ge 0, i=1, 2, ...,N \tag{18} \end{aligned} w,b,αmin21w2+Ci=1Nξist...yi(wxi+b)1ξi;ξi0,i=1,2,...,N(18)

2.2 学习的对偶问题

软间隔问题的拉格朗日函数为

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 (19) L(w,b,\xi,\alpha,\mu) = \frac {1} {2} ||w||^2 + C \sum_{i=1}^N \xi_i - \sum_{i=1}^N \alpha_i (y_i (w * x_i + b) - 1 + \xi_i) - \sum_{i=1}^N \mu_i \xi_i \tag{19} L(w,b,ξ,α,μ)=21w2+Ci=1Nξii=1Nαi(yi(wxi+b)1+ξi)i=1Nμiξi(19)

其中 α i ≥ 0 , μ i ≥ 0 \alpha_i \ge 0, \mu_i \ge 0 αi0,μi0

对偶问题时拉格朗日的极大极小问题。首先求 L ( w , b , ξ , α , μ ) L(w,b,\xi, \alpha,\mu) L(w,b,ξ,α,μ) w , b , ξ w,b,\xi w,b,ξ的极小值

∂ L ∂ w = w − ∑ i = 1 N α i y i x i = 0 \frac {\partial L} {\partial w} = w - \sum_{i=1}^N \alpha_i y_i x_i = 0 wL=wi=1Nαiyixi=0

∂ L ∂ b = − ∑ i = 1 N α i y i = 0 \frac {\partial L} {\partial b} = - \sum_{i=1}^N \alpha_i y_i = 0 bL=i=1Nαiyi=0

∂ L ∂ ξ = C − α i − μ i = 0 \frac {\partial L} {\partial \xi} = C - \alpha_i - \mu_i = 0 ξL=Cαiμi=0

得到:

w = ∑ i = 1 N α i y i x i (20) w = \sum_{i=1}^N \alpha_i y_i x_i \tag{20} w=i=1Nαiyixi(20)

∑ i = 1 N α i y i = 0 (21) \sum_{i=1}^N \alpha_i y_i = 0 \tag{21} i=1Nαiyi=0(21)

C − α i − μ i = 0 (22) C - \alpha_i - \mu_i = 0 \tag{22} Cαiμi=0(22)

带回拉格朗日函数得到:

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 (23) \min_{w,b,\xi} L(w,b,\alpha,\xi,\mu) = - \frac {1} {2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (x_i * x_j) + \sum_{i=1}^N \alpha_i \tag{23} w,b,ξminL(w,b,α,ξ,μ)=21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi(23)

再求对 α \alpha α极大值,即得对偶问题:

max ⁡ α − 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 C − α i − μ i = 0 α i ≥ 0 μ i ≥ 0 , i = 1 , 2 , . . . , N . (24) \begin{aligned} \max_{\alpha} & - \frac {1} {2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (x_i * x_j) + \sum_{i=1}^N \alpha_i \\ s.t... & \sum_{i=1}^N \alpha_i y_i = 0 \\ & C - \alpha_i - \mu_i = 0 \\ & \alpha_i \ge 0 \\ & \mu_i \ge 0, i=1,2,...,N. \tag{24} \end{aligned} αmaxs.t...21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαii=1Nαiyi=0Cαiμi=0αi0μi0,i=1,2,...,N.(24)

转化之后可以得到

min ⁡ α 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 ≤ α ≤ C , i = 1 , 2 , . . . , N . (25) \begin{aligned} \min_{\alpha} & \frac {1} {2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j (x_i * x_j) + \sum_{i=1}^N \alpha_i \\ s.t... & \sum_{i=1}^N \alpha_i y_i = 0 \\ & 0 \le \alpha \le C, i=1,2,...,N. \tag{25} \end{aligned} αmins.t...21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαii=1Nαiyi=00αC,i=1,2,...,N.(25)

下面依据KKT条件进行求解

线性不可分的线性支持向量机的学习问题变成如下凸二次规划问题:

min ⁡ w , b , α : 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i s t . . . : y i ( w ∗ x i + b ) ≥ 1 − ξ i ξ i ≥ 0 , i = 1 , 2 , . . . , N \begin{aligned} \min_{w,b,\alpha}: & \frac {1} {2} ||w||^2 + C\sum_{i=1}^N \xi_i \\ st...: & y_i(w * x_i + b) \ge 1-\xi_i \\ & \xi_i \ge 0, i=1, 2, ...,N \end{aligned} w,b,αmin:st...:21w2+Ci=1Nξiyi(wxi+b)1ξiξi0,i=1,2,...,N

根据KKT条件可以得到:

min ⁡ : L = 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 s t . . . : α i ( y i ( w ∗ x i + b ) − 1 + ξ i ) = 0 μ i ξ i = 0 y i ( w ∗ x i + b ) ≥ 1 − ξ i ξ i ≥ 0 α i ≥ 0 μ i ≥ 0 , i = 1 , 2 , . . . , N \begin{aligned} \min: & L = \frac {1} {2} ||w||^2 + C \sum_{i=1}^N \xi_i - \sum_{i=1}^N \alpha_i (y_i (w * x_i + b) - 1 + \xi_i) - \sum_{i=1}^N \mu_i \xi_i \\ st...: & \alpha_i (y_i (w * x_i + b) - 1 + \xi_i) = 0 \\ & \mu_i \xi_i = 0 \\ & y_i(w * x_i + b) \ge 1-\xi_i \\ & \xi_i \ge 0 \\ & \alpha_i \ge 0 \\ & \mu_i \ge 0, i=1, 2, ...,N \end{aligned} min:st...:L=21w2+Ci=1Nξii=1Nαi(yi(wxi+b)1+ξi)i=1Nμiξiαi(yi(wxi+b)1+ξi)=0μiξi=0yi(wxi+b)1ξiξi0αi0μi0,i=1,2,...,N

同样可以得到:

∂ L ∂ w = w − ∑ i = 1 N α i y i x i = 0 ∂ L ∂ b = − ∑ i = 1 N α i y i = 0 ∂ L ∂ ξ = C − α i − μ i = 0 α i ( y i ( w ∗ x i + b ) − 1 + ξ i ) = 0 , i = 1 , 2 , . . . , N μ i ξ i = 0 , i = 1 , 2 , . . . , N y i ( w ∗ x i + b ) ≥ 1 − ξ i , i = 1 , 2 , . . . , N ξ i ≥ 0 , i = 1 , 2 , . . . , N α i ≥ 0 , i = 1 , 2 , . . . , N μ i ≥ 0 , i = 1 , 2 , . . . , N \begin{aligned} & \frac {\partial L} {\partial w} = w - \sum_{i=1}^N \alpha_i y_i x_i = 0 \\ & \frac {\partial L} {\partial b} = - \sum_{i=1}^N \alpha_i y_i = 0 \\ & \frac {\partial L} {\partial \xi} = C - \alpha_i - \mu_i = 0 \\ & \alpha_i (y_i (w * x_i + b) - 1 + \xi_i) = 0 , i=1, 2, ...,N\\ & \mu_i \xi_i = 0, i=1, 2, ...,N \\ & y_i(w * x_i + b) \ge 1-\xi_i, i=1, 2, ...,N \\ & \xi_i \ge 0, i=1, 2, ...,N \\ & \alpha_i \ge 0, i=1, 2, ...,N \\ & \mu_i \ge 0, i=1, 2, ...,N \end{aligned} wL=wi=1Nαiyixi=0bL=i=1Nαiyi=0ξL=Cαiμi=0αi(yi(wxi+b)1+ξi)=0,i=1,2,...,Nμiξi=0,i=1,2,...,Nyi(wxi+b)1ξi,i=1,2,...,Nξi0,i=1,2,...,Nαi0,i=1,2,...,Nμi0,i=1,2,...,N

若存在 0 < α j ∗ < C 0<\alpha_j^*<C 0<αj<C,同样可以得到:

w ∗ = ∑ i = 1 N α i ∗ y i x i w^* = \sum_{i=1}^N \alpha_i^* y_i x_i w=i=1Nαiyixi

b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ∗ x j ) b^* = y_j -\sum_{i=1}^N \alpha_i^* y_i (x_i * x_j) b=yji=1Nαiyi(xixj)

分离超平面可以写为

∑ i = 1 N α i ∗ y i ( x ∗ x i ) + b ∗ = 0 \sum_{i=1}^N \alpha_i^* y_i(x * x_i) + b^* = 0 i=1Nαiyi(xxi)+b=0

分类决策函数可以写为

f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i ( x ∗ x i ) + b ∗ ) f(x) = sign(\sum_{i=1}^N \alpha_i^* y_i(x * x_i) + b^*) f(x)=sign(i=1Nαiyi(xxi)+b)

2.3 合页损失函数

min ⁡ w , b , α 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i s t . . . y i ( w ∗ x i + b ) ≥ 1 − ξ i ξ i ≥ 0 , i = 1 , 2 , . . . , N \begin{aligned} \min_{w,b,\alpha} & \frac {1} {2} ||w||^2 + C\sum_{i=1}^N \xi_i \\ st...& y_i(w * x_i + b) \ge 1-\xi_i\\ & \xi_i \ge 0, i=1, 2, ...,N \end{aligned} w,b,αminst...21w2+Ci=1Nξiyi(wxi+b)1ξiξi0,i=1,2,...,N

又上式可得:

ξ i = max ⁡ ( 0 , 1 − y i ( w ∗ x i + b ) ) \xi_i = \max(0, 1 - y_i(w* x_i + b)) ξi=max(0,1yi(wxi+b))

上式就为合页损失函数(hinge loss function).

等价的最优化问题:

min ⁡ w , b ∑ i = 1 N max ⁡ ( 0 , 1 − y i ( w ∗ x i + b ) ) + λ ∣ ∣ w ∣ ∣ 2 \min_{w,b} \sum_{i=1}^N \max(0, 1 - y_i(w* x_i + b)) + \lambda ||w||^2 w,bmini=1Nmax(0,1yi(wxi+b))+λw2

其中 λ = 1 2 C \lambda = \frac {1} {2C} λ=2C1

第一项可以理解为,当样本被正确分类且函数间隔 y i ( w ∗ x i + b ) > 1 y_i(w*x_i +b) > 1 yi(wxi+b)>1,损失为0,否则损失为 1 − y i ( w ∗ x i + b ) 1 - y_i (w * x_i + b) 1yi(wxi+b);
第二项可以理解为正则化项。

其实我们解决SVM问题也可以直接对上面的式子进行梯度下降法求解 ,但是这样做有缺点,一个是在求解过程中会出现判断条件,计算速度会慢;二是没有办法运用核技巧进行非线性映射。

3. 非线性支持向量机与核函数

先看一个例子
x = ( x 1 , x 2 ) , z = ( z 1 , z 2 ) ⇒ ( x ∗ z ) = ( x 1 z 1 + x 2 z 2 ) ϕ ( x ) = ( x 1 2 , x 2 2 , 2 x 1 x 2 ) ; ϕ ( z ) = ( z 1 2 , z 2 2 , 2 z 1 z 2 ) ⇒ ϕ ( x ) ∗ ϕ ( z ) = ( x 1 2 z 1 2 + x 2 2 z 2 2 , 2 x 1 x 2 z 1 z 2 ) = ( x ∗ z ) 2 x = (x_1, x_2), z = (z_1, z_2) \\ ⇒ (x * z) = (x_1 z_1 + x_2 z_2) \\ \phi(x) = (x_1^2, x_2^2, \sqrt{2 } x_1 x_2); \phi(z) = (z_1^2, z_2^2, \sqrt 2 z_1 z_2) \\ ⇒ \phi(x)* \phi(z) = (x_1^2 z_1^2 + x_2^2 z_2^2, 2 x_1 x_2 z_1 z_2) = (x * z)^2 x=(x1,x2),z=(z1,z2)(xz)=(x1z1+x2z2)ϕ(x)=(x12,x22,2 x1x2);ϕ(z)=(z12,z22,2 z1z2)ϕ(x)ϕ(z)=(x12z12+x22z22,2x1x2z1z2)=(xz)2

可以利用解线性分类问题的方法求解非线性分类问题的支持向量机。

所以分类决策函数可以写作:

f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i ϕ ( x i ) ∗ ϕ ( x ) + b ∗ ) = s i g n ( ∑ i = 1 N α i ∗ y i K ( x i , x ) + b ∗ ) f(x) = sign(\sum_{i=1}^N \alpha_i^* y_i \phi(x_i)* \phi(x) + b^*) = sign(\sum_{i=1}^N \alpha_i^* y_i K(x_i, x) + b^*) f(x)=sign(i=1Nαiyiϕ(xi)ϕ(x)+b)=sign(i=1NαiyiK(xi,x)+b)

比如运用多项式和函数可以得到:

f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i ( x i ∗ x + 1 ) p + b ∗ ) f(x) = sign(\sum_{i=1}^N \alpha_i^* y_i (x_i * x + 1)^p + b^*) f(x)=sign(i=1Nαiyi(xix+1)p+b)

运用高斯和函数可以得到:

f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i exp ⁡ ( − ∣ ∣ x i − x ∣ ∣ 2 2 σ 2 ) + b ∗ ) f(x) = sign(\sum_{i=1}^N \alpha_i^* y_i \exp (- \frac {||x_i - x||^2} {2 \sigma^2}) + b^*) f(x)=sign(i=1Nαiyiexp(2σ2xix2)+b)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值