关于拉格朗日的各种

在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值;如果含有不等式约束,可以应用KKT条件去求取。当然,这两个方法求得的结果只是必要条件,只有当是凸函数的情况下,才能保证是充分必要条件。KKT条件是拉格朗日乘子法的泛化。

拉格朗日乘子法

基本的拉格朗日乘子法就是求函数f(x1,x2,...)在约束条件g(x1,x2,...)=0下的极值的方法。其主要思想是引入一个新的参数λ,将约束条件函数与原函数联立,从而求出使原函数取得极值的各个变量的解。


有等式约束的优化问题,可以写为:

                                       min f(x), 

                                            s.t. h_i(x) = 0; i =1, ..., n 


对于这类优化问题,常常使用的方法就是拉格朗日乘子法(Lagrange Multiplier) ,即把等式约束h_i(x)用一个系数与f(x)写为一个式子,称为拉格朗日函数,而系数称为拉格朗日乘子。通过拉格朗日函数对各个变量求导,令其为零,可以求得候选值集合,然后验证求得最优值。

多个等式就可看成是矩阵相乘


如果既有等式约束又有不等式约束,则求对偶问题

这篇博客写得很清楚,包括为什么先极大化L逼近。



某大神解释的关于凸优化问题:http://blog.pluskid.org/?p=702
mins.t.f0(x)fi(x)0,i=1,,mhi(x)=0,i=1,,p
其他的形式都可以归约到这样的标准形式,例如一个  maxf(x)  可以转化为  minf(x)  等。假如  f0,f1,,fm  全都是凸函数,并且  h1,,hp  全都是仿射函数(就是形如  Ax+b  的形式),那么这个问题就叫做凸优化(Convex Optimization)问题。凸优化问题有许多优良的性质,例如它的极值是唯一的。


关于上界下界

设函数f(x)的定义域为D,f(x)集合D上有定义。
      如果存在数K1,使得 f(x)≤K1对任意x∈D都成立,则称函数f(x)在D上有上界。
      反之,如果存在数字K2,使得 f(x)≥K2对任意x∈D都成立,则称函数f(x)在D上有下界,而K2称为函数f(x)在D上的一个下界。
      如果存在正数M,使得 |f(x)|≤M 对任意x∈D都成立,则称函数在D上有界。如果这样的M不存在,就称函数f(x)在D上无界;等价于,无论对于任何正数M,总存在x1属于X,使得|f(x1)|>M,那么函数f(x)在X上无界。
      此外,函数f(x)在X上有界的充分必要条件是它在X上既有上界也有下界。
      最小的上界是上确界。

总结

我们在求解拉格朗日函数的时候,是在求极大极小问题。有时候这个问题会相对复杂,就转换成对偶的方式求解,即极小极大。极大极小会有一个最小上界p*,极小极大会有一个最大下界d*。一般是这样推导出来的


d*=max g(*)

有时候也不计算对偶问题,而是随机选择乘子λ和ν,代入到g里面计算下界。但不能确保是最大下界,甚至有可能会出现负无穷。


如果这两个相等,就是强对偶。解决SVM就是假设了强对偶关系。强对偶的条件涉及到Slater,KKT。

任何满足 strong duality (不一定要求是通过 Slater 条件得到,也不一定要求是凸优化问题)的问题都满足 KKT 条件,换句话说,这是 strong duality 的一个必要条件。不过,当原始问题是凸优化问题的时候(当然还要求一应函数是可微的,否则 KKT 条件的最后一个式子就没有意义了),KKT 就可以升级为充要条件。

在只有 weak duality 成立的情况下,我们至少可以得到原始问题的一个下界。而如果 strong duality 成立,则可以直接求解 dual problem 来解决原始问题,就如同经典的 SVM 的求解过程一样。有可能 dual problem 比 primal problem 更容易求解,或者 dual problem 有一些优良的结构(例如 SVM 中通过 dual problem 我们可以将问题表示成数据的内积形式从而使得 kernel trick 的应用成为可能)。此外,还有一些情况会同时求解 dual 和 primal problem ,比如在迭代求解的过程中,通过判断 duality gap 的大小,可以得出一个有效的迭代停止条件。

详见上面的网址

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值