700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > KKT条件和拉格朗日乘子法

KKT条件和拉格朗日乘子法

时间:2021-06-29 03:22:43

相关推荐

KKT条件和拉格朗日乘子法

hitspring晨凫追风,转载请注明出处

华为面试的时候,部长先生问了这个问题,于是就回来看了一下,补补课,平常学的有点水货,哈哈!希望有帮助!如果你从头到尾拿出笔来写下这里面的公式,我觉得肯定能看懂!

最优化问题的最优性条件,最优化问题的解的必要条件和充分条件

无约束问题的解的必要条件

f(x)在x处的梯度向量是0

有约束问题的最优性条件

等式约束问题的必要条件:

一个条件,两变量

minf(x)=f([x]1,[x]2)

s.t.c(x)=c([x]1,[x]2)=0

则最优解的必要条件如下面式子所示:

▽f(x∗)+α∗▽c(x∗)=0

c(x∗)=0

α∗是常数,即存在一个常数使得约束条件和待优化问题的梯度之和为0

上面就把它当成一个结论吧,具体推导见《数据挖掘中的新方法——支持向量机》

这里的理解是:

在x满足c(x1,x2)=0的条件下去寻找一个x来使得f(x)最小。其实这个点就是在满足约束条件c(x)=0的曲面上。

来这样理解一下:

c(x)是曲线,画出f(x)=k的等高线,当然了在x=4的位置两者相交,但是二者不是相切的,这样就还能移动x点去寻找更低的点来满足最小化,其实这里要找的点就是二者相切的点,这样就能保证最小值,相切的时候,目标函数的梯度肯定正交于约束曲面,此时就有了

▽f(x∗)+α∗▽c(x∗)=0

上面的z是待优化的函数,c(x1,x2)是约束的等式条件,注意这里面的x1,x2是在平面上的(联想圆锥曲线)然后把z的等高线投影到x1,x2平面上,在该平面上的约束条件上面的点就是该x取值的可行域,在这些点里面选取的x使得目标函数最小。当等高线与c(x1,x2)相交时,在等高线内部肯定还有满足z更小的x1,x2,只有当等高线与c(x1,x2)相切时,等高线内部就没有了点使得优化函数更小,于是就必须是等高线的梯度方向和约束曲线的方向相同或者一致,这样才能保证相切,于是就有了式子

▽f(x∗)+α∗▽c(x∗)=0

引入拉格朗日函数

L(x,α)=L([x]1,[x]2,α)=f([x]1,[x]2)+αc([x]1,[x]2)

上面的条件就变成:

▽xL(x∗,α∗)=▽f(x∗)+α∗▽c(x∗)=0

▽αL(x∗,α∗)=c(x∗)=0

推广到两个约束条件,三个变量的问题

minf(x)=f([x]1,[x]2,[x]3)

s.t.ci(x)=ci([x]1,[x]2,[x]3)=0

它的最优解的必要条件是:

▽f(x∗)+α∗1▽c1(x∗)+α∗2▽c2(x∗)=0

c1(x∗)=0

c2(x∗)=0

引入拉格朗日函数

L(x,α)=L([x]1,[x]2,[x]3,α1,α2)=f([x]1,[x]2,[x]3)+α1c1([x]1,[x]2,[x]3)+α2c2([x]1,[x]2,[x]3)

于是最优化条件变成:

▽xL(x∗,α∗)=▽f(x∗)+α∗1▽c1(x∗)+α∗2▽c2(x∗)=0

▽αL(x∗,α∗)=c(x∗)=0

然后是多变量,多q条件约束:

引入拉格朗日函数

L(x,α)=L([x]1,[x]2,⋯,[x]n,α1,⋯,αq)=f([x]1,[x]2)+∑i=1qαici([x]1,[x]2)=f(x)+αTc(x)

当x∗=([x]∗1,[x]∗2,⋯,[x]∗n)是该问题的局部最优解,且约束函数在x∗处的梯度向量▽c1(x∗),⋯,▽cq(x∗)线性无关此时x∗则存在q维向量:α∗=(α∗1,⋯,α∗q)满足下面条件

▽xL(x∗,α∗)=▽f(x∗)+∑i=1qα∗i▽ci(x∗)=▽f(x∗)+▽c(x∗)α∗=0

▽αL(x∗,α∗)=c(x∗)=0

其中▽c(x∗)是以▽c1(x∗),⋯,▽cq(x∗)为列的矩阵,注意这里的c(x∗),α∗是向量形式

不等式约束时候的条件

最简单的不等式约束问题

minf(x)=f([x]1,[x]2,[x]3)

s.t.ci(x)=ci([x]1,[x]2,[x]3)≤0

此时的问题类比于上面的等式约束,并引入拉格朗日函数L(x,α)=f(x)+αc(x)

此时的条件要满足的是:

▽xL(x∗,α∗)=▽f(x∗)+α∗▽c(x∗)=0

c(x∗)≤0

α∗≥0

α∗c(x∗)=0

一般不等式约束问题

引入Lagrange函数

L(x,α)=f(x)+∑i=1pαici(x)=f(x)+αTc(x)

该约束问题最优解的必要条件就是

▽xL(x∗,α∗)=▽f(x∗)+∑i=1pα∗i▽ci(x∗)=▽f(x∗)+▽c(x∗)α∗=0

ci(x∗)≤0 i=1,⋯,p

α∗i≥0 i=1,⋯,p

α∗ici(x∗)=0 i=1,⋯,p

其中▽c(x∗)是一个以▽c1(x∗),▽c2(x∗),⋯,▽cp(x∗)列矩阵

KKT条件

综合上面的结论就导出了下面的KKT条件

KKT条件一般约束问题的必要条件

考虑一般问题:

minf(x)

s.t.ci(x)≤0 i=1,⋯,p

ci(x)=0 i=p+1,⋯,p+q

优化问题f(x),c(x),i=1,⋯,p+q具有连续一阶偏导,x∗为问题的局部解。若在x∗处的有效约束梯度▽ci(x∗)线性无关,或者所有的约束函数都是线性函数,则存在p+q维向量α∗=(α∗1,α∗2,⋯,α∗p+q)使得:

▽xL(x∗,α∗)=▽f(x∗)+∑i=1p+qα∗i▽ci(x∗)=▽f(x∗)+▽c(x∗)α∗=0

ci(x∗)≤0 i=1,⋯,p

ci(x∗)=0 i=p+1,⋯,p+q

α∗i≥0 i=1,⋯,p

α∗ici(x∗)=0 i=1,⋯,p

这里▽c(x∗)是一个以▽c1(x∗),▽c2(x∗),⋯,▽cp+q(x∗)列矩阵即:

▽c(x∗)=(▽c1(x∗),▽c2(x∗),⋯,▽cp+q(x∗))

把p+q维向量α∗称为KKT乘子向量或者lagerange乘子向量,其分量α∗1,α∗2,⋯,α∗p+q称为KKT乘子或者lagrange乘子

当优化问题为凸约束问题的时候上述的KKT条件变为最优解的充要条件

上面的方法就是为了在寻找多元函数在一组约束下的极值优化的方法,通过引入拉格朗日乘子,可以将有d个变量与k个约束条件的最优化问题转化为具有d+k个变量的无约束的优化问题进行求解

更为感性的理解这个条件就是:

引入了拉格朗日乘子,描述了在可行域边上的时候是等式约束的条件这时候用的是拉格朗日乘子法,在可行域的内部是无约束的条件,或者是不等式约束的条件下变换出了KKT条件。归根结底的说KKT条件是拉格朗日乘子法的一个泛化

问题先按照几何间隔最大化的原则他的问题为

minw,b12∥w∥2

s.t.yi(wTxi+b)⩾1,i=1,2,⋯,m

这个是SVM的基本型

对它引入拉格朗日乘子法,即对上式添加拉格朗日乘子αi⩾0

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。