pyproximal.optimization.primaldual.AdaptivePrimalDualยถ
- pyproximal.optimization.primaldual.AdaptivePrimalDual(proxf: ProxOperator, proxg: ProxOperator, A: LinearOperator, x0: ndarray[tuple[Any, ...], dtype[_ScalarT]], tau: float, mu: float, alpha: float = 0.5, eta: float = 0.95, s: float = 1.0, delta: float = 1.5, z: ndarray[tuple[Any, ...], dtype[_ScalarT]] | None = None, niter: int = 10, tol: float | None = None, rtol: float | None = None, xytol: float | None = None, callback: Callable[[ndarray[tuple[Any, ...], dtype[_ScalarT]]], None] | None = None, show: bool = False, itershow: tuple[int, int, int] = (10, 10, 10)) tuple[ndarray[tuple[Any, ...], dtype[_ScalarT]], tuple[ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]], ndarray[tuple[Any, ...], dtype[_ScalarT]]]][source]ยถ
Adaptive Primal-dual algorithm
Solves the minimization problem in
pyproximal.optimization.primaldual.PrimalDualusing an adaptive version of the first-order primal-dual algorithm. The main advantage of this method is that step sizes \(\tau\) and \(\mu\) are changing through iterations, improving the overall speed of convergence of the algorithm.- Parameters:
- proxf
pyproximal.ProxOperator Proximal operator of f function
- proxg
pyproximal.ProxOperator Proximal operator of g function
- A
pylops.LinearOperator Linear operator of g
- x0
numpy.ndarray Initial vector
- tau
float Stepsize of subgradient of \(f\)
- mu
float Stepsize of subgradient of \(g^*\)
- alpha
float, optional Initial adaptivity level (must be between 0 and 1)
- eta
float, optional Scaling of adaptivity level to be multipled to the current alpha every time the norm of the two residuals start to diverge (must be between 0 and 1)
- s
float, optional Scaling of residual balancing principle
- delta
float, optional Balancing factor. Step sizes are updated only when their ratio exceeds this value.
- z
numpy.ndarray, optional Additional vector
- niter
int, optional Number of iterations of iterative scheme
- tol
float, optional Tolerance on change of objective function (used as stopping criterion). If
tol=None, run untilniteris reached or the other tolerance criterion is met- rtol
float, optional Relative tolerance on objective function wrt initial value. Stops the solver when the ratio of the current objective function to the initial objective function is below this value. If
rtol=None, run untilniteris reached or the other tolerance criterion is met- xytol
float, optional Tolerance on x/y updates (used as stopping criterion). If
tol=None, run untilniteris reached- callback
callable, optional Function with signature (
callback(x)) to call after each iteration wherexis the current model vector- show
bool, optional Display iterations log
- itershow
tuple, optional Display set log for the first N1 steps, last N2 steps, and every N3 steps in between where N1, N2, N3 are the three element of the list.
- proxf
- Returns:
- x
numpy.ndarray Inverted model
- steps
tuple Tau, mu and alpha evolution through iterations
- x
Notes
See
pyproximal.optimization.cls_primaldual.AdaptivePrimalDual