拉格朗日乘子法

拉格朗日乘子法

拉格朗日乘子法是一种寻找多元函数在一组约束下的极值的方法。通过引入拉格朗日乘子,可将有 d d d个变量和 k k k个约束条件的最优化问题转换为具有 d + k d+k d+k个变量的无约束优化问题求解

等式约束

先考虑一个等式约束的优化问题。假定 x ​ x​ x d ​ d​ d维向量,欲寻找 x ​ x​ x的某个取值 x ∗ ​ x^*​ x,使目标函数 f ( x ) ​ f(x)​ f(x)最小且同时满足 g ( x ) = 0 ​ g(x)=0​ g(x)=0的约束。从几何角度看,该问题的目标是在由方程 g ( x ) = 0 ​ g(x)=0​ g(x)=0确定的 d − 1 ​ d-1​ d1维曲面上寻找能使目标函数 f ( x ) ​ f(x)​ f(x)最小化的点。

原始优化问题:
(1) min ⁡ x f ( x ) s . t . g ( x ) = 0 \quad \min\limits_{x}f(x) \tag{1} \\ s.t.\quad g(x)=0 xminf(x)s.t.g(x)=0(1)

首先,我们给出下面的命题:

命题1:设 F ​ F​ F n ​ n​ n元函数, F ( x ) = c ​ F(x)=c​ F(x)=c为一等值面,对 F ( x ) = c ​ F(x)=c​ F(x)=c上的一点 P ​ P​ P F ​ F​ F P ​ P​ P点的梯度 ∇ F ( P ) ​ \nabla F(P)​ F(P)就是等值面 F ( x ) = c ​ F(x)=c​ F(x)=c P ​ P​ P点的法向量。(由法向量定义得到)

命题2:设 F F F n n n元函数, P P P为其定义域中的一个点, F F F在点 P P P处的梯度为 ∇ F ( P ) \nabla F(P) F(P),则点 P P P沿着正交于 ∇ F ( P ) \nabla F(P) F(P)的方向运动时,函数值不会发生变化。(由方向导数和梯度的关系得到)

由此,我们可以得出下面两个结论:

结论1:对于约束曲面上的任意点 x ​ x​ x,该点的 ∇ g ( x ) ​ \nabla g(x)​ g(x)梯度正交于约束曲面。

结论2:最优点 x ∗ x^* x,目标函数在该点的梯度 ∇ f ( x ∗ ) \nabla f(x^*) f(x)正交于约束曲面。

结论1,可由命题1得到。

结论2,可由反证法得到。如果不正交,则可在约束曲面上移动该点,使函数值进一步下降。具体来说,不正交的话,可将沿着约束曲面的运动分解为两个方向,梯度方向和正交于梯度方向,沿梯度方向(反向)运动时,使函数值下降,沿正交梯度方向运动,不影响函数值。最终结果是使函数值降低。

由结论1和结论2可知,在最优点 x ∗ x^* x,梯度 ∇ g ( x ) \nabla g(x) g(x) ∇ f ( x ) \nabla f(x) f(x)的方向必相同或相反,即存在 λ ≠ 0 \lambda \neq 0 λ̸=0,使得
(2) ∇ f ( x ∗ ) + λ ∇ g ( x ∗ ) = 0 \nabla f(x^*)+\lambda \nabla g(x^*)=0 \tag{2} f(x)+λg(x)=0(2)
(3) f ( x ∗ ) = 0 f(x^*)=0 \tag{3} f(x)=0(3)

λ ​ \lambda​ λ称为拉格朗日乘子。定义拉格朗日函数
(4) L ( x , λ ) = f ( x ) + λ g ( x ) L(x,\lambda)=f(x)+\lambda g(x) \tag{4} L(x,λ)=f(x)+λg(x)(4)
由于
(5) ∇ x L ( x , λ ) = ∇ f ( x ) + λ ∇ g ( x ) = 0 \nabla _x L(x,\lambda)=\nabla f(x)+\lambda \nabla g(x)=0 \tag{5} xL(x,λ)=f(x)+λg(x)=0(5)

(6) ∇ λ L ( x , λ ) = g ( x ) = 0 \nabla _\lambda L(x,\lambda)= g(x)=0 \tag{6} λL(x,λ)=g(x)=0(6)

观察公式 ( 1 ) ( 2 ) (1)(2) (1)(2)与公式 ( 4 ) ( 5 ) (4)(5) (4)(5),可得,它们是等价的,而公式 ( 4 ) ( 5 ) (4)(5) (4)(5)表示的是对拉格朗日函数 L ( x , λ ) L(x, \lambda) L(x,λ)的求极值。因此,原约束问题 ( 1 ) (1) (1)就转化成了对拉格朗日函数 L ( x , λ ) L(x,\lambda) L(x,λ)的无约束优化问题。

需要注意的是, x ∗ x^* x满足公式 ( 2 ) ( 3 ) (2)(3) (2)(3) x ∗ x^* x是原始优化问题最优解的必要条件,因为所有极值都满足公式 ( 2 ) ( 3 ) (2)(3) (2)(3)。因此,通过拉格朗日乘子法求得的解是原问题的极值点,是不是最值点还需验证。不过,如果 f f f是凸函数,那就无需验证了。对于凸函数而言,极值点和最值点是一致的。

总而言之,拉格朗日函数求出的最优解是原问题最优解的必要条件,本质是极值点是最值点的必要条件。

不等式约束与KKT条件

现在考虑不等式约束 g ( x ) ≤ 0 g(x)\leq0 g(x)0,如附图B.1所示,此时最优点 x ∗ x^* x或在 g ( x ) < 0 g(x)<0 g(x)<0的区域中,或在边界 g ( x ) = 0 g(x)=0 g(x)=0上。

对于 g ( x ) < 0 g(x)<0 g(x)<0的情形,约束 g ( x ) ≤ 0 g(x) \leq 0 g(x)0不起作用(相当于 λ = 0 \lambda = 0 λ=0),可直接通过条件 ∇ f ( x ) = 0 \nabla f(x)=0 f(x)=0来获得最优解;这等价于
KaTeX parse error: No such environment: equation at position 44: … \\ s.t.\begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ \left\{ \be…
g ( x ) = 0 g(x)=0 g(x)=0的情形类似上面关于等式约束的分析,但需要注意的是,此时 ∇ f ( x ∗ ) \nabla f(x^*) f(x)的方向必与 ∇ g ( x ∗ ) \nabla g(x^*) g(x)相反(后面会详细解释),即
λ > 0 ∇ f ( x ∗ ) + λ ∇ g ( x ∗ ) = 0 \quad \quad \quad \lambda > 0 \\ \nabla f(x^*) + \lambda \nabla g(x^*) = 0 λ>0f(x)+λg(x)=0
这等价于
KaTeX parse error: No such environment: equation at position 43: …) \\ s.t.\begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ \left\{ \be…

综合上面两种情况,可以得到,在约束 g ( x ) ≤ 0 g(x) \leq 0 g(x)0下最小化 f ( x ) f(x) f(x),可转化下面的形式:
KaTeX parse error: No such environment: equation at position 57: …) \\ s.t.\begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ \left\{ \be…
这三个约束条件称为 K K T KKT KKT条件。

当约束条件为不等式时,构造的拉格朗日函数也称作广义拉格朗日函数,以和等式约束下的拉格朗日函数区分。

需要注意的是,此时仍然为必要条件。只有 f f f g g g同时为凸函数,并且不等式约束严格可行,即存在 x x x,使得 g ( x ) < 0 g(x)<0 g(x)<0,此时为充要条件。

K K T KKT KKT条件可以是拉格朗日乘子法的泛化,将不等式约束也用拉格朗日乘子法处理,此时,相较于等式,多了一些限制条件。

最后,我们说一下图附B.1(b),如图所示, g ( x ) = 0 g(x)=0 g(x)=0为曲面边界, g ( x ) < 0 g(x)<0 g(x)<0为曲面内部,如果函数最优解 x ∗ x^* x g ( x ) < 0 g(x)<0 g(x)<0,即在曲面内部,则 λ = 0 \lambda = 0 λ=0,通过 ∇ f ( x ) = 0 \nabla f(x)=0 f(x)=0求解,无需多说。如果 x ∗ x^* x在边界 g ( x ) = 0 g(x)=0 g(x)=0上,由于内部 g ( x ) < 0 g(x)<0 g(x)<0,边界 g ( x ) = 0 g(x)=0 g(x)=0,因此,外部 g ( x ) > 0 g(x)>0 g(x)>0,所以,此时 ∇ g ( x ∗ ) \nabla g(x^*) g(x)指向曲面内部。因为最优解在边界取,而不在内部取,所以内部函数值必定大于 f ( x ∗ ) f(x^*) f(x),所以,此时 ∇ f ( x ∗ ) \nabla f(x^*) f(x)指向曲面外部。因此, ∇ f ( x ∗ ) \nabla f(x^*) f(x) g ( x ∗ ) g(x^*) g(x)方向相反。如果曲面内部 g ( x ) > 0 g(x)>0 g(x)>0,外部 g ( x ) < 0 g(x)<0 g(x)<0,则 ∇ g ( x ∗ ) \nabla g(x^*) g(x)指向曲面内部, ∇ f ( x ∗ ) \nabla f(x^*) f(x)指向曲面外部,两者方向仍相反。

总之, ∇ g ( x ∗ ) \nabla g(x^*) g(x)指向 g ( x ) > 0 g(x)>0 g(x)>0一侧, ∇ f ( x ∗ ) \nabla f(x^*) f(x)指向 g ( x ) < 0 g(x)<0 g(x)<0一侧,两者方向总是相反的。

同时有等式和不等式约束

将上述做法推广到多个约束。考虑具有 m ​ m​ m个等式约束和 n ​ n​ n个不等式约束,且可行域非空的优化问题
KaTeX parse error: No such environment: equation at position 60: …) \\ s.t.\begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ \left\{ \be…
引入拉格朗日乘子 λ = ( λ 1 , . . . , λ m ) T \lambda = (\lambda_1,...,\lambda_m)^T λ=(λ1,...,λm)T μ = ( μ 1 , . . . , μ n ) T \mu=(\mu_1,...,\mu_n)^T μ=(μ1,...,μn)T,相应的拉格朗日函数为
L ( x , λ , μ ) = f ( x ) + ∑ i = 1 m λ i h i ( x ) + ∑ i = 1 m μ i g i ( x ) L(x,\lambda, \mu)=f(x)+ \sum \limits_{i=1} \limits^{m}\lambda_ih_i(x) + \sum \limits_{i=1} \limits^{m}\mu_ig_i(x) L(x,λ,μ)=f(x+i=1mλihi(x)+i=1mμigi(x)
由不等式约束引入的 K K T KKT KKT条件 ( j = 1 , . . . , n ) (j=1,...,n) (j=1,...,n)
KaTeX parse error: No such environment: equation at position 8: \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ \left\{ \be…
此时仍然为必要条件。只有 f f f g j g_j gj为凸函数, h i h_i hi为仿射函数,并且不等式约束严格可行,即存在 x x x,使得对所有的 j j j g j ( x ) < 0 g_j(x)<0 gj(x)<0,此时为充要条件。

思考

拉格朗日乘子法最初是为了解决等式约束下的优化问题,即将等式约束优化问题转化为无约束优化问题;然后,再将拉格朗日乘子法泛化到不等式约束,此时,无法将其转化为无约束优化问题,只能将其转化为约束优化问题,约束条件即为 K K T KKT KKT条件。

转化只能得到必要条件。对与只含等式约束的优化问题,目标函数时凸函数即可保证为充要条件;对含有不等式的约束,要求目标函数和不等式约束都是凸函数,等式约束为仿射函数,不等式约束严格可行,才能保证是充要条件。(指的是两者最优解 x ∗ ​ x^*​ x

你可能感兴趣的:(机器学习,优化,拉格朗日乘子法,KKT条件)