拉格朗日对偶法—入门版
主包又又又来补充数学知识点了,最近读论文总用到拉格朗日对偶,所以简单总结下一些基础知识点。
目录
一、拉格朗日对偶法解决的问题
二、拉格朗日函数
2.1 基本思想
2.2 拉格朗日函数的定义
2.3 简单例子
三、原始问题的等价形式
3.1 最大最小表示
四、对偶问题
4.1 交换最大最小的顺序
4.2 对偶函数
4.3 弱对偶性
五、强对偶性
5.1 什么是强对偶?
5.2 什么时候强对偶成立?
六、KKT条件
6.1 最优性的必要条件
6.2 互补松弛条件的直观理解
七、完整例子
八、对偶法的优势
九、总结
一、拉格朗日对偶法解决的问题
求解一个优化问题:
原始问题(Primal Problem):
- 最小化:
(目标函数)
- 约束条件:
(不等式约束)
(等式约束)
拉格朗日对偶法是一种将 约束优化问题 转化为 无约束优化问题 的方法。通过引入拉格朗日乘数,将约束条件融入目标函数中。
二、拉格朗日函数
2.1 基本思想
拉格朗日的核心思想是:把约束条件融入到目标函数中,构造一个新的函数。
2.2 拉格朗日函数的定义
其中:
- x:原始变量
:不等式约束的拉格朗日乘子(也叫对偶变量)
:等式约束的拉格朗日乘子(可正可负)
2.3 简单例子
假设我们要最小化 ,约束条件是
(即
)
拉格朗日函数为:
三、原始问题的等价形式
3.1 最大最小表示
原始问题可以等价地写成:
为什么等价?
1. 当 x 满足约束时:
,所以
(在
时取得)
,所以
- 因此
2. 当 x 不满足约束时:
- 如果某个
,则
- 如果某个
,则
- 因此
所以,这个最大最小问题自动"惩罚"了不满足约束的 x。
四、对偶问题
4.1 交换最大最小的顺序
如果我们交换最大和最小的顺序,得到:
这就是对偶问题(Dual Problem)!
4.2 对偶函数
定义对偶函数:
对偶问题就是:
4.3 弱对偶性
重要性质:对偶问题的最优值 d* 总是 ≤ 原始问题的最优值 p*
这个差距称为对偶间隙(Duality Gap)。
为什么? 因为对于任意的 x,α,β:
值得一提的是,总是凹函数,无论原问题是否是凸优化问题,所以可以使用凸优化问题经典解决算法搞定 ~
五、强对偶性
5.1 什么是强对偶?
当 时,我们说强对偶性成立,即对偶间隙为0。
5.2 什么时候强对偶成立?
Slater条件(一个常用的充分条件):
- 原始问题是凸优化问题(
和
是凸函数,
是仿射函数)
- 存在严格可行点(即存在 xx,使得所有不等式约束严格成立:
)
六、KKT条件
6.1 最优性的必要条件
当强对偶性成立时,x∗,α∗,β∗ 是最优解的充要条件是满足KKT条件:
-
原始可行性:
-
对偶可行性:
-
互补松弛条件:
(非常重要!)
-
梯度条件:
6.2 互补松弛条件的直观理解
互补松弛条件 意味着:
- 要么
(约束不起作用,在最优点附近稍微违反此约束不会影响最优值)
- 要么
(约束紧致,最优解恰好在约束边界上)
KKT条件的几何意义是:在最优点处,目标函数的负梯度方向可以表示为起作用约束梯度的非负线性组合,这意味着无法在可行域内找到使目标函数进一步减小的方向。
七、完整例子
让我们用一个具体例子把所有内容串起来:
问题:最小化,约束
步骤1:改写约束为标准形式
步骤2:写出拉格朗日函数
步骤3:求对偶函数(对 x 最小化)
代入得:
步骤4:求对偶问题最优解
步骤5:求原始最优解:
验证:
约束紧致:
八、对偶法的优势
- 降维:有时对偶问题的变量更少,更容易求解
- 理论分析:提供了最优值的下界
- 算法设计:许多算法基于对偶问题(如SVM)
- 灵敏度分析:对偶变量反映了约束的"价值"
九、总结
拉格朗日对偶法的核心流程:
原始问题 → 拉格朗日函数 → 对偶函数 → 对偶问题↓检查强对偶性(凸性+Slater条件)↓KKT条件求解