[机器学习]支持向量机3——SMO算法

支持向量机1——间隔和支持向量
支持向量机2——对偶问题

支持向量机3——SMO算法

根据上一篇的对偶问题的结论,我们现在的目的是计算下式子,也就是找到一系列 α 使得 ( 3.1 ) 公式达到最大值。

(3.1) max α i = 1 m α i 1 2 i = 1 m j = 1 m α i α j y i y j x i x j s t .   i = 1 m α i y i = 0 α i 0

换一种表达方式那么就是让找到一系列 α 使得 ( 3.2 ) 公式达到最小值。

(3.2) min α 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



那么现在问题就是如何解 ( 3.2 ) 公式。不难发现,这是一个 二次规划的问题。可使用通用的二次规化算法来求解。然而,该问题的规模正比于训练样本数,这会在实际中造成很大的开销。SMO(Sequential Minimal Optimization)可以更高效的解决上述SVM问题。

它的基本思路是先固定 α i 之外的所有参数,然后求 α i 上的极值,由于存在约束 i = 1 m α i y i = 0 ,若固定 α i 之外的其它变量,则 α i 可由其它变量导出。于是,SMO每次选择两个变量 α i , α j ,并固定其它参数。

假设选择优化的参数是   α 1 , α 2   ,那么需要固定其它   m 2   个参数。可以将 ( 3.2 ) 式简化为只关于   α 1 , α 2   的式子。

(3.3) min α 1 , α 2 1 2 ( α 1 2 y 1 2 x 1 2 + α 2 2 y 2 2 x 2 2 + 2 α 1 α 2 y 1 y 2 x 1 x 2 )     ( α 1 + α 2 )   +   y 1 α 1 v 1   +   y 2 α 2 v 2   +   C o n a t a n t v i = j = 3 m α j x j y j x i i = 1 , 2

其中 C o n s t a n t 代表和 α 1 , α 2 无关的常数项。由于 y i y i   == 1   ,故上式可变为 ( 3.4 )

(3.4) min α 1 , α 2 = 1 2 ( α 1 2 x 1 2 + α 2 2 x 2 2 + 2 α 1 α 2 y 1 y 2 x 1 x 2 )     ( α 1 + α 2 )   +   y 1 α 1 v 1   +   y 2 α 2 v 2   +   C o n a t a n t v i = j = 3 m α j x j y j x i i = 1 , 2

由于约束条件 i = 1 m α i y i = 0 α i 0 ,那么:

(3.5) α 1 y 1 + α 2 y 2 = i = 3 m α i y i = ζ

可见 ζ 为定值,则在等式两端同时乘以 y 1 y 1 2 = 1 ,得到:

(3.6) α 1 = ( ζ α 2 y 2 ) y 1

( 3.6 ) 带入 ( 3.4 ) 中:

(3.7) min α 2 1 2 ( ζ α 2 y 2 ) 2 x 1 2 + 1 2 α 2 2 x 2 2 + ( ζ α 2 y 2 ) α 2 y 2 x 1 x 2 ( ζ α 2 y 2 ) y 1 α 2 + ( ζ α 2 y 2 ) v 1 + y 2 v 2 α 2

( 3.7 ) α 2 求导,并令求导后的式子为0,以便于求得极值。令 ( 3.7 ) 式子为 ψ ( α 2 ) :

(3.8) ψ ( α 2 ) α 2 = ( x 1 2 + x 2 2 2 x 1 x 2 ) α 2 ζ y 2 x 1 2 + ζ y 2 x 1 x 2 + y 1 y 2 1 v 1 y 2 + v 2 y 2 = 0

  1. 由上式子假设求得了 α 2 的值,带入 ( 3.6 ) 即可求得 α 1 ,分为标记为 α 1 n e w , α 2 n e w ,优化之前的记录为 α 1 o l d , α 2 o l d 。由于 ( 3.5 ) 式,可知
    (3.9) ζ = α 1 o l d y 1 + α 2 o l d y 2 = α 1 n e w y 1 + α 2 n e w y 2
  2. 由于对偶问题中已经求得 ω = i = 1 m α i y i x i ,SVM的超平面为 (3.10) f ( x ) = ω T x + b ,则
    (3.11) f ( x ) = i = 1 m α i y i x i x + b

    由于 v i = j = 3 m α j y j x j x i i = 1 , 2
    (3.12) v 1 = f ( x ) b j = 1 2 α j x j y j x 1

    (3.13) v 2 = f ( x ) b j = 1 2 α j x j y j x 2

( 3.9 ) , ( 3.12 ) , ( 3.13 ) 带入 ( 3.8 )

(3.14) ( x 1 2 + x 2 2 2 x 1 x 2 ) α 2 n e w = ( x 1 2 + x 2 2 2 x 1 x 2 ) α 2 o l d + y 2 [ y 2 y 1 + f ( x 1 ) f ( x 2 ) ]

(3.15) α 2 n e w = α 2 o l d + y 2 ( E 1 E 2 ) η

其中E表示预测值和真实值的差。

猜你喜欢

转载自blog.csdn.net/siyue0211/article/details/80607566