文章目录
- 凸优化学习笔记:等式约束凸优化问题的Newton方法、不可行初始点的Newton方法
- 等式约束凸优化问题
- 等式约束凸二次规划
- 等式约束的Newton方法
- Newton方向:基于二阶近似的定义
- Newton减量:用于设计停止准则
- 算法框架
- 不可行初始点的Newton方法
- 不可行点的Newton方向
- 基于等式约束问题的原对偶方法
- 停止准则
- 算法框架
- 参考文献
凸优化学习笔记:等式约束凸优化问题的Newton方法、不可行初始点的Newton方法
基础预备:
无约束优化:线搜索最速下降
无约束优化:修正阻尼牛顿法
无约束优化:Hessian-Free Optimization 拟牛顿类算法(BFGS,L-BFGS)
凸优化学习笔记:Lagrange函数、对偶函数、对偶问题、KKT条件
约束优化:约束优化的三种序列无约束优化方法
等式约束凸优化问题
考虑下述等式约束凸优化问题的求解方法:
minf(x)s.t. Ax=b(1)\begin{array}{ll} \operatorname{min} & f(x) \\ \text { s.t. } & A x=b\tag{1} \end{array} min s.t. f(x)Ax=b(1)
其中f:Rn→Rf: \mathbb{R}^n \rightarrow \mathbb{R}f:Rn→R是二次连续可微凸函数,A∈Rp×nA \in \mathbb{R}^{p\times n}A∈Rp×n,rank(A)=p<nrank(A)=p<nrank(A)=p<n。根据KKT条件可知,x∗∈domfx^* \in domfx∗∈domf是优化问题(1)最优解的充要条件是,存在ν∗∈Rp\nu^* \in \mathbb{R}^pν∗∈Rp满足:
Ax∗=b,∇f(x∗)+ATν∗=0(2)A x^{*}=b, \quad \nabla f\left(x^{*}\right)+A^T \nu^{*}=0 \tag{2} Ax∗=b,∇f(x∗)+ATν∗=0(2)
因此,求解等式约束优化问题(1)等价于求解一个含有n+pn+pn+p个变量x∗,ν∗x^*,\nu^*x∗,ν∗的n+pn+pn+p个方程的问题。一般第一组方程Ax∗=bAx^*=bAx∗=b称为原可行方程,是线性的,而第二组方程∇f(x∗)+ATν∗=0\nabla f\left(x^{*}\right)+A^T \nu^{*}=0∇f(x∗)+ATν∗=0称为对偶可行方程,通常是非线性的,很难求出其解析解。将∇f(x∗)\nabla f\left(x^{*}\right)∇f(x∗)线性化就是等式约束Newton方法的基本思想。
当然,任何等式约束优化问题都可以通过消除等式约束转化为等价的无约束优化问题,然后利用之前讲到的各种无约束优化问题求解方法去解;或者是利用无约束优化方法求解对偶问题,然后根据对偶解得到原问题(1)的解。但是,消除方法(或对偶方法)通常会破坏问题的结构,比如稀疏性,这样可能会导致忽视掉原问题的一些结构优势,造成耗时。
等式约束凸二次规划
考虑等式约束凸二次规划问题:
minf(x)=(1/2)xTPx+qTx+rs.t. Ax=b(3)\begin{array}{ll} \operatorname{min} & f(x)=(1/2)x^{{T}}Px+q^{{T}}x+r \\ \text { s.t. } & A x=b \tag{3} \end{array} min s.t. f(x)=(1/2)xTPx+qTx+rAx=b(3)
其中,P∈S+n,A∈Rp×nP \in \mathbf{S}_{+}^n, A \in \mathbb{R}^{p \times n}P∈S+n,A∈Rp×n。该问题是扩展Newton方法处理等式约束问题的基础。此时最优性条件可以写为:
Ax∗=b,Px∗+q+ATν∗=0(4)A x^{*}=b, \quad P x^{*}+q+A^T \nu^{*}=0 \tag{4} Ax∗=b,Px∗+q+ATν∗=0(4)
用矩阵表示为:
[PATA0][x⋆ν⋆]=[−qb](5)\left[\begin{array}{cc} P & A^T \\ A & 0 \end{array}\right]\left[\begin{array}{l} x^{\star} \\ \nu^{\star} \end{array}\right]=\left[\begin{array}{c} -q \\ b \end{array}\right] \tag{5} [PAAT0][x⋆ν⋆]=[−qb](5)
这个n+pn+pn+p个线性方程组称为等式约束优化问题(3)的KKT系统,系统矩阵称为KKT矩阵。如果KKT矩阵非奇异,存在唯一最优的原对偶对 (x∗,ν∗)(x^*,\nu^*)(x∗,ν∗);如果KKT矩阵奇异,但是有解,任何解都构成最优对偶对 (x∗,ν∗)(x^*,\nu^*)(x∗,ν∗);如果KKT矩阵无解,那么二次优化问题或者无解或者无下界。已证明,PPP正定是KKT矩阵非奇异的充分条件。
等式约束的Newton方法
该方法和无约束优化的Newton方法几乎一样,初始点必须可行,即满足x∈domf且Ax=bx\in domf且Ax=bx∈domf且Ax=b,根据等式约束的需要对Newton方向的定义进行适当修改,即要保证Newton方向Δxnt\Delta x_{nt}Δxnt是可行方向,满足AΔxnt=0A\Delta x_{nt}=0AΔxnt=0。
Newton方向:基于二阶近似的定义
前面指出,一般情况下(2)是非线性方程,很难有解析解。为了导出等式约束问题(1)在**可行点xxx**处的Newton方向Δxnt\Delta x_{nt}Δxnt,我们对目标函数fff在xxx附近做二阶Taylor展开:
min f^(x+v)=f(x)+∇f(x)Tv+(1/2)vT∇2f(x)vs.t. A(x+v)=b(6)\begin{array}{ll} \text { min } & \hat{f}(x+v)=f(x)+\nabla f(x)^T v+(1 / 2) v^T \nabla^2 f(x) v \\ \text { s.t. } & A(x+v)=b \end{array} \tag{6} min s.t. f^(x+v)=f(x)+∇f(x)Tv+(1/2)vT∇2f(x)vA(x+v)=b(6)
该问题变量为vvv,且是一个等式约束凸二次规划问题,可以用解析解求解。我们假定该系统的KKT矩阵非奇异,v=Δxntv=\Delta x_{nt}v=Δxnt,在此基础上定义xxx处的Newton方向Δxnt\Delta x_{nt}Δxnt为问题(6)的解。这样一来,通过求解问题(6)得到Δxnt\Delta x_{nt}Δxnt,这是一个向量,被称为Newton方向,将其加到xxx上就得到了以fff的二阶近似f^(x+v)\hat{f}(x+v)f^(x+v)为目标函数的对应问题的最优解。
已知Ax=bAx=bAx=b,根据KKT条件,Newton方向Δxnt\Delta x_{nt}Δxnt可由以下方程确定:
[∇2f(x)ATA0][Δxntw]=[−∇f(x)0](7)\left[\begin{array}{cc} \nabla^2 f(x) & A^T \\ A & 0 \end{array}\right]\left[\begin{array}{c} \Delta x_{\mathrm{nt}} \\ w \end{array}\right]=\left[\begin{array}{c} -\nabla f(x) \\ 0 \end{array}\right] \tag{7} [∇2f(x)AAT0][Δxntw]=[−∇f(x)0](7)
其中ω\omegaω是该二次问题的最优对偶变量,Δxnt\Delta x_{nt}Δxnt只在KKT矩阵非奇异时有定义。如同用无约束优化问题的Newton方法一样,当目标函数fff是严格二次函数时,Newton修正向量x+Δxntx+\Delta x_{nt}x+Δxnt是等式约束优化问题的准确最优解,此时ω\omegaω就是原问题最优的对偶变量。也就是说,当fff接近二次时,x+Δxntx+\Delta x_{nt}x+Δxnt可以说是最优解x∗x^*x∗的很好估计,ω\omegaω就是最优对偶变量ν∗\nu^*ν∗的很好估计。
Newton减量:用于设计停止准则
将等式约束优化问题的Newton减量定义为:
λ(x)=(ΔxntT∇2f(x)Δxnt)1/2(8)\lambda(x)=\left(\Delta x_{\mathrm{nt}}^T \nabla^2 f(x) \Delta x_{\mathrm{nt}}\right)^{1 / 2} \tag{8} λ(x)=(ΔxntT∇2f(x)Δxnt)1/2(8)
已知f^(x+v)=f(x)+∇f(x)Tv+(1/2)vT∇2f(x)v\hat{f}(x+v)=f(x)+\nabla f(x)^T v+(1 / 2) v^T \nabla^2 f(x) vf^(x+v)=f(x)+∇f(x)Tv+(1/2)vT∇2f(x)v 表示fff在xxx处的二阶Taylor近似,则原目标函数f(x)f(x)f(x)和近似模型f^(x+v)\hat{f}(x+v)f^(x+v)之间的差值为:
f(x)−inf{f^(x+v)∣A(x+v)=b}=λ(x)2/2(9)f(x)-\inf \{\hat{f}(x+v) \mid A(x+v)=b\}=\lambda(x)^2 / 2 \tag{9} f(x)−inf{f^(x+v)∣A(x+v)=b}=λ(x)2/2(9)
这说明,λ(x)2/2\lambda(x)^2 / 2λ(x)2/2对xxx处的f(x)−p∗f(x)-p^*f(x)−p∗给出了基于二阶近似模型的一个估计,而λ(x)\lambda(x)λ(x)(或者λ(x)2/2\lambda(x)^2 /2λ(x)2/2)也可以作为设计停止准则的基础。
Newton方向Δxnt\Delta x_{nt}Δxnt总是可行下降方向。首先,满足AΔxnt=0A \Delta x_{nt}=0AΔxnt=0说明该方向是可行方向;其次,已知fff沿方向Δxnt\Delta x_{nt}Δxnt的方向导数为
ddtf(x+tΔxnt)∣t=0=∇f(x)TΔxnt=−λ(x)2(10)\left.\frac{d}{d t} f\left(x+t \Delta x_{\mathrm{nt}}\right)\right|_{t=0}=\nabla f(x)^T \Delta x_{\mathrm{nt}}=-\lambda(x)^2 \tag{10} dtdf(x+tΔxnt)t=0=∇f(x)TΔxnt=−λ(x)2(10)
是小于0的,说明其为下降方向。
算法框架
从上述分析可知,Newton方向Δxnt\Delta x_{nt}Δxnt总是可行下降方向,因此该方法是一种可行下降方法,该方法需要每个xxx处的KKT矩阵可逆。
不可行初始点的Newton方法
根据上文分析已知,上述Newton方法是一个可行下降方法,要求初始点x∈domfx \in domfx∈domf满足Ax=bAx=bAx=b。下面介绍一种能从不可行初始点开始进行迭代的Newton方法,即x∈domfx \in domfx∈domf但Ax≠bAx\neq bAx=b。
不可行点的Newton方向
从等式约束优化问题(1)的最优性条件(2)出发,假定xxx为当前点且不可行,我们需要基于该点xxx找到一个方向Δx\Delta xΔx使得x+Δxx+\Delta xx+Δx满足(至少近似满足)最优性条件,即x+Δx≈x∗x+\Delta x \approx x^*x+Δx≈x∗。为找到方向Δx\Delta xΔx,用x+Δxx+\Delta xx+Δx代替x∗x^*x∗,用ω\omegaω代替ν∗\nu ^*ν∗,将原函数fff的梯度进行一阶泰勒展开:
∇f(x+Δx)≈∇f(x)+∇2f(x)Δx(11)\nabla f(x+\Delta x) \approx \nabla f(x)+\nabla^2 f(x) \Delta x \tag{11} ∇f(x+Δx)≈∇f(x)+∇2f(x)Δx(11)
并带入(2)中,得到:
A(x+Δx)=b,∇f(x)+∇2f(x)Δx+ATw=0(12)A(x+\Delta x)=b, \quad \nabla f(x)+\nabla^2 f(x) \Delta x+A^T w=0 \tag{12} A(x+Δx)=b,∇f(x)+∇2f(x)Δx+ATw=0(12)
可将其写成关于变量Δx\Delta xΔx和ω\omegaω的线性方程组形式:
[∇2f(x)ATA0][Δxw]=−[∇f(x)Ax−b](13)\left[\begin{array}{cc} \nabla^2 f(x) & A^T \\ A & 0 \end{array}\right]\left[\begin{array}{c} \Delta x \\ w \end{array}\right]=-\left[\begin{array}{c} \nabla f(x) \\ A x-b \end{array}\right] \tag{13} [∇2f(x)AAT0][Δxw]=−[∇f(x)Ax−b](13)
此时的Newton方向Δx\Delta xΔx和在可行点xxx处定义的Newton方向不一样,但可以看出,若残差向量Ax−b=0Ax-b=0Ax−b=0,方程(13)就退化成在可行点xxx处定义Newton方向的方程(7)。为避免混淆,我们用符号Δxnt\Delta x_{nt}Δxnt表示(13)所定义的方向Δx\Delta xΔx,称为不可行点的Newton方向。
基于等式约束问题的原对偶方法
原对偶方法是指同时修改原变量xxx和对偶变量ν\nuν使KKT条件(近似)满足的方法。换种思路考虑,将xxx和ν\nuν都视为变量,可将KKT条件表示成r(x∗,ν∗)=0r(x^*,\nu ^*)=0r(x∗,ν∗)=0,其中r:Rn×Rp→Rn×Rpr: \mathbb{R}^n \times \mathbb{R}^p \rightarrow \mathbb{R}^n \times \mathbb{R}^pr:Rn×Rp→Rn×Rp由下式定义:
r(x,ν)=(rdual (x,ν),rpri (x,ν))(14)r(x, \nu)=\left(r_{\text {dual }}(x, \nu), r_{\text {pri }}(x, \nu)\right) \tag{14} r(x,ν)=(rdual (x,ν),rpri (x,ν))(14)
其中,rdual (x,ν)=∇f(x)+ATν,rpri (x,ν)=Ax−br_{\text {dual }}(x, \nu)=\nabla f(x)+A^T \nu, \quad r_{\text {pri }}(x, \nu)=A x-brdual (x,ν)=∇f(x)+ATν,rpri (x,ν)=Ax−b,分别表示对偶残差和原残差。将rrr在当前估计yyy附近进行一阶Taylor展开,得到:
r(y+z)≈r^(y+z)=r(y)+Dr(y)z(15)r(y+z) \approx \hat{r}(y+z)=r(y)+\operatorname{Dr}(y) z \tag{15} r(y+z)≈r^(y+z)=r(y)+Dr(y)z(15)
其中,Dr(y)∈R(n+p)×(n+p)\operatorname{Dr}(y) \in \mathbf{R}^{(n+p) \times(n+p)}Dr(y)∈R(n+p)×(n+p)表示函数rrr在yyy处一阶导。根据KKT条件,将原对偶Newton方向Δypd=(Δxpd,Δνpd)\Delta y_{pd}=(\Delta x_{pd},\Delta \nu_{pd})Δypd=(Δxpd,Δνpd)定义为使r^(y+z)=0\hat{r}(y+z)=0r^(y+z)=0的步长zzz,即
Dr(y)Δypd=−r(y)(16)D r(y) \Delta y_{\mathrm{pd}}=-r(y) \tag{16} Dr(y)Δypd=−r(y)(16)
进一步可写成:
[∇2f(x)ATA0][ΔxpdΔνpd]=−[rdual rpri ]=−[∇f(x)+ATνAx−b](17)\left[\begin{array}{cc} \nabla^2 f(x) & A^T \\ A & 0 \end{array}\right]\left[\begin{array}{c} \Delta x_{\mathrm{pd}} \\ \Delta \nu_{\mathrm{pd}} \end{array}\right]=-\left[\begin{array}{c} r_{\text {dual }} \\ r_{\text {pri }} \end{array}\right]=-\left[\begin{array}{c} \nabla f(x)+A^T \nu \\ A x-b \end{array}\right] \tag{17} [∇2f(x)AAT0][ΔxpdΔνpd]=−[rdual rpri ]=−[∇f(x)+ATνAx−b](17)
令ν+=ν+Δνpd\nu^{+}=\nu + \Delta \nu_{pd}ν+=ν+Δνpd,(17)又可写为:
[∇2f(x)ATA0][Δxpdν+]=−[∇f(x)Ax−b](18)\left[\begin{array}{cc} \nabla^2 f(x) & A^T \\ A & 0 \end{array}\right]\left[\begin{array}{c} \Delta x_{\mathrm{pd}} \\ \nu^{+} \end{array}\right]=-\left[\begin{array}{c} \nabla f(x) \\ A x-b \end{array}\right] \tag{18} [∇2f(x)AAT0][Δxpdν+]=−[∇f(x)Ax−b](18)
观察(13)(17)和(18)可以发现Δxnt=Δxpd\Delta x_{\mathrm{nt}}=\Delta x_{\mathrm{pd}}Δxnt=Δxpd,修正后的对偶变量$ w=\nu^{+}=\nu+\Delta \nu_{\mathrm{pd}}$,这说明最初定义的不可行Newton方向的方程(13)计算出的是不可行点Newton方向和修正后的对偶变量,而方程(17)表明不可行点Newton方向和相应的对偶方向是以原对偶残差为等式右边项的方程组的解,对偶变量的当前值对计算对偶方向或者其修正值都不起作用。
停止准则
结合(13)可知fff沿方向Δxnt\Delta x_{nt}Δxnt的方向导数为
ddtf(x+tΔx)∣t=0=∇f(x)TΔx=−ΔxT(∇2f(x)Δx+ATw)=−ΔxT∇2f(x)Δx+(Ax−b)Tw(19)\begin{aligned} \left.\frac{d}{d t} f(x+t \Delta x)\right|_{t=0} & =\nabla f(x)^T \Delta x \\ & =-\Delta x^T\left(\nabla^2 f(x) \Delta x+A^T w\right) \\ & =-\Delta x^T \nabla^2 f(x) \Delta x+(A x-b)^T w \end{aligned} \tag{19} dtdf(x+tΔx)t=0=∇f(x)TΔx=−ΔxT(∇2f(x)Δx+ATw)=−ΔxT∇2f(x)Δx+(Ax−b)Tw(19)
可以发现,除非xxx可行,则上式不一定为负,这说明在不可行点xxx处的Newton方向不一定是fff的下降方向。但我们可以计算残差范数沿Δypd\Delta y_{pd}Δypd的方向导数,即
ddt∥r(y+tΔypd)∥22∣t=0=2r(y)TDr(y)Δypd=−2r(y)Tr(y)=−∣∣r(y)∣∣2(19)\left.\frac{d}{d t}\left\|r\left(y+t \Delta y_{\mathrm{pd}}\right)\right\|_2^2\right|_{t=0}=2 r(y)^T \operatorname{Dr}(y) \Delta y_{\mathrm{pd}}=-2 r(y)^T r(y)=-||r(y)||_{2} \tag{19} dtd∥r(y+tΔypd)∥22t=0=2r(y)TDr(y)Δypd=−2r(y)Tr(y)=−∣∣r(y)∣∣2(19)
这表明残差范数沿不可行点Newton方向和相应的对偶方向Δypd=(Δxpd,Δνpd)\Delta y_{pd}=(\Delta x_{pd},\Delta \nu_{pd})Δypd=(Δxpd,Δνpd)下降,可用来设计停止准则。
算法框架
参考文献
Convex Optimization – Boyd and Vandenberghe