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

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

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

注意:
高数中,我们的拉格朗日约束是针对"等式约束"
在这里,我们的拉格朗日约束是针对"不等式约束"
对上式引入拉格朗日乘子αi≥0\alpha_i≥0αi​≥0
我们得到:
L(w,b,α)=12∣∣w∣∣2+∑i=1Nαi[yi(w⋅xi+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,α)=21​∣∣w∣∣2+i=1∑N​αi​[yi​(w⋅xi​+b)−1]
好了,接下来咋处理?
李航的书上没说明,注意,接下来我们做的事情是求解上面这个式子的"鞍点".
这个东西叫鞍点定理.
鞍点啥意思呢?

通俗地讲:
对于凸函数求极值,等于求解该函数在一个维度的最大值,另外一个维度的最小值,称为鞍点定理.
所以上面的问题经过鞍点定理以后,最终变成了:
max⁡αmin⁡w,bL(w,b,α)\max_{\alpha}\min_{w,b}L(w,b,\alpha)αmax​w,bmin​L(w,b,α)
对该式子的w,bw,bw,b求偏导并且让他们等于0,得到:
▽wL(w,b,α)=w−∑i=1Nαiyixi=0\triangledown_wL(w,b,\alpha)=w-\sum_{i=1}^N\alpha_iy_ix_i=0▽w​L(w,b,α)=w−i=1∑N​αi​yi​xi​=0
▽bL(w,b,α)=∑i=1Nαiyi=0\triangledown_bL(w,b,\alpha)=\sum_{i=1}^N\alpha_iy_i=0▽b​L(w,b,α)=i=1∑N​αi​yi​=0
将上面两个式子代入到L(w,b,α)L(w,b,\alpha)L(w,b,α),
得到
min⁡w,bL(w,b,α)=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nα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_iw,bmin​L(w,b,α)=−21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)+i=1∑N​αi​
∴剩下的问题就是:
max⁡αmin⁡w,bL(w,b,α)=\max_{\alpha}\min_{w,b}L(w,b,\alpha)=αmax​w,bmin​L(w,b,α)=
max⁡α−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nα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αmax​−21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)+i=1∑N​αi​

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

1.SMO概念

min⁡α→Ψ(α→)=min⁡α→12∑i=1N∑j=1Nyi⋅yj⋅K(xi→,xj→)⋅αi⋅αj−∑i=1Nα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​Ψ(α)=αmin​21​i=1∑N​j=1∑N​yi​⋅yj​⋅K(xi​​,xj​​)⋅αi​⋅αj​−i=1∑N​αi​
0≤αi≤C,∀i,0≤\alpha_i≤C,\forall i,0≤αi​≤C,∀i,
∑i=0Nyi⋅αi=0\sum_{i=0}^N y_i·\alpha_i=0i=0∑N​yi​⋅αi​=0
其中K(xi→,xj→)K(\overrightarrow{x_i},\overrightarrow{x_j})K(xi​​,xj​​)表示向量内积

其中:
(xix_ixi​,yiy_iyi​):训练样本数据,
xix_ixi​:样本特征
yi∈{−1,1}y_i\in\{-1,1\}yi​∈{−1,1}:为样本标签
CCC:惩罚系数

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

2.SMO原理分析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=1Nyiαi=0\sum_{i=1}^{N}y_i\alpha_i=0∑i=1N​yi​αi​=0,当固定其他参数时,参数α1\alpha_1α1​也被固定,因此此种方法不可用。

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

ConstantConstantConstant表示常数项,(不包含变量α1\alpha_1α1​,α2\alpha_2α2​的项)。
minΨ(α1,α2)=12K11α12+12K22α22+y1y2K12α1α2−(α1+α2)+y1v1α1+y2v2α2+Constant(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​)=21​K11​α12​+21​K22​α22​+y1​y2​K12​α1​α2​−(α1​+α2​)+y1​v1​α1​+y2​v2​α2​+Constant(1)
其中vi=∑j=3NαjyjK(xi,xj),i=1,2v_i=\sum_{j=3}^N\alpha_jy_jK(x_i,x_j),i=1,2vi​=∑j=3N​αj​yj​K(xi​,xj​),i=1,2

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

等式α1y1+α2y2=ζ\alpha_1y_1+\alpha_2y_2=\zetaα1​y1​+α2​y2​=ζ两边同时乘以y1y_1y1​,且y12=1y_1^2=1y12​=1,得
α1=(ζ−y2α2)y1(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​的一元函数,由于常数项不影响目标函数的解,以下省略掉常数项ConstantConstantConstant
minΨ(α2)=12K11(ζ−α2y2)2+12K22α22+y2K12(ζ−α2y2)α2−(ζ−α2y2)y1−α2+v1(ζ−α2y2)+y2v2α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​)=21​K11​(ζ−α2​y2​)2+21​K22​α22​+y2​K12​(ζ−α2​y2​)α2​−(ζ−α2​y2​)y1​−α2​+v1​(ζ−α2​y2​)+y2​v2​α2​(3)

2.3对一元函数求极值点2.3对一元函数求极值点2.3对一元函数求极值点
上式中是关于变量α2的函数,对上式求导并令其为0得:
∂Ψ(α2)∂α2=(K11+K22−2K12)α2−K11ζy2+K12ζy2+y1y2−1−v1y2+v2y2=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​+K22​−2K12​)α2​−K11​ζy2​+K12​ζy2​+y1​y2​−1−v1​y2​+v2​y2​=0
1.由上式中假设求得了α2{\alpha_2}α2​的解,带回到(2)式中可求得α1{\alpha_1}α1​的解,分别记为:
α1new,α2new\alpha_1^{new},\alpha_2^{new}α1new​,α2new​
优化前的解记为:
α1old,α2old\alpha_1^{old},\alpha_2^{old}α1old​,α2old​,
由于参数α3,α4,...,αN\alpha_3,\alpha_4,...,\alpha_Nα3​,α4​,...,αN​固定,由等式约束
∑i=1Nyiαi=0\sum_{i=1}^{N}y_i\alpha_i=0∑i=1N​yi​αi​=0有:
α1oldy1+α2oldy2=−∑i=3Nαiyi=α1newy1+α2newy2=ζ\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α1old​y1​+α2old​y2​=−i=3∑N​αi​yi​=α1new​y1​+α2new​y2​=ζ
ζ=α1oldy1+α2oldy2(4)\zeta=\alpha_1^{old}y_1+\alpha_2^{old}y_2 \qquad \color{Red}{(4)}ζ=α1old​y1​+α2old​y2​(4)

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

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

v2=f(x2)−∑j=12yjαjK2j−b(7)v_2=f(x_2)-\sum_{j=1}^2y_j\alpha_jK_{2j}-b\qquad \color{Red}{(7)}v2​=f(x2​)−j=1∑2​yj​αj​K2j​−b(7)

把(4)(6)(7)带入下式中:
(K11+K22−2K12)α2−K11ζy2+K12ζy2+y1y2−1−v1y2+v2y2=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​+K22​−2K12​)α2​−K11​ζy2​+K12​ζy2​+y1​y2​−1−v1​y2​+v2​y2​=0

化简得: 此时求解出的α2new\alpha_2^{new}α2new​未考虑约束问题,先记为α2new,unclipped\alpha_2^{new,unclipped}α2new,unclipped​:

(K11+K22−2K12)α2new,unclipped=(K11+K22−2K12)α2old+y2[y2−y1+f(x1)−f(x2)](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​+K22​−2K12​)α2new,unclipped​=(K11​+K22​−2K12​)α2old​+y2​[y2​−y1​+f(x1​)−f(x2​)]

代入(5)式,并记η=K11+K22−2K12\eta=K_{11}+K_{22}-2K_{12}η=K11​+K22​−2K12​:
α2new,unclipped=α2old+y2(E1−E2)η(8)\alpha_2^{new,unclipped}=\alpha_2^{old}+\frac{y_2(E_1-E_2)}{\eta} \qquad \color{Red}{(8)}α2new,unclipped​=α2old​+ηy2​(E1​−E2​)​(8)

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

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


最优解必须要在方框内且在直线上取得,因此
L≤α2new≤HL\leq\alpha_2^{new} \leq HL≤α2new​≤H
当y1≠y2y_1\neq y_2y1​̸​=y2​时,
L=max(0,α2old−α1old);L=max(0,\alpha_2^{old}-\alpha_1^{old});L=max(0,α2old​−α1old​);
H=min(C,C+α2old−α1old)H=min(C,C+\alpha_2^{old}-\alpha_1^{old})H=min(C,C+α2old​−α1old​)

当y1=y2y_1= y_2y1​=y2​时,
L=max(0,α1old+α2old−C);L=max(0,\alpha_1^{old}+\alpha_2^{old}-C);L=max(0,α1old​+α2old​−C);
H=min(C,α2old+α1old)H=min(C,\alpha_2^{old}+\alpha_1^{old})H=min(C,α2old​+α1old​)

经过上述约束的修剪,最优解就可以记为α2new\alpha_2^{new}α2new​了.

α2new={H ,α2new,unclipped&gt;Hα2new,unclipped,L⩽α2new,unclipped⩽HL ,α2new,unclipped&lt;L\alpha_2^{new}=\begin{cases} &amp; \text{ H ,} \alpha_2^{new,unclipped}&gt;H \\ \\&amp; \alpha_2^{new,unclipped}, L\leqslant \alpha_2^{new,unclipped}\leqslant H\\ \\ &amp; \text{ L ,} \alpha_2^{new,unclipped}&lt;L \end{cases}α2new​=⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​​ H ,α2new,unclipped​>Hα2new,unclipped​,L⩽α2new,unclipped​⩽H L ,α2new,unclipped​<L​

2.5求解α1new2.5求解\alpha_1^{new}2.5求解α1new​
由于其他N-2个变量固定,因此

α1oldy1+α2oldy2=α1newy1+α2newy2\alpha_1^{old}y_1+\alpha_2^{old}y_2=\alpha_1^{new}y_1+\alpha_2^{new}y_2α1old​y1​+α2old​y2​=α1new​y1​+α2new​y2​
所以可求得:
α1new=α1old+y1y2(α2old−α2new)(9)\alpha_1^{new}=\alpha_1^{old}+y_1y_2(\alpha_2^{old}-\alpha_2^{new})\qquad \color{Red}{(9)}α1new​=α1old​+y1​y2​(α2old​−α2new​)(9)

2.6取临界情况2.6取临界情况2.6取临界情况
大部分情况下,有η=K11+K22−2K12&gt;0\eta=K_{11}+K_{22}-2K_{12}&gt;0η=K11​+K22​−2K12​>0。
但是在如下几种情况下,α2new\alpha_2^{new}α2new​需要取临界值L或者H.

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

L1=α1+s(α2−L)L_1=\alpha_1+s(\alpha_2-L)L1​=α1​+s(α2​−L)
H1=α1+s(α2−H)H_1=\alpha_1+s(\alpha_2-H)H1​=α1​+s(α2​−H)
代入目标函数(1)内,比较Ψ(α1=L1,α2=L)\Psi(\alpha_1=L_1,\alpha_2=L)Ψ(α1​=L1​,α2​=L)与Ψ(α1=H1,α2=H)Ψ(\alpha_1=H_1,\alpha_2=H)Ψ(α1​=H1​,α2​=H)的大小,α2\alpha_2α2​取较小的函数值对应的边界点.
ΨL=L1f1+Lf2+12L12K(x1→,x1→)+12L2K(x2→,x2→)+sLL1K(x1→,x2→)\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​=L1​f1​+Lf2​+21​L12​K(x1​​,x1​​)+21​L2K(x2​​,x2​​)+sLL1​K(x1​​,x2​​)

ΨH=H1f1+Hf2+12H12K(x1→,x1→)+12H2K(x2→,x2→)+sHH1K(x1→,x2→)\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​=H1​f1​+Hf2​+21​H12​K(x1​​,x1​​)+21​H2K(x2​​,x2​​)+sHH1​K(x1​​,x2​​)

其中:
f1=y1(E1−b)−α1K(x1→,x1→)−sα2K(x1→,x2→)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​(E1​−b)−α1​K(x1​​,x1​​)−sα2​K(x1​​,x2​​)

f2=y2(E2−b)−sα1K(x1→,x2→)−α2K(x2→,x2→)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​(E2​−b)−sα1​K(x1​​,x2​​)−α2​K(x2​​,x2​​)
3.启发式选择变量3.启发式选择变量3.启发式选择变量
上述分析是在从N个变量中已经选出两个变量进行优化的方法,下面分析如何高效地选择两个变量进行优化,使得目标函数下降的最快。

第一个变量的选择称为外循环,首先遍历整个样本集,选择违反KKT条件的aia_iai​作为第一个变量,接着依据相关规则选择第二个变量(见下面分析),对这两个变量采用上述方法进行优化。
当遍历完整个样本集后,遍历非边界样本集(0<αi<C0<\alpha_i<C0<αi​<C)中违反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&lt;αi&lt;C0&lt;\alpha_i &lt; C0<αi​<C
会随着对其他变量的优化会有大的变化。
KKT条件KKT条件KKT条件
αi=0⇒y(i)(wTx(i)+b)≥1\alpha_i=0\Rightarrow y^{(i)}(w^Tx^{(i)}+b)≥1αi​=0⇒y(i)(wTx(i)+b)≥1
αi=C⇒y(i)(wTx(i)+b)≤1\alpha_i=C\Rightarrow y^{(i)}(w^Tx^{(i)}+b)≤1αi​=C⇒y(i)(wTx(i)+b)≤1
0&lt;αi&lt;C⇒y(i)(wTx(i)+b)=10&lt;\alpha_i &lt; C\Rightarrow y^{(i)}(w^Tx^{(i)}+b)=10<αi​<C⇒y(i)(wTx(i)+b)=1

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

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

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

1.如果0&lt;α1new&lt;C0&lt;\alpha_1^{new}&lt; C0<α1new​<C,
由KKT条件y1(wTx1+b)=1y_1(w^Tx_1+b)=1y1​(wTx1​+b)=1,得到∑i=1NαiyiKi1+b=y1\sum_{i=1}^N\alpha_iy_iK_{i1}+b=y_1∑i=1N​αi​yi​Ki1​+b=y1​,由此得:
b1new=y1−∑i=3NαiyiKi1−α1newy1K11−α2newy2K21b_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​=y1​−i=3∑N​αi​yi​Ki1​−α1new​y1​K11​−α2new​y2​K21​
由(5)式得,上式前两项可以替换为:
y1−∑i=3NαiyiKi1=−E1+α1oldy1K11+α2oldy2K11+boldy_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}y1​−i=3∑N​αi​yi​Ki1​=−E1​+α1old​y1​K11​+α2old​y2​K11​+bold
得出:
b1new=−E1−y1K11(α1new−α1old)−y2K21(α2new−α2old)+boldb_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​=−E1​−y1​K11​(α1new​−α1old​)−y2​K21​(α2new​−α2old​)+bold

2.如果0&lt;α2new&lt;C0&lt;\alpha_2^{new} &lt; C0<α2new​<C,则
b2new=−E2−y1K12(α1new−α1old)−y2K22(α2new−α2old)+boldb_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​=−E2​−y1​K12​(α1new​−α1old​)−y2​K22​(α2new​−α2old​)+bold

3.如果同时满足0&lt;αinew&lt;C0&lt;\alpha_i^{new} &lt; C0<αinew​<C,则b1new=b2newb_1^{new}=b_2^{new}b1new​=b2new​

4.如果同时不满足0&lt;αinew&lt;C0&lt;\alpha_i^{new} &lt; C0<αinew​<C,则b1newb_1^newb1n​ew与b2newb_2^newb2n​ew以及它们之间的数都满足KKT阈值条件,这时选择他们的中点

SMO算法原理转载+自己补充相关推荐

  1. 支持向量机原理(四)SMO算法原理

    支持向量机原理(一) 线性支持向量机 支持向量机原理(二) 线性支持向量机的软间隔最大化模型 支持向量机原理(三)线性不可分支持向量机与核函数 支持向量机原理(四)SMO算法原理 支持向量机原理(五) ...

  2. MySQL索引背后的数据结构及算法原理【转】

    http://blog.codinglabs.org/articles/theory-of-mysql-index.html MySQL索引背后的数据结构及算法原理[转] 摘要 本文以MySQL数据库 ...

  3. 机器学习入门笔记:(4.3)SMO算法

    前言 之前的博客中,已经介绍了SVM的原理: 机器学习入门学习笔记:(4.1)SVM算法 机器学习入门学习笔记:(4.2)核函数和软间隔 最后我们得到的优化问题如下: maxα∑i=1mαi−12∑i ...

  4. 支持向量机器—SMO算法

    文章目录 引入SMO的背景 两个变量二次规划求解方法 选择两个变量的方法 第一个变量选择 第二个变量选择 计算阈值b和差值EiE_iEi​ SMO算法 参考文章: 引入SMO的背景 前面的文章提到,S ...

  5. 机器学习算法实践-SVM中的SMO算法

    前言 前两篇关于SVM的文章分别总结了SVM基本原理和核函数以及软间隔原理,本文我们就针对前面推导出的SVM对偶问题的一种高效的优化方法-序列最小优化算法(Sequential Minimal Opt ...

  6. 机器学习笔记(十)——这样推导SMO算法才易理解

    线性支持向量机 上一篇文章对支持向量机的间隔.对偶和KKT条件做了详细推导,但前文的基础是原始问题为线性可分问题,所以对线性不可分训练数据是不适用的,这时需要引入一个新定义:软间隔. 假如训练数据中有 ...

  7. SMO算法在软间隔SVM分类中的应用

    序列最小优化算法(SMO) SMO算法是一种启发式的算法,它在求解过程中通过以分析的方式来定位最优解可能存在的位置,从而避免了传统方法在求解中所遭遇的大量数值计算问题,并且最终以迭代的方式来求得最优解 ...

  8. Svm算法原理及实现

    Svm(support Vector Mac)又称为支持向量机,是一种二分类的模型.当然如果进行修改之后也是可以用于多类别问题的分类.支持向量机可以分为线性核非线性两大类.其主要思想为找到空间中的一个 ...

  9. (转载)机器学习知识点(十七)Bagging与随机森林算法原理小结

    集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系.另一种是bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合.本文就对集成学习中Bagging ...

最新文章

  1. 实验3  数据库综合查询
  2. Windows配置Oracle Instant Client
  3. Transformer architecture的解释
  4. 一次性通过软考网工方案
  5. 第二部分 设计类型:第13章 接口
  6. springboot整合postgresql_SpringBoot应用和PostgreSQL数据库部署到Kubernetes上的一个例子-阿里云开发者社区...
  7. IT人的地摊不就是开源么 | 凌云时刻
  8. HCNA学习的第二天
  9. 16进制在计算机上显示,16进制计算器(16进制计算器安卓版)
  10. SpringBoot 定时任务实现数据同步方法
  11. 秒懂!什么是BI商业智能!
  12. KMP算法—终于全部弄懂了
  13. Unity中关于IphoneX的屏幕适配
  14. 幼儿园案例经验迁移_在建构区中如何将游戏经验迁移为知识经验
  15. 软件著作权申请材料及申请流程?
  16. mysql set password_MySQL SET PASSWORD语法示例
  17. Debian下载内核源码的方法
  18. 安装nvm时报错exit status 145和exit status 1 exit status 5
  19. 学习过程中量变引起质变的原理
  20. django 调用数据库图片的路径并在html显示

热门文章

  1. 在项目中学习.NET的JQuery CheckBox方法(全选、取消全选、其他)
  2. CSS之简单的双引号
  3. WPF对决Silverlight:为项目选择最佳技术
  4. 电源pd功能的充电器_PD快充充电器电源芯片和普通充电器电源芯片有什么区别?...
  5. 弹出对话框拖拽JavaScript实现
  6. 向一个对象数组里面添加新的属性 + 将一个对象数组数据拿出来变成另一个对象
  7. linux sed命令的常用方法
  8. idea2020配置springboot热部署超全步骤以及安装JRebel插件
  9. CVPR2015深度学习回顾
  10. JNI传递字符串数组J-StringArray