{ "cells": [ { "cell_type": "markdown", "id": "8626ed24", "metadata": {}, "source": [ "# Nonlinear Optimization \n", "\n", "Generalized Projection, PIE and COPRA have been implemented to support various forms of nonlinear optimization techniques. The scope and usage of these are explained in this section. " ] }, { "cell_type": "markdown", "id": "9583e74e", "metadata": {}, "source": [ "## Linesearch and Adaptive-Stepsize \n", "\n", "In order to accelerate convergence a `\"backtracking\"` and a `\"zoom\"` linesearch are implemented {cite}`optimizationbook`. In addition a generalization of the Polyak-Stepsize {cite}`polyak` is available. The implementations are located in `pulsedjax.core.stepsize.py`. \n", "The backtracking linesearch works by reducing the stepsize by a factor until the Armijo-condition is fullfilled or the maximum number of steps is reached. The stepsize is updated via $\\gamma' = \\gamma\\cdot\\Delta\\gamma$. The Armijo-Condition reads: \n", "\n", "$ \\Delta L \\leq c_1\\gamma\\cdot p\\top\\cdot\\nabla L$ \n", "\n", "where $\\Delta L$ is the change in the error, $p$ is the descent direction and $c_1$ is a constant that tunes the condition. In short, the condition checks if the error has decreased beyond a linear approximation whose slope is set by $c_1$. As long as $0