BacktrackBase¶
The fundamental class from which all backtrack algorithms are derived is
BacktrackBase.
The backtracking process is an adaptive process to find the optimal
step size for the gradient descent (\(L^{-1}\)). Backtracking
updates self.L until the condition \(F \leq Q_L\) is
satisfied. These are defined as
and
The backtracking process is optional. It is performed when the
Backtrack auxiliary class is enabled.
Classes derived from BacktrackBase should override/define the
method BacktrackBase.update. The backtrack functionality is defined
in terms of calls to PGM.grad_f,
PGM.prox_g and PGM.obfn_f. Note that whenever both backtrack and step size classes are enabled, the backtrack class takes precedence.
Backtrack Classes¶
The PGM backtrack functionality is defined by the following classes:
This implements the standard PGM variant from [6].
This implements the robust PGM variant from [22].