支持向量机是一种二分类模型。有简至繁:
- 线性可分支持向量机(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 w∗x+b=0,分离超平面将特征空间划分为两部分,一部分为正类,另一部分为负类。
一般来说,一个点距离分离超平面的远近可以表示分类预测的确信程度。 ∣ w ∗ x + b ∣ |w*x+b| ∣w∗x+b∣能够相对表示点 x x x距离超平面的距离,而 w ∗ x + b w*x+b w∗x+b的符号与类标记 y y y的符号是否一致能够表示分类是否正确。所以可以用 y ( w ∗ x + b ) y(w*x+b) y(w∗x+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(w∗xi+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(∣∣w∣∣w∗x+∣∣w∣∣b)(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(∣∣w∣∣w∗xi+∣∣w∣∣b)≥γ,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,bmax∣∣w∣∣γ^st...yi(w∗xi+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} 21∣∣w∣∣2。于是就可以得到线性可分支持向量机学习的最优化问题:
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,bmin21∣∣w∣∣2st...yi(w∗xi+b)≥1,i=1,2,...,N.(8)
1.2 学习的对偶算法
首先构建拉格朗日函数,引进拉格朗日乘子 α i ≥ 0 , i = 1 , 2 , . . . , N \alpha_i \ge 0, i=1, 2, ..., N αi≥0,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,α)=21∣∣w∣∣2−i=1∑Nαiyi(w∗xi+b)+i=1∑Nα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 ∂w∂L=w−i=1∑Nα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 ∂b∂L=−i=1∑Nα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=1∑Nαiyixi(11)
∑ i = 1 N α i y i = 0 (12) \sum_{i=1}^N \alpha_i y_i = 0 \tag{12} i=1∑Nα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=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
即:
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=1∑Nj=1∑Nαiαjyiyj(xi∗xj)+i=1∑Nα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} αmax−21i=1∑Nj=1∑Nαiαjyiyj(xi∗xj)+i=1∑Nαist...i=1∑Nαiyi=0;αi≥0,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=1∑Nj=1∑Nαiαjyiyj(xi∗xj)+i=1∑Nαist...i=1∑Nαiyi=0;αi≥0,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=1∑Nλigi(x)+j=1∑Nμ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,bmin:21∣∣w∣∣2st...:yi(w∗xi+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...:21∣∣w∣∣2+i=1∑Nλi[1−yi(w∗xi+b)]λi≥0,λi[1−yi(w∗xi+b)]=0,1−yi(w∗xi+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} ∂w∂L=w−i=1∑Nαi∗yixi=0∂b∂L=−i=1∑Nαi∗yi=0αi[1−yi(w∗xi+b)]=0,i=1,2,...,N1−yi(w∗xi+b)≤0,i=1,2,...,Nλi≥0,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=1∑Nαi∗yixi
其中至少一个 α j ∗ > 0 \alpha_j^* > 0 αj∗>0,因为 α j ∗ ≥ 0 \alpha_j^* \ge 0 αj∗≥0, 不可能全部为0,所以至少一个大于0.
所以就有
1 − y j ( w ∗ x j + b ) = 0 1 - y_j(w * x_j + b) = 0 1−yj(w∗xj+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∗=yj−i=1∑Nαi∗yi(xi∗xj)
分离超平面可以写为
∑ 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=1∑Nαi∗yi(x∗xi)+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=1∑Nαi∗yi(x∗xi)+b∗)
2. 线性支持向量机与软间隔最大化
2.1 软间隔
如果训练数据中有不可分奇异点,硬间隔最大化就不能成立,所以需要一个松弛变量 ξ i ≥ 0 \xi_i \ge 0 ξi≥0,使得函数间隔加上松弛变量大于1。这样,约束条件就变成为了:
y i ( w ∗ x i + b ) ≥ 1 − ξ i (16) y_i (w * x_i + b) \ge 1 - \xi_i \tag{16} yi(w∗xi+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} 21∣∣w∣∣2+Ci=1∑Nξ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,αmin21∣∣w∣∣2+Ci=1∑Nξist...yi(w∗xi+b)≥1−ξi;ξi≥0,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,ξ,α,μ)=21∣∣w∣∣2+Ci=1∑Nξi−i=1∑Nαi(yi(w∗xi+b)−1+ξi)−i=1∑Nμiξi(19)
其中 α i ≥ 0 , μ i ≥ 0 \alpha_i \ge 0, \mu_i \ge 0 αi≥0,μi≥0。
对偶问题时拉格朗日的极大极小问题。首先求 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 ∂w∂L=w−i=1∑Nα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 ∂b∂L=−i=1∑Nα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=1∑Nαiyixi(20)
∑ i = 1 N α i y i = 0 (21) \sum_{i=1}^N \alpha_i y_i = 0 \tag{21} i=1∑Nα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=1∑Nj=1∑Nαiαjyiyj(xi∗xj)+i=1∑Nα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=1∑Nj=1∑Nαiαjyiyj(xi∗xj)+i=1∑Nαii=1∑Nαiyi=0C−αi−μi=0αi≥0μi≥0,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=1∑Nj=1∑Nαiαjyiyj(xi∗xj)+i=1∑Nαii=1∑Nα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...:21∣∣w∣∣2+Ci=1∑Nξiyi(w∗xi+b)≥1−ξiξi≥0,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=21∣∣w∣∣2+Ci=1∑Nξi−i=1∑Nαi(yi(w∗xi+b)−1+ξi)−i=1∑Nμiξiαi(yi(w∗xi+b)−1+ξi)=0μiξi=0yi(w∗xi+b)≥1−ξiξi≥0αi≥0μi≥0,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} ∂w∂L=w−i=1∑Nαiyixi=0∂b∂L=−i=1∑Nαiyi=0∂ξ∂L=C−αi−μi=0αi(yi(w∗xi+b)−1+ξi)=0,i=1,2,...,Nμiξi=0,i=1,2,...,Nyi(w∗xi+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
若存在 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=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_i (x_i * x_j) b∗=yj−i=1∑Nαi∗yi(xi∗xj)
分离超平面可以写为
∑ 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=1∑Nαi∗yi(x∗xi)+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=1∑Nαi∗yi(x∗xi)+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...21∣∣w∣∣2+Ci=1∑Nξiyi(w∗xi+b)≥1−ξiξi≥0,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,1−yi(w∗xi+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=1∑Nmax(0,1−yi(w∗xi+b))+λ∣∣w∣∣2
其中 λ = 1 2 C \lambda = \frac {1} {2C} λ=2C1
第一项可以理解为,当样本被正确分类且函数间隔
y
i
(
w
∗
x
i
+
b
)
>
1
y_i(w*x_i +b) > 1
yi(w∗xi+b)>1,损失为0,否则损失为
1
−
y
i
(
w
∗
x
i
+
b
)
1 - y_i (w * x_i + b)
1−yi(w∗xi+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)⇒(x∗z)=(x1z1+x2z2)ϕ(x)=(x12,x22,2x1x2);ϕ(z)=(z12,z22,2z1z2)⇒ϕ(x)∗ϕ(z)=(x12z12+x22z22,2x1x2z1z2)=(x∗z)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=1∑Nαi∗yiϕ(xi)∗ϕ(x)+b∗)=sign(i=1∑Nαi∗yiK(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=1∑Nαi∗yi(xi∗x+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=1∑Nαi∗yiexp(−2σ2∣∣xi−x∣∣2)+b∗)