09 - Classical Newton Method

这一节画了很多 contour 的图,是通过这个脚本实现的

Classical Newton Method

Classical Newton 基于的思想是在每步迭代的过程中对函数做 quadratic approximation,也就是用二阶 taylor series 去近似 $f(\b{x})$

然后通过优化这个近似函数得到 $\b{x}^{k+1}$,为了方便,后面以 $\b{g}^k$ 表示 $g(\b{x}^k)$,以 $H^k$ 表示 $H(\b{x}^k)$。

优化这个 quadratic approximation 并不复杂,令其导数为 0 即 $\b{g}^k + H^k (\b{x} - \b{x}^k) = 0$ 可得

之前已经说过每步迭代的 descent direction 可以表示为 $\b{d}^k = -A^k \b{g}^k$,对于 Classical Newton,$A^k = {H^{k}}^{-1}$,另外注意到,传统的 Classical Newton 并不设 step length,也就是 step length 统一设为 1,当然你也可以在每步做 line search。

下图给出 Rosenbrock function $f(\b{x}) = 100(\b{x}_2 - \b{x}_1^2)^2 + (1 - \b{x}_1)^2$ 在点 $(-0.5, 0)$ 处的 quadratic approximation,其中红点表示 $(-0.5, 0)$,绿色的 contour 就是 quadratic approximation 对应的 contour

注意到如果你的函数本身就是个 quadratic function $f(\b{x}) = \frac{1}{2} \b{x}^T H \b{x} - \b{c}^T \b{x}$,则无论初始点选在哪儿,Classical Newton 都可以一步收敛到最优解

Examples

还用 steepest descent 中给出的例子

$f(\b{x}) = (\b{x}_1 - 7)^2 + (\b{x}_2 - 2)^2$ 和 $f(\b{x}) = 4\b{x}_1^2 + \b{x}_2^2 -2\b{x}_1\b{x}_2$

对于这两个 case,无论你初始点设在哪里,Classical Newton 都是一步即可收敛

$f(\b{x}) = 100(\b{x}_2 - \b{x}_1^2)^2 + (1 - \b{x}_1)^2$

其最优值出现在 (1, 1) 点,利用 Classical Newton + backtrack line search ($\hat{\alpha} = 1, \lambda = 0.3, c_1 = 1\times 10^{-4}$)


从这几例子可以看出,对比 steepest descent,Classical Newton 收敛所需的步数要少了很多。

Classical Newton 的问题

Local Convergence

首先先引入 locally convergent 的概念

An iterative optimization algorithm is said to be locally convergent if for each solution $\b{x}^*$, there exists $\delta > 0$ such that for any initial point $\b{x}^0 \in B(\b{x}^*, \delta)$, the algorithm produces a sequence $\{\b{x}^k\}$ which converges to $\b{x}^*$

下面证明 Classical Newton algorithm 是 locally convergent algorithm,证明过程考虑 $x \in \mathbb{R}^1$ 的 case 即 $f: \mathbb{R} \rightarrow \mathbb{R}$,对于这个函数 Classical Newton 的迭代步骤是 $x^{k+1} = x^k - \frac{f’(x^k)}{f’‘(x^k)}$