支持向量机—SMO算法_支持向量机smo算法-程序员宅基地

技术标签: 算法  python  机器学习基础  机器学习  

背景

SVM 的学习问题可以形式化为如下凸二次规划的对偶问题:
min ⁡ α      1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i s . t .    ∑ i = 1 N α i y i = 0 0 ≤ α i ≤ C \min\limits_{\alpha} \;\; \frac{1}{2}\sum\limits_{i=1}^{N}\sum\limits_{j=1}^{N}\alpha_i\alpha_jy_iy_jK(x_i,x_j) - \sum\limits_{i=1}^{N}\alpha_i\\ s.t. \; \sum\limits_{i=1}^{N}\alpha_iy_i = 0 \\ 0 \leq \alpha_i \leq C αmin21i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαis.t.i=1Nαiyi=00αiC
在这个问题中,变量是拉格朗日乘子,一个变量 α i \alpha_i αi 对应一个样本点 ( x i , y i ) (x_i,y_i) (xi,yi),变量总数等于训练样本总数。这个问题我们通过序列最小最优算法(SMO)来解决。

SMO算法思路:选择两个变量,固定其他变量,针对这两个变量构建一个二次规划问题,这两个变量分别是:(1)违反KTT条件最严重的那个。(2)另一个由约束条件确定。

SMO算法包括下面两个部分:

  1. 求解两个变量二次规划的解析方法
  2. 选择变量的启发式方法

两个变量二次规划的求解方法

假设选择两个变量是 α 1 , α 2 \alpha_1,\alpha_2 α1,α2 ,其他变量 α i ( i = 3 , 4 … , N ) \alpha_i(i=3,4\ldots,N) αi(i=3,4,N) 是固定的。固定项为常数,可以直接省略。所以SMO的最优化问题可以写成:
min ⁡ α 1 , α 2 W ( α 1 , α 2 ) = 1 2 K 11 α 1 2 + 1 2 K 22 α 2 2 + y 1 y 2 K 12 α 1 α 2 + ( α 1 + α 2 ) + y 1 α 1 ∑ i = 3 N y i α i K i l + y 2 α 2 ∑ i = 3 N y i α i K i 2 s . t .     α 1 y 1 + α 2 y 2 = − ∑ i = 3 N y i α i = ς 0 ⩽ α i ⩽ C , i = 1 , 2 \begin{aligned} \min_{\alpha_1,\alpha_2} W(\alpha_1,\alpha_2)=&\frac{1}{2}K_{11}\alpha_1^2+\frac{1}{2}K_{22}\alpha_2^2+y_1y_2K_{12}\alpha_1\alpha_2\\ &+(\alpha_1+\alpha_2)+y_1\alpha_1\sum_{i=3}^Ny_i\alpha_iK_{il}+y_2\alpha_2\sum_{i=3}^Ny_i\alpha_iK_{i2}\\ s.t. \ \ \ &\alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^Ny_i\alpha_i=\varsigma\\ &0\leqslant\alpha_i\leqslant C, i=1,2 \end{aligned} α1,α2minW(α1,α2)=s.t.   21K11α12+21K22α22+y1y2K12α1α2+(α1+α2)+y1α1i=3NyiαiKil+y2α2i=3NyiαiKi2α1y1+α2y2=i=3Nyiαi=ς0αiC,i=1,2
其中, K i j = K ( x i , x j ) , ς K_{ij}=K(x_i,x_j),\varsigma Kij=K(xi,xj),ς 是常数。 最优化问题有两个约束:不等式约束和等式约束。

根据约束条件 α 1 y 1 + α 2 y 2 = k \alpha_1y_1+\alpha_2y_2=k α1y1+α2y2=k y i y_i yi 的取值只能是1,-1。 且 0 ⩽ α i ⩽ C , 0\leqslant\alpha_i\leqslant C, 0αiC, 所以 ( α 1 , α 2 ) (\alpha_1,\alpha_2) (α1,α2) 在平行于盒子 [ 0 , C ] × [ 0 , C ] [0,C]\times [0,C] [0,C]×[0,C] 的对角线上。如下图所示:

在这里插入图片描述

因此要求的目标函数在一条平行于对角线的线段的最优值。这使得两个变量的最优化问题成为实质上的单变量优化问题( α 1 = k − α 2 \alpha_1 = k-\alpha_2 α1=kα2)。

假设原始问题的初始可行解为 α 1 o l d , α 2 o l d \alpha_1^{old},\alpha_2^{old} α1old,α2old,本次迭代的最优解为 α 1 n e w , α 2 n e w \alpha_1^{new},\alpha_2^{new} α1new,α2new,假设沿着约束方向 α 2 \alpha_2 α2未经剪辑(未考虑不等式约束)的解是 α 2 n e w , u n c \alpha_2^{new,unc} α2new,unc

由于设L、H为 α 2 n e w \alpha_2^{new} α2new 所在对角线的端点。则 α 2 n e w \alpha_2^{new} α2new 的取值范围必须满足条件:
L ≤ α 2 n e w ≤ H L \leq \alpha_2^{new} \leq H Lα2newH
y 1 ≠ y 2 y_1 \neq y_2 y1=y2 时,如上左图,则:
L = m a x ( 0 , α 2 o l d − α 1 o l d )        H = m i n ( C , C + α 2 o l d − α 1 o l d ) L = max(0, \alpha_2^{old}-\alpha_1^{old}) \;\;\;H = min(C, C+\alpha_2^{old}-\alpha_1^{old}) L=max(0,α2oldα1old)H=min(C,C+α2oldα1old)
y 1 = y 2 y_1 = y_2 y1=y2 时,如上左图,则:
L = m a x ( 0 , α 2 o l d + α 1 o l d − C )        H = m i n ( C , α 2 o l d + α 1 o l d ) L = max(0, \alpha_2^{old}+\alpha_1^{old}-C) \;\;\; H = min(C, \alpha_2^{old}+\alpha_1^{old}) L=max(0,α2old+α1oldC)H=min(C,α2old+α1old)
所以,最终的 α 2 n e w \alpha_2^{new} α2new 应该要满足以下情况:
α 2 n e w = { H α 2 n e w , u n c > H α 2 n e w , u n c L ≤ α 2 n e w , u n c ≤ H L α 2 n e w , u n c < L \alpha_2^{new}= \begin{cases} H& { \alpha_2^{new,unc} > H}\\ \alpha_2^{new,unc}& {L \leq \alpha_2^{new,unc} \leq H}\\ L& {\alpha_2^{new,unc} < L} \end{cases} α2new=Hα2new,uncLα2new,unc>HLα2new,uncHα2new,unc<L
那么应该如何求 α 2 n e w , u n c \alpha_2^{new,unc} α2new,unc ?,通过对目标函数求导可以解决。

引入变量:
g ( x ) = ∑ j = 1 m α j ∗ y j K ( x , x j ) + b ∗ E i = g ( x i ) − y i = ∑ j = 1 m α j ∗ y j K ( x i , x j ) + b − y i v i = ∑ j = 3 m y j α j K ( x i , x j ) = g ( x i ) − ∑ j = 1 2 y j α j K ( x i , x j ) − b g(x) =\sum\limits_{j=1}^{m}\alpha_j^{*}y_jK(x, x_j)+ b^{*}\\E_i = g(x_i)-y_i = \sum\limits_{j=1}^{m}\alpha_j^{*}y_jK(x_i, x_j)+ b - y_i \\ v_i = \sum\limits_{j=3}^{m}y_j\alpha_jK(x_i,x_j) = g(x_i) - \sum\limits_{j=1}^{2}y_j\alpha_jK(x_i,x_j) -b g(x)=j=1mαjyjK(x,xj)+bEi=g(xi)yi=j=1mαjyjK(xi,xj)+byivi=j=3myjαjK(xi,xj)=g(xi)j=12yjαjK(xi,xj)b
注: E i E_i Ei 是样本的真实值与预测值的误差。

v 1 , v 2 v_1,v_2 v1,v2 带入目标函数:
W ( α 1 , α 2 ) = 1 2 K 11 α 1 2 + 1 2 K 22 α 2 2 + y 1 y 2 K 12 α 1 α 2 − ( α 1 + α 2 ) + y 1 α 1 v 1 + y 2 α 2 v 2 W(\alpha_1,\alpha_2) = \frac{1}{2}K_{11}\alpha_1^2 + \frac{1}{2}K_{22}\alpha_2^2 +y_1y_2K_{12}\alpha_1 \alpha_2 -(\alpha_1 + \alpha_2) +y_1\alpha_1v_1 + y_2\alpha_2v_2 W(α1,α2)=21K11α12+21K22α22+y1y2K12α1α2(α1+α2)+y1α1v1+y2α2v2
α 1 y 1 + α 2 y 2 = ς , y i 2 = 1 \alpha_1y_1 + \alpha_2y_2 = \varsigma, \quad y_i^2=1 α1y1+α2y2=ς,yi2=1 得:
α 1 = y 1 ( ς − α 2 y 2 ) \alpha_1 = y_1(\varsigma - \alpha_2y_2) α1=y1(ςα2y2)
带入 W ( α 1 , α 2 ) W(\alpha_1,\alpha_2) W(α1,α2) 消去 α 1 \alpha_1 α1 ,得:
W ( α 2 ) = 1 2 K 11 ( ς − α 2 y 2 ) 2 + 1 2 K 22 α 2 2 + y 2 K 12 ( ς − α 2 y 2 ) α 2 − ( ς − α 2 y 2 ) y 1 − α 2 + ( ς − α 2 y 2 ) v 1 + y 2 α 2 v 2 W(\alpha_2) = \frac{1}{2}K_{11}(\varsigma - \alpha_2y_2)^2 + \frac{1}{2}K_{22}\alpha_2^2 +y_2K_{12}(\varsigma - \alpha_2y_2) \alpha_2 - (\varsigma - \alpha_2y_2)y_1 - \alpha_2 +(\varsigma - \alpha_2y_2)v_1 + y_2\alpha_2v_2 W(α2)=21K11(ςα2y2)2+21K22α22+y2K12(ςα2y2)α2(ςα2y2)y1α2+(ςα2y2)v1+y2α2v2
这样问题就变成了单变量优化问题。接下来我们通过求导来得到 α 2 n e w , u n c \alpha_2^{new,unc} α2new,unc
∂ W ∂ α 2 = K 11 α 2 + K 22 α 2 − 2 K 12 α 2 − K 11 ς y 2 + K 12 ς y 2 + y 1 y 2 − 1 − v 1 y 2 + y 2 v 2 = 0 \frac{\partial W}{\partial \alpha_2} = K_{11}\alpha_2 + K_{22}\alpha_2 -2K_{12}\alpha_2 - K_{11}\varsigma y_2 + K_{12}\varsigma y_2 +y_1y_2 -1 -v_1y_2 +y_2v_2 = 0 α2W=K11α2+K22α22K12α2K11ςy2+K12ςy2+y1y21v1y2+y2v2=0
整理得:
( K 11 + K 22 − 2 K 12 ) α 2 = y 2 ( y 2 − y 1 + ς K 11 − ς K 12 + v 1 − v 2 ) = y 2 [ y 2 − y 1 + ς K 11 − ς K 12 + ( g ( x 1 ) − ∑ j = 1 2 y j α j K ( x 1 , x j ) − b ) − ( g ( x 2 ) − ∑ j = 1 2 y j α j K ( x 2 , x j ) − b ) ] \begin{aligned} (K_{11} +K_{22}-2K_{12})\alpha_2 &= y_2(y_2-y_1 + \varsigma K_{11} - \varsigma K_{12} + v_1 - v_2) \\ &=y_2\left[y_2-y_1 + \varsigma K_{11} - \varsigma K_{12} + \left(g(x_1) - \sum\limits_{j=1}^{2}y_j\alpha_jK(x_1,x_j) -b\right) - \left(g(x_2) - \sum\limits_{j=1}^{2}y_j\alpha_jK(x_2,x_j) -b\right) \right] \end{aligned} (K11+K222K12)α2=y2(y2y1+ςK11ςK12+v1v2)=y2[y2y1+ςK11ςK12+(g(x1)j=12yjαjK(x1,xj)b)(g(x2)j=12yjαjK(x2,xj)b)]
α 1 = y 1 ( ς − α 2 y 2 ) \alpha_1 = y_1(\varsigma - \alpha_2y_2) α1=y1(ςα2y2) 带入上式:
( K 11 + K 22 − 2 K 12 ) α 2 n e w , u n c = y 2 [ y 2 − y 1 + g ( x 1 ) − g ( x 2 ) + ( α 1 y 1 + α 2 o l d y 2 ) K 11 − ( α 1 y 1 + α 2 o l d y 2 ) K 12 − ( y 1 α 1 K 11 + y 2 α 2 o l d K 12 ) + ( y 1 α 1 K 21 + y 2 α 2 o l d K 22 ) ] = y 2 [ ( K 11 + K 22 − 2 K 12 ) α 2 o l d y 2 + y 2 − y 1 + g ( x 1 ) − g ( x 2 ) ] = ( K 11 + K 22 − 2 K 12 ) α 2 o l d + y 2 ( E 1 − E 2 ) \begin{aligned} (K_{11} +K_{22}-2K_{12})\alpha_2^{new,unc} &=y_2 [ y_2-y_1 +g(x_1)- g(x_2)+(\alpha_1y_1 + \alpha_2^{old}y_2)K_{11}-(\alpha_1y_1 + \alpha_2^{old}y_2 )K_{12}\\ &\quad-(y_1\alpha_1K_{11}+y_2\alpha_2^{old} K_{12})+(y_1\alpha_1K_{21}+y_2\alpha_2 ^{old}K_{22}) ] \\\\&= y_2[(K_{11} +K_{22}-2K_{12})\alpha_2^{old}y_2 +y_2-y_1 +g(x_1) - g(x_2)]\\\\ & = (K_{11} +K_{22}-2K_{12}) \alpha_2^{old} + y_2(E_1-E_2)\\ \end{aligned} (K11+K222K12)α2new,unc=y2[y2y1+g(x1)g(x2)+(α1y1+α2oldy2)K11(α1y1+α2oldy2)K12(y1α1K11+y2α2oldK12)+(y1α1K21+y2α2oldK22)]=y2[(K11+K222K12)α2oldy2+y2y1+g(x1)g(x2)]=(K11+K222K12)α2old+y2(E1E2)
所以:
α 2 n e w , u n c = α 2 o l d + y 2 ( E 1 − E 2 ) K 11 + K 22 − 2 K 12 ) \alpha_2^{new,unc} = \alpha_2^{old} + \frac{y_2(E_1-E_2)}{K_{11} +K_{22}-2K_{12})} α2new,unc=α2old+K11+K222K12)y2(E1E2)

加上不等式约束,即剪辑后的结果为:
α 2 n e w = { H α 2 n e w , u n c > H α 2 n e w , u n c L ≤ α 2 n e w , u n c ≤ H L α 2 n e w , u n c < L \alpha_2^{new}= \begin{cases} H& { \alpha_2^{new,unc} > H}\\ \alpha_2^{new,unc}& {L \leq \alpha_2^{new,unc} \leq H}\\ L& {\alpha_2^{new,unc} < L} \end{cases} α2new=Hα2new,uncLα2new,unc>HLα2new,uncHα2new,unc<L
α 1 o l d y 1 + α 2 o l d y 2 = α 1 n e w y 1 + α 2 n e w y 2 = ς \alpha_1^{old}y_1 + \alpha_2^{old}y_2 = \alpha_1^{new}y_1 + \alpha_2^{new}y_2 =\varsigma α1oldy1+α2oldy2=α1newy1+α2newy2=ς,可得:
α 1 n e w = α 1 o l d + y 1 y 2 ( α 2 o l d − α 2 n e w ) \alpha_1^{new} = \alpha_1^{old} + y_1y_2(\alpha_2^{old} - \alpha_2^{new}) α1new=α1old+y1y2(α2oldα2new)

选择变量的启发式方法

SMO算法在每个子问题中选择两个变量优化,其中至少一个变量时违反KKT条件的。

第一个变量的选择

SMO称选择第一个变量的过程为外层循环,外层循环选择出不满足KKT条件的样本点。

先来回顾一下KKT条件的对偶互补条件为:
α i ∗ ( y i ( w T x i + b ) − 1 + ξ i ∗ ) = 0 \alpha_{i}^{*}(y_i(w^Tx_i + b) - 1 + \xi_i^{*}) = 0 αi(yi(wTxi+b)1+ξi)=0
g ( x ) = ∑ j = 1 m α j ∗ y j K ( x , x j ) + b ∗ g(x) =\sum\limits_{j=1}^{m}\alpha_j^{*}y_jK(x, x_j)+ b^{*} g(x)=j=1mαjyjK(x,xj)+b所以有:
α i ∗ = 0 ⇒ y i g ( x i ) ≥ 1 0 < α i ∗ < C ⇒ y i g ( x i ) = 1 α i ∗ = C ⇒ y i g ( x i ) ≤ 1 \alpha_{i}^{*} = 0 \Rightarrow y_ig(x_i) \geq 1\\ 0 <\alpha_{i}^{*} < C \Rightarrow y_ig(x_i) = 1\\ \alpha_{i}^{*}= C \Rightarrow y_ig(x_i) \leq 1 αi=0yig(xi)10<αi<Cyig(xi)=1αi=Cyig(xi)1
选择的顺序是:首先选择违反 0 < α i ∗ < C ⇒ y i g ( x i ) = 1 0 <\alpha_{i}^{*} < C \Rightarrow y_ig(x_i) = 1 0<αi<Cyig(xi)=1 这个条件的点,即在间隔边界上的支持向量点。如果满足,再选择违反 α i ∗ = 0 ⇒ y i g ( x i ) ≥ 1 , α i ∗ = C ⇒ y i g ( x i ) ≤ 1 \alpha_{i}^{*} = 0 \Rightarrow y_ig(x_i) \geq 1,\alpha_{i}^{*}= C \Rightarrow y_ig(x_i) \leq 1 αi=0yig(xi)1αi=Cyig(xi)1 这个条件的点。

第二个变量的选择

在确定第一个变量 α 1 \alpha_1 α1 的条件下,寻找第二个变量 α 2 \alpha_2 α2 。由公式可知:
α 2 n e w , u n c = α 2 o l d + y 2 ( E 1 − E 2 ) K 11 + K 22 − 2 K 12 \alpha_2^{new,unc} = \alpha_2^{old} + \frac{y_2(E_1-E_2)}{K_{11} +K_{22}-2K_{12}} α2new,unc=α2old+K11+K222K12y2(E1E2)
可知: α 2 n e w \alpha_2^{new} α2new 依赖于 ∣ E 1 − E 2 ∣ |E_1-E_2| E1E2 。选择 α 2 \alpha_2 α2 的一个标准是:使得 ∣ E 1 − E 2 ∣ |E_1-E_2| E1E2 最大。因为 α 1 \alpha_1 α1 已经确定, E 1 E_1 E1 也确定了。所以:

(1)当 E 1 > 0 E_1>0 E1>0 时,选择最小的 E i E_i Ei 作为 E 2 E_2 E2

(2)当 E 1 ≤ 0 E_1 \leq 0 E10 时,选择最大的 E i E_i Ei 作为 E 2 E_2 E2

注:为了节省计算时间。通常把所有的 E i E_i Ei 的值保存在一个列表中。

计算阈值b和差值 E i E_i Ei

每次完成两个变量的优化后,都要重新计算阈值 b b b。当 0 < α 1 n e w < C 0<\alpha_1^{new}<C 0<α1new<C 时,由KKT条件: 0 < α i ∗ < C ⇒ y i g ( x i ) = 1 0 <\alpha_{i}^{*} < C \Rightarrow y_ig(x_i) = 1 0<αi<Cyig(xi)=1 可知:
y 1 = ∑ i = 1 N α i y i K i 1 + b 1 y_1 = \sum\limits_{i=1}^{N}\alpha_iy_iK_{i1} +b_1 y1=i=1NαiyiKi1+b1
所以:
b 1 n e w = y 1 − ∑ i = 3 N α i y i K i 1 − α 1 n e w y 1 K 11 − α 2 n e w y 2 K 21 b_1^{new} = y_1 - \sum\limits_{i=3}^{N}\alpha_iy_iK_{i1} - \alpha_{1}^{new}y_1K_{11} - \alpha_{2}^{new}y_2K_{21} b1new=y1i=3NαiyiKi1α1newy1K11α2newy2K21
E 1 E_1 E1 的定义式得:
E 1 = g ( x 1 ) − y 1 = ∑ i = 3 N α i y i K i 1 + α 1 o l d y 1 K 11 + α 2 o l d y 2 K 21 + b o l d − y 1 E_1 = g(x_1) - y_1 = \sum\limits_{i=3}^{N}\alpha_iy_iK_{i1} + \alpha_{1}^{old}y_1K_{11} + \alpha_{2}^{old}y_2K_{21} + b^{old} -y_1 E1=g(x1)y1=i=3NαiyiKi1+α1oldy1K11+α2oldy2K21+boldy1
所以:
y 1 − ∑ i = 3 N α i y i K i 1 = α 1 o l d y 1 K 11 + α 2 o l d y 2 K 21 + b o l d − E 1 y_1 - \sum\limits_{i=3}^{N}\alpha_iy_iK_{i1} = \alpha_{1}^{old}y_1K_{11} + \alpha_{2}^{old}y_2K_{21} + b^{old} - E_1 y1i=3NαiyiKi1=α1oldy1K11+α2oldy2K21+boldE1
带入 b 1 n e w b_1^{new} b1new 得:
b 1 n e w = − E 1 − y 1 K 11 ( α 1 n e w − α 1 o l d ) − y 2 K 21 ( α 2 n e w − α 2 o l d ) + b o l d b_1^{new} = -E_1 -y_1K_{11}(\alpha_{1}^{new} - \alpha_{1}^{old}) -y_2K_{21}(\alpha_{2}^{new} - \alpha_{2}^{old}) + b^{old} b1new=E1y1K11(α1newα1old)y2K21(α2newα2old)+bold
0 < α 2 n e w < C 0<\alpha_2^{new}<C 0<α2new<C 时,同理可得:
b 2 n e w = − E 2 − y 1 K 12 ( α 1 n e w − α 1 o l d ) − y 2 K 22 ( α 2 n e w − α 2 o l d ) + b o l d b_2^{new} = -E_2 -y_1K_{12}(\alpha_{1}^{new} - \alpha_{1}^{old}) -y_2K_{22}(\alpha_{2}^{new} - \alpha_{2}^{old}) + b^{old} b2new=E2y1K12(α1newα1old)y2K22(α2newα2old)+bold
所以:
b n e w = b 1 n e w + b 2 n e w 2 b^{new} = \frac{b_1^{new} + b_2^{new}}{2} bnew=2b1new+b2new
更新 E i E_i Ei:
E i = ∑ S y j α j K ( x i , x j ) + b n e w − y i E_i = \sum\limits_{S}y_j\alpha_jK(x_i,x_j) + b^{new} -y_i Ei=SyjαjK(xi,xj)+bnewyi
其中, S S S 是所有支持向量得集合。

SMO算法

输入是m个样本 ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) , {(x_1,y_1), (x_2,y_2), ..., (x_m,y_m),} (x1,y1),(x2,y2),...,(xm,ym), 其中,$x_i \in \mathcal X = \mathbf R^n $ , y i ∈ Y = − 1 , + 1 , i = 1 , 2 … , N y_i \in \mathcal Y = {-1,+1},i=1,2\ldots,N yiY=1,+1i=1,2,N,精度 ε \varepsilon ε ;

输出:近似解 α ^ \hat \alpha α^

(1)取初值 α ( 0 ) = 0 \alpha^{(0)}=0 α(0)=0 ,令 k = 0 k=0 k=0

(2) 选取优化变量 α 1 k , α 2 k \alpha_1^{k},\alpha_2^{k} α1k,α2k,解析求解两个变量的最优化问题,求解得最优解 α 1 ( k + 1 ) , α 2 ( k + 1 ) \alpha_1^{(k+1)},\alpha_2^{(k+1)} α1(k+1),α2(k+1) ,更新 α \alpha α α k + 1 \alpha^{k+1} αk+1

(3)若在精度 ε \varepsilon ε 范围内满足停机条件:
∑ i = 1 m α i y i = 0 , 0 ≤ α i ≤ C , i = 1 , 2... m α i k + 1 = 0 ⇒ y i g ( x i ) ≥ 1 0 < α i k + 1 < C ⇒ y i g ( x i ) = 1 α i k + 1 = C ⇒ y i g ( x i ) ≤ 1 \sum\limits_{i=1}^{m}\alpha_iy_i = 0,\quad 0 \leq \alpha_i \leq C, i =1,2...m \\ \alpha_{i}^{k+1} = 0 \Rightarrow y_ig(x_i) \geq 1 \\ 0 <\alpha_{i}^{k+1} < C \Rightarrow y_ig(x_i) = 1 \\ \alpha_{i}^{k+1}= C \Rightarrow y_ig(x_i) \leq 1 i=1mαiyi=0,0αiC,i=1,2...mαik+1=0yig(xi)10<αik+1<Cyig(xi)=1αik+1=Cyig(xi)1
其中:
g ( x ) = ∑ j = 1 N α j ∗ y j K ( x , x j ) + b ∗ g(x) =\sum\limits_{j=1}^{N}\alpha_j^{*}y_jK(x, x_j)+ b^{*} g(x)=j=1NαjyjK(x,xj)+b
则转(4),否则令 k = k + 1 k=k+1 k=k+1 ,转(2);

(4)取 α ^ = α ( k + 1 ) \hat \alpha = \alpha^{(k+1)} α^=α(k+1)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhong_ddbb/article/details/105938002

智能推荐

FTP命令字和返回码_ftp 登录返回230-程序员宅基地

文章浏览阅读3.5k次,点赞2次,收藏13次。为了从FTP服务器下载文件,需要要实现一个简单的FTP客户端。FTP(文件传输协议) 是 TCP/IP 协议组中的应用层协议。FTP协议使用字符串格式命令字,每条命令都是一行字符串,以“\r\n”结尾。客户端发送格式是:命令+空格+参数+"\r\n"的格式服务器返回格式是以:状态码+空格+提示字符串+"\r\n"的格式,代码只要解析状态码就可以了。读写文件需要登陆服务器,特殊用..._ftp 登录返回230

centos7安装rabbitmq3.6.5_centos7 安装rabbitmq3.6.5-程序员宅基地

文章浏览阅读648次。前提:systemctl stop firewalld 关闭防火墙关闭selinux查看getenforce临时关闭setenforce 0永久关闭sed-i'/SELINUX/s/enforcing/disabled/'/etc/selinux/configselinux的三种模式enforcing:强制模式,SELinux 运作中,且已经正确的开始限制..._centos7 安装rabbitmq3.6.5

idea导入android工程,idea怎样导入Android studio 项目?-程序员宅基地

文章浏览阅读5.8k次。满意答案s55f2avsx2017.09.05采纳率:46%等级:12已帮助:5646人新版Android Studio/IntelliJ IDEA可以直接导入eclipse项目,不再推荐使用eclipse导出gradle的方式2启动Android Studio/IntelliJ IDEA,选择 import project3选择eclipse 项目4选择 create project f..._android studio 项目导入idea 看不懂安卓项目

浅谈AI大模型技术:概念、发展和应用_ai大模型应用开发-程序员宅基地

文章浏览阅读860次,点赞2次,收藏6次。AI大模型技术已经在自然语言处理、计算机视觉、多模态交互等领域取得了显著的进展和成果,同时也引发了一系列新的挑战和问题,如数据质量、计算效率、知识可解释性、安全可靠性等。城市运维涉及到多个方面,如交通管理、环境监测、公共安全、社会治理等,它们需要处理和分析大量的多模态数据,如图像、视频、语音、文本等,并根据不同的场景和需求,提供合适的决策和响应。知识搜索有多种形式,如语义搜索、对话搜索、图像搜索、视频搜索等,它们可以根据用户的输入和意图,从海量的数据源中检索出最相关的信息,并以友好的方式呈现给用户。_ai大模型应用开发

非常详细的阻抗测试基础知识_阻抗实部和虚部-程序员宅基地

文章浏览阅读8.2k次,点赞12次,收藏121次。为什么要测量阻抗呢?阻抗能代表什么?阻抗测量的注意事项... ...很多人可能会带着一系列的问题来阅读本文。不管是数字电路工程师还是射频工程师,都在关注各类器件的阻抗,本文非常值得一读。全文13000多字,认真读完大概需要2小时。一、阻抗测试基本概念阻抗定义:阻抗是元器件或电路对周期的交流信号的总的反作用。AC 交流测试信号 (幅度和频率)。包括实部和虚部。​图1 阻抗的定义阻抗是评测电路、元件以及制作元件材料的重要参数。那么什么是阻抗呢?让我们先来看一下阻抗的定义。首先阻抗是一个矢量。通常,阻抗是_阻抗实部和虚部

小学生python游戏编程arcade----基本知识1_arcade语言 like-程序员宅基地

文章浏览阅读955次。前面章节分享试用了pyzero,pygame但随着想增加更丰富的游戏内容,好多还要进行自己编写类,从今天开始解绍一个新的python游戏库arcade模块。通过此次的《连连看》游戏实现,让我对swing的相关知识有了进一步的了解,对java这门语言也有了比以前更深刻的认识。java的一些基本语法,比如数据类型、运算符、程序流程控制和数组等,理解更加透彻。java最核心的核心就是面向对象思想,对于这一个概念,终于悟到了一些。_arcade语言 like

随便推点

【增强版短视频去水印源码】去水印微信小程序+去水印软件源码_去水印机要增强版-程序员宅基地

文章浏览阅读1.1k次。源码简介与安装说明:2021增强版短视频去水印源码 去水印微信小程序源码网站 去水印软件源码安装环境(需要材料):备案域名–服务器安装宝塔-安装 Nginx 或者 Apachephp5.6 以上-安装 sg11 插件小程序已自带解析接口,支持全网主流短视频平台,搭建好了就能用注:接口是公益的,那么多人用解析慢是肯定的,前段和后端源码已经打包,上传服务器之后在配置文件修改数据库密码。然后输入自己的域名,进入后台,创建小程序,输入自己的小程序配置即可安装说明:上传源码,修改data/_去水印机要增强版

verilog进阶语法-触发器原语_fdre #(.init(1'b0) // initial value of register (1-程序员宅基地

文章浏览阅读557次。1. 触发器是FPGA存储数据的基本单元2. 触发器作为时序逻辑的基本元件,官方提供了丰富的配置方式,以适应各种可能的应用场景。_fdre #(.init(1'b0) // initial value of register (1'b0 or 1'b1) ) fdce_osc (

嵌入式面试/笔试C相关总结_嵌入式面试笔试c语言知识点-程序员宅基地

文章浏览阅读560次。本该是不同编译器结果不同,但是尝试了g++ msvc都是先计算c,再计算b,最后得到a+b+c是经过赋值以后的b和c参与计算而不是6。由上表可知,将q复制到p数组可以表示为:*p++=*q++,*优先级高,先取到对应q数组的值,然后两个++都是在后面,该行运算完后执行++。在电脑端编译完后会分为text data bss三种,其中text为可执行程序,data为初始化过的ro+rw变量,bss为未初始化或初始化为0变量。_嵌入式面试笔试c语言知识点

57 Things I've Learned Founding 3 Tech Companies_mature-程序员宅基地

文章浏览阅读2.3k次。57 Things I've Learned Founding 3 Tech CompaniesJason Goldberg, Betashop | Oct. 29, 2010, 1:29 PMI’ve been founding andhelping run techn_mature

一个脚本搞定文件合并去重,大数据处理,可以合并几个G以上的文件_python 超大文本合并-程序员宅基地

文章浏览阅读1.9k次。问题:先讲下需求,有若干个文本文件(txt或者csv文件等),每行代表一条数据,现在希望能合并成 1 个文本文件,且需要去除重复行。分析:一向奉行简单原则,如无必要,绝不复杂。如果数据量不大,那么如下两条命令就可以搞定合并:cat a.txt >> new.txtcat b.txt >> new.txt……去重:cat new...._python 超大文本合并

支付宝小程序iOS端过渡页DFLoadingPageRootController分析_类似支付宝页面过度加载页-程序员宅基地

文章浏览阅读489次。这个过渡页是第一次打开小程序展示的,点击某个小程序前把手机的开发者->network link conditioner->enable & very bad network 就会在停在此页。比如《支付宝运动》这个小程序先看这个类的.h可以看到它继承于DTViewController点击左上角返回的方法- (void)back;#import "DTViewController.h"#import "APBaseLoadingV..._类似支付宝页面过度加载页

推荐文章

热门文章

相关标签