一、拉格朗日乘子法
在数学优化问题中,拉格朗日乘数法(Lagrange multipliers )是一种用于求解等式约束条件下局部最小(最大)值的策略。它的基本思想是通过将含约束条件的优化问题转化为无约束条件下的优化问题,以便于得到各个未知变量的梯度,进而求得极值点。
拉格朗日乘法的基本形态:求函数
z
=
f
(
x
,
y
)
在约束
ϕ
(
x
,
y
)
=
0
z=f(x,y)在约束\phi(x,y)=0
z=f(x,y)在约束ϕ(x,y)=0下的条件极值问题,可以转化为函数
L
(
x
,
y
,
λ
)
=
f
(
x
,
y
)
+
λ
ϕ
(
x
,
y
)
L(x,y,\lambda)=f(x,y)+\lambda\phi(x,y)
L(x,y,λ)=f(x,y)+λϕ(x,y)的无条件极值。
由于计算一个函数的无条件极值是很容易的(通过对函数的各个变量求偏导数,然后令所有的偏导数都为0,解这个方程组即可),所以拉格朗日乘法通过将条件极值问题转化为无条件极值问题,从而很好的解决了条件极值问题。
二、拉格朗日函数应用示例
此处以麻省理工学院数学课程的一个实例来作为介绍拉格朗日乘数法。
求双曲线xy=3上离远点最近的点。
取双曲线上任意一点
(
x
,
y
)
(x,y)
(x,y)到原点的距离
d
=
x
2
+
y
2
d=\sqrt{x^2+y^2}
d=x2+y2,所以这个问题实际上是在
x
y
=
3
xy=3
xy=3的约束下,求得
d
=
x
2
+
y
2
d=\sqrt{x^2+y^2}
d=x2+y2的最小值,它等价于求
z
=
x
2
+
y
2
z=x^2+y^2
z=x2+y2
我们将
x
2
+
y
2
=
c
x^2+y^2=c
x2+y2=c的曲线族画出来,如下图所示,当曲线族中的圆与
x
y
=
3
xy=3
xy=3曲线进行相切时,切点到原点的距离最短。也就是说,当
f
(
x
,
y
)
=
c
f(x,y)=c
f(x,y)=c的等高线和双曲线
g
(
x
,
y
)
g(x,y)
g(x,y)相切时,我们可以得到上述优化问题的一个极值。
先将问题描述为下面的约束优化问题:
{ m i n f ( x , y ) = x 2 + y 2 s . t . x y − 3 = 0 \begin{cases} min & f(x,y)=x^2+y^2\\ s.t.&xy-3=0 \end{cases} {mins.t.f(x,y)=x2+y2xy−3=0
令
ϕ
(
x
,
y
)
=
x
y
−
3
\phi(x,y)= xy-3
ϕ(x,y)=xy−3
那么拉格朗日函数为:
L
(
x
,
y
,
λ
)
=
f
(
x
,
y
)
+
ϕ
(
x
,
y
)
=
x
2
+
y
2
+
λ
(
x
y
−
3
)
L(x,y,\lambda)=f(x,y) + \phi(x,y)= x^2 + y^2 + \lambda(xy-3)
L(x,y,λ)=f(x,y)+ϕ(x,y)=x2+y2+λ(xy−3)
对上式中的
x
,
y
,
λ
x,y,\lambda
x,y,λ分别求偏导,然后令所有的偏导为0,可以得到:
{
∂
L
∂
x
=
2
x
+
λ
y
=
0
∂
L
∂
y
=
2
y
+
λ
x
=
0
∂
L
∂
λ
=
x
y
−
3
=
0
\begin{cases} \frac{\partial L}{\partial x}=2x+ \lambda y = 0\\ \frac{\partial L}{\partial y} = 2y + \lambda x = 0\\ \frac{\partial L}{\partial \lambda} = xy - 3 = 0 \end{cases}
⎩
⎨
⎧∂x∂L=2x+λy=0∂y∂L=2y+λx=0∂λ∂L=xy−3=0
求解这个方程组,可以得到两个解:
{
x
=
3
y
=
3
λ
=
−
2
\begin{cases} x=\sqrt{3}\\ y=\sqrt{3}\\ \lambda = -2 \end{cases}
⎩
⎨
⎧x=3y=3λ=−2
{ x = − 3 y = − 3 λ = − 2 \begin{cases} x=-\sqrt{3}\\ y=-\sqrt{3}\\ \lambda = -2 \end{cases} ⎩ ⎨ ⎧x=−3y=−3λ=−2
此时就得到了 x , y x,y x,y的解。
拉格朗日乘法特别适用于带有一个或多个等式约束条件的优化问题,我们在学习时更多的应该是了解其优化思想精髓并加以利用,特别是在机器学习中,各种优化理论应用特别广泛。
三、拉格朗日对偶函数 (Lagrange Dual Function)
拉格朗日对偶函数是与原优化问题相对应的一个函数,它是在拉格朗日乘数法中引入的概念。对偶函数提供了一种从不同角度观察和分析原优化问题的方法。
为什么要使用拉格朗日对偶性:
- 对偶问题的对偶是原问题;
- 无论原始问题与约束条件是否是凸的,对偶问题都是凹问题,加个负号就变成凸问题了,凸问题容易优化。
- 对偶问题可以给出原始问题最优解( p ∗ p^* p∗)的一个下界;
- 当满足一定条件时,原始问题与对偶问题的解是完全等价的;
对偶函数与原函数的关系:
f ( x ) ≥ L ( x , λ , ν ) ≥ g ( λ , ν ) f(x) \geq L(x,\lambda,\nu) \geq g(\lambda,\nu) f(x)≥L(x,λ,ν)≥g(λ,ν)
其中:
f
(
x
)
f(x)
f(x)表示原问题约束条件下的函数,
L
(
x
,
λ
,
ν
)
L(x,\lambda,\nu)
L(x,λ,ν) 为拉格朗日函数,
g
(
λ
,
ν
)
g(\lambda,\nu)
g(λ,ν) 为拉格朗日对偶函数
一般优化问题的Lagrange乘子法
m
i
n
i
m
i
z
e
f
0
(
x
)
,
x
∈
R
n
s
u
b
j
e
c
t
t
o
f
i
(
x
)
≤
0
,
i
=
1
,
.
.
.
,
m
h
j
(
x
)
=
0
,
j
=
1
,
.
.
.
,
p
\begin{align} minimize && f_0(x), x \in R^n\\ subject \quad to && f_i(x) \leq 0,\quad i=1,...,m \\ && h_j(x)=0,\quad j=1,...,p \end{align}
minimizesubjecttof0(x),x∈Rnfi(x)≤0,i=1,...,mhj(x)=0,j=1,...,p
Lagrange函数
L
(
x
,
λ
,
μ
)
=
f
0
(
x
)
+
∑
i
=
1
m
λ
i
f
i
(
x
)
+
∑
j
=
1
p
ν
i
h
j
(
x
)
L(x,\lambda,\mu) = f_0(x) + \sum_{i=1}^{m} \lambda_i f_i(x) + \sum_{j=1}^{p} \nu_i h_j(x)
L(x,λ,μ)=f0(x)+i=1∑mλifi(x)+j=1∑pνihj(x)
此处可以理解为对固定的 X X X,Lagrange函数 L ( x , λ , ν ) L(x,\lambda,\nu) L(x,λ,ν) 为关于 λ \lambda λ 和 ν \nu ν 的仿射函数。
Lagrange对偶函数
g
(
λ
,
ν
)
=
i
n
f
L
(
x
,
λ
,
ν
)
=
i
n
f
(
f
0
(
x
)
+
∑
i
=
1
m
λ
i
f
i
(
x
)
+
∑
j
=
1
p
ν
i
h
j
(
x
)
)
g(\lambda,\nu) = inf L(x,\lambda,\nu) = inf ( f_0(x) + \sum_{i=1}^{m} \lambda_i f_i(x) + \sum_{j=1}^{p} \nu_i h_j(x))
g(λ,ν)=infL(x,λ,ν)=inf(f0(x)+i=1∑mλifi(x)+j=1∑pνihj(x))
对关于
λ
\lambda
λ 和
ν
\nu
ν 的仿射函数逐点求取下确界,可以得出该函数是关于
λ
\lambda
λ 和
ν
\nu
ν 的凹函数。
此处的Lagrange对偶函数是对Lagrange函数,求取下确界。
此时,如果没有下确界,定义:
g
(
λ
,
ν
)
=
−
∞
g(\lambda, \nu) = - \infty
g(λ,ν)=−∞
根据定义有:对
∀
λ
≥
0
\forall \lambda \geq 0
∀λ≥0,
∀
ν
\forall \nu
∀ν,若原优化问题有最优解
p
∗
p^*
p∗,则
g
(
λ
,
ν
)
≤
p
∗
g(\lambda, \nu) \leq p^*
g(λ,ν)≤p∗
图中虚线部分为不等式的约束条件
f
i
(
x
)
f_i (x)
fi(x),可行域为图中红色部分;
黑色曲线是我们要求的函数在 ≤ 0 \leq 0 ≤0这个约束条件下的最小值。
此处我们可以给定
λ
\lambda
λ一个值,如0.1,那么黑色实线部分加上0.1 倍虚线部分的点状线,因此在可行域内,我们总能根据 不同的
λ
\lambda
λ,求出与之对应的
g
(
λ
)
g(\lambda)
g(λ)的值,如下图
此处
g
(
λ
)
g(\lambda)
g(λ) 曲线其实就是关于原函数的对偶函数,可以看出是一个凹函数。
原问题是:
inf
x
f
0
(
x
)
\inf_{x}f_0(x)
xinff0(x)
从而转化为
inf
x
sup
λ
≥
0
L
(
x
,
λ
)
\inf_{x} \sup_{\lambda \geq 0} L(x, \lambda)
xinfλ≥0supL(x,λ)
此处含义为:对对偶函数
L
(
x
,
λ
)
对
λ
L(x, \lambda) 对\lambda
L(x,λ)对λ求上界,再对
x
x
x求其下界
强对偶条件:
若要对偶函数的最大值即为原问题的最小值,考察需要满足的条件:
f 0 ( x ⋆ ) = g ( λ ⋆ , ν ⋆ ) = inf x ( f 0 ( x ) + ∑ i = 1 m λ i ⋆ f i ( x ) + ∑ j = 1 p ν i ⋆ h j ( x ) ) ≤ f 0 ( x ) + ∑ i = 1 m λ i ⋆ f i ( x ⋆ ) + ∑ j = 1 p ν i ⋆ h j ( x ⋆ ) ≤ f 0 ( x ⋆ ) \begin{aligned} & f_0(x^{\star}) = g(\lambda^{\star},\nu^{\star}) \\ \\ &= \inf_{x}\left(f_0(x) + \sum_{i=1}^{m} \lambda_i^{\star} f_i(x) + \sum_{j=1}^{p} \nu_i^{\star} h_j(x) \right) \\ \\ &\leq f_0(x) + \sum_{i=1}^{m} \lambda_i^{\star} f_i(x^{\star}) + \sum_{j=1}^{p} \nu_i^{\star} h_j(x^{\star}) \\ \\ &\leq f_0(x^{\star}) \end{aligned} f0(x⋆)=g(λ⋆,ν⋆)=xinf(f0(x)+i=1∑mλi⋆fi(x)+j=1∑pνi⋆hj(x))≤f0(x)+i=1∑mλi⋆fi(x⋆)+j=1∑pνi⋆hj(x⋆)≤f0(x⋆)
四、拉格朗日对偶函数示例
原问题为:
m
i
n
i
m
i
z
e
x
T
x
,
x
∈
R
n
s
u
b
j
e
c
t
t
o
A
x
=
b
\begin{align} minimize && x^Tx, \quad x \in R^n\\ \quad \quad subject \quad to && Ax=b \end{align}
minimizesubjecttoxTx,x∈RnAx=b
对应的Lagrange函数为
L
(
x
,
ν
)
=
x
T
x
+
ν
T
(
A
x
+
b
)
L(x,\nu)=x^Tx + \nu^T(Ax+b)
L(x,ν)=xTx+νT(Ax+b)
对
L
L
L求
x
x
x的偏导,带入
L
L
L,得到对应的Lagrange对偶函数
∂
L
∂
x
=
∂
(
x
T
x
+
ν
T
(
A
x
+
b
)
)
∂
x
=
2
X
+
A
T
ν
=
令
0
⇒
x
∗
=
−
1
2
A
T
ν
\frac{\partial L}{\partial x} = \frac{\partial \left(x^Tx + \nu^T(Ax+b)\right)}{\partial x} = 2X + A^T \nu \overset {\text{令}}= 0 {\Rightarrow} x^* = - \frac{1}{2} A^T \nu
∂x∂L=∂x∂(xTx+νT(Ax+b))=2X+ATν=令0⇒x∗=−21ATν
得出
x
x
x的最优解是
−
1
2
A
T
- \frac{1}{2} A^T
−21AT,代入原式
L
(
x
,
ν
)
=
x
T
x
+
ν
T
(
A
x
+
b
)
L(x,\nu)=x^Tx + \nu^T(Ax+b)
L(x,ν)=xTx+νT(Ax+b)可得,
L
(
x
,
ν
)
=
x
T
x
+
ν
T
(
A
x
+
b
)
=
(
−
1
2
A
T
)
T
(
−
1
2
A
T
)
+
ν
T
(
A
(
−
1
2
A
T
)
−
b
)
=
1
4
ν
T
A
A
T
ν
−
1
2
ν
T
A
A
T
ν
−
ν
T
b
=
−
1
4
ν
T
A
A
T
ν
−
ν
T
b
=
g
(
v
)
\begin{array}{l} L(x,\nu)=x^Tx + \nu^T(Ax+b) \\ \\ =\left(- \frac{1}{2} A^T \right)^T \left(- \frac{1}{2} A^T \right) + \nu^T \left (A\left(- \frac{1}{2} A^T \right)- b \right) \\ \\ = \frac{1}{4} \nu^T AA^T\nu - \frac{1}{2} \nu^T AA^T\nu -\nu^Tb \\ \\ = - \frac14 \nu^T AA^T\nu - \nu^T b \\ \\ = g(v) \end{array}
L(x,ν)=xTx+νT(Ax+b)=(−21AT)T(−21AT)+νT(A(−21AT)−b)=41νTAATν−21νTAATν−νTb=−41νTAATν−νTb=g(v)
g
(
ν
)
=
−
1
4
ν
T
A
A
T
ν
−
ν
T
b
g(\nu) = - \frac14 \nu^T AA^T\nu - \nu^T b
g(ν)=−41νTAATν−νTb
对 g g g求 ν \nu ν的偏导,求 g g g的极大值,作为原问题的最小值
∂
g
∂
ν
=
∂
(
−
1
4
ν
T
A
A
T
ν
−
ν
T
b
)
∂
ν
=
−
1
2
A
A
T
ν
−
b
=
令
0
⇒
A
A
T
ν
=
−
2
b
⇒
A
T
A
A
T
ν
=
−
2
A
T
b
⇒
A
T
ν
=
−
2
(
A
T
A
)
−
1
A
T
b
⇒
−
1
2
A
T
ν
=
(
A
T
A
)
−
1
A
T
b
⇒
x
∗
=
(
A
T
A
)
−
1
A
T
b
\begin{array}{l} \\ \frac{\partial g}{\partial \nu} = \frac{\partial \left( - \frac14 \nu^T AA^T\nu - \nu^T b\right)}{\partial \nu} = - \frac{1}{2} AA^T \nu -b \overset {\text{令}}= 0 \\ \\ {\Rightarrow} AA^T\nu = -2b \\ \\ {\Rightarrow} A^TAA^T\nu = -2A^T b \\ \\ {\Rightarrow} A^T \nu = -2 \left( A^TA\right)^{-1}A^Tb \\ \\ {\Rightarrow} - \frac{1}{2} A^T \nu = \left( A^TA\right)^{-1}A^Tb \\ \\ {\Rightarrow} x^* = \left( A^TA\right)^{-1}A^Tb \end{array}
∂ν∂g=∂ν∂(−41νTAATν−νTb)=−21AATν−b=令0⇒AATν=−2b⇒ATAATν=−2ATb⇒ATν=−2(ATA)−1ATb⇒−21ATν=(ATA)−1ATb⇒x∗=(ATA)−1ATb
得出极小值点
x
∗
=
(
A
T
A
)
−
1
A
T
b
x^* = \left( A^TA\right)^{-1}A^Tb
x∗=(ATA)−1ATb,代入原函数
m i n ( x T x ) = ( ( A T A ) − 1 A T b ) T ( ( A T A ) − 1 A T b ) = b T A ( A T A ) − 1 ( A T A ) − 1 A T b = b T A ( A T A ) − 2 A T b \begin{array}{l} \\ min(x^Tx) \\ \\ = \left( \left( A^TA\right)^{-1}A^Tb \right)^T \left( \left( A^TA\right)^{-1}A^Tb \right) \\ \\ = b^T A\left(A^TA \right)^{-1} \left(A^TA \right)^{-1} A^Tb \\ \\ = b^T A\left(A^TA \right)^{-2} A^Tb \end{array} min(xTx)=((ATA)−1ATb)T((ATA)−1ATb)=bTA(ATA)−1(ATA)−1ATb=bTA(ATA)−2ATb
极小值点的结论,和通过线性回归计算得到的结论是完全一致。