一文看懂 序列最小最优化算法---SMO

一、SMO的背景介绍

序列最小最优化算法(sequential minimal optimization,SMO)于1998年被John Platt发明,是一种用于解决支持向量机训练期间出现的二次规划问题的算法。在SMO之前也有一些算法用于解决此类问题,但是这些算法都比较复杂,所以高效的SMO提出之时就在SVM社区引起了一阵轰动。

二、从SVM说起—SMO要解决什么

如何优化SVM的参数?首先我们通过拉格朗日乘子法建立拉格朗日函数,再根据拉格朗日的对偶性求解极大极小值问题。这些,我已经在《支持向量机一:线性支持向量机介绍》、《支持向量机二:非线性支持向量机》中介绍,感兴趣的朋友可以看一下。
非线性优化最终要解决一个二次规划问题,即 m i n a    1 2 ∑ i = 1 N ∑ j = 1 N a i a j y i y j K ( x i , x j ) − ∑ i = 1 N a i    . . .    ( 1 )   s . t .    ∑ i = 1 N a i y i = 0 ,     i = 1 , 2 , . , N    . . .    ( 2 )   0 ≤ a i ≤ C ,     i = 1 , 2 , . , N    . . .    ( 3 ) min_a \ \ \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^Na_ia_jy_iy_jK(x_i,x_j)-\sum_{i=1}^Na_i\ \ ... \ \ (1)\\\ s.t. \ \ \sum_{i=1}^Na_iy_i=0,\ \ \ i=1,2,.,N\ \ ...\ \ (2)\\\ 0\leq a_i\leq C,\ \ \ i=1,2,.,N\ \ ...\ \ (3) mina  21i=1Nj=1NaiajyiyjK(xi,xj)i=1Nai  ...  (1) s.t.  i=1Naiyi=0,   i=1,2,.,N  ...  (2) 0aiC,   i=1,2,.,N  ...  (3)我们知道(不知道的请打开上面两个链接)非线性SVM的超平面可以写成 ∑ i = 1 N a i y i K ( x i , x ) + b = 0    . . .    ( 4 ) \sum_{i=1}^Na_iy_iK(x_i,x)+b=0\ \ ...\ \ (4) i=1NaiyiK(xi,x)+b=0  ...  (4)分类决策函数可以写成 f ( x ) = s i g n ( ∑ i = 1 N a i y i K ( x i , x ) + b )    . . .    ( 5 ) f(x)=sign(\sum_{i=1}^Na_iy_iK(x_i,x)+b)\ \ ...\ \ (5) f(x)=sign(i=1NaiyiK(xi,x)+b)  ...  (5)此时式(4)(5)中的 a i , b a_i,b ai,b都是未知数,需要求解。如何通过数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } D=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} D={(x1,y1),(x2,y2),...,(xN,yN)}求得非线性SVM的分离超平面和分类决策函数?

首先,我们通过SMO算法求解式(1)(2)(3)的最优解 a ∗ = ( a 1 ∗ , a 2 ∗ , . . . , a N ∗ ) T a^*=(a_1^*,a_2^*,...,a_N^*)^T a=(a1,a2,...,aN)T其次,我们从 a ∗ a^* a中选择一个分量 a j ∗ a_j^* aj ( 0 < a j ∗ < C 00<aj<C,即支持向量中的样本点对应的 a j a_j aj),根据支持向量满足的条件得 b ∗ = y j − ∑ i = 1 N a i ∗ y i K ( x i , x ) b^*=y_j-\sum_{i=1}^Na_i^*y_iK(x_i,x) b=yji=1NaiyiK(xi,x)于是,我们求得分离超平面: ∑ i = 1 N a i ∗ y i K ( x i , x ) + b ∗ = 0 \sum_{i=1}^Na_i^*y_iK(x_i,x)+b^*=0 i=1NaiyiK(xi,x)+b=0还有分类决策函数: f ( x ) = s i g n ( ∑ i = 1 N a i ∗ y i K ( x i , x ) + b ∗ ) f(x)=sign(\sum_{i=1}^Na_i^*y_iK(x_i,x)+b^*) f(x)=sign(i=1NaiyiK(xi,x)+b)

从以上的过程,你应该明白SMO主要用在求解式(1)(2)(3)中的 a i a_i ai的。

三、SMO的策略

你需要求得不是一个 a i a_i ai,而是一连串的 a = ( a 1 , a 2 , . . . , a N ) T a=(a_1,a_2,...,a_N)^T a=(a1,a2,...,aN)T a i a_i ai是拉格朗日乘子,从式(5)也能看出,一个 a i a_i ai对应一个样本点 ( x i , y i ) (x_i,y_i) (xi,yi),也就是说数据集 D D D的样本容量N越大,需要求解的参数 a i a_i ai就越多。考虑一下你做过的数据集,是不是N在一百以内已经是一个小数据集?
面对如此多的参数,以前的解决算法局限明显,直到SMO出世,并且SMO的出世还带火了SVM(是不是像硬件的提升带火了深度学习)。
面对如此多的参数 a i a_i ai,SMO是如何求解的呢?既然一下子求这么多参数难求,不如一次只求解两个,即 “固定其他变量,一次只求两个变量,直到求出所有变量”
没懂?我再罗嗦点。对于 a = ( a 1 , a 2 , . . . , a N ) T a=(a_1,a_2,...,a_N)^T a=(a1,a2,...,aN)T,求解步骤如下:

  1. 设定 a ( 0 ) = 0 a^{(0)}=0 a(0)=0;
  2. 按一定规则选取 a 1 , a 2 a_1,a_2 a1a2,固定其它的 a i   ( i ≥ 3 ) a_i \ (i \geq 3) ai (i3)
  3. 优化 a 1 , a 2 a_1,a_2 a1a2直至其满足条件,此时求解了参数 a 1 , a 2 a_1,a_2 a1a2
  4. 按一定规则选取 a 3 , a 4 a_3,a_4 a3a4,固定其他参数 a i a_i ai,此时包含计算好的 a 1 , a 2 a_1,a_2 a1a2
  5. 优化 a 3 , a 4 a_3,a_4 a3a4直至其满足条件,此时求解了参数 a 3 , a 4 a_3,a_4 a3a4
  6. 然后重复以上方法求 ( a 5 , a 6 ) , ( a 7 , a 8 ) , . . . . (a_5,a_6),(a_7,a_8),.... (a5,a6),(a7,a8),....

如果懂了,就继续阅读下去吧。

四、SMO的求解过程

我们探讨 a 1 a_1 a1 a 2 a_2 a2的求解过程,此时固定参数 a i   ( i = 3 , 4 , . . . , N ) a_i\ (i=3,4,...,N) ai (i=3,4,...,N)。因此,SMO最优化式(1)(2)(3)的子问题可以写成 m i n a 1 , a 2     W ( a 1 , a 2 ) = 1 2 K 11 a 1 2 + 1 2 K 22 a 2 2 + y 1 y 2 K 12 a 1 a 2 − ( a 1 + a 2 ) + y 1 a 1 ∑ 3 N y i a i K i 1 + y 2 a 2 ∑ i = 3 N y i a i K i 2    . . .    ( 6 )   s . t .     a 1 y 1 + a 2 y 2 = − ∑ i = 3 N y i a i = ς    . . .    ( 7 )   0 ≤ a i ≤ C ,     i = 1 , 2     . . .    ( 8 ) min_{a_1,a_2}\ \ \ W(a_1,a_2)=\frac{1}{2}K_{11}a_1^2+\frac{1}{2}K_{22}a_2^2+y_1y_2K_{12}a_1a_2-(a_1+a_2)+y_1a_1\sum_3^Ny_ia_iK_{i1}+y_2a_2\sum_{i=3}^Ny_ia_iK_{i2}\ \ ...\ \ (6)\\\ s.t.\ \ \ a_1y_1+a_2y_2=-\sum_{i=3}^Ny_ia_i=\varsigma\ \ ...\ \ (7)\\\ 0\leq a_i\leq C,\ \ \ i=1,2\ \ \ ...\ \ (8) mina1,a2   W(a1,a2)=21K11a12+21K22a22+y1y2K12a1a2(a1+a2)+y1a13NyiaiKi1+y2a2i=3NyiaiKi2  ...  (6) s.t.   a1y1+a2y2=i=3Nyiai=ς  ...  (7) 0aiC,   i=1,2   ...  (8)其中, K i j = K ( x i , x j ) , i , j = 1 , 2 , . . , N K_{ij}=K(x_i,x_j),i,j=1,2,..,N Kij=K(xi,xj),i,j=1,2,..,N ς \varsigma ς是常数,并且式(6)中省略了不含 a 1 , a 2 a_1,a_2 a1,a2的常数项。
在我们固定了 a 3 , a 4 , . . . , a N a_3,a_4,...,a_N a3,a4,...,aN之后,剩下两个变量 a 1 , a 2 a_1,a_2 a1,a2,但是这两个变量中只有一个自由变量,即当求得其中一个变量后,另外一个变量也顺应求出。例如当求出 a 2 a_2 a2后,由式(2)可求得 a 1 = − y 1 ∑ i = 2 N a i y i a_1=-y_1\sum_{i=2}^Na_iy_i a1=y1i=2Naiyi
我们迭代求 a a a,必然牵涉到新的值和旧的值,并且我们还需要判断求得的 a a a是否满足式(7)(8),因此我们设初始可行解位 a 1 o l d , a 2 o l d a_1^{old},a_2^{old} a1old,a2old,新解但未判断是否满足式(7)(8)的解为 a 1 n e w , u n c , a 2 n e w , u n c a_1^{new,unc},a_2^{new,unc} a1new,unc,a2new,unc,新解并判断满足式(7)(8)的解为 a 1 n e w , a 2 n e w a_1^{new},a_2^{new} a1new,a2new

对于限制条件式(7)(8),还是不够直观,我们先把式(7)(8)写成不等式的样子。以 a 2 a_2 a2为例,首先,式(7)(8)给出了 a 2 a_2 a2的限制条件,并且式(7)含有变量 y i y_i yi,但是我么已知 y i ∈ − 1 , 1 y_i∈{-1,1} yi11,即 y 1 , y 2 y_1,y_2 y1,y2存在两种情况: y 1 = y 2 y_1=y_2 y1=y2 y 1 ≠ y 2 y_1\neq y_2 y1=y2

y 1 = y 2 y_1=y_2 y1=y2时,根据式(7)(8),有 m a x ( 0 , a 2 o l d + a 1 o l d − C ) ≤ a 2 n e w ≤ m i n ( C , a 2 o l d + a 1 o l d ) max(0,a_2^{old}+a_1^{old}-C)\leq a_2^{new}\leq min(C,a_2^{old}+a_1^{old}) max(0,a2old+a1oldC)a2newmin(C,a2old+a1old) y 1 ≠ y 2 y1 \neq y_2 y1=y2时,根据式(7)(8),有 m a x ( 0 , a 2 o l d − a 1 o l d ) ≤ a 2 n e w ≤ m i n ( C , C + a 2 o l d − a 1 o l d ) max(0,a_2^{old}-a_1^{old})\leq a_2^{new}\leq min(C,C+a_2^{old}-a_1^{old}) max(0,a2olda1old)a2newmin(C,C+a2olda1old)两种情况下,得到的 a 2 n e w a_2^{new} a2new的形式是一样的,我们统一令左边的项为 L L L,令右边的项为 H H H,则有 L ≤ a 2 n e w ≤ H     . . .     ( 9 ) L\leq a_2^{new}\leq H\ \ \ ...\ \ \ (9) La2newH   ...   (9)

4.1 根据 a o l d a^{old} aold求解 a n e w , u n c a^{new,unc} anew,unc

首先初始化 a o l d = 0 , b o l d = 0 a^{old}=0,b^{old}=0 aold=0,bold=0 或者初始化为其他合理值。

接下来,我们先求 a 2 a_2 a2。我们标记 g ( x i ) = ∑ i = 1 N a i y i K ( x i , x ) + b    . . .    ( 10 )   v i = ∑ j = 3 N a j y j K ( x i , x j ) = g ( x i ) − ∑ j = 1 2 a j y j K ( x j , x i ) − b ,    i = 1 , 2    . . .    ( 11 ) g(x_i)=\sum_{i=1}^Na_iy_iK(x_i,x)+b\ \ ...\ \ (10) \\\ v_i=\sum_{j=3}^Na_jy_jK(x_i,x_j)=g(x_i)-\sum_{j=1}^2a_jy_jK(x_j,x_i)-b,\ \ i=1,2\ \ ...\ \ (11) g(xi)=i=1NaiyiK(xi,x)+b  ...  (10) vi=j=3NajyjK(xi,xj)=g(xi)j=12ajyjK(xj,xi)b,  i=1,2  ...  (11)此时,目标函数可以写成 W ( a 1 , a 2 ) = 1 2 K 11 a 1 2 + 1 2 K 22 a 2 2 + y 1 y 2 K 12 a 1 a 2 − ( a 1 + a 2 ) + y 1 v 1 a 1 + y 2 v 2 a 2    . . .    ( 12 ) W(a_1,a_2)=\frac{1}{2}K_{11}a_1^2+\frac{1}{2}K_{22}a_2^2+y_1y_2K_{12}a_1a_2-(a_1+a_2)+y_1v_1a_1+y_2v_2a_2\ \ ...\ \ (12) W(a1,a2)=21K11a12+21K22a22+y1y2K12a1a2(a1+a2)+y1v1a1+y2v2a2  ...  12 a 1 y 1 = ς − a 2 y 2 a_1y_1=\varsigma-a_2y_2 a1y1=ςa2y2 y i 2 = 1 y_i^2=1 yi2=1,可将 a 1 a_1 a1表示为 a 1 = ( ς − y 2 a 2 ) y 1 a_1=(\varsigma-y_2a_2)y_1 a1=(ςy2a2)y1代入式(12)得到只有 a 2 a_2 a2 W ( a 2 ) = 1 2 K 11 ( ς − a 2 y 2 ) 2 + 1 2 K 22 a 2 2 + y 2 K 12 ( ς − a 2 y 2 ) a 2 − ( ς − a 2 y 2 ) y 1 − a 2 + v 1 ( ς − a 2 y 2 ) + y 2 v 2 a 2 W(a_2)=\frac{1}{2}K_{11}(\varsigma-a_2y_2)^2+\frac{1}{2}K_{22}a_2^2+y_2K_{12}(\varsigma-a_2y_2)a_2-(\varsigma-a_2y_2)y_1-a_2+v_1(\varsigma-a_2y_2)+y_2v_2a_2 W(a2)=21K11(ςa2y2)2+21K22a22+y2K12(ςa2y2)a2(ςa2y2)y1a2+v1(ςa2y2)+y2v2a2 a 2 a_2 a2求导数 ∂ W ∂ a 2 = K 11 a 2 + K 22 a 2 − 2 K 12 a 2 − K 11 ς y 2 + K 12 ς y 2 + y 1 y 2 − 1 − v 1 y 2 + y 2 v 2 \frac{\partial W}{\partial a_2}=K_{11}a_2+K_{22}a_2-2K_{12}a_2-K_{11}\varsigma y_2+K_{12}\varsigma y_2+y_1y_2-1-v_1y_2+y_2v_2 a2W=K11a2+K22a22K12a2K11ςy2+K12ςy2+y1y21v1y2+y2v2令其为0,得到 ( K 11 + K 22 − 2 K 12 ) a 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 a j K 1 j − b ) − ( g ( x 2 ) − ∑ j = 1 2 y j a j K 2 j − b ) ] (K_{11}+K_{22}-2K_{12})a_2=y_2(y_2-y_1+\varsigma K_{11}-\varsigma K_{12}+v_1-v_2)\\\ =y_2[y_2-y_1+\varsigma K_{11}-\varsigma K_{12}+(g(x_1)-\sum_{j=1}^2y_ja_jK_{1j}-b)-(g(x_2)-\sum_{j=1}^2y_ja_jK_{2j}-b)] (K11+K222K12)a2=y2(y2y1+ςK11ςK12+v1v2) =y2[y2y1+ςK11ςK12+(g(x1)j=12yjajK1jb)(g(x2)j=12yjajK2jb)] ς = a 1 o l d y 1 + a 2 o l d y 2 \varsigma=a_1^{old}y_1+a_2^{old}y_2 ς=a1oldy1+a2oldy2代入,得到 ( K 11 + K 22 − 2 K 12 ) a 2 n e w , u n c = y 2 ( ( K 11 + K 22 − 2 K 12 ) a 2 o l d y 2 + y 2 − y 1 + g ( x 1 ) − g ( x 2 ) )   = ( K 11 + K 22 − 2 K 12 ) a 2 o l d + y 2 [ ( g ( x 1 ) − y 1 ) − ( g ( x 2 ) − y 2 ) ]    . . .    . . .    ( 13 ) (K_{11}+K_{22}-2K_{12})a_2^{new,unc}=y_2((K_{11}+K_{22}-2K_{12})a_2^{old}y_2+y_2-y_1+g(x_1)-g(x_2))\\\ =(K_{11}+K_{22}-2K_{12})a_2^{old}+y_2[(g(x_1)-y_1)-(g(x_2)-y_2)]\ \ ...\ \ ...\ \ (13) (K11+K222K12)a2new,unc=y2((K11+K222K12)a2oldy2+y2y1+g(x1)g(x2)) =(K11+K222K12)a2old+y2[(g(x1)y1)(g(x2)y2)]  ...  ...  (13)现在令 E i = g ( x i ) − y i = ( ∑ j = 1 N a j o l d y j K ( x j , x i ) + b o l d ) − y i , i = 1 , 2    . . .    ( 14 ) E_i=g(x_i)-y_i=(\sum_{j=1}^Na_j^{old}y_jK(x_j,x_i)+b^{old})-y_i,i=1,2\ \ ...\ \ (14) Ei=g(xi)yi=(j=1NajoldyjK(xj,xi)+bold)yii=1,2  ...  (14)再令 η = K 11 + K 22 − 2 K 12 \eta=K_{11}+K_{22}-2K_{12} η=K11+K222K12,代入上式(13),于是得到未经裁剪的 a 2 n e w , u n c = a 2 o l d + y 2 ( E 1 − E 2 ) η    . . .    ( 15 ) a_2^{new,unc}=a_2^{old}+\frac{y_2(E_1-E_2)}{\eta}\ \ ...\ \ (15) a2new,unc=a2old+ηy2(E1E2)  ...  (15)
从式(14)(15)知, a 2 n e w , u n c a_2^{new,unc} a2new,unc a o l d = ( a 1 o l d , a 2 o l d , . . . , a N o l d ) T , b o l d a^{old}=(a_1^{old},a_2^{old},...,a_N^{old})^T,b^{old} aold=(a1old,a2old,...,aNold)T,bold有关。

4.2 根据限制条件从 a 2 n e w , u n c a_2^{new,unc} a2new,unc得到 a 2 n e w a_2^{new} a2new,并计算 a 1 n e w a_1^{new} a1new

由式(9),可得经剪辑后的 a 2 a_2 a2的解 a 2 n e w = { H , a 2 n e w , u n c > H   a 2 n e w , u n c , L ≤ a 2 n e w , u n c ≤ H   L , a 2 n e w , u n c < L a_2^{new}=\begin{cases}H, & a_2^{new,unc}>H \\\ a_2^{new,unc}, & L\leq a_2^{new,unc}\leq H\\\ L, & a_2^{new,unc}a2new=H, a2new,unc, L,a2new,unc>HLa2new,uncHa2new,unc<L
a 2 n e w a_2^{new} a2new求得 a 1 n e w a_1^{new} a1new a 1 n e w = a 1 o l d + y 1 y 2 ( a 2 o l d − a 2 n e w ) a_1^{new}=a_1^{old}+y_1y_2(a_2^{old}-a_2^{new}) a1new=a1old+y1y2(a2olda2new)

4.3 计算 b n e w b^{new} bnew E i n e w E_i^{new} Einew

0 < a i n e w < C , i = 1 , 2 00<ainew<C,i=1,2,对应的样本点是支持向量,即由支持向量的满足条件 ∑ i = 1 N a i ∗ y i K ( x i , x ) + b ∗ − y i = 0 \sum_{i=1}^Na_i^*y_iK(x_i,x)+b^*-y_i=0 i=1NaiyiK(xi,x)+byi=0得,

b 1 n e w = y 1 − ∑ i = 3 N a i y i K i 1 − a 1 n e w y 1 K 11 − a 2 n e w y 2 K 21 b_1^{new}=y_1-\sum_{i=3}^Na_iy_iK_{i1}-a_1^{new}y_1K_{11}-a_2^{new}y_2K_{21} b1new=y1i=3NaiyiKi1a1newy1K11a2newy2K21这里面还包括了 v i = ∑ i = 3 N a i y i K i 1 v_i=\sum_{i=3}^Na_iy_iK_{i1} vi=i=3NaiyiKi1,我们根据式(14)将 b 1 n e w b_1^{new} b1new换成只与 a 1 , E 1 , b 1 a_1,E_1,b_1 a1,E1,b1有关,即 b 1 n e w = − E 1 − y 1 K 11 ( a 1 n e w − a 1 o l d ) − y 2 K 21 ( a 2 n e w − a 2 o l d ) + b o l d b_1^{new}=-E_1-y_1K_{11}(a_1^{new}-a_1^{old})-y_2K_{21}(a_2^{new}-a_2^{old})+b^{old} b1new=E1y1K11(a1newa1old)y2K21(a2newa2old)+bold同样有 b 2 n e w = − E 2 − y 1 K 12 ( a 1 n e w − a 1 o l d ) − y 2 K 22 ( a 2 n e w − a 2 o l d ) + b o l d b_2^{new}=-E_2-y_1K_{12}(a_1^{new}-a_1^{old})-y_2K_{22}(a_2^{new}-a_2^{old})+b^{old} b2new=E2y1K12(a1newa1old)y2K22(a2newa2old)+bold
这里给出结论,当 a 1 n e w , a 2 n e w a_1^{new},a_2^{new} a1new,a2new同时满足条件 0 < a i n e w < C , i = 1 , 2 00<ainew<C,i=1,2,则有 b 1 n e w = b 2 n e w b_1^{new}=b_2^{new} b1new=b2new

a i n e w = 0 或 C , i = 1 , 2 a_i^{new}=0或C,i=1,2 ainew=0C,i=1,2,此时一般取 b n e w = ( b 1 n e w + b 2 n e w ) / 2 b_{new}=(b_1^{new}+b_2^{new})/2 bnew=(b1new+b2new)/2

a i n e w , b n e w a_i^{new},b^{new} ainew,bnew的取值与 E i E_i Ei有关,我们在计算了 a i n e w , b n e w a_i^{new},b^{new} ainew,bnew后,还需要更新一下 E i E_i Ei,得 E i n e w = ∑ i = 1 N y j a j K ( x i , x j ) + b n e w − y i    . . .    ( 16 ) E_i^{new}=\sum_{i=1}^{N}y_ja_jK(x_i,x_j)+b^{new}-y_i\ \ ...\ \ (16) Einew=i=1NyjajK(xi,xj)+bnewyi  ...  (16)

4.4 如何选取 a 1 , a 2 a_1,a_2 a1,a2

在推SVM时,我们希望所有的样本对 ( x i , y i ) (x_i,y_i) (xi,yi)到超平面的函数距离都大于最小的函数距离,并且我们设最小的函数距离为1,即我们希望所有的样本对 ( x i , y i ) (x_i,y_i) (xi,yi)都使得 y i ∑ j = 1 N a j y j K ( x i , x j ) + b ≥ 1    . . .    ( 17 ) y_i\sum_{j=1}^Na_jy_jK(x_i,x_j)+b\geq 1\ \ ... \ \ (17) yij=1NajyjK(xi,xj)+b1  ...  (17)这也是原始问题的限制条件。当参数还没优化之前,显然不满足这个条件,因此SMO算法在选择变量时,希望优化哪些不满足式(17)的变量,所以 a 1 , a 2 a_1,a_2 a1,a2至少有一个不满足式(7)。

外层循环— a 1 a_1 a1的选择
SMO称选择第1个变量的过程为外层循环。该变量选择的原则是,其对应的样本对 ( x i , y i ) (x_i,y_i) (xi,yi)在所有的样本对中最不符合式(7)(对应着不满足拉格朗日乘子法的KKT条件)。
该检测是在 ε \varepsilon ε范围内进行的,即所有点在 ε \varepsilon ε范围内都满足式(7),则优化完成,这也是终止条件

内层循环— a 2 a_2 a2的选择:
SMO称选择第2个变量的过程为内层循环。当已经找到了 a 1 a_1 a1,内层循环希望 a 2 a_2 a2的改变要足够大。由式(15), a 2 a_2 a2改变足够大意味着 ∣ E 1 − E 2 ∣ |E_1-E_2| E1E2变化足够大,由式(16),当 a 1 a_1 a1确定时, E 1 E_1 E1也确定了,所以我们可以根据式(16)寻找相应使 ∣ E 1 − E 2 ∣ |E_1-E_2| E1E2最大的样本对对应的 a i a_i ai作为 a 2 a_2 a2。若找不到合适的 a 2 a_2 a2,此时应放弃现在的 a 1 a_1 a1并重新寻找 a 1 a_1 a1

五、总结

终于完成了SMO算法的博客书写,如果有什么疑问欢迎各位指出。

你可能感兴趣的:(机器学习,算法,smo算法,机器学习,svm,支持向量机)