对于无约束的最优化问题, m i n x f 0 ( x ) \underset{\boldsymbol{x}}{{\rm min}}f_0(\boldsymbol{x}) xminf0(x),通常只需将目标函数对 x \boldsymbol{x} x求梯度,然后令梯度等于0,即可得到一系列极值,从中取出最小的那个就是原无约束最优化问题的解。当存在约束时,约束问题可以表示为:
m i n x f 0 ( x ) s . t . f i ( x ) ≤ 0 , i = 1 , 2 , . . . , m h j ( x ) = 0 , j = 1 , 2 , . . . , p (1) \underset{\boldsymbol{x}}{{\rm min}}f_0(\boldsymbol{x}) \quad s.t. \quad f_i(\boldsymbol{x}) \leq 0,i=1,2,...,m\quad h_j(\boldsymbol{x})=0,j=1,2,...,p\tag{1} xminf0(x)s.t.fi(x)≤0,i=1,2,...,mhj(x)=0,j=1,2,...,p(1)
此时没有办法像无约束问题那样,直接对目标函数求梯度,因为梯度等于0的点不一定能够满足约束条件。此时通常可以利用拉格朗日函数将原约束优化问题转化为无约束优化问题,具体地,(1)所示的约束优化问题对应的拉格朗日函数可以表示为
L ( x , λ , v ) = f 0 ( x ) + ∑ i = 1 m λ i f i ( x ) + ∑ j = 1 p v j h j ( x ) = f 0 ( x ) + λ T f ( x ) + v T h ( x ) (2) L(\boldsymbol{x},\boldsymbol{\lambda},\boldsymbol{v})=f_0(\boldsymbol{x})+\sum_{i=1}^m \lambda_i f_i(\boldsymbol{x})+\sum_{j=1}^p v_j h_j(\boldsymbol{x})=f_0(\boldsymbol{x})+\boldsymbol{\lambda}^T \boldsymbol{f}(\boldsymbol{x})+\boldsymbol{v}^T \boldsymbol{h}(\boldsymbol{x})\tag{2} L(x,λ,v)=f0(x)+i=1∑mλifi(x)+j=1∑pvjhj(x)=f0(x)+λTf(x)+vTh(x)(2)
此时只需要将 L ( x , λ , v ) L(\boldsymbol{x},\boldsymbol{\lambda},\boldsymbol{v}) L(x,λ,v)对各个自变量求导,并令倒数为0,即可求得 L ( x , λ , v ) L(\boldsymbol{x},\boldsymbol{\lambda},\boldsymbol{v}) L(x,λ,v)的最优解,现在需要理解的是为什么拉格朗日函数的解与原约束优化问题的解是一致的,具体原因可以参考《深入理解拉格朗日乘子法》。
显然利用上面的拉格朗日乘子法可以很好地求解约束优化问题,但是在实际处理过程中,可能存在一些问题,比如拉格朗日很复杂,不好求导,比如拉格朗日函数有可能不是凸函数,所以在实际处理过程中也经常需要求原始拉格朗日函数的对偶函数,借助对偶函数来求解原始优化问题,以下来说明一下拉格朗日对偶函数到底是什么,它又有什么用?
对(2)以拉格朗日乘子 λ 、 v \boldsymbol{\boldsymbol{\lambda}}、\boldsymbol{\boldsymbol{v}} λ、v作为优化变量,则有
m a x λ ≥ 0 , v L ( x , λ , v ) = f 0 ( x ) + m a x λ ≥ 0 , v [ ∑ i = 1 m λ i f i ( x ) + ∑ j = 1 p v j h j ( x ) ] = f 0 ( x ) + m a x λ ≥ 0 , v [ λ T f ( x ) + v T h ( x ) ] (3) \underset{\boldsymbol{\lambda}\geq 0,\boldsymbol{v}}{{\rm max}}L(\boldsymbol{x},\boldsymbol{\lambda},\boldsymbol{v})=f_0(\boldsymbol{x})+\underset{\boldsymbol{\lambda}\geq 0,\boldsymbol{v}}{{\rm max}}[\sum_{i=1}^m \lambda_i f_i(\boldsymbol{x})+\sum_{j=1}^p v_j h_j(\boldsymbol{x})]=f_0(\boldsymbol{x})+\underset{\boldsymbol{\lambda}\geq 0,\boldsymbol{v}}{{\rm max}}[\boldsymbol{\lambda}^T \boldsymbol{f}(\boldsymbol{x})+\boldsymbol{v}^T \boldsymbol{h}(\boldsymbol{x})]\tag{3} λ≥0,vmaxL(x,λ,v)=f0(x)+λ≥0,vmax[i=1∑mλifi(x)+j=1∑pvjhj(x)]=f0(x)+λ≥0,vmax[λTf(x)+vTh(x)](3)
由约束条件可知 ∑ j = 1 p v j h j ( x ) = 0 , ∑ i = 1 m λ i f i ( x ) ≤ 0 \sum_{j=1}^p v_j h_j(\boldsymbol{x})=0,\sum_{i=1}^m \lambda_i f_i(\boldsymbol{x})\leq 0 ∑j=1pvjhj(x)=0,∑i=1mλifi(x)≤0,所以 m a x λ ≥ 0 , v L ( x , λ , v ) ≤ f 0 ( x ) \underset{\boldsymbol{\lambda}\geq 0,\boldsymbol{v}}{{\rm max}}L(\boldsymbol{x},\boldsymbol{\lambda},\boldsymbol{v})\leq f_0(\boldsymbol{x}) λ≥0,vmaxL(x,λ,v)≤f0(x),所以 m i n x [ m a x λ ≥ 0 , v L ( x , λ , v ) ] = m a x λ ≥ 0 , v [ m i n x L ( x , λ , v ) ] ≤ m i n x f 0 ( x ) \underset{\boldsymbol{x}}{{\rm min}}[\underset{\boldsymbol{\lambda}\geq 0,\boldsymbol{v}}{{\rm max}}L(\boldsymbol{x},\boldsymbol{\lambda},\boldsymbol{v})]=\underset{\boldsymbol{\lambda}\geq 0,\boldsymbol{v}}{{\rm max}}[\underset{\boldsymbol{x}}{{\rm min}}L(\boldsymbol{x},\boldsymbol{\lambda},\boldsymbol{v})] \leq \underset{\boldsymbol{x}}{{\rm min}}f_0(\boldsymbol{x}) xmin[λ≥0,vmaxL(x,λ,v)]=λ≥0,vmax[xminL(x,λ,v)]≤xminf0(x)。令 g ( λ , v ) = m i n x L ( x , λ , v ) g(\boldsymbol{\lambda},\boldsymbol{v})=\underset{\boldsymbol{x}}{{\rm min}}L(\boldsymbol{x},\boldsymbol{\lambda},\boldsymbol{v}) g(λ,v)=xminL(x,λ,v),则 g ( λ , v ) g(\boldsymbol{\lambda},\boldsymbol{v}) g(λ,v)即为拉格朗日函数的对偶函数,显然它可以通过将拉格朗日函数对 x \boldsymbol{x} x求导,求得最优 x ∗ \boldsymbol{x}^* x∗,然后将其代入拉格朗日函数中即可得到。显然它是一族关于 ( λ , v ) (\boldsymbol{\lambda},\boldsymbol{v}) (λ,v)的仿射函数的逐点下确界,因此即使原问题不是凸的,对偶函数也会是凹函数。所以原优化问题转化为如下对偶优化问题
KaTeX parse error: Undefined control sequence: \rightY at position 81: …symbol{\lambda}\̲r̲i̲g̲h̲t̲Y̲ ̲0 \tag{4}
由于拉格朗日对偶函数是凹函数,所以拉格朗日对偶问题是凸优化问题。设 x ∗ \boldsymbol{x}^* x∗为原问题的最优解,则有 g ( λ , v ) ≤ x ∗ g(\boldsymbol{\lambda},\boldsymbol{v})\leq \boldsymbol{x}^* g(λ,v)≤x∗,即拉格朗日对偶函数构造成了原问题最优解的下界。设 d ∗ \boldsymbol{d}^* d∗为对偶问题的最优解,则 d ∗ ≤ x ∗ \boldsymbol{d}^* \leq \boldsymbol{x}^* d∗≤x∗是始终成立的,这个性质称为弱对偶性,而如果 d ∗ = x ∗ \boldsymbol{d}^* = \boldsymbol{x}^* d∗=x∗成立,则称强对偶性成立,如果原问题是一个凸优化问题,则通常强对偶性是成立的。若原优化问题不是凸优化问题,则有很多其他强对偶性成立的约束准则,这边不进行过多介绍。可以参考《凸优化(八)——Lagrange对偶问题》