无约束问题的最小化

无约束问题的最小化

最近在看"Machine Learning A Probability Perspective"的逻辑回归,因为算法比较多,一起看书的伙伴们就决定把"Convex Optimization"讲优化算法的内容看一下。

在阅读以下内容之前,要记住问题的出发点,即给定无约束的凸问题该用什么方法求得最优解(这里假设问题是求最小值)?各种方法之间有什么性质。

也许最先想到的方法就是对变量求梯度,让它等于\(0\)的变量值就是最优解。没错,这样的方法很简单,但是当求导过程过于复杂的时候该怎么办呢?也许你还知道梯度下降,牛顿法等等。如果你对这些方法没又听说过,或者还想知道更多,那接着阅读下去吧,当然最好还是建议你看一下原书。

强凸及其性质

函数强凸是说在凸集\(\rm{S}\)中,对于\(\forall \mathbf{x}\in \rm S\)均有下式成立:

\[\nabla^2 f(\mathbf{x}) \succcurlyeq m \, \mathbf I \]

其中\(m>0\),将上式带入到函数的泰勒展开式

\[f(\mathbf y)=f(\mathbf{x})+\nabla f(\mathbf x)^T(\mathbf y-\mathbf x)+\frac{1}{2}(\mathbf y-\mathbf x)^T\nabla^2f(\mathbf z)(\mathbf y-\mathbf x) \]

得到

\[f(\mathbf y)\geq f(\mathbf x)+\nabla f(\mathbf x)^T(\mathbf y-\mathbf x)+\frac{m}{2}\Vert\mathbf y-\mathbf x\Vert_2^2 \tag 1 \label{eq:1} \]

当固定\(\mathbf{x}\)时,等式右边为\(\mathbf{y}\)的二次项。为了求与\(\mathbf{y}\)无关仅与\(\mathbf{x}\)有关的\(f(\mathbf{y})\)下界,在等式右边对\(\mathbf y\)求梯度,得到:

\[\mathbf y - \mathbf x=-\frac{1}{m}\nabla f(\mathbf x) \]

带入得到

\[f(\mathbf y)\geq f(\mathbf x)-\frac{1}{2m}\Vert\nabla f(\mathbf x)\Vert^2_2 \label{eq:2}\tag{2} \]

因为\(\eqref{eq:2}\)对所有的\(\mathbf{y}\)均成立,令\(\mathbf y=\mathbf x^*\),可以得到

\[f(\mathbf{x^*})\geq f(\mathbf{x})-\frac{1}{2m}\Vert\nabla f(\mathbf{x})\Vert_2^2 \]

因此可以得知当\(\mathbf{x}\)的梯度范数越小时,其与靠近最优点\(\mathbf{x^*}\)\(\eqref{eq:2}\)式子同样可以得到\(\nabla f(\mathbf x)\)的下界

\[\Vert \nabla f(\mathbf x)\Vert_2^2\geq 2m(f(\mathbf x)-p^*) \]

可以看到,当某一点的梯度较小时,作为其下界\(2m(f(\mathbf x)-p^*)\)也应该很小,因此\(\mathbf{x}\)越接近最优点,而这与最优点梯度为0的常识相符合。因此也可以用\(\Vert \nabla f(\mathbf x)\Vert_2^2\leq\epsilon\)当作收敛条件。

\(\mathbf x^*\)带入到\(\eqref{eq:1}\)中,再利用柯西施瓦茨不等式

\[\vert \nabla f(\mathbf x)^T(\mathbf x^* - \mathbf x)\vert \leq \Vert\nabla f(\mathbf x) \Vert_2 \Vert\mathbf{x^*}-\mathbf{x} \Vert \]

带入可得

\[f(\mathbf x^*)\geq f(\mathbf x)-\Vert \nabla f(\mathbf x) \Vert_2\Vert\mathbf x^*-\mathbf x \Vert_2+\frac{m}{2}\Vert\mathbf x^* - \mathbf x\Vert_2^2 \]

因为\(f(\mathbf{x}) > f(\mathbf{x^*})\),故\(-\Vert \nabla f(\mathbf x) \Vert_2\Vert\mathbf x^*-\mathbf x \Vert_2+\frac{m}{2}\Vert\mathbf x^* - \mathbf x\Vert_2^2 \leq0\),整理得到

\[\Vert \mathbf x - \mathbf x^*\Vert_2 \leq \frac{2}{m}\Vert \nabla f(\mathbf x)\Vert_2 \]

即通过\(\Vert \nabla f(\mathbf x)\Vert_2\)可以得到\(\mathbf x\)\(\mathbf x^*\)的差距上界。

一般而言\(\rm S\)被当做是下子集(sublevel sets),是有界的,故存在\(M>0\)使得\(\forall \mathbf x\in \rm S\)满足

\[\nabla^2f(\mathbf x)\preceq M\mathbf I \]

使用相同的方法,可以得到:

\[f(\mathbf y)\leq f(x)+\nabla f(\mathbf x)^T(\mathbf y-\mathbf x)+\frac{M}{2}\Vert\mathbf y- \mathbf x \Vert_2^2\\ p^* \leq f(\mathbf x)-\frac{1}{2M}\Vert \nabla f(\mathbf x)\Vert_2^2 \label{eq:3}\tag{3} \]

定义\(\kappa = \frac{M}{m}\)\(\rm S\)的condition number,condition number会在之后的收敛性分析中扮演重要的角色。\(\nabla^2 f(\mathbf x)\)是实对称矩阵,可以看出\(\textit condition\, number\)可以看作\(\nabla^2f(\mathbf x)\)\(\forall \mathbf x \in \rm S\)中最大特征值和最小特征值的比值。

根据泰勒展开\(\alpha \geq f(\mathbf{y})\approx f(\mathbf{x^*})+\frac{1}{2}(\mathbf{y}-\mathbf{x^*})^T \nabla^2f(\mathbf{z})(\mathbf{y}-\mathbf{x^*})\),可以看出\(\mathbf{y}\)大约在一个以\(\mathbf{x^*}\)为中心的椭圆内。我们可以以\(\nabla^2 f(\mathbf{z})\)的特征值描述下子集\(S\)的形状。下子集最长半轴\(r_{\max} = 1/\sqrt{\lambda_{\min}(\nabla^2 f(\mathbf{z}))}\),最短半轴\(r_{min} = 1/\sqrt{\lambda_{\max}(\nabla^2 f(\mathbf{z}))}\)。根据cond的定义,可见其为\(r_{\max}^2/r^2_{\min}\)。于是可以集合解释为,设凸集合\(C\)的沿某一方向上的宽度为

\[W(C,q)=\sup_{z\in C}q^Tz-\inf_{z\in C}q^Tz \]

集合\(C\)在不同方向上的最大和最小宽度如下:

\[W_{\min}=\inf_{\vert q\vert_2=1}W(C,q)\\ W_{\max}=\sup_{\vert q\vert_2=1}W(C,q) \]

\(condition\, number\)\(W_{max}^2/W_{min}^2\),从而可以看出\(condition\, number\)越小说明集合\(C\)越圆,反之则其各项异性比较大。

对于\(\alpha\)-sublevel子集\(C_{\alpha}=\{\mathbf y\vert f(\mathbf y)\leq\alpha\}\),根据\(\eqref{eq:2}\)\(\eqref{eq:3}\)式可得

\[p^*+\frac{M}{2}\Vert\mathbf x^*-\mathbf y \Vert_2^2\geq f(\mathbf y)\geq p^*+\frac{m}{2}\Vert\mathbf x^*-\mathbf y \Vert_2^2 \]

再利用\(\alpha \geq f(\mathbf y)\),则\(\alpha \geq p^*+\frac{m}{2}\Vert\mathbf x^*-\mathbf y \Vert_2^2\)。当\(\mathbf y\)趋近于\(\mathbf x^*\)时,\(p^*+\frac{M}{2}\Vert\mathbf x^*-\mathbf y \Vert_2^2\)趋近于\(p^*\),此时\(\alpha \geq p^*+\frac{M}{2}\Vert\mathbf x^*-\mathbf y \Vert_2^2\)可以求得部分\(\mathbf y\)的范围。上述两个不等式可以得到:

\[B_{inner}=\{\mathbf y\vert \Vert \mathbf y-\mathbf x^* \Vert_2^2\leq \frac{2}{M}(\alpha-p^*)\}\\ B_{outer}=\{\mathbf y\vert \Vert \mathbf y-\mathbf x^* \Vert_2^2\leq \frac{2}{m}(\alpha-p^*)\} \]

可见\(\alpha\)下子集在\(B_{inner}\)\(B_{outer}\)之间,则根据几何解释\(\textbf{cond}(C_{\alpha})\leq \frac{M}{m}\)。这样,\(condition \, number\)和下子集的形状联系了起来。

\(\alpha\)趋近于\(\mathbf x^*\)时,根据泰勒展开,其梯度可以认为是0,得到下子集\(C_\alpha\)

\[C_\alpha = \{\mathbf y|(\mathbf y - \mathbf x^*)^T\nabla^2f(\mathbf x)(\mathbf y - \mathbf x^*)\leq 2(\alpha - p^*)\} \]

可以看到此时的下子集\(C_\alpha\)接近为\(\nabla^2 f(\mathbf x^*)\)的椭球,此时的\(\textbf{cond}(C_{\alpha})=\kappa{\nabla^2 f(\mathbf x^*)}\)

下降方法(Descent methods)求解框架

下降方法是一种迭代算法,给定上一部的\(\mathbf{x}^{k-1}\)其通过寻找新的\(\mathbf{x}^{k}\)来使得\(f(\mathbf{x}^{k})<f(\mathbf{x}^{k-1})\)\(\mathbf{x^t}\)\(\mathbf {x}^{k-1}\)的一般关系为\(\mathbf{x}^k=\mathbf{x}^{k-1}+t^{k-1}\Delta\mathbf{x}^{k-1}\)。可见下降方法的主要内容为寻找\(\Delta\mathbf{x}^{k-1}\)\(t^{k-1}\),以保证\(f(\mathbf x^{k})<f(\mathbf{x}^{k-1})\)

对于凸集合\(\rm S\)和凸函数\(f\),当\(\forall \mathbf{y} in \rm S\)\(\nabla f(\mathbf x^{k-1})(\mathbf y-\mathbf x^{k-1})\geq 0\)时,则\(f(\mathbf y)\geq f(\mathbf x^k)\),故要寻找的\(\Delta \mathbf x^{k-1}\)必然与\(\nabla f(\mathbf x^{k-1})\)成负角度。

Descent methods的一般流程如下:

  1. 给定初始点\(\mathbf{x}\)
  2. 重复下列过程
  • 决定搜索方向\(\Delta \mathbf{x}\)
  • 决定步长\(t\) (Line search)
  • \(\mathbf{x}\)进行更新
  1. 检查是否收敛,如果收敛则停止迭代

有两个Line Search方法,一个是exact line search另外一个是不精确的backtracting line search。

  • exact line search 即是说,在给定搜索方向\(\Delta \mathbf x\)后,选择使得\(f(\mathbf x^{k-1})+t\Delta \mathbf{x}^{t-1}\)最小的步长\(t\),在上式求解较为简单时该方法可以应用。

  • backtracking line search 相对于exact line search来说应用更为普遍。其算法流程如下

    • 选择\(0<\alpha<0.5, \ 0<\beta<1\),以及搜索方向\(\Delta \mathbf{x}\)(对于\(\alpha\)为什么要小于0.5请看下一节)
    • \(f(\mathbf{x}+t\Delta \mathbf{x})>f(\mathbf x)+\alpha t\nabla f(\mathbf x)^T \Delta \mathbf x\)时,令\(t:=\beta t\)

    \(t\)足够小的时候,\(f(\mathbf x+t\Delta \mathbf x)\approx f(\mathbf x)+t\nabla f(\mathbf x)^T \Delta\mathbf x <f(\mathbf x)+\alpha t\nabla f(\mathbf x)^T \Delta\mathbf x\),因此上述的过程肯定是收敛的。

    书中关于t和的解释

    上图是书中关于\(\alpha\)\(t\)的解释:在确定\(\nabla f(\mathbf x)^T \Delta \mathbf x\)后,\(f(\mathbf x)+t\nabla f(\mathbf x)^T \Delta\mathbf x\)即为关于\(t\)的函数,\(\alpha \nabla f(\mathbf x)^T \Delta \mathbf x\)即为斜率,\(\alpha\)越小,则直线越平缓。在确定\(\alpha\)\(\beta\)后,从图中可以看出在\(t_0\)点,\(f(\mathbf x)+t\nabla f(\mathbf x)^T \Delta\mathbf x\)\(f(\mathbf x+t\Delta \mathbf x)\)相交,因此可能的\(t\)取值为1或者\((\beta \, t_0, \, t_0]\),从而\(t \geq \min\{1,\, \beta\, t_0\}\)

梯度下降方法

对于下降方法中的搜索方向\(\Delta \mathbf x\),一个自然的选择为负梯度方向,即\(-\nabla f(\mathbf x)\)(将\(f(\mathbf x+t\Delta \mathbf x)\)一次展开得到\(f(\mathbf x)+t\nabla f(\mathbf x)^T\Delta \mathbf x\)\(\Delta \mathbf x\)\(-\nabla f(\mathbf x)\)时可以保证\(f(\mathbf x+t\Delta \mathbf x)\leq f(\mathbf x)\))。下面对梯度下降法的收敛速度进行分析。

  • exact line search搜索的收敛速度

    \(\Delta \mathbf x=-\nabla f(\mathbf x)\)带入到\(\eqref{eq:3}\)式子中,得到

    \[f(\mathbf x-t\nabla f(\mathbf x))\leq f(\mathbf x)-t\Vert \nabla f(\mathbf x)\Vert_2^2+\frac{M}{2}t^2\Vert \nabla f(\mathbf x)\Vert_2^2 \]

    通过对\(t\)求最小值,得到

    \[f(\mathbf x-t\nabla f(\mathbf x))\leq f(\mathbf x)-\frac{1}{2M}\Vert \nabla f(\mathbf x)\Vert_2^2 \]

    通过\(\eqref{eq:2}\)式可以得到,\(\Vert \nabla f(\mathbf x)\Vert_2^2\geq2m(f(\mathbf x) - p^*)\),在上式的两边同时减去\(p^*\)得到

    \[f(\mathbf x-t\nabla f(\mathbf x)) - p^* \leq (1-\frac m M)\left(f(\mathbf x)-p^*\right) \]

    通过上式可以看到其为线性收敛,当\(\frac m M\)越接近1时,收敛速度越快。而通过\(cond\)的几何解释,\(\frac m M\)\(\alpha\)下子集的形状有关,如果其各方向上差异性较小则越接近1,这也是为什么在优化前先对数据进行归一化处理的原因。

  • backtracting line search

    首先对上一节中\(\alpha\)的取值进行说明。在\(0\leq t \leq \frac 1 M\)时,下式成立

    \[-t + \frac M 2 t^2 \leq -\frac 1 2 t \]

    \(\Delta \mathbf x=-\nabla f(\mathbf x)\)带入得到

    \[\begin{align*} f\left(\mathbf x-t\nabla f(\mathbf x)\right)& \leq f(\mathbf x)-t\Vert \nabla f(\mathbf x)\Vert_2^2+\frac M 2 \Vert \nabla f(\mathbf x)\Vert_2^2 \\ & \leq f(\mathbf x) - \frac t 2 \Vert \nabla f(\mathbf x)\Vert_2^2 \\ & \leq f(\mathbf x) - \alpha t \Vert \nabla f(\mathbf x)\Vert_2^2 \end{align*} \]

    因此搜索步长\(t\)取值为1或\(t\geq \frac \beta M\)。采取跟exact line search一样的分析步骤,在上式两边同时减去\(p^*\)得到

    \[\begin{align*} f\left(\mathbf x-t\nabla f(\mathbf x)\right)-p^* & \leq f(\mathbf x)-p^*-\min\{\alpha, \, \frac {\alpha\beta}{M}\}\nabla f(\mathbf x)\Vert_2^2 \\ &\leq (1-\min\{2m\alpha, \, \frac {2m\alpha\beta}{M}\})(f(\mathbf x)-p^*) \end{align*} \]

  • 例子

    下面结合书上的一个例子应用exact line search来进行阐述,设一个二次的目标函数为

    \[f(\mathbf x)=\frac 1 2\left(x_1^2+\gamma x_2^2\right) \]

    式中\(\gamma>0\),定义域为\(\mathbf{R}^2\),目标函数\(f\)的Hessian矩阵为常量,其Hessian矩阵的特征根为\(1\)\(\gamma\),因此condition number为\(\frac {\max\{1, \, \gamma\}}{\min\{1\, \gamma\}}=\max\{\gamma, \frac 1 \gamma\}\)

    ,选定初始点\(\mathbf x_0=(\gamma, 1)\),其负梯度方向为\((\gamma \, \gamma)\),通过计算可以得到下降幅度\(t=\frac 2 {(1+\gamma)}\),得到\(\mathbf x_1=(\gamma\frac {\gamma-1}{\gamma+1}, -\frac {\gamma-1}{\gamma+1}\),通过归纳可以得到\(\mathbf x_k=(\gamma\left(\frac{\gamma-1}{\gamma+1}\right)^k, \left(-\frac {\gamma-1}{\gamma+1}\right)^k\),从而

    \[f(\mathbf x_k)=\frac {\gamma\left(\gamma+1\right)} 2\left(\frac{\gamma-1}{\gamma+1}\right)^{2k}=\left(\frac{\gamma-1}{\gamma+1}\right)^{2k}f(\mathbf x_0) \]

Steepest descent method

不同于[gradient descent](# 梯度下降方法)中使用负梯度作为下降方向,Steepest descent中使用\(\Delta \mathbf x=\underset{v}{\min}{-\nabla f(\mathbf x)^T v }\)作为下降方向。定义normolized steepest descent direction \(\Delta \mathbf x_{nsd} = \arg\min\left\{\nabla f(\mathbf x)^Tv \vert \left\Vert v\right\Vert=1\right\}\),通过对\(\Delta \mathbf x_{nsd}\)进行变换并记住对偶范数的定义\(\left \Vert z\right \Vert_* = \underset{v}{\sup}\left \{z^Tv \vert \left\Vert v\right\Vert\leq 1\right \}\)得到\(\Delta \mathbf x_{sd}=\Delta \mathbf x_{nsd}\left \Vert \nabla f(\mathbf x)\right \Vert_*\),从而\(\nabla f(\mathbf x)^T\Delta \mathbf x_{sd}=\nabla f(\mathbf x)^T\Delta \mathbf x_{nsd}\left \Vert \nabla f(\mathbf x)\right\Vert_*=-\left \Vert \nabla f(\mathbf x)\right \Vert_*^2\)

当使用二范数时,Steepest descent的方向为负梯度方向,与gradient descent的方向一致。

  • Steepest descent for quadratic norm

    quadratic norm定义为\(\left \Vert z\right \Vert_P=z^TPz\),其中\(P \in \mathbf S_{++}^n\),通过解下述不等式

    \[\begin{align*} & \min_{v} \nabla f(\mathbf x)^Tv\\ s.t \qquad &v^TPv\leq 1 \end{align*} \]

    得到

    \[\begin{align*} \Delta \mathbf x_{nsd}&=-\left(\nabla f(\mathbf x)^T P^{-1}\nabla f(\mathbf x) \right)^{-\frac 1 2} P^{-1}\nabla f(\mathbf x)\\ \Delta \mathbf x_{sd}&=-P^{-1}\nabla f(\mathbf x) \end{align*} \]

    根据\(\Delta \mathbf x_{nsd}\)的定义,可以看出其几何意义如下,图中阴影的椭圆表示\(v^TPv\leq1\)

    对

    除了上述的集合解释外,还可以通过坐标变换得到\(\Delta \mathbf x_{nsd}\)

    \(\bar{\mathbf x}=P^{\frac 1 2}\mathbf x\)\(\bar{f}(\bar {\mathbf x})=f(P^{-\frac 1 2}\mathbf {\bar{x}})\)

    通过这样的变换就将quadratic norm 变换成了二范数了。\(z^TPz=\left\Vert \bar{z}\right\Vert_2^2\)。此时\(\Delta \mathbf{\bar{x}}_{sd}=-\nabla f(\mathbf{\bar{x}})=-P^{-\frac 1 2}\nabla f(\mathbf x)\)\(\Delta \mathbf x_{sd}=P^{-\frac 1 2}\Delta \mathbf{\bar{x}}_{sd}=-P^{-1}\nabla f(\mathbf x)\)

    根据上述变换\(\bar{f}(\mathbf x)=f(P^{-\frac 1 2}\mathbf {\bar{x}})\),对\(\bar{\mathbf {x}}\)进行求Hessian矩阵,得到\(P^{-\frac{1}{2}}\nabla^2 f(\mathbf x)P^{-\frac{1}{2}}\),当\(P=\nabla^2f(\mathbf x)\)时,变换后的函数有更好的condition number。也就是说,如果\(\{\mathbf x\vert \mathbf x^{T}P\mathbf x\leq1\}\)如果与sublevel set形状相似的话,descent method在变换后的变量下会取得很好的效果。

  • Steepest descent for \(l_1\) norm

    \(l_1\) norm下,\(\Delta \mathbf x_{nsd}=\min\left\{\nabla f\left(\mathbf x\right)^Tv\vert \left \Vert v \right \Vert_1\leq1\right\}\),可以得到\(\Delta \mathbf x_{nsd}=\left(0,\dots,-sign\left(\frac {\partial f(\mathbf x)}{\partial x_i}\right)e_i,\dots,0\right)\),其中\(i\)为其绝对值最大的分量。这样,每次下降的方向只涉及一个分量,该算法有时被称为coordinate descent algorithm。

    可以根据下图对Steepest descent在\(l_1\) norm的情况下进行理解

     norm explanation

  • Converge Analysis

    由于任何范数都可以被二范数定界,故假设\(\gamma,\bar{\gamma}\in\left(0,1\right]\),使得

    \[\begin{align*} \Vert \mathbf x\Vert &\geq \gamma \Vert \mathbf x\Vert_2\\ \Vert \mathbf x\Vert_* &\geq \gamma \Vert \mathbf x\Vert_2\\ \end{align*} \]

    同样根据强凸,得到

    \[\begin{align*} f\left(\mathbf x+t\Delta\mathbf x_{sd}\right)&\leq f\left(\mathbf x\right)+t \nabla f(\mathbf x)^T\Delta\mathbf x_{sd}+\frac{M}{2}t^2\Vert\Delta \mathbf x_{sd}\Vert_2^2\\ &\leq f(\mathbf x)-t\left \Vert \nabla f\left(\mathbf x \right)\right \Vert_*^2+\frac{M}{2\gamma^2}t^2\left \Vert \nabla f\left(\mathbf x \right)\right \Vert_*^2 \end{align*} \]

    \(t=\frac {\gamma^2} M\)时右式取得最小值,带入得到

    \[f(\mathbf x + t\Delta \mathbf x)\leq f(\mathbf x)-\frac{\gamma^2}{2M}\Vert \nabla f\left(\mathbf x\right)\Vert_*^2 \]

    发现\(t=\frac{\gamma^2}{M}\)时满足backtracking line search的条件。因此采用backtracking line search的时候,步长\(t=\min\left\{1, \frac{\beta \gamma^2}{M}\right \}\),因此

    \[\begin{align*} f(\mathbf x+t\Delta \mathbf x_{sd})&\leq f(\mathbf x)-\alpha \bar{\gamma}^2\min\left\{1, \frac{\beta \gamma^2}{M}\right\}\left\Vert \nabla f(\mathbf x)\right\Vert_2^2\\ & \leq f(\mathbf x)-2m\alpha \bar{\gamma}^2\min\left\{1, \frac{\beta \gamma^2}{M}\right\}\left(f(\mathbf x-p^*)\right) \end{align*} \]

    由此可见收敛性。

Newton's method

  • Newton's step

    定义\(\Delta \mathbf x_{nt}=-\nabla^2f\left(\mathbf x\right)^{-1}\nabla f\left(\mathbf x\right)\)为newton's step,正定的Hessian矩阵意味着\(\nabla f\left(\mathbf x\right)\Delta \mathbf x_{st}\leq0\),因此\(f(\mathbf x + t\Delta \mathbf x_{sd})\leq f(\mathbf x)\)

    对函数\(f\)的二阶泰勒展开求最小值,可以发现\(v=\Delta \mathbf x_{nt}\)时取得。

    \[\min_{v} f(\mathbf x)+\nabla f(\mathbf x)^Tv +\frac{1}{2}v^T\nabla ^2 f(\mathbf x) v \]

    可以理解为在\(\mathbf x点对函数\)\(f\)进行二次逼近时,逼近函数在\(\mathbf x+\Delta \mathbf x_{st}\)点取到最小值。

    根据[Steepest descent](# Steepest descent method),如果quadratic norm中的\(P=\nabla^2 f(\mathbf x)\),可以得到\(\Delta \mathbf x_{nt}=\Delta \mathbf x_{nsd}\)

    对函数\(f\)得到函数进行一阶泰勒展开

    \[\nabla f(\mathbf x+v)\approx \nabla f(\mathbf x)+\nabla ^2 f(\mathbf x)v \]

    根据极值条件,在最优点其导函数值为\(0\),此时\(v=\Delta \mathbf x_{st}\)

    牛顿方法可以理解为对一阶近似的导函数求极值,得到极值点,并在该点再次进行上述过程。

    Newton's step具有仿射不变性,对原变量\(\mathbf x\)左乘非奇异阵\(T\)进行变换,令\(\mathbf y=T \mathbf x,\quad \bar{f}(\mathbf x)=f(T\mathbf x)\),在\(\bar{f}(\mathbf x)\)中Newton's step为

    \[\begin{align*} \Delta\bar{\mathbf x}&=-T^{-1}\nabla^2 f(\mathbf y)^{-1}\nabla f(\mathbf y)\\ &=T^{-1}\Delta \mathbf x \end{align*} \]

    经过变换的函数\(\bar{f}\)\(\mathbf x\)的Newton's step为\(f\)\(y\)点的newton's step再左乘\(T^{-1}\)

    定义\(\lambda(\mathbf x)=\left(\nabla f\left(\mathbf x\right)^T\nabla ^2 f\left(\mathbf x \right)^{-1}\nabla f\left(\mathbf x\right)\right)^{\frac 1 2}\)为newton decrement。

    可以看到\(\lambda(\mathbf x)^2\)为newton step在\(\nabla^2 f(\mathbf x)\)的quadratic norm,再结合Steepest descent中的\(\Delta \mathbf x_{nsd}\)\(\lambda(\mathbf x)\)与其\(\Delta \mathbf x_{nsd}\)中的单位化部分相一致。

  • Newton's method

    Newton's method 有damped和pure之分,其区别为步长的不同,pure newton method的步长\(t\)固定为\(1\),而damped newton method的步长$t为利用Line search确定,其算法流程如下:

    • 确定初始点\(\mathbf x^{(0)}\)和收敛条件\(\epsilon\)
    • 计算\(\lambda(\mathbf x)\)并与\(\epsilon\)进行比较,如果未满足收敛条件则仅需进行
    • 计算\(\Delta \mathbf x_{st}\),并根据backtracking line search or exact line search 计算步长\(t\)
    • \(\mathbf x\)进行更新,\(\mathbf x^{(new)}=\mathbf x^{(old)}+t\Delta \mathbf x_{st}\)

    Newton's method的收敛性分析比较繁琐,这里不再进行分析。后续会补上quasi-Newton methods。

posted @ 2019-05-06 09:37  Neo_DH  阅读(1024)  评论(0编辑  收藏  举报