带等式约束凸优化问题的求解——Newton Method(六)

带等式约束凸优化问题的求解——Newton Method(六)

简介

前面的系列我们介绍了Gradient Descent和Newton Method求解无约束的凸优化问题,并且给出了带约束问题的可行解的存在条件——KKT条件。在这篇文章里,我们考虑带等式约束的凸优化问题:

\begin{align} \min \,&f(x) \\  \mathrm{subject \,\, to} \,& Ax=b \end{align} \tag{1}

其中 f 二阶可导, A \in R^{p \times n}, \mathrm{rank}(A) = p < n 。根据KKT条件,我们知道 x^* \in dom(f) 是优化问题(1)的最优解的充要条件是,存在 \nu^* \in \mathbb{R}^n 满足

Ax^* = b \quad \nabla f(x^*) + A^T \nu^* = 0 \tag{2}

所以,求解优化问题(1)等价于求解 n+p 个变量组成的方程(2)。一般而言  \nabla f(x^*) + A^T \nu^* = 0 是非线性的,很难求出其解析解。但在下面的部分,我们将考虑 f 的二阶近似,从而使得 \nabla f(x^*) 线性化。

等式约束凸二次规划

考虑 f 为二次函数的情况

\begin{align} \min \,&f(x) = \frac{1}{2}x^TPx + q^Tx + r \\  \mathrm{subject \,\, to} \,& Ax=b \end{align} \tag{3}

根据凸性, P \in S_+^n, A \in \mathbb{R}^{p \times n} 。该问题是扩展Newton Method处理等式约束问题的基础。此时最优条件可以写为

Ax^* = b, \quad Px^* + q + A^Tv^* = 0 \\

用矩阵表示为

\Big[\begin{array}{cc} P & A^T \\ A & 0  \end{array} \Big] \Big[ \begin{array}{c} x^* \\ \nu^* \end{array}\Big] = \Big[ \begin{array}{c} -q \\ b \end{array}\Big] \tag{4}

n+p 个变量组成的线性方程组称为KKT矩阵。如果KKT矩阵非奇异,存在唯一最优的原对偶对 (x^*, \nu^*) ;如果KKT矩阵奇异,但是有解,任何解都构成最优对偶对 (x^*, \nu^*) ;如果KKT矩阵无解,那么二次优化问题或者无解或者无下界。

下面指出KKT矩阵非奇异的一个充分条件:P 正定

等式约束的Newton方法

前面指出,一般情况下(2)是非线性方程,很难有解析解。为了方便求解,我们对目标函数 fx 处做二阶近似。

\begin{align} \min \,&f(x+v) = f(x) + \nabla f(x)^Tv + \frac{1}{2} v^T \nabla^2 f(x) v \\  \mathrm{subject \,\, to} \,& A(x+v)=b \quad \mathrm{or} \quad Av=0 \end{align} \tag{5}

该问题的变量为 v ,且是关于 v 的等式约束凸二次规划问题。我们假定KKT矩阵非奇异,在此基础上定义 x 处的Newton下降方向 \Delta x_{nt} 为凸二次问题(5)的解。根据(4),Newton下降方向 \Delta x_{nt} 由以下KKT方程决定。

\Big[\begin{array}{cc} \nabla^2f(x) & A^T \\ A & 0  \end{array} \Big] \Big[ \begin{array}{c} \Delta x_{nt} \\ \ w \end{array}\Big] = \Big[ \begin{array}{c} -\nabla f(x) \\ 0 \end{array}\Big] \tag{6}

其中 w 是该二次问题的最优对偶变量(防止符号滥用,我们这里没有再使用 \nu )。所以求解问题(5)等于求解方程组(6)。

首先我们说明这样的一个下降方向 \Delta x_{nt} 是满足迭代算法要求的。首先,可以看出 A \Delta x_{nt}=0 满足等式约束;此外, f 沿 \Delta x_{nt} 处的方向导数是小于0的,说明 \Delta x_{nt} 是一个下降方向

\frac{d}{dt} f(x+t\Delta x_{nt}) \Big|_{t=0} =\nabla f(x)^T \Delta x_{nt} = -\Delta x_{nt}^T \nabla^2 f(x) \Delta x_{nt} < 0 \\

下面,我们给出等式约束的Newton Method算法的框架,可以看出其和无约束情况下完全一样。

重复进行:
1. 计算Newton方向\Delta x_{nt} ,即求解KKT方程(6)
2. 计算Newton减量 \lambda(x) =(\Delta x_{nt}^T \nabla^2 f(x) \Delta x_{nt})^{1/2}
3. 停止准则:如果 \lambda^2/2 \leq \epsilon ,则退出
4. 直线搜索:通过回溯直线法确定步长 t
5. 改进: x:= x+ t \Delta x_{nt}

同样地,Newton Method收敛也存在阻尼Newton阶段和纯Newton阶段。阻尼Newton阶段收敛较慢,但有界;纯Newton阶段收敛十分迅速。下面说明如何求解KKT系统得到 \Delta x_{nt}

求解KKT系统

这里专门介绍求解线性方程组(6)是因为我们可以利用 \nabla^2 f(x) 的正定性,加速计算。

\Big[\begin{array}{cc} \nabla^2f(x) & A^T \\ A & 0  \end{array} \Big] \Big[ \begin{array}{c} \Delta x_{nt} \\ \ w \end{array}\Big] = \Big[ \begin{array}{c} -\nabla f(x) \\ 0 \end{array}\Big] \\

不失一般性,我们可以直接求解这个线性方程组。不利用矩阵的结构,计算量是 (1/3)(n+p)^3 次浮点运算。当 np 都不大时,这是一个合理的处理方法。

此外,我们可以采用消元法。假设 \nabla^2 f(x) 正定,利用KKT方程组第一个方程 \nabla^2 f(x) \Delta x_{nt} + A^T w = -\nabla f(x) \\

可以解出 \Delta x_{nt}

\Delta x_{nt} = - {\nabla^2 f(x)}^{-1} (\nabla f(x) + A^T w) \\

然后将其带入KKT方程组的第二个方程,可以解出 w

w = (A {\nabla^2 f(x)}^{-1}A^T)^{-1} (-A{\nabla^2 f(x)}^{-1}\nabla f(x)) \\

下面给出基于消元法的求解过程:

1. 计算 {\nabla^2 f(x)}^{-1} A^T{\nabla^2 f(x)}^{-1} \nabla f(x)
2. 计算Schur补 S = -A {\nabla^2 f(x)}^{-1} A^T
3. 求解 Sw = A{\nabla^2 f(x)}^{-1} \nabla f(x) 确定 w
4. 求解 \nabla^2 f(x) \Delta x_{nt} = - A^Tw - \nabla f(x) 确定 \Delta x_{nt}

采用合适的矩阵分解方法(如Cholesky因式分解),整体的浮点计算次数大概为:

f +ps + p^2n + (1/3)p^3 \\

其中 f 是对 {\nabla^2 f(x)} 进行Cholesky因式分解所需要的计算量。

总结

对于带等式约束的凸优化问题,我们将目标函数进行了二次近似,根据KKT条件,确定了最优解的存在条件——KKT方程。然后通过求解KKT方程确定Newton Method需要的下降方向 \Delta x_{nt} ,并且对快速求解KKT方程做了一定的分析。


阅读本系列的其他文章

  1. 凸优化系列(一)
  2. 凸优化问题介绍(二)
  3. 无约束凸优化问题求解——Gradient Descent(三)
  4. 无约束凸优化问题求解——Newton Method(四)
  5. 带约束凸优化问题最优解的存在条件——KKT条件(五)
  6. 带等式约束凸优化问题的求解——Newton Method(六)
  7. 带不等式约束凸优化问题的求解——内点法(七)

编辑于 2018-11-20

文章被以下专栏收录