copt.minimize_vrtos¶
-
copt.
minimize_vrtos
(f_deriv, A, b, x0, step_size, prox_1=None, prox_2=None, alpha=0, max_iter=500, tol=1e-06, callback=None, verbose=0)¶ Variance-reduced three operator splitting (VRTOS) algorithm.
The VRTOS algorithm can solve optimization problems of the form
argmin_{x in R^p} sum_{i}^n_samples f(A_i^T x, b_i) + alpha * ||x||_2^2 +
pen1(x) + pen2(x)
- Parameters
f_deriv – derivative of f
x0 (np.ndarray or None, optional) – Starting point for optimization.
step_size (float or None, optional) – Step size for the optimization. If None is given, this will be estimated from the function f.
n_jobs (int) – Number of threads to use in the optimization. A number higher than 1 will use the Asynchronous SAGA optimization method described in [Pedregosa et al., 2017]
max_iter (int) – Maximum number of passes through the data in the optimization.
tol (float) – Tolerance criterion. The algorithm will stop whenever the norm of the gradient mapping (generalization of the gradient for nonsmooth optimization) is below tol.
verbose (bool) – Verbosity level. True might print some messages.
trace (bool) – Whether to trace convergence of the function, useful for plotting and/or debugging. If ye, the result will have extra members trace_func, trace_time.
- Returns
opt – The optimization result represented as a
scipy.optimize.OptimizeResult
object. Important attributes are:x
the solution array,success
a Boolean flag indicating if the optimizer exited successfully andmessage
which describes the cause of the termination. See scipy.optimize.OptimizeResult for a description of other attributes.- Return type
OptimizeResult
References
Pedregosa, Fabian, Kilian Fatras, and Mattia Casotto. “Variance Reduced Three Operator Splitting.” arXiv preprint arXiv:1806.07294 (2018).