SMO算法原理转载+自己补充

几何间隔:
这个意思就是超平面离数据集的点的距离.
都别装逼了,说人话是啥?
说人话就是高中几何里的"点到平面距离".

经常听到的硬间隔和软间隔是啥?
说人话:
惩罚系数C=0,硬间隔
惩罚系数C>0,软间隔

我们需要解决的问题是:
max ⁡ w , b   γ \max_{w,b}\ \gamma w,bmax γ
s . t .   y i ( w ∣ ∣ w ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ ) ≥ γ s.t.\ y_i(\frac{w}{||w||}·x_i+\frac{b}{||w||})≥\gamma s.t. yi(wwxi+wb)γ
也就是说,我们希望分类点离超平面的距离尽可能大.
显然在 γ \gamma γ一定的情况下, w w w要尽可能小
因为对于平面Ax+By+Cz+D=0而言:
d = ∣ A x + B y + C z + D ∣ A 2 + B 2 + C 2 d=\frac{|Ax+By+Cz+D|}{\sqrt{A^2+B^2+C^2}} d=A2+B2+C2 +By+Cz+D
根据d公式可知,当取 γ = 1 \gamma=1 γ=1时,上述问题可以等价转化为:
min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 \min_{w,b}\frac{1}{2}||w||^2 w,bmin21w2
s . t .   y i ( w ⋅ x i + b ) ≥ 1 , i ∈ [ 1 , N ] s.t.\ y_i(w·x_i+b)≥1,i\in[1,N] s.t. yi(wxi+b)1,i[1,N]
为啥是等价转化呢?
因为我们想让d这个式子最大,那么显然要让w最小,为了使用凸优化的理论,
让w最小=让 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21w2最小
凸优化指的是凸函数
(国外的凸函数是国内的凹函数,国内的凸函数是国外的凹函数,这里采用的是国外的说法)
所以为了使用凸优化理论,我们集中精力研究让 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21w2最小

注意:
高数中,我们的拉格朗日约束是针对"等式约束"
在这里,我们的拉格朗日约束是针对"不等式约束"
对上式引入拉格朗日乘子 α i ≥ 0 \alpha_i≥0 αi0
我们得到:
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 N α i [ y i ( w ⋅ x i + b ) − 1 ] L(w,b,\alpha)=\frac{1}{2}||w||^2+\sum_{i=1}^N\alpha_i[y_i(w·x_i+b)-1] L(w,b,α)=21w2+i=1Nαi[yi(wxi+b)1]
好了,接下来咋处理?
李航的书上没说明,注意,接下来我们做的事情是求解上面这个式子的"鞍点".
这个东西叫鞍点定理.
鞍点啥意思呢?
SMO算法原理转载+自己补充_第1张图片
通俗地讲:
对于凸函数求极值,等于求解该函数在一个维度的最大值,另外一个维度的最小值,称为鞍点定理.
所以上面的问题经过鞍点定理以后,最终变成了:
max ⁡ α min ⁡ w , b L ( w , b , α ) \max_{\alpha}\min_{w,b}L(w,b,\alpha) αmaxw,bminL(w,b,α)
对该式子的 w , b w,b w,b求偏导并且让他们等于0,得到:
▽ w L ( w , b , α ) = w − ∑ i = 1 N α i y i x i = 0 \triangledown_wL(w,b,\alpha)=w-\sum_{i=1}^N\alpha_iy_ix_i=0 wL(w,b,α)=wi=1Nαiyixi=0
▽ b L ( w , b , α ) = ∑ i = 1 N α i y i = 0 \triangledown_bL(w,b,\alpha)=\sum_{i=1}^N\alpha_iy_i=0 bL(w,b,α)=i=1Nαiyi=0
将上面两个式子代入到 L ( w , b , α ) L(w,b,\alpha) L(w,b,α),
得到
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 \min_{w,b}L(w,b,\alpha)=-\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)+\sum_{i=1}^N\alpha_i w,bminL(w,b,α)=21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi
∴剩下的问题就是:
max ⁡ α min ⁡ w , b L ( w , b , α ) = \max_{\alpha}\min_{w,b}L(w,b,\alpha)= αmaxw,bminL(w,b,α)
max ⁡ α − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i \max_\alpha-\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)+\sum_{i=1}^N\alpha_i αmax21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi

###############################################
下面开始参考:
https://blog.csdn.net/luoshixian099/article/details/51227754#commentBox

1.SMO概念

min ⁡ α → Ψ ( α → ) = min ⁡ α → 1 2 ∑ i = 1 N ∑ j = 1 N y i ⋅ y j ⋅ K ( x i → , x j → ) ⋅ α i ⋅ α j − ∑ i = 1 N α i \min_{\overrightarrow{\alpha}}\Psi(\overrightarrow{\alpha})\\ =\min_{\overrightarrow{\alpha}}\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^Ny_i·y_j·K(\overrightarrow{x_i},\overrightarrow{x_j})·\alpha_i·\alpha_j-\sum_{i=1}^{N}\alpha_i α minΨ(α )=α min21i=1Nj=1NyiyjK(xi ,xj )αiαji=1Nαi
0 ≤ α i ≤ C , ∀ i , 0≤\alpha_i≤C,\forall i, 0αiC,i,
∑ i = 0 N y i ⋅ α i = 0 \sum_{i=0}^N y_i·\alpha_i=0 i=0Nyiαi=0
其中 K ( x i → , x j → ) K(\overrightarrow{x_i},\overrightarrow{x_j}) K(xi ,xj )表示向量内积

其中:
( x i x_i xi, y i y_i yi):训练样本数据,
x i x_i xi:样本特征
y i ∈ { − 1 , 1 } y_i\in\{-1,1\} yi{1,1}:为样本标签
C C C:惩罚系数

上述问题是要求解N个参数 ( α 1 , α 2 , α 3 , . . . , α N ) (\alpha_1,\alpha_2,\alpha_3,...,\alpha_N) (α1,α2,α3,...,αN)
,其他参数均为已知,有多种算法可以对上述问题求解,但是算法复杂度均很大。
但1998年,由Platt提出的序列最小最优化算法(SMO)可以高效的求解上述SVM问题,它把原始求解N个参数二次规划问题分解成很多个子二次规划问题分别求解,每个子问题只需要求解2个参数,方法类似于坐标上升,节省时间成本和降低了内存需求。每次启发式选择两个变量进行优化,不断循环,直到达到函数最优值。

2. S M O 原 理 分 析 2.SMO原理分析 2.SMO
2.1 视 为 一 个 二 元 函 数 2.1视为一个二元函数 2.1

为了求解N个参数 ( α 1 , α 2 , α 3 , . . . , α N ) (\alpha_1,\alpha_2,\alpha_3,...,\alpha_N) (α1,α2,α3,...,αN),首先想到的是坐标上升的思路,例如求解 α 1 \alpha_1 α1,可以固定其他N-1个参数,可以看成关于 α 1 \alpha_1 α1的一元函数求解,但是注意到上述问题的等式约束条件 ∑ i = 1 N y i α i = 0 \sum_{i=1}^{N}y_i\alpha_i=0 i=1Nyiαi=0,当固定其他参数时,参数 α 1 \alpha_1 α1也被固定,因此此种方法不可用。

SMO算法选择同时优化两个参数,
固定其他N-2个参数,假设选择的变量为 α 1 , α 2 \alpha_1,\alpha_2 α1,α2的二元函数,

C o n s t a n t Constant Constant表示常数项,(不包含变量 α 1 \alpha_1 α1, α 2 \alpha_2 α2的项)。
m i n Ψ ( α 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 v 1 α 1 + y 2 v 2 α 2 + C o n s t a n t ( 1 ) minΨ(\alpha_1,\alpha_2)=\frac12K_{11}\alpha_1^{2}+\frac12K_{22}\alpha_2^2+y_1y_2K_{12}\alpha_1\alpha_2-(\alpha_1+\alpha_2)+y_1v_1\alpha_1+y_2v_2\alpha_2+Constant\qquad \color{Red}{(1)} minΨ(α1,α2)=21K11α12+21K22α22+y1y2K12α1α2(α1+α2)+y1v1α1+y2v2α2+Constant(1)
其中 v i = ∑ j = 3 N α j y j K ( x i , x j ) , i = 1 , 2 v_i=\sum_{j=3}^N\alpha_jy_jK(x_i,x_j),i=1,2 vi=j=3NαjyjK(xi,xj),i=1,2

2.2 视 为 一 元 函 数 2.2视为一元函数 2.2
由等式约束得:
α 1 y 1 + α 2 y 2 = − ∑ i = 3 N α i y i = ζ \alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^N\alpha_iy_i=\zeta α1y1+α2y2=i=3Nαiyi=ζ
可见 ζ \zeta ζ为定值。

等式 α 1 y 1 + α 2 y 2 = ζ \alpha_1y_1+\alpha_2y_2=\zeta α1y1+α2y2=ζ两边同时乘以 y 1 y_1 y1,且 y 1 2 = 1 y_1^2=1 y12=1,得
α 1 = ( ζ − y 2 α 2 ) y 1 ( 2 ) \alpha_1=(\zeta-y_2\alpha_2)y_1 \qquad \color{Red}{(2)} α1=(ζy2α2)y1(2)

(2)式代回到(1)中得到只关于参数 α 2 {\alpha_2} α2的一元函数,由于常数项不影响目标函数的解,以下省略掉常数项 C o n s t a n t Constant Constant
m i n   Ψ ( α 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 + v 1 ( ζ − α 2 y 2 ) + y 2 v 2 α 2 ( 3 ) min\ Ψ(\alpha_2)=\frac12K_{11}(\zeta-\alpha_2y_2)^2+\frac12K_{22}\alpha_2^2+y_2K_{12}(\zeta-\alpha_2y_2)\alpha_2-(\zeta-\alpha_2y_2)y_1-\alpha_2+v_1(\zeta-\alpha_2y_2)+y_2v_2\alpha_2 \qquad\color{Red}{(3)} min Ψ(α2)=21K11(ζα2y2)2+21K22α22+y2K12(ζα2y2)α2(ζα2y2)y1α2+v1(ζα2y2)+y2v2α2(3)

2.3 对 一 元 函 数 求 极 值 点 2.3对一元函数求极值点 2.3
上式中是关于变量α2的函数,对上式求导并令其为0得:
∂ Ψ ( α 2 ) ∂ α 2 = ( K 11 + K 22 − 2 K 12 ) α 2 − K 11 ζ y 2 + K 12 ζ y 2 + y 1 y 2 − 1 − v 1 y 2 + v 2 y 2 = 0 \frac{\partial \Psi (\alpha_2)}{\partial \alpha_2}=(K_{11}+K_{22}-2K_{12})\alpha_2-K_{11}\zeta y_2+K_{12}\zeta y_2+y_1y_2-1-v_1y_2+v_2y_2=0 α2Ψ(α2)=(K11+K222K12)α2K11ζy2+K12ζy2+y1y21v1y2+v2y2=0
1.由上式中假设求得了 α 2 {\alpha_2} α2的解,带回到(2)式中可求得 α 1 {\alpha_1} α1的解,分别记为:
α 1 n e w , α 2 n e w \alpha_1^{new},\alpha_2^{new} α1new,α2new
优化前的解记为:
α 1 o l d , α 2 o l d \alpha_1^{old},\alpha_2^{old} α1old,α2old,
由于参数 α 3 , α 4 , . . . , α N \alpha_3,\alpha_4,...,\alpha_N α3,α4,...,αN固定,由等式约束
∑ i = 1 N y i α i = 0 \sum_{i=1}^{N}y_i\alpha_i=0 i=1Nyiαi=0有:
α 1 o l d y 1 + α 2 o l d y 2 = − ∑ i = 3 N α i y i = α 1 n e w y 1 + α 2 n e w y 2 = ζ \alpha_1^{old}y_1+\alpha_2^{old}y_2\\ =-\sum_{i=3}^N\alpha_iy_i\\ =\alpha_1^{new}y_1+\alpha_2^{new}y_2\\ =\zeta α1oldy1+α2oldy2=i=3Nαiyi=α1newy1+α2newy2=ζ
ζ = α 1 o l d y 1 + α 2 o l d y 2 ( 4 ) \zeta=\alpha_1^{old}y_1+\alpha_2^{old}y_2 \qquad \color{Red}{(4)} ζ=α1oldy1+α2oldy2(4)

2.假设SVM超平面的模型为 f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b,
3.上一篇中已推导出 w w w的表达式,将其带入得
f ( x ) = ∑ i = 1 N α i y i K ( x i , x ) + b f(x)=\sum_{i=1}^N\alpha_iy_iK(x_i,x)+b f(x)=i=1NαiyiK(xi,x)+b
f ( x i ) f(x_i) f(xi):表示样本 x i x_i xi的预测值
y i y_i yi表示样本 x i x_i xi的真实值,定义 E i E_i Ei表示预测值与真实值之差为
E i = f ( x i ) − y i ( 5 ) E_i=f(x_i)-y_i \qquad \color{Red}{(5)} Ei=f(xi)yi(5)

3.由于 v i = ∑ j = 3 N α j y j K ( x i , x j ) , i = 1 , 2 v_i=\sum_{j=3}^N\alpha_jy_jK(x_i,x_j),i=1,2 vi=j=3NαjyjK(xi,xj),i=1,2因此,
v 1 = f ( x 1 ) − ∑ j = 1 2 y j α j K 1 j − b ( 6 ) v_1=f(x_1)-\sum_{j=1}^2y_j\alpha_jK_{1j}-b\qquad \color{Red}{(6)} v1=f(x1)j=12yjαjK1jb(6)

v 2 = f ( x 2 ) − ∑ j = 1 2 y j α j K 2 j − b ( 7 ) v_2=f(x_2)-\sum_{j=1}^2y_j\alpha_jK_{2j}-b\qquad \color{Red}{(7)} v2=f(x2)j=12yjαjK2jb(7)

把(4)(6)(7)带入下式中:
( K 11 + K 22 − 2 K 12 ) α 2 − K 11 ζ y 2 + K 12 ζ y 2 + y 1 y 2 − 1 − v 1 y 2 + v 2 y 2 = 0 (K_{11}+K_{22}-2K_{12})\alpha_2-K_{11}\zeta y_2+K_{12}\zeta y_2+y_1y_2-1-v_1y_2+v_2y_2=0 (K11+K222K12)α2K11ζy2+K12ζy2+y1y21v1y2+v2y2=0

化简得: 此时求解出的 α 2 n e w \alpha_2^{new} α2new未考虑约束问题,先记为 α 2 n e w , u n c l i p p e d \alpha_2^{new,unclipped} α2new,unclipped:

( K 11 + K 22 − 2 K 12 ) α 2 n e w , u n c l i p p e d = ( K 11 + K 22 − 2 K 12 ) α 2 o l d + y 2 [ y 2 − y 1 + f ( x 1 ) − f ( x 2 ) ] (K_{11}+K_{22}-2K_{12})\alpha_2^{new,unclipped}=(K_{11}+K_{22}-2K_{12})\alpha_2^{old}+y_2\left[y_2-y_1+f(x_1)-f(x_2)\right] (K11+K222K12)α2new,unclipped=(K11+K222K12)α2old+y2[y2y1+f(x1)f(x2)]

代入(5)式,并记 η = K 11 + K 22 − 2 K 12 \eta=K_{11}+K_{22}-2K_{12} η=K11+K222K12:
α 2 n e w , u n c l i p p e d = α 2 o l d + y 2 ( E 1 − E 2 ) η ( 8 ) \alpha_2^{new,unclipped}=\alpha_2^{old}+\frac{y_2(E_1-E_2)}{\eta} \qquad \color{Red}{(8)} α2new,unclipped=α2old+ηy2(E1E2)(8)

2.4 对 原 始 解 修 剪 2.4对原始解修剪 2.4
上述求出的解未考虑到约束条件:
0 ≤ α i = 1 , 2 ≤ C 0\leq\alpha_{i=1,2}\leq C 0αi=1,2C
α 1 ⋅ y 1 + α 2 ⋅ y 2 = ζ \alpha_1·y_1+\alpha_2·y_2=\zeta α1y1+α2y2=ζ

在二维平面上直观表达上述两个约束条件 :

SMO算法原理转载+自己补充_第2张图片
最优解必须要在方框内且在直线上取得,因此
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 ) ; L=max(0,\alpha_2^{old}-\alpha_1^{old}); L=max(0,α2oldα1old);
H = m i n ( C , C + α 2 o l d − α 1 o l d ) H=min(C,C+\alpha_2^{old}-\alpha_1^{old}) H=min(C,C+α2oldα1old)

y 1 = y 2 y_1= y_2 y1=y2时,
L = m a x ( 0 , α 1 o l d + α 2 o l d − C ) ; L=max(0,\alpha_1^{old}+\alpha_2^{old}-C); L=max(0,α1old+α2oldC);
H = m i n ( C , α 2 o l d + α 1 o l d ) H=min(C,\alpha_2^{old}+\alpha_1^{old}) 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 l i p p e d > H α 2 n e w , u n c l i p p e d , L ⩽ α 2 n e w , u n c l i p p e d ⩽ H  L , α 2 n e w , u n c l i p p e d < L \alpha_2^{new}=\begin{cases} & \text{ H ,} \alpha_2^{new,unclipped}>H \\ \\& \alpha_2^{new,unclipped}, L\leqslant \alpha_2^{new,unclipped}\leqslant H\\ \\ & \text{ L ,} \alpha_2^{new,unclipped}<L \end{cases} α2new= H ,α2new,unclipped>Hα2new,unclipped,Lα2new,unclippedH L ,α2new,unclipped<L

2.5 求 解 α 1 n e w 2.5求解\alpha_1^{new} 2.5α1new
由于其他N-2个变量固定,因此

α 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 α1oldy1+α2oldy2=α1newy1+α2newy2
所以可求得:
α 1 n e w = α 1 o l d + y 1 y 2 ( α 2 o l d − α 2 n e w ) ( 9 ) \alpha_1^{new}=\alpha_1^{old}+y_1y_2(\alpha_2^{old}-\alpha_2^{new})\qquad \color{Red}{(9)} α1new=α1old+y1y2(α2oldα2new)(9)

2.6 取 临 界 情 况 2.6取临界情况 2.6
大部分情况下,有 η = K 11 + K 22 − 2 K 12 > 0 \eta=K_{11}+K_{22}-2K_{12}>0 η=K11+K222K12>0
但是在如下几种情况下, α 2 n e w \alpha_2^{new} α2new需要取临界值L或者H.

1. η η η<0,当核函数K不满足Mercer定理时,矩阵K非正定;
2. η η η=0,样本 x 1 x_1 x1 x 2 x_2 x2输入特征相同;
也可以如下理解,对(3)式求二阶导数就是
η = K 11 + K 22 − 2 K 12 \eta=K_{11}+K_{22}-2K_{12} η=K11+K222K12
η \eta η<0时,目标函数为凸函数,没有极小值,极值在定义域边界处取得。
η \eta η=0时,目标函数为单调函数,同样在边界处取极值。
计算方法:
即当 α 2 n e w = L \alpha_2^{new}=L α2new=L α 2 n e w = H \alpha_2^{new}=H α2new=H分别代入(9)式中,
计算出 α 1 n e w = L 1 \alpha_1^{new}=L_1 α1new=L1 α 1 n e w = H 1 \alpha_1^{new}=H_1 α1new=H1,其中 s = y 1 y 2 s=y_1y_2 s=y1y2

L 1 = α 1 + s ( α 2 − L ) L_1=\alpha_1+s(\alpha_2-L) L1=α1+s(α2L)
H 1 = α 1 + s ( α 2 − H ) H_1=\alpha_1+s(\alpha_2-H) H1=α1+s(α2H)
代入目标函数(1)内,比较 Ψ ( α 1 = L 1 , α 2 = L ) \Psi(\alpha_1=L_1,\alpha_2=L) Ψ(α1=L1,α2=L) Ψ ( α 1 = H 1 , α 2 = H ) Ψ(\alpha_1=H_1,\alpha_2=H) Ψ(α1=H1,α2=H)的大小, α 2 \alpha_2 α2取较小的函数值对应的边界点.
Ψ L = L 1 f 1 + L f 2 + 1 2 L 1 2 K ( x 1 → , x 1 → ) + 1 2 L 2 K ( x 2 → , x 2 → ) + s L L 1 K ( x 1 → , x 2 → ) \Psi_L=L_1f_1+Lf_2+\frac{1}{2}L_1^2K(\overrightarrow{x_1},\overrightarrow{x_1})+\frac{1}{2}L^2K(\overrightarrow{x_2},\overrightarrow{x_2})+sLL_1K(\overrightarrow{x_1},\overrightarrow{x_2}) ΨL=L1f1+Lf2+21L12K(x1 ,x1 )+21L2K(x2 ,x2 )+sLL1K(x1 ,x2 )

Ψ H = H 1 f 1 + H f 2 + 1 2 H 1 2 K ( x 1 → , x 1 → ) + 1 2 H 2 K ( x 2 → , x 2 → ) + s H H 1 K ( x 1 → , x 2 → ) \Psi_H=H_1f_1+Hf_2+\frac{1}{2}H_1^2K(\overrightarrow{x_1},\overrightarrow{x_1})+\frac{1}{2}H^2K(\overrightarrow{x_2},\overrightarrow{x_2})+sHH_1K(\overrightarrow{x_1},\overrightarrow{x_2}) ΨH=H1f1+Hf2+21H12K(x1 ,x1 )+21H2K(x2 ,x2 )+sHH1K(x1 ,x2 )

其中:
f 1 = y 1 ( E 1 − b ) − α 1 K ( x 1 → , x 1 → ) − s α 2 K ( x 1 → , x 2 → ) f_1=y_1(E_1-b)-\alpha_1K(\overrightarrow{x_1},\overrightarrow{x_1})-s\alpha_2K(\overrightarrow{x_1},\overrightarrow{x_2}) f1=y1(E1b)α1K(x1 ,x1 )sα2K(x1 ,x2 )

f 2 = y 2 ( E 2 − b ) − s α 1 K ( x 1 → , x 2 → ) − α 2 K ( x 2 → , x 2 → ) f_2=y_2(E_2-b)-s\alpha_1K(\overrightarrow{x_1},\overrightarrow{x_2})-\alpha_2K(\overrightarrow{x_2},\overrightarrow{x_2}) f2=y2(E2b)sα1K(x1 ,x2 )α2K(x2 ,x2 )
3. 启 发 式 选 择 变 量 3.启发式选择变量 3.
上述分析是在从N个变量中已经选出两个变量进行优化的方法,下面分析如何高效地选择两个变量进行优化,使得目标函数下降的最快。

第一个变量的选择称为外循环,首先遍历整个样本集,选择违反KKT条件的 a i a_i ai作为第一个变量,接着依据相关规则选择第二个变量(见下面分析),对这两个变量采用上述方法进行优化。
当遍历完整个样本集后,遍历非边界样本集( 0 < α i < C 0<\alpha_i<C 0αiC)中违反KKT的 α i \alpha_i αi作为第一个变量,同样依据相关规则选择第二个变量,对此两个变量进行优化。
当遍历完非边界样本集后,再次回到遍历整个样本集中寻找,即在整个样本集与非边界样本集上来回切换,寻找违反KKT条件的 α i \alpha_i αi作为第一个变量。直到遍历整个样本集后,没有违反KKT条件 α i \alpha_i αi,然后退出。
边界上的样本对应的 α i = 0 \alpha_i=0 αi=0或者 α i = C \alpha_i=C αi=C,在优化过程中很难变化,然而非边界样本 0 < α i < C 0<\alpha_i < C 0<αi<C
会随着对其他变量的优化会有大的变化。
K K T 条 件 KKT条件 KKT
α i = 0 ⇒ y ( i ) ( w T x ( i ) + b ) ≥ 1 \alpha_i=0\Rightarrow y^{(i)}(w^Tx^{(i)}+b)≥1 αi=0y(i)(wTx(i)+b)1
α i = C ⇒ y ( i ) ( w T x ( i ) + b ) ≤ 1 \alpha_i=C\Rightarrow y^{(i)}(w^Tx^{(i)}+b)≤1 αi=Cy(i)(wTx(i)+b)1
0 < α i < C ⇒ y ( i ) ( w T x ( i ) + b ) = 1 0<\alpha_i < C\Rightarrow y^{(i)}(w^Tx^{(i)}+b)=1 0<αi<Cy(i)(wTx(i)+b)=1

第 二 个 变 量 的 选 择 第二个变量的选择
SMO称第二个变量的选择过程为内循环,假设在外循环中找个第一个变量记为 α 1 \alpha_1 α1,二个变量的选择希望能使 α 2 \alpha_2 α2有较大的变化,由于 α 2 \alpha_2 α2是依赖于
∣ E 1 − E 2 ∣ |E_1-E_2| E1E2,当 E 1 E_1 E1为正时,那么选择最小的 E i E_i Ei作为 E 2 E_2 E2,如果 E i E_i Ei为负,选择最大 E i E_i Ei作为 E 2 E_2 E2,通常为每个样本的 E i E_i Ei保存在一个列表中,选择最大的 ∣ E 1 − E 2 ∣ |E_1-E_2| E1E2来近似最大化步长。
有时按照上述的启发式选择第二个变量,不能够使得函数值有足够的下降,这时按下述步骤:

首先在非边界集上选择能够使函数值足够下降的样本作为第二个变量,
如果非边界集上没有,则在整个样本集上选择第二个变量,
如果整个样本集依然不存在,则重新选择第一个变量。

4. 阈 值 b 的 计 算 4.阈值b的计算 4.b
每完成对两个变量的优化后,要对b的值进行更新,因为b的值关系到 f ( x ) f(x) f(x)的计算,即关系到下次优化时 E i E_i Ei的计算

1.如果 0 < α 1 n e w < C 0<\alpha_1^{new}< C 0<α1new<C,
由KKT条件 y 1 ( w T x 1 + b ) = 1 y_1(w^Tx_1+b)=1 y1(wTx1+b)=1,得到 ∑ i = 1 N α i y i K i 1 + b = y 1 \sum_{i=1}^N\alpha_iy_iK_{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}=\color{Red}{y_1-\sum_{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
由(5)式得,上式前两项可以替换为:
y 1 − ∑ i = 3 N α i y i K i 1 = − E 1 + α 1 o l d y 1 K 11 + α 2 o l d y 2 K 11 + b o l d y_1-\sum_{i=3}^N \alpha_iy_iK_{i1}=-E_1+\alpha_1^{old}y_1K_{11}+\alpha_2^{old}y_2K_{11}+b^{old} y1i=3NαiyiKi1=E1+α1oldy1K11+α2oldy2K11+bold
得出:
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

2.如果 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

3.如果同时满足 0 < α i n e w < C 0<\alpha_i^{new} < C 0<αinew<C,则 b 1 n e w = b 2 n e w b_1^{new}=b_2^{new} b1new=b2new

4.如果同时不满足 0 < α i n e w < C 0<\alpha_i^{new} < C 0<αinew<C,则 b 1 n e w b_1^new b1new b 2 n e w b_2^new b2new以及它们之间的数都满足KKT阈值条件,这时选择他们的中点

你可能感兴趣的:(机器学习算法)