统计学习方法——支持向量机(四)

支持向量机(四)

在前面的基础上,接下来我们关注支持向量机学习的实现问题——序列最小最优化算法(SMO)

序列最小最优化算法

  • SMO算法要解决如下的凸二次规划的对偶问题:
    min ⁡ α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i \mathop {\min }\limits_\alpha \frac{1}{2}\sum\limits_{i = 1}^N {\sum\limits_{j = 1}^N {{\alpha _i}{\alpha _j}{y_i}{y_j}K\left( {{x_i},{x_j}} \right)} } - \sum\limits_{i = 1}^N {{\alpha _i}} αmin21i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi
    s . t . ∑ i = 1 N α i y i = 0 s.t.\quad \sum\limits_{i = 1}^N {{\alpha _i}{y_i} = 0} s.t.i=1Nαiyi=0
    0 ≤ α i ≤ C , i = 1 , 2 , ⋯   , N 0 \le {\alpha _i} \le C,\quad i = 1,2, \cdots ,N 0αiC,i=1,2,,N
  • SMO算法的基本思路
    如果所有变量的解都满足此最优化问题的KKT条件,那么这个最优化问题的解就得到了。
  • SMO算法的主要部分
    • 求解两个变量二次规划的解析方法
    • 选择变量的启发式方法
两个变量二次规划的求解方法

假设选择的两个变量 α 1 , α 2 \alpha_1,\alpha_2 α1,α2,其他变量 α i ( i = 3 , 4 , ⋯   , N ) {\alpha _i}\left( {i = 3,4, \cdots ,N} \right) α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 1 + y 2 α 2 ∑ i = 3 N y i α i K i 2 \mathop {\min }\limits_{{\alpha _1},{\alpha _2}} W\left( {{\alpha _1},{\alpha _2}} \right) = \frac{1}{2}{K_{11}}\alpha _1^2 + \frac{1}{2}{K_{22}}\alpha _2^2 + {y_1}{y_2}{K_{12}}{\alpha _1}{\alpha _2} - \left( {{\alpha _1} + {\alpha _2}} \right) + {y_1}{\alpha _1}\sum\limits_{i = 3}^N {{y_i}{\alpha _i}{K_{i1}}} + {y_2}{\alpha _2}\sum\limits_{i = 3}^N {{y_i}{\alpha _i}{K_{i2}}} α1,α2minW(α1,α2)=21K11α12+21K22α22+y1y2K12α1α2(α1+α2)+y1α1i=3NyiαiKi1+y2α2i=3NyiαiKi2
s . t . α 1 y 1 + α 2 y 2 = − ∑ i = 3 N y i α i = ς s.t.\quad {\alpha _1}{y_1} + {\alpha _2}{y_2} = - \sum\limits_{i = 3}^N {{y_i}{\alpha _i}} = \varsigma s.t.α1y1+α2y2=i=3Nyiαi=ς
0 ≤ α i ≤ C , i = 1 , 2 0 \le {\alpha _i} \le C,\quad i = 1,2 0αiC,i=1,2
其中 K i j = K ( x i , x j ) , i , j = 1 , 2 , ⋯   , N K_{ij}=K\left(x_i,x_j\right),i,j=1,2,\cdots,N Kij=K(xi,xj),i,j=1,2,,N ς \varsigma ς为常数。

假设初始解为 α 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

定理:优化问题沿着约束方向未经剪辑时的解为:
α 2 n e w , u n c = α 2 o l d + y 2 ( E 1 − E 2 ) η \alpha _2^{new,unc} = \alpha _2^{old} + \frac{{{y_2}\left( {{E_1} - {E_2}} \right)}}{\eta } α2new,unc=α2old+ηy2(E1E2)
其中:
η = K 11 + K 22 − 2 K 12 = ∥ Φ ( x 1 ) − Φ ( x 2 ) ∥ 2 \eta = {K_{11}} + {K_{22}} - 2{K_{12}} = {\left\| {\Phi \left( {{x_1}} \right) - \Phi \left( {{x_2}} \right)} \right\|^2} η=K11+K222K12=Φ(x1)Φ(x2)2
E i = g ( x i ) − y i = ( ∑ j = 1 N α j y j K ( x j , x i ) + b ) − y i , i = 1 , 2 {E_i} = g\left( {{x_i}} \right) - {y_i} = \left( {\sum\limits_{j = 1}^N {{\alpha _j}{y_j}K\left( {{x_j},{x_i}} \right) + b} } \right) - {y_i},i = 1,2 Ei=g(xi)yi=(j=1NαjyjK(xj,xi)+b)yi,i=1,2
KaTeX parse error: Expected 'EOF', got '\[' at position 1: \̲[̲{\Phi \left( {{…是输入空间到特征空间的映射。
经剪辑后的解为:
α 2 n e w = { H , α 2 n e w , u n c &gt; 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 &lt; L \alpha _2^{new} = \left\{ \begin{array}{l} H,\quad \alpha _2^{new,unc} &gt; H\\ \alpha _2^{new,unc},\quad L \le \alpha _2^{new,unc} \le H\\ L,\quad \alpha _2^{new,unc} &lt; L \end{array} \right. α2new=H,α2new,unc>Hα2new,unc,Lα2new,uncHL,α2new,unc<L
α 2 n e w \alpha _2^{new} α2new求得 α 1 n e w \alpha _1^{new} α1new是:
α 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_1}{y_2}\left( {\alpha _2^{old} - \alpha _2^{new}} \right) α1new=α1old+y1y2(α2oldα2new)

变量的选择方法

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

  • 第一个变量的选择
    SMO称选择第1个变量的过程为外层循环,
    • 标准
      在训练样本中选取违反KKT条件最严重的样本点,并将其对应的变量作为第1个变量。
    • 检测训练样本点 ( x i , y i ) \left( {{x_i},{y_i}} \right) (xi,yi)是否满足KKT条件,即
      α i = 0 ⇔ y i g ( x i ) ≥ 1 {\alpha _i} = 0 \Leftrightarrow {y_i}g\left( {{x_i}} \right) \ge 1 αi=0yig(xi)1
      0 &lt; α i &lt; C ⇔ y i g ( x i ) = 1 0 &lt; {\alpha _i} &lt; C \Leftrightarrow {y_i}g\left( {{x_i}} \right) = 1 0<αi<Cyig(xi)=1
      α i = C ⇔ y i g ( x i ) ≤ 1 {\alpha _i} = C \Leftrightarrow {y_i}g\left( {{x_i}} \right) \le 1 αi=Cyig(xi)1
      其中 g ( x i ) = ∑ j = 1 N α j y j K ( x i , x j ) + b g\left( {{x_i}} \right) = \sum\limits_{j = 1}^N {{\alpha _j}{y_j}K\left( {{x_i},{x_j}} \right)} + b g(xi)=j=1NαjyjK(xi,xj)+b
  • 第2个变量的选择
    SMO称选择第2个变量的过程为内层循环,假设在外层循环已经找到第一个变量 α 1 \alpha_1 α1,要在内层循环中找到第2个变量 α 2 \alpha_2 α2
    • 标准:
      希望使 α 2 \alpha_2 α2有足够大的变化。
    • 方法
      α 2 n e w \alpha_2^{new} α2new依赖于 ∣ E 1 − E 2 ∣ \left| {{E_1} - {E_2}} \right| E1E2 α 1 \alpha_1 α1确定 E 1 E_1 E1也确定,选择 α 2 \alpha_2 α2使得 ∣ E 1 − E 2 ∣ \left| {{E_1} - {E_2}} \right| E1E2最大。
    • 特殊情况
      如果目标函数没有足够的下降,使用启发式方法或重新选择 α 1 \alpha_1 α1
  • 计算阈值 b b b和差值 E i E_i Ei
    • 0 &lt; α 1 n e w &lt; C 0 &lt; \alpha _1^{new} &lt; C 0<α1new<C时,由KKT可知:
      ∑ i = 1 N α i y i K i 1 + b = y 1 \sum\limits_{i = 1}^N {{\alpha _i}{y_i}{K_{i1}}} + b = {y_1} i=1NαiyiKi1+b=y1
      于是有:
      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 _i}{y_i}{K_{i1}}} - \alpha _1^{new}{y_1}{K_{11}} - \alpha _2^{new}{y_2}{K_{21}} b1new=y1i=3NαiyiKi1α1newy1K11α2newy2K21
      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_1}{K_{12}}\left( {\alpha _1^{new} - \alpha _1^{old}} \right) - {y_2}{K_{22}}\left( {\alpha _2^{new} - \alpha _2^{old}} \right) + {b^{old}} b2new=E2y1K12(α1newα1old)y2K22(α2newα2old)+bold

      如果 α 1 n e w , α 2 n e w \alpha _1^{new}, \alpha _2^{new} α1new,α2new同时满足 0 &lt; α 1 n e w &lt; C , i = 1 , 2 0 &lt; \alpha _1^{new} &lt; C,i=1,2 0<α1new<C,i=1,2,则 b 1 n e w = b 2 n e w b_1^{new} =b_2^{new} b1new=b2new,如果 α 1 n e w , α 2 n e w \alpha _1^{new}, \alpha _2^{new} α1new,α2new 0 0 0 C C C,选择中间点作为 b n e w b^{new} bnew
    • E i n e w E_i^{new} Einew的计算为:
      E i n e w = ∑ S y j α j K ( x i , x j ) + b n e w − y i E_i^{new} = \sum\limits_S {{y_j}{\alpha _j}K\left( {{x_i},{x_j}} \right) + {b^{new}} - {y_i}} Einew=SyjαjK(xi,xj)+bnewyi
SMO算法
  • 输入:训练数据集 T T T,精度 ε \varepsilon ε
  • 输出:近似解 α ^ {\hat \alpha } α^
  • 过程
    • 取初始值 α ( 0 ) = 0 {\alpha ^{\left( 0 \right)}} = 0 α(0)=0,令 k = 0 k=0 k=0
    • 选取优化变量 α 1 ( k ) , α 2 ( k ) \alpha _1^{\left( k \right)},\alpha _2^{\left( k \right)} α1(k),α2(k),解析求解两个变量的最优化问题,得到最优解 α 1 ( k + 1 ) , α 2 ( k + 1 ) \alpha _1^{\left( k+1 \right)},\alpha _2^{\left( k+1 \right)} α1(k+1),α2(k+1),更新 α \alpha α α ( k + 1 ) \alpha^{\left( k+1 \right)} α(k+1)
    • 若在精度 ε \varepsilon ε范围内满足下面的停止条件则进行下一步
      ∑ i = 1 N α i y i = 0 \sum\limits_{i = 1}^N {{\alpha _i}{y_i}} = 0 i=1Nαiyi=0
      0 ≤ α i ≤ C , i = 1 , 2 , ⋯ &ThinSpace; , N 0 \le {\alpha _i} \le C,i = 1,2, \cdots ,N 0αiC,i=1,2,,N
      y i ⋅ g ( x i ) = { ≥ 1 , { x i ∣ α i = 0 } = 1 , { x i ∣ 0 &lt; α i &lt; C } ≤ 1 , { x i ∣ α i = C } {y_i} \cdot g\left( {{x_i}} \right) = \left\{ \begin{array}{l} \ge 1,\left\{ {{x_i}\left| {{\alpha _i} = 0} \right.} \right\}\\ = 1,\left\{ {{x_i}\left| {0 &lt; {\alpha _i} &lt; C} \right.} \right\}\\ \le 1,\left\{ {{x_i}\left| {{\alpha _i} = C} \right.} \right\} \end{array} \right. yig(xi)=1,{xiαi=0}=1,{xi0<αi<C}1,{xiαi=C}
      其中
      g ( x i ) = ∑ j = 1 N α j y j K ( x j , x i ) + b g\left( {{x_i}} \right) = \sum\limits_{j = 1}^N {{\alpha _j}{y_j}K\left( {{x_j},{x_i}} \right)} + b g(xi)=j=1NαjyjK(xj,xi)+b
      否则令 k = k + 1 k=k+1 k=k+1回到上一步。
    • α ^ = α ( k + 1 ) \hat \alpha = {\alpha ^{\left( {k + 1} \right)}} α^=α(k+1)
参考文献

《统计学习方法》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值