拉格朗日对偶性

在约束优化问题中,常常用拉格朗日对偶性来将原始问题转为对偶问题,通过解对偶问题的解来得到原始问题的解。

1.为什么要利用对偶?

首先要明确,对偶问题的解不一定直接等于原问题的解(弱对偶),但是对偶问题有两点性质:

  • 无论原始问题是否是凸的,对偶问题都是凸优化问题
  • 当Lagrange对偶问题的强对偶性成立时,可以利用求解对偶问题来求解原问题;而原问题是凸优化问题时,强对偶性往往成立;弱对偶性永远成立,可以为原问题提供下界。

(1)原始问题

优化问题:

minxf(x)s.t.gi(x)0, for i=1,2,,mhj(x)=0, for j=1,2,,n

拉格朗日函数:

L(x,α,β)=f(x)+i=1qαigi(x)+j=q+1mβjhj(x)

则原问题等价于:

(2-1)(1)minxmaxα,βL(x,α,β)(2)s.t.αi0

推导:

(3)minxmaxα,βL(x,α,β)(4)=minx(f(x)+maxα,β(i=1mαigi(x)+j=1nβjhj(x)))(5)=minx(f(x)+{0u满足约束条件otherwise)

  • 当g不满足约束条件的时候gi(x)>0,我们内层优化取max,因此 αi=αigi(x)=
  • 当g满足约束条件的时候gi(x)0,我们内层优化取max,因此 αi=0αigi(x)=0
  • 当h不满足约束条件的时候hj(x)0,同理可以取 βj=sign(hj(x))βjhj(x)=
  • 当h满足约束条件的时候hj(x)=0,同理可以取 βjhj(x)=0

为了使2-1达到优值,需要满足如下条件(KKT条件):

  • 主问题可行: gi(x)0,hi(x)=0
  • 对偶问题可行: αi0
  • 互补松弛: αigi(x)=0

主问题可行是上面推导的结果,对偶问题可行为2-1的约束项;互补松弛是主问题和对偶问题都可行的条件下的最大值。

原始问题求得的解为g

(2)对偶问题

(2-2)maxα,βminxL(x,α,β)s.t.αi0

对偶问题是原问题的下界,即:

maxα,βminxL(x,α,β)minxmaxα,βL(x,α,β)

因为下式总是成立:

minxL(x,α,β)minxmaxα,βL(x,α,β)

对偶问题求得的解为d

对任意可能的值求极值,肯定不如直接求到的极值大。有句俗语叫“瘦死的骆驼比马大”说的就是这个道理。

  • 弱对偶d<=g),对于所有优化问题都成立,这个时候我们可以得到原始问题的一个下界。
  • 强对偶d=g),满足某些条件才成立,这时可以用解对偶问题替代原始问题。那么满足什么样的条件可以得到强对偶呢?(如果原问题是一个凸优化,并且不等式约束g(x)是严格可行的,即存在x对所有i有$g_i(x)<0$,那么强对偶成立。这里需要注意的是,这里的条件只是强对偶成立的一种情况,对于非凸的问题也有可能是强对偶。

如果原问题是一个凸优化,并且不等式约束$g(x)$是严格可行的,即存在$x$对所有$i$有$gi(x)<0$,那么强对偶成立。这里需要注意的是,这里的条件只是强对偶成立的一种情况,对于非凸的问题也有可能是强对偶。强对偶成立时,将拉格朗日函数分别对原变量x和对偶变量αβ分别求导,令导数等于零(还需要满足KKT条件),即可求解对偶问题的解,也就求得了原问题的解。

强对偶成立的条件:Slater条件

Slater定理:当Slater条件成立且原问题是凸优化问题时,强对偶成立。

 

 

满足强对偶性的例子:

  • 线性规划
  • 最小二乘
  • 最大熵问题

(3)KKT条件

当Lagrange对偶问题的强对偶性成立时,可以利用求解对偶问题来求解原问题;而原问题是凸优化问题时,强对偶性往往成立。否则,可以利用求解对偶问题求出原问题最优值的下界。

 

 

(鞍点就满足KKT,但鞍点就不是最优解))

 

 当原问题只有等式约束而没有不等式约束时,KKT条件即为拉格朗日乘数法。

(4)KKT与凸优化的关系

KKT主要是针对带约束的可微分的优化问题,凸优化研究的对象是目标函数为凸函数,约束为凸集的优化问题。因此这两者研究的对象,有交集,也各有不同。

凸优化:

  • 第一类问题为两类问题的交集即带约束的可微分凸优化问题,这类问题目前已经被很好的解决了,它同时具备两类问题的性质,凸优化和可微分性,让原来KKT从局部最优解的必要条件变为全局最优解的充要条件。
  • 第二类问题是凸优化但是不可微分,这类问题也较为常见,在拉格朗日松弛算法中,对偶问题一般都是不可微分的凸优化问题,因为不可微分,传统的基于梯度的方法就不适用了,一般采用次梯度的方法,主要难点在于次梯度如何确定,由于次梯度不唯一,如何确定一个简单有效的次梯度也是一个问题。
  • 第三类问题是可微分的但不是凸优化的,这类问题也很多,一般这类问题都可以采用基于梯度的算法来求解,例如对神经网络的训练多数就属于这类问题。采用梯度法仅仅能保证收敛到局部最优的必要条件而已。因此该类问题的受困于陷入鞍点和全局最优的寻找是很困难的。

非凸优化:非凸且不可微分



 

 

 

 

 

 

 

 

参考文献:

【1】『我爱机器学习』深入理解SVM(一) 原始问题和对偶问题

【2】优化问题

【3】凸优化(八)——Lagrange对偶问题

posted @   nxf_rabbit75  阅读(925)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
1.为什么要利用对偶?(1)原始问题(2)对偶问题强对偶成立的条件:Slater条件(3)KKT条件(4)KKT与凸优化的关系
点击右上角即可分享
微信分享提示