拉格朗日对偶详细讲解
第一章:问题的起源与动机
1.1 为什么需要拉格朗日对偶?
经典问题:如何求解带约束的优化问题?
考虑一个简单例子:
minimize x₁² + x₂²
subject to x₁ + x₂ = 1
直观方法的困难:
- 直接求解需要处理约束
- 约束可能非线性、复杂
- 高维问题难以可视化
拉格朗日的天才想法:
将约束问题转化为无约束问题,通过引入"惩罚参数"
1.2 历史发展脉络
拉格朗日(1788) → 库恩-塔克(1951) → 现代凸优化理论
| | |
经典力学 非线性规划 机器学习、深度学习
第二章:数学基础详解
2.1 原始问题的标准形式
一般形式:
minimize f₀(x) # 目标函数
subject to fᵢ(x) ≤ 0, i=1,...,m # 不等式约束
hⱼ(x) = 0, j=1,...,p # 等式约束
x ∈ D # 定义域约束
符号约定:
x ∈ ℝⁿ:优化变量(决策变量)f₀: ℝⁿ → ℝ:目标函数fᵢ: ℝⁿ → ℝ:不等式约束函数hⱼ: ℝⁿ → ℝ:等式约束函数D:函数的定义域
可行域:
F = {x ∈ D : fᵢ(x) ≤ 0, i=1,...,m; hⱼ(x) = 0, j=1,...,p}
2.2 拉格朗日函数的深入构造
2.2.1 构造思想
核心思想:将约束条件"融合"到目标函数中
步骤1 - 处理等式约束:
对于 hⱼ(x) = 0,引入拉格朗日乘数 νⱼ:
L₁(x, ν) = f₀(x) + Σⱼ νⱼhⱼ(x)
为什么这样做?
- 当 hⱼ(x) = 0 时,νⱼhⱼ(x) = 0,不影响目标函数
- 当 hⱼ(x) ≠ 0 时,通过选择合适的 νⱼ 可以"惩罚"违反约束的点
步骤2 - 处理不等式约束:
对于 fᵢ(x) ≤ 0,引入非负拉格朗日乘数 λᵢ ≥ 0:
L(x, λ, ν) = f₀(x) + Σᵢ λᵢfᵢ(x) + Σⱼ νⱼhⱼ(x)
为什么 λᵢ ≥ 0?
- 当 fᵢ(x) < 0(满足约束)时,λᵢfᵢ(x) ≤ 0,"奖励"可行解
- 当 fᵢ(x) > 0(违反约束)时,λᵢfᵢ(x) > 0,"惩罚"不可行解
2.2.2 拉格朗日函数的性质
性质1 - 线性性:
L(x, λ, ν) 关于 (λ, ν) 是仿射函数(线性加常数)
性质2 - 下界性:
对任意可行点 x* 和 λ ≥ 0,有:
L(x*, λ, ν) ≤ f₀(x*)
证明:
L(x*, λ, ν) = f₀(x*) + Σᵢλᵢfᵢ(x*) + Σⱼνⱼhⱼ(x*)
= f₀(x*) + Σᵢλᵢfᵢ(x*) + 0 # 因为 hⱼ(x*) = 0
≤ f₀(x*) + 0 # 因为 λᵢ ≥ 0, fᵢ(x*) ≤ 0
= f₀(x*)
2.3 对偶函数的深入分析
2.3.1 对偶函数定义
g(λ, ν) = inf{L(x, λ, ν) : x ∈ D}
直观理解:
- 对于给定的 (λ, ν),找到使拉格朗日函数最小的 x
- g(λ, ν) 给出了在"惩罚强度" (λ, ν) 下能达到的最小值
2.3.2 对偶函数的重要性质
性质1 - 凹性(这是关键性质!)
定理:g(λ, ν) 总是凹函数,无论原问题是否为凸。
详细证明:
设 (λ₁, ν₁) 和 (λ₂, ν₂) 是任意两个对偶变量,θ ∈ [0,1]。
令 (λ, ν) = θ(λ₁, ν₁) + (1-θ)(λ₂, ν₂)
需要证明:
g(λ, ν) ≥ θg(λ₁, ν₁) + (1-θ)g(λ₂, ν₂)
证明步骤:
由对偶函数定义:
g(λ₁, ν₁) = inf L(x, λ₁, ν₁)
g(λ₂, ν₂) = inf L(x, λ₂, ν₂)
对于任意 x ∈ D:
L(x, λ, ν) = L(x, θ(λ₁, ν₁) + (1-θ)(λ₂, ν₂))
= f₀(x) + Σᵢ[θλ₁ᵢ + (1-θ)λ₂ᵢ]fᵢ(x) + Σⱼ[θν₁ⱼ + (1-θ)ν₂ⱼ]hⱼ(x)
= θ[f₀(x) + Σᵢλ₁ᵢfᵢ(x) + Σⱼν₁ⱼhⱼ(x)] + (1-θ)[f₀(x) + Σᵢλ₂ᵢfᵢ(x) + Σⱼν₂ⱼhⱼ(x)]
= θL(x, λ₁, ν₁) + (1-θ)L(x, λ₂, ν₂)
因此:
g(λ, ν) = inf L(x, λ, ν)
= inf [θL(x, λ₁, ν₁) + (1-θ)L(x, λ₂, ν₂)]
≥ θ inf L(x, λ₁, ν₁) + (1-θ) inf L(x, λ₂, ν₂) # 下确界的性质
= θg(λ₁, ν₁) + (1-θ)g(λ₂, ν₂)
凹性的深刻含义:
- 即使原问题非凸,对偶问题也是凸的(最大化凹函数)
- 保证了对偶问题的数值求解相对容易
性质2 - 下界性
定理:对任意 λ ≥ 0 和任意 ν,有 g(λ, ν) ≤ p*
其中 p* 是原问题的最优值。
证明:
设 x* 是原问题的最优解,则:
g(λ, ν) = inf L(x, λ, ν) ≤ L(x*, λ, ν) ≤ f₀(x*) = p*
2.3.3 对偶函数的计算
解析计算:
当拉格朗日函数关于 x 有解析最优解时,可直接计算。
例子:二次规划
minimize (1/2)xᵀPx + qᵀx + r
subject to Ax = b
拉格朗日函数:
L(x, ν) = (1/2)xᵀPx + qᵀx + r + νᵀ(Ax - b)
关于 x 求导并令其为零:
∇ₓL = Px + q + Aᵀν = 0
解得:
x*(ν) = -P⁻¹(q + Aᵀν) # 假设 P 可逆
代入得对偶函数:
g(ν) = -(1/2)(q + Aᵀν)ᵀP⁻¹(q + Aᵀν) + r - bᵀν
2.4 对偶问题
对偶问题:
maximize g(λ, ν)
subject to λᵢ ≥ 0, i = 1, ..., m
关键观察:
- 对偶问题总是凸优化问题(最大化凹函数)
- 对偶变量的维数 = 约束的个数
- 对偶问题可能比原问题更易求解
第三章:对偶理论的核心定理
3.1 弱对偶定理
定理(弱对偶性):
d* ≤ p*
其中 d* 是对偶最优值,p* 是原始最优值。
证明:
已在前面证明 g(λ, ν) ≤ p* 对所有 λ ≥ 0, ν 成立。
因此:
d* = max{g(λ, ν) : λ ≥ 0} ≤ p*
对偶间隙:
对偶间隙 = p* - d* ≥ 0
3.2 强对偶定理
定理(强对偶性):
在某些条件下,d* = p*(对偶间隙为零)。
3.2.1 Slater条件(约束规范条件)
定义:对于凸优化问题,如果存在 x ∈ relint D 使得:
fᵢ(x) < 0, i = 1, ..., m # 严格满足不等式约束
hⱼ(x) = 0, j = 1, ..., p # 满足等式约束
则称满足Slater条件。
强对偶定理:
如果原问题是凸优化问题且满足Slater条件,则强对偶成立。
3.2.2 其他约束规范条件
线性无关约束规范(LICQ):
梯度 ∇hⱼ(x*) 线性无关,且在 x* 处活跃不等式约束的梯度线性无关。
Mangasarian-Fromowitz条件(MFCQ):
梯度 ∇hⱼ(x*) 线性无关,且存在方向 d 使得:
∇hⱼ(x*)ᵀd = 0, ∀j
∇fᵢ(x*)ᵀd < 0, ∀i ∈ I(x*) # I(x*) 是活跃约束集合
3.3 KKT条件详解
3.3.1 KKT条件的推导
假设:
- f₀, fᵢ, hⱼ 可微
- 强对偶成立
- x*, (λ*, ν*) 分别是原问题和对偶问题的最优解
推导过程:
由强对偶性:
f₀(x*) = g(λ*, ν*) = inf L(x, λ*, ν*)
因此 x* 最小化 L(x, λ*, ν*),必要条件:
∇ₓL(x*, λ*, ν*) = 0
展开得:
∇f₀(x*) + Σᵢλᵢ*∇fᵢ(x*) + Σⱼνⱼ*∇hⱼ(x*) = 0 ... (1)
由原问题可行性:
fᵢ(x*) ≤ 0, i = 1, ..., m ... (2)
hⱼ(x*) = 0, j = 1, ..., p ... (3)
由对偶问题可行性:
λᵢ* ≥ 0, i = 1, ..., m ... (4)
互补松弛条件的推导:
由强对偶:
f₀(x*) = L(x*, λ*, ν*) = f₀(x*) + Σᵢλᵢ*fᵢ(x*) + Σⱼνⱼ*hⱼ(x*)
= f₀(x*) + Σᵢλᵢ*fᵢ(x*) # 因为 hⱼ(x*) = 0
因此:
Σᵢλᵢ*fᵢ(x*) = 0
由于 λᵢ* ≥ 0 和 fᵢ(x*) ≤ 0,上式成立当且仅当:
λᵢ*fᵢ(x*) = 0, ∀i = 1, ..., m ... (5)
3.3.2 完整的KKT条件
∇f₀(x*) + Σᵢλᵢ*∇fᵢ(x*) + Σⱼνⱼ*∇hⱼ(x*) = 0 # 平稳条件
fᵢ(x*) ≤ 0, i = 1, ..., m # 原始可行性
hⱼ(x*) = 0, j = 1, ..., p # 原始可行性
λᵢ* ≥ 0, i = 1, ..., m # 对偶可行性
λᵢ*fᵢ(x*) = 0, i = 1, ..., m # 互补松弛
3.3.3 互补松弛的几何意义
互补松弛条件 λᵢfᵢ(x) = 0 意味着:
-
情况1:λᵢ* > 0 ⟹ fᵢ(x*) = 0
- 约束是"紧的"(active)
- 拉格朗日乘数为正,约束"起作用"
-
情况2:fᵢ(x*) < 0 ⟹ λᵢ* = 0
- 约束是"松的"(inactive)
- 约束不起作用,拉格朗日乘数为零
几何解释:
- 在最优点,只有"紧约束"影响最优解
- "松约束"可以去掉而不改变最优解
第四章:几何直观与可视化
4.1 二维情形的几何理解
例子:
minimize f₀(x₁, x₂)
subject to f₁(x₁, x₂) ≤ 0
几何解释:
- 可行域:{(x₁, x₂) : f₁(x₁, x₂) ≤ 0}
- 等高线:f₀(x₁, x₂) = c 的曲线族
- 最优解:等高线与可行域边界的切点
KKT条件的几何意义:
∇f₀(x*) + λ*∇f₁(x*) = 0
表示在最优点 x*,目标函数梯度与约束函数梯度共线且方向相反。
4.2 拉格朗日函数的几何理解
水平集解释:
对固定的 (λ, ν),拉格朗日函数 L(x, λ, ν) 的等高线是倾斜的。
支撑超平面解释:
- 对偶函数 g(λ, ν) 在每个点处构造可行域的"支撑超平面"
- λ, ν 控制超平面的"倾斜程度"
4.3 对偶间隙的几何意义
对偶间隙 = p* - d*
几何解释:
- 间隙 = 0:原问题几何结构与对偶结构完美匹配
- 间隙 > 0:存在几何"失配",通常由非凸性或约束规范条件失效引起
第五章:实际计算与算法
5.1 对偶函数的数值计算
步骤:
- 对给定的 (λ, ν),求解:min L(x, λ, ν)
- 如果有解析解,直接计算
- 否则使用数值优化方法
例子:支持向量机
原问题:
minimize (1/2)||w||² + C Σξᵢ
subject to yᵢ(wᵀxᵢ + b) ≥ 1 - ξᵢ, ξᵢ ≥ 0
拉格朗日函数:
L = (1/2)||w||² + C Σξᵢ - Σαᵢ[yᵢ(wᵀxᵢ + b) - 1 + ξᵢ] - Σμᵢξᵢ
关于 w, b, ξ 求导:
∇w L = w - Σαᵢyᵢxᵢ = 0 ⟹ w = Σαᵢyᵢxᵢ
∇b L = -Σαᵢyᵢ = 0 ⟹ Σαᵢyᵢ = 0
∇ξ L = C - αᵢ - μᵢ = 0 ⟹ αᵢ + μᵢ = C
代入得对偶函数:
g(α) = Σαᵢ - (1/2)ΣΣαᵢαⱼyᵢyⱼxᵢᵀxⱼ
5.2 基于对偶的算法框架
5.2.1 对偶上升算法
基本思想:在对偶空间进行梯度上升
算法:对偶上升
初始化:λ⁽⁰⁾, ν⁽⁰⁾
for k = 0, 1, 2, ...
x⁽ᵏ⁺¹⁾ = argmin L(x, λ⁽ᵏ⁾, ν⁽ᵏ⁾)
λᵢ⁽ᵏ⁺¹⁾ = max(0, λᵢ⁽ᵏ⁾ + αₖfᵢ(x⁽ᵏ⁺¹⁾))
νⱼ⁽ᵏ⁺¹⁾ = νⱼ⁽ᵏ⁾ + αₖhⱼ(x⁽ᵏ⁺¹⁾)
5.2.2 增广拉格朗日方法
动机:标准拉格朗日方法可能数值不稳定
增广拉格朗日函数:
Lc(x, λ, ν) = f₀(x) + Σλᵢfᵢ(x) + Σνⱼhⱼ(x) + (c/2)[Σfᵢ(x)₊² + Σhⱼ(x)²]
其中 fᵢ(x)₊ = max(0, fᵢ(x)),c > 0 是惩罚参数。
第六章:重要应用实例
6.1 线性规划的对偶
原问题:
minimize cᵀx
subject to Ax ≥ b, x ≥ 0
对偶问题:
maximize bᵀy
subject to Aᵀy ≤ c, y ≥ 0
经济解释:
- 原问题:资源配置问题
- 对偶问题:影子价格问题
- 强对偶:资源的最小成本 = 影子价格的最大收益
总结
拉格朗日对偶理论是优化理论的核心,它不仅提供了求解约束优化问题的强大工具,更重要的是给出了理解优化问题本质的深刻洞察。
核心要点:
- 理论基础:弱对偶总成立,强对偶需要条件
- 几何直观:支撑超平面与切点的对偶关系
- 计算工具:KKT条件提供必要(凸情形下充要)条件
- 应用广泛:从经典优化到现代机器学习
拉格朗日对偶不仅是数学工具,更是一种思维方式——将复杂问题转化为简单问题,将约束问题转化为无约束问题,将原始空间的困难转化为对偶空间的便利。
1万+

被折叠的 条评论
为什么被折叠?



