两个变量的二次规划
假设我们选择
α1,α2 作为变量,其他为
αi(i=3,4,...,M) 是固定的,于是 SMO 的最优化问题的子问题可以写成(将
α1,α2 单独拿出来):
αmin21k11α12+21k22α22+y1y2k12α1α2−(α1+α2)+y1α1∑i=3Myiαiki1+y2α2∑i=3Myiαiki2
s.t.
α1y1+α2y2=−∑i=3Mαiyi=ζ
0≤αi≤C,i=1,2,...,M
因为
−∑i=3Mαiyi 是常量,所以用
ζ 代替。其中
k12 表示
x1,x2 的核函数内积。
根据约束条件:
s.t.
α1y1+α2y2=−∑i=3Mαiyi=ζ
0≤αi≤C,i=1,2,...,M
将
α1y1+α2y2=ζ 视为线性方程,
0≤αi≤C,i=1,2,...,M 为定义域,那么不等式约束可形象化为:
(α1,α2) 在 C*C 的矩形区域内的,平行于对角线的线段上,如图:
这使得两个变量的优化问题可以变为单变量的优化问题,我们以
α2 为研究对象:
假设问题的初始可行解为
α1old,α2old,未通过约束条件剪辑的最优解为
α1new,unc,α2new,unc,剪辑后的最优解为
α1new,α2new.
因为需要满足不等式
0≤α2≤C,i=1,2,...,M,所以:
L≤α2new≤H,L,H 为所在对角线端点的界:
∙ 当 y1≠y2 时,如上图中的左图
L=max(0,α2old−α1old),H=min(C,C+α1old+α2old)
∙ 当 y1=y2 时,如上图中的右图
L=max(0,α1old+α2old−C),H=≤min(C,α1old+α2old)
而后根据
α2new 计算
α1new.
此时子问题的两个变量
α1new,α2new 求解完毕。
下面介绍详细计算过程:
-
对目标
W(α1,α2)=21k11α12+21k22α22+y1y2k12α1α2−(α1+α2)+y1α1∑i=3Myiαiki1+y2α2∑i=3Myiαiki2
我们引入变量
vi=∑j=3Myjαjkji,得到:
W(α1,α2)=21k11α12+21k22α22+y1y2k12α1α2−(α1+α2)+y1α1v1+y2α2v2
-
因为
α1y1+α2y2=ζ,且yi2=1,所以转化为对
α2 的单变量目标函数:
W(α2)=21k11(ζ−α2y2)2+21k22α22+y2k12(ζ−α2y2)α2−(ζ−α2y2)−α2+y1(ζ−α2y2)v1+y2α2v2
-
为求
W(α2) 最小,我们对
α2 求导并令其等于 0,得到;
k11+k22−2k12α2=y2(y2−y1+ζk11−ζk12+v1+v2)
-
而后将
v1,v2 与
α1oldy1+α2oldy2=ζ 代入并整理可得:
α2new,unc=α2old+k11+k22−2k12y2(E1−E2),其中
Ei=∑j=1Myjαjkji+b−yi,i=1,2
-
在计算出
α2new,unc 后,根据约束条件进行剪辑:
α2new=⎩⎪⎨⎪⎧H,α2new,unc>Hα2new,unc,L≤α2new,unc≤HL,α2new,unc<L
- 根据
α2new 计算
α1new