持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情
⎩⎨⎧ω,bmin 21ωTωs.t.yi(ωTxi+b)≥1⇔1−yi(ωTxi+b)≤0,N个约束i=1,2,⋯,N
构建拉格朗日函数
L(ω,b,λ)=21ωTω+i=1∑Nλi[1−yi(ωTxi+b)]
注意这里L括号里面的λ为N×1,等号右边的λi为1×1
拉格朗日乘子法具体后面文章会解释
例如本题,如果1−yi(ωTxi+b)>0,
λmax L(λ,ω,b)=21ωTω+∞=∞
如果1−yi(ωTxi+b)≤0
λmax L(λ,ω,b)=21ωTω+0=21ωTω
因此有
ω,bmin λmax L(λ,ω,b)=ω,bmin (∞,21ωTω)=ω,bmin 21ωTω
因此该问题的无约束形式为
ω,bmin λmax L(ω,b,λ),s.t.λi≥0
这里的有无约束指的是对ω的约束(这里的ω相当于模板中的x)。本来1⇔1−yi(ωTxi+b)≤0是对ω的约束,通过拉格朗日函数将约束条件转化为λi≥0,是对λi的约束,不再是对ω的约束,因此称为无约束形式
由于不等式约束是仿射函数,对偶问题和原问题等价,因此该问题的对偶形式为
λmax ω,bmin L(ω,b,λ)s.t.λi≥0
先看ω,bmin L(ω,b,λ),对于b
∂b∂L=∂b∂[i=1∑Nλi−i=1∑Nλiyi(ωTxi+b)]=∂b∂(−i=1∑Nλiyib)=−i=1∑Nλiyi=0
将其代入L(ω,b,λ)
L(ω,b,λ)=21ωTω+i=1∑Nλi−i=1∑Nλiyi(ωTxi+b)=21ωTω+i=1∑Nλi−i=1∑NλiyiωTxi+i=1∑Nλiyib=21ωTω+i=1∑Nλi−i=1∑NλiyiωTxi
对于ω
∂ω∂Lω=21⋅2ω−i=1∑Nλiyixi=0=i=1∑Nλiyixi
将其代入L(ω,b,λ)
L(ω,b,λ)=21∈R(i=1∑Nλiyixi)T(j=1∑Nλjyjxj)−∈Ri=1∑Nλiyi(j=1∑Nλjyjxj)Txi+i=1∑Nλi=−21i=1∑Nj=1∑NλiλjyiyjxiTxj+i=1∑Nλi
因此原问题转化为
λmax −21i=1∑Nj=1∑Nλiλjyiyjxixj+i=1∑Nλi,s.t.λi≥0,i=1∑Nλiyi=0
定义该优化问题的KKT条件(由于原、对偶问题具有强对偶关系⇔满足KKT条件)
⎩⎨⎧∂ω∂L=0,∂b∂L=0λi[1−yi(ωTxi+b)]=0λi≥01−yi(ωTxi+b)=0
其中λi[1−yi(ωTxi+b)]=0叫做互补松弛条件,因为对于支持向量yi(ωTxi+b)=1,对于其他数据点λi=0(根据拉格朗日函数的定义),即二者中一定至少有一个为0
在之前的∂ω∂L中我们可以得到
ω∗=i=1∑Nλiyixi
其中λi通过求解λmax −21i=1∑Nj=1∑Nλiλjyiyjxixj+i=1∑Nλi,s.t.λi≥0,i=1∑Nλiyi=0可以得到
有看到怎么求,但是还是看不懂,反正就是能得到λi就对了
对于b∗,我们假设
∃(xk,yk),s.t.1−yk(ωTxk+b)=0
显然(xk,yk),就是所谓的支持向量(在最开始ωT=aω^T,b=ab^那里设的)。因此
yk(ωTxk+b)yk2(ωTxk+b)b∗=1=ykyk∈{+1,−1},yk2=1=yk−ωTxk=yk−i=1∑NλiyixiTxk
这里的(xk,yk)就是λi对应的向量,至于λi怎么求,还是那句话我不会,非常抱歉