Nesterov#
- pylit.optimizer.nesterov.nesterov(R, F, x0, method, maxiter=None, tol=None, svd=False, protocol=False)#
This is the Nesterov optimization method. The interface is described in Optimizer.
Description#
Solves the optimization problem (1) using the Nesterov accelerated gradient method with a non-negativity constraint. The algorithm maintains two sequences of iterates, a main sequence \(x_k\) and an auxiliary lookahead sequence \(y_k\). At each iteration, the lookahead point is computed by combining the current and previous iterates with a momentum parameter. A projected gradient descent step is then performed from this lookahead point. Projection enforces feasibility with respect to the non-negativity constraint. The lookahead mechanism reduces oscillations and accelerates convergence, achieving the optimal \(\mathcal{O}(1/k^2)\) rate for first-order methods.
Algorithm#
Given a momentum parameter \(0 < \theta_k < 1\) and learning rate \(\eta > 0\), the updates are:
\[\begin{split}\begin{align*} \boldsymbol{\beta}_0 &= \boldsymbol{\alpha}_0 \in \mathbb{R}^n, & & \text{(initial guess)} \\ \boldsymbol{\beta}_k &= \max(0, \boldsymbol{\alpha}_k + \theta_k (\boldsymbol{\alpha}_k - \boldsymbol{\alpha}_{k-1})), & & \text{(non-negative momentum step)} \\ \boldsymbol{\alpha}_{k+1} &= \boldsymbol{\beta}_k - \eta \nabla f(\boldsymbol{\beta}_k), & & \text{(lookahead gradient step)} \end{align*}\end{split}\]The algorithm terminates when the change in the objective function between successive iterates falls below the tolerance
tol
or when the maximum number of iterationsmaxiter
is reached.- rtype:
- returns:
A Solution object containing the final iterate.
References
Nesterov. Gradient methods for minimizing composite functions. Mathematical Programming, 140(1), 125–161, 2012.