1 拉格朗日乘子法
拉格朗日乘子法(Lagrange multipliers)是一种寻找多元函数在一组约束下的极值的方法。通过引入拉格朗日乘子,可将有d个变量与k个约束条件的最优化问题转化为具有d+k个变量的无约束优化问题求解。
先考虑一个等式约束的优化问题。假定x为d维向量,欲寻找x的某个取值x*,使目标函数f(x)最小且同时满足g(x)=0的约束。从几何角度看,该问题的目标是在由方程g(x)=0确定的d-1维曲面上寻找能使目标函数f(x)最小化的点。此时不难得到如下结论:
- 对于约束曲面上的任意点x,该点的梯度▽g(x)正交于约束曲面;
- 在最优点x*,目标函数在该点的梯度▽f(x*)正交于约束曲面(若梯度▽f(x*)与约束曲面不正交,则仍可在约束曲面上移动该点使函数值进一步下降)。
由此可知:在最优点x*,如附图B.1所示:梯度▽g(x)和▽f(x)的方向必相同或相反,即存在λ≠0使得:
λ称为拉格朗日乘子。对等式约束,λ可能为正也可能为负。定义拉格朗日函数:
不难发现,将其对x的偏导数▽xL(x,λ)置零即得式(B.1),同时,将其对λ的偏导数▽λL(x,λ)置零即得约束条件g(x)=0。于是,原约束优化问题可转化为对拉格朗日函数L(x,λ)的无约束优化问题。
现在考虑不等式约束g(x)≤0,如附图B.1所示,此时最优点x*或在g(x)<0的区域中,或在边界g(x)=0上:
1、对于g(x)<0的情形,约束g(x)≤0不起作用,可直接通过条件▽f(x)=0来获得最优点。这等价于将λ置零然后对▽xL(x,λ)置零得到最优点。
2、g(x)=0的情形类似于上面等式约束的分析,但需注意的是,此时▽f(x*)的方向必与▽g(x*)相反,即存在常数λ>0使得▽f(x*)+λ▽g(x*)=0。
整合以上两种情形,必满足λg(x)=0。因此,在约束g(x)≤0下最小化f(x),可转化为在如下约束(我不懂为什么忽然出来个μj、gj)下:
最小化式(B.2)的拉格朗日函数:
式(B.3)称为Karush-Kuhn-Tucker(简称KKT)条件。
上述做法可以推广到多个约束:考虑具有m个等式约束和n个不等式约束,且可行域D⊂Rd非空的优化问题:
引入拉格朗日乘子λ=(λ1,λ2,…,λm)T和μ=(μ1,μ2,…,μn)T,相应的拉格朗日函数为:
由不等式约束引入的KKT条件(j=1,2,…,n)为:
一个优化问题可以从两个角度来考察,即“主问题”(primal problem)和“对偶问题”(dual problem)。对主问题(B.4),基于式(B.5),其拉格朗日“对偶函数”(dual function)Γ:Rm×Rn→R定义为:
在推导对偶问题时,常通过将拉格朗日乘子L(x,λ,μ)对x求导并令导数为0,来获得对偶函数的表达形式。若:
为主问题(B.4)可行域中的点,则对于任意μ≥0(μ≥0表示μ的分量均为非负)和λ都有:
进而有:
若主问题(B.4)的最优值为p*,则对任意μ≥0和λ都有:
即对偶函数给出了主问题最优值的下界。显然,这个下界取决于u和λ的值。于是,一个很自然的问题是:基于对偶函数能获得的最好下界是什么?这就引出了优化问题:
式(B.11)就是主问题(B.4)的对偶问题,其中λ和μ称为“对偶变量”(dual variable)。无论主问题(B.4)的凸性如何,对偶问题(B.11)始终是凸优化问题。
考虑式(B.11)的最优值d*,显然有d*≤p*
,这称为“弱对偶性”(weak duality)成立;若d*=p*,则称为“强对偶性”(strong duality)成立,此时由对偶问题能获得主问题的最优下界。对于一般的优化问题,强对偶性通常不成立。但是,若主问题为凸优化问题,如式(B.4)中f(x)和gj(x)均为凸函数,hi(x)为仿射函数,且其可行域中至少有一点使不等式约束严格成立,则此时强对偶性成立。
上面加粗的被称为Slater条件。
值得注意的是,在强对偶性成立时,将拉格朗日函数分别对原变量和对偶变量求导,再并令导数等于零,即可得到原变量与对偶变量的数值关系。于是,对偶问题解决了,主问题也就解决了。
2 二次规划
二次规划(Quadratic Programming,简称QP)是一类典型的优化问题,包括凸二次优化和非凸二次优化。在此类问题中,目标函数是变量的二次函数,而约束条件是变量的线性不等式。
假定变量个数为d,约束条件的个数为m,则标准的二次规划问题形如:
其中x为d维向量,Q∈Rd×d为实对称矩阵,A∈Rm×d为实矩阵,b∈Rm和c∈Rd为实向量,Ax≤b的每一行对应一个约束。
非标准二次规划问题中可以包含等式约束。注意到等式约束能用两个不等式约束来代替;不等式约束可通过增加松弛变量的方式转化为等式约束。
若Q为半正定矩阵,则式(B.12)目标函数是凸函数,相应的二次规划是凸二次优化问题;此时若约束条件Ax≤b定义的可行域不为空,且目标函数在此可行域有下界,则该问题将有全局最小值。若Q为正定矩阵,则该问题有唯一的全局最小值。若Q为非正定矩阵,则式(B.12)是有多个平稳点和局部极小点的NP难问题。
常用的二次规划解法有椭球法(ellipsoid method)、内点法(interior point)、增广拉格朗日法(augmented Lagrangian)、梯度投影法(gradient pro-jection)等。
若Q为正定矩阵,则相应的二次规划问题可由椭球法在多项式时间内求解。
3 半正定规划
半正定规划(Semi-Definite Programming,简称SDP)是一类凸优化问题,其中的变量可组织成半正定对称矩阵形式,且优化问题的目标函数和约束都是这些变量的线性函数。
给定d×d的对称矩阵X、C:
若Ai(i=1,2,…,m)也是d×d的对称矩阵,bi(i=1,2,…,m)为m个实数,则半正定规划问题形如:
其中:
半正定规划与线性规划都拥有线性的目标函数和约束,但半正定规划中的约束:
是一个非线性、非光滑约束条件。在优化理论中,半正定规划具有一定的一般性,能将几种标准的优化问题(如线性规划、二次规划)统一起来。常见的用于求解线性规划的内点法经过少许改造即可求解半正定规划问题,但半正定规划的计算复杂度较高,难以直接用于大规模问题。
4 梯度下降法
梯度下降法(gradient descent)是一种常用的一阶(first-order)优化方法,是求解无约束优化问题最简单、最经典的方法之一。一阶方法仅使用目标函数的一阶导数,不利用其高阶导数。
考虑无约束优化问题minxf(x),其中f(x)为连续可微函数。若能构造一个序列x0,x1,x2,…满足:
则不断执行该过程即可收敛到局部极小点。欲满足式(B.15),根据泰勒展式有:
于是,欲满足f(x+△x)<f(x),可选择:
其中步长γ是一个小常数,每步的步长γt可不同。这就是梯度下降法。
若目标函数f(x)满足一些条件,则通过选取合适的步长,就能确保通过梯度下降收敛到局部极小点。例如若f(x)满足L-Lipschitz条件,即对于任意x,存在常数L使得||▽f(x)||≤L成立,则将步长设置为1/(2L)即可确保收敛到局部极小点。当目标函数为凸函数时,局部极小点就对应着函数的全局最小点,此时梯度下降法可确保收敛到全局最优解。
当目标函数f(x)二阶连续可微时,可将式(B.16)替换为更精确的二阶泰勒展式,这样就得到了牛顿法(Newton’s method)。牛顿法是典型的二阶方法,其迭代轮数远小于梯度下降法。但牛顿法使用了二阶导数▽2f(x),其每轮迭代中涉及到海森矩阵(A.21)的求逆:
计算复杂度相当高,尤其在高维问题中几乎不可行。若能以较低的计算代价寻找海森矩阵的近似逆矩阵,则可显著降低计算开销,这就是拟牛顿法(quasi-Newton method)。
5 坐标下降法
坐标下降法(coordinate descent)是一种非梯度优化方法,它在每步迭代中沿一个坐标方向进行搜索,通过循环使用不同的坐标方向来达到目标函数的局部极小值。求解极大值问题时亦称“坐标上升法”(coordinate ascent)。
不妨假设目标是求解函数f(x)的极小值,其中x=(x1,x2,…,xd)T是一个d维向量。从初始点x0开始,坐标下降法通过迭代地构造序列x0,x1,x2,…来求解该问题,xt+1的第i个分量xit+1构造为:
通过执行此操作,显然有:
与梯度下降法类似,通过迭代执行该过程,序列x0,x1,x2,…能收敛到所期望的局部极小点或驻点(stationary point)。
坐标下降法不需计算目标函数的梯度,在每步迭代中仅需求解一维搜索问题,对于某些复杂问题计算较为简便。但若目标函数不光滑,则坐标下降法有可能陷入非驻点(non-stationary point)。
END