本文来自 矩阵分析与应用,第二版
。
约束优化算法的标准处理方式是将其转化为无约束优化算法,有三种常见的转化方式,分别是lagrangian乘子法,罚函数法以及增广lagrangian乘子法(lagrangian乘子法+罚函数法)。
下面分别介绍拉格朗日乘子法。
拉格朗日乘子法
考虑等式约束的凸优化问题
min
f
(
x
)
subject to
A
x
=
b
(1)
\min f(\boldsymbol{x})\quad\text{subject to }A\boldsymbol{x}=\boldsymbol{b} \tag{1}
minf(x)subject to Ax=b(1)
其中
x
∈
R
n
,
A
∈
R
m
×
n
x \in \mathbb{R}^{n},A \in \mathbb{R}^{m \times n}
x∈Rn,A∈Rm×n,并且目标函数
f
:
R
n
→
R
f : \mathbb{R}^n \rightarrow \mathbb{R}
f:Rn→R是凸函数。
lagrangian乘子法将式(1)变成无约束最小化问题,其lagrangian目标函数为
L
(
x
,
λ
)
=
f
(
x
)
+
λ
T
(
A
x
−
b
)
(2)
L(x,\lambda)=f(x)+\lambda^{\mathrm{T}}(Ax-b) \tag{2}
L(x,λ)=f(x)+λT(Ax−b)(2)
原始优化问题(1)的对偶目标函数为
g
(
λ
)
=
inf
x
L
(
x
,
λ
)
=
−
f
⋆
(
−
A
T
λ
)
−
b
T
λ
(3)
g(\lambda)=\inf_{\boldsymbol{x}}L(\boldsymbol{x},\boldsymbol{\lambda})=-f^{\star}(-\boldsymbol{A}^{\mathrm{T}}\boldsymbol{\lambda})-\boldsymbol{b}^{\mathrm{T}}\boldsymbol{\lambda} \tag{3}
g(λ)=xinfL(x,λ)=−f⋆(−ATλ)−bTλ(3)
其中
λ
\lambda
λ为对偶变量或者称为Lagrangian乘子向量,
f
⋆
f^{\star}
f⋆是
f
f
f的凸共轭函数。
− sup x ∈ D f ( x ) = inf x ∈ D { − f ( x ) } -\sup_{x\in D}f(x)=\inf_{x\in D}\{-f(x)\} −x∈Dsupf(x)=x∈Dinf{−f(x)}
借助lagrangian乘子法,原始等式约束极小化式(1)变成对偶极大化问题
max
λ
∈
R
m
g
(
λ
)
=
−
f
∗
(
−
A
T
λ
)
−
b
T
λ
(4)
\max_{\lambda\in\mathbb{R}^{m}}g(\lambda)=-f^{*}(-A^{\mathrm{T}}\lambda)-b^{\mathrm{T}}\lambda \tag{4}
λ∈Rmmaxg(λ)=−f∗(−ATλ)−bTλ(4)
假定强对偶性满足,则原始问题和对偶问题的最优解相同。此时,原始极小化问题式(1)的最优解点
x
∗
\boldsymbol{x}^*
x∗即可由下式恢复
x
∗
=
arg
min
x
L
(
x
,
λ
⋆
)
(5)
\boldsymbol{x}^* = \underset{\boldsymbol{x}}{\arg \min} L(\boldsymbol{x},\boldsymbol{\lambda}^\star) \tag{5}
x∗=xargminL(x,λ⋆)(5)
在对偶上升法(dual ascent method)中,利用梯度上升法求解极大化问题式(4)。对偶上升法由两个步骤组成
x
k
+
1
=
arg
min
x
L
(
x
,
λ
k
)
λ
k
+
1
=
λ
k
+
μ
k
(
A
x
k
+
1
−
b
)
\begin{align*} \boldsymbol{x}_{k+1} = \underset{\boldsymbol{x}}{\arg \min} L(\boldsymbol{x},\boldsymbol{\lambda}_k) \tag{6} \\ \boldsymbol{\lambda}_{k+1} = \boldsymbol{\lambda}_{k} + \mu_k(\boldsymbol{A} \boldsymbol{x}_{k+1} - \boldsymbol{b}) \tag{7} \end{align*}
xk+1=xargminL(x,λk)λk+1=λk+μk(Axk+1−b)(6)(7)
其中式(6)为原始变量 x \boldsymbol{x} x极小化步骤,式(7)则是对偶变量 λ \boldsymbol{\lambda} λ更新步骤,其步长为 μ k \mu_{k} μk
由于对偶变量 λ ⪰ 0 \lambda \succeq 0 λ⪰0可解释为一价格向量,所以对偶变量的更新也叫价格上升(price ascent)或价格调整(price adjustment)步骤。价格上升的目的就是使收益函数 g ( λ k ) g(\boldsymbol{\lambda}^k) g(λk)趋近于最大化。
对偶上升法包含有两层含义:
- 对偶变量 λ \boldsymbol{\lambda} λ的更新采用梯度上升法
- 通过步长 μ k \mu_k μk的适当选择,保证对偶目标函数的上升,即 g ( λ k + 1 ) > g ( λ k ) g(\boldsymbol{\lambda}^{k+1}) >g(\boldsymbol{\lambda}^k) g(λk+1)>g(λk)
思维导图
Convex Optimization with Equality Constraints
│
├── Lagrangian Multiplier Method
│ ├── Origin: Optimization Problem
│ │ └── min f(x) subject to Ax = b
│ │
│ └── Transform: Lagrangian Function
│ └── L(x,λ) = f(x) + λᵀ(Ax - b)
│
├── Dual Objective Function
│ └── Derive: Dual Function
│ └── g(λ) = inf_x L(x, λ)
│ └── = -f* (-Aᵀλ) - bᵀλ
│
├── Dual Ascent Method
│ ├── Objective: Maximize λ g(λ)
│ │ └── = -f* (-Aᵀλ) - bᵀλ
│ │
│ ├── Step 1: Minimize L(x, λk) for x
│ │ └── x(k+1) = arg min_x L(x, λk)
│ │
│ └── Step 2: Update λ
│ └── λ(k+1) = λk + μk(Ax(k+1) - b)
│ └── Price ascent or adjustment step
│
└── Strong Duality
├── Assumption: Strong Duality Satisfied
│
└── Recover Solution: Optimal x*
└── x* = arg min_x L(x, λ*)
参考
- 矩阵分析与应用,第二版