同步于Buracag的博客
主要介绍一下数学优化中的拉格朗日乘数法和KKT条件,其实在 拙文 中已经有关于KKT条件的简要介绍和自己的个人总结,这里再一起回顾一下。
拉格朗日乘数法(Lagrange Multiplier)是约束优化问题的一种有效求解方法。约束优化问题可以表示为
(1)
min
x
f
(
x
)
s
u
b
j
e
c
t
t
o
h
i
(
x
)
=
0
,
i
=
1
,
.
.
.
,
m
g
j
(
x
)
≤
0
,
j
=
1
,
.
.
.
,
n
\min_{x} \qquad f(x) \\ subject \quad to \qquad h_i(x) = 0, i = 1, ... ,m \\ \qquad g_j(x) ≤ 0, j = 1, . . . , n \tag{1}
xminf(x)subjecttohi(x)=0,i=1,...,mgj(x)≤0,j=1,...,n(1)
其中
h
i
(
x
)
h_i(x)
hi(x)为等式约束函数,
g
j
(
x
)
g_j(x)
gj(x)为不等式约束函数。x的可行域为
(2)
D
=
d
o
m
f
∩
⋂
i
=
1
m
d
o
m
h
i
∩
⋂
j
=
1
n
d
o
m
g
j
⊆
R
d
D = domf\cap \bigcap_{i=1}^{m} domh_i \cap \bigcap_{j=1}^{n} domg_j \subseteq \Bbb{R}^d \tag{2}
D=domf∩i=1⋂mdomhi∩j=1⋂ndomgj⊆Rd(2)
其中
d
o
m
f
domf
domf是函数f的定义域。
1. 等式约束优化问题
如果公式(1) 中只有等式约束,我们可以构造一个拉格朗日函数Λ(x, λ):
(3)
Λ
(
x
,
λ
)
=
f
(
x
)
+
∑
i
=
1
m
λ
i
h
i
(
x
)
\Lambda(x, \lambda) = f(x) + \sum_{i=1}^{m}\lambda_i h_i(x) \tag{3}
Λ(x,λ)=f(x)+i=1∑mλihi(x)(3)
其中
λ
\lambda
λ为拉格朗日乘数。如果
f
(
x
∗
)
f(x^∗)
f(x∗)是原始约束优化问题的局部最优值,那么存在一个
λ
∗
λ^∗
λ∗使得
(
x
∗
,
λ
∗
)
(x^∗, λ^∗)
(x∗,λ∗)为拉格朗日函数
Λ
(
x
,
λ
)
Λ(x, λ)
Λ(x,λ)的平稳点(stationary point)。因此,只需要令
∂
Λ
(
x
,
λ
)
∂
x
=
0
\frac{\partialΛ(x,λ)}{\partial x} = 0
∂x∂Λ(x,λ)=0和
∂
Λ
(
x
,
λ
)
∂
λ
=
0
\frac{\partialΛ(x,λ)}{\partial \lambda} = 0
∂λ∂Λ(x,λ)=0,得到
(4)
∇
f
(
x
)
+
∑
i
=
1
m
λ
i
∇
h
i
(
x
)
=
0
\nabla f(x) + \sum_{i=1}^{m}\lambda_i \nabla h_i(x) = 0 \tag{4}
∇f(x)+i=1∑mλi∇hi(x)=0(4)
(5) h i ( x ) = 0 , i = 0 , . . . , m h_i(x) = 0, \qquad i=0, ..., m \tag{5} hi(x)=0,i=0,...,m(5)
上面方程组的解即为原始问题的可能解。在实际应用中,需根据问题来验证是否为极值点。
拉格朗日乘数法是将一个有 d d d个变量和 m m m个等式约束条件的最优化问题转换为一个有 d + m d + m d+m个变量的函数求平稳点的问题。拉格朗日乘数法所得的平稳点会包含原问题的所有极值点,但并不保证每个平稳点都是原问题的极值点。
2. 不等式约束优化问题
对于公式(1) 中定义的一般约束优化问题,其拉格朗日函数为
(6)
Λ
(
x
,
a
,
b
)
=
f
(
x
)
+
∑
i
=
1
m
a
i
h
i
(
x
)
+
∑
j
=
1
n
b
j
g
j
(
x
)
\Lambda(x, a, b) = f(x) + \sum_{i=1}^{m}a_i h_i(x) + \sum_{j=1}^{n}b_j g_j(x) \tag{6}
Λ(x,a,b)=f(x)+i=1∑maihi(x)+j=1∑nbjgj(x)(6)
其中
a
=
[
a
1
,
.
.
.
,
a
m
]
T
a = [a_1, ... , a_m]^T
a=[a1,...,am]T为等式约束的拉格朗日乘数,
b
=
[
b
1
,
.
.
.
,
b
n
]
T
b = [b_1, ... , b_n]^T
b=[b1,...,bn]T为不等式约束的拉格朗日乘数。
当约束条件不满足时,有
max
a
,
b
Λ
(
x
,
a
,
b
)
=
∞
\max_{a,b} \Lambda(x, a, b) = \infty
maxa,bΛ(x,a,b)=∞;当约束条件满足时并且
b
≥
0
b ≥ 0
b≥0时,
max
a
,
b
Λ
(
x
,
a
,
b
)
=
f
(
x
)
\max_{a,b} \Lambda(x, a, b) = f(x)
maxa,bΛ(x,a,b)=f(x)。因此原始约束优化问题等价于
(7)
min
x
max
a
,
b
Λ
(
x
,
a
,
b
)
\min_x \max_{a,b} \Lambda(x, a, b) \tag{7}
xmina,bmaxΛ(x,a,b)(7)
(8) s u b j e c t t o b ≥ 0 subject \quad to \qquad b ≥ 0 \tag{8} subjecttob≥0(8)
这个min-max优化问题称为主问题(Primal Problem)。
对偶问题 主问题的优化一般比较困难,我们可以通过交换min-max 的顺序来简化。定义拉格朗日对偶函数为
(9)
Γ
(
a
,
b
)
=
inf
x
∈
D
Λ
(
x
,
a
,
b
)
\Gamma(a, b) = \inf_{x \in D}\Lambda (x, a, b) \tag{9}
Γ(a,b)=x∈DinfΛ(x,a,b)(9)
Γ ( a , b ) \Gamma(a, b) Γ(a,b)是一个凹函数,即使 f ( x ) f(x) f(x)是非凸的。
当
b
≥
0
b \geq 0
b≥0时,对于任意的KaTeX parse error: Expected 'EOF', got '\cal' at position 15: \tilde{x} \in \̲c̲a̲l̲{D},有
(10)
Γ
(
a
,
b
)
=
inf
x
∈
D
Λ
(
x
,
a
,
b
)
≤
Λ
(
x
~
,
a
,
b
)
≤
f
(
x
~
)
\Gamma(a, b) = \inf_{x\in D}\Lambda(x, a, b) \leq \Lambda(\tilde{x}, a, b) ≤ f(\tilde{x}) \tag{10}
Γ(a,b)=x∈DinfΛ(x,a,b)≤Λ(x~,a,b)≤f(x~)(10)
令
p
∗
p^∗
p∗是原问题的最优值,则有
(11)
Γ
(
a
,
b
)
≤
p
∗
\Gamma(a, b) \leq p^∗ \tag{11}
Γ(a,b)≤p∗(11)
即拉格朗日对偶函数
Γ
(
a
,
b
)
Γ(a, b)
Γ(a,b)为原问题最优值的下界。
优化拉格朗日对偶函数
Γ
(
a
,
b
)
Γ(a, b)
Γ(a,b)并得到原问题的最优下界,称为拉格朗日对偶问题(Lagrange Dual Problem)。
(12)
max
a
,
b
Γ
(
a
,
b
)
s
u
b
j
e
c
t
t
o
b
≥
0
\max_{a,b} \qquad \Gamma(a, b) \\ subject \quad to \qquad b ≥ 0 \tag{12}
a,bmaxΓ(a,b)subjecttob≥0(12)
拉格朗日对偶函数为凹函数,因此拉格朗日对偶问题为凸优化问题。
令 d ∗ d^∗ d∗表示拉格朗日对偶问题的最优值,则有 d ∗ ≤ p ∗ d^∗ \leq p^∗ d∗≤p∗,这个性质称为弱对偶性(Weak Duality)。如果 d ∗ = p ∗ d^∗ = p^∗ d∗=p∗,这个性质称为强对偶性(Strong Duality)。
当强对偶性成立时,令
x
∗
x^∗
x∗和
a
∗
,
b
∗
a^∗, b^∗
a∗,b∗分别是原问题和对偶问题的最优解,那么它们满足以下条件:
(13)
∇
f
(
x
∗
)
+
∑
i
=
1
m
a
i
∗
∇
h
i
(
x
∗
)
+
∑
j
=
1
n
b
j
∗
∇
g
j
(
x
∗
)
=
0
h
i
(
x
∗
)
=
0
,
i
=
0
,
.
.
.
,
m
g
j
(
x
∗
)
≤
0
,
j
=
0
,
.
.
.
,
n
b
j
∗
g
j
(
x
∗
)
=
0
,
j
=
0
,
.
.
.
,
n
b
j
∗
≥
0
,
j
=
0
,
.
.
.
,
n
\nabla f(x^∗) + \sum_{i=1}^ma_i^∗ \nabla h_i(x^∗) + \sum_{j=1}^{n}b_j^∗\nabla g_j(x^∗) = 0 \\ h_i(x^∗) = 0, \quad i = 0, ... ,m \\ g_j(x^∗) \leq 0, \quad j = 0, ... , n \\ b_j^∗ g_j(x^∗) = 0, \quad j = 0, ... , n \\ b_j^∗ \geq 0, \quad j = 0, ... , n \tag{13}
∇f(x∗)+i=1∑mai∗∇hi(x∗)+j=1∑nbj∗∇gj(x∗)=0hi(x∗)=0,i=0,...,mgj(x∗)≤0,j=0,...,nbj∗gj(x∗)=0,j=0,...,nbj∗≥0,j=0,...,n(13)
称为不等式约束优化问题的KKT条件(Karush-Kuhn-Tucker Conditions)。KKT条件是拉格朗日乘数法在不等式约束优化问题上的泛化。当原问题是凸优化问题时,满足KKT条件的解也是原问题和对偶问题的最优解。
KKT条件中需要关注的是公式(13)中的等式 b j ∗ g j ( x ∗ ) = 0 , j = 0 , . . . , n b_j^∗ g_j(x^∗) = 0, \quad j = 0, ... , n bj∗gj(x∗)=0,j=0,...,n,称为互补松弛条件(Complementary Slackness)。如果最优解 x ∗ x^∗ x∗出现在不等式约束的边界上 g j ( x ) = 0 g_j(x) = 0 gj(x)=0,则 b j ∗ > 0 b_j^∗ > 0 bj∗>0;如果 x ∗ x^∗ x∗出现在不等式约束的内部 g j ( x ) < 0 g_j(x) < 0 gj(x)<0,则 b j ∗ b_j^∗ bj∗= 0$。互补松弛条件说明当最优解出现在不等式约束的内部,则约束失效。