minimize_constr(method=’frank-wolfe’)¶
-
torchmin.constrained.frankwolfe._minimize_frankwolfe(fun, x0, constr='tracenorm', t=None, max_iter=None, gtol=1e-05, normp=inf, callback=None, disp=0)[source]¶ Minimize a scalar function of a matrix with Frank-Wolfe (a.k.a. conditional gradient).
The algorithm is described in 1. The following constraints are currently supported:
Trace norm. The matrix is constrained to have trace norm (a.k.a. nuclear norm) less than t.
Birkhoff polytope. The matrix is constrained to lie in the Birkhoff polytope, i.e. over the space of doubly stochastic matrices. Requires a square matrix.
- Parameters
fun (callable) – Scalar objective function to minimize.
x0 (Tensor) – Initialization point.
constr (str) – Which constraint to use. Must be either ‘tracenorm’ or ‘birkhoff’.
t (float, optional) – Maximum allowed trace norm. Required when using the ‘tracenorm’ constr; otherwise unused.
max_iter (int, optional) – Maximum number of iterations to perform.
gtol (float) – Termination tolerance on 1st-order optimality (gradient norm).
normp (float) – The norm type to use for termination conditions. Can be any value supported by
torch.norm().callback (callable, optional) – Function to call after each iteration with the current parameter state, e.g.
callback(x).disp (int or bool) – Display (verbosity) level. Set to >0 to print status messages.
- Returns
result – Result of the optimization routine.
- Return type
OptimizeResult
References
- 1
Martin Jaggi, “Revisiting Frank-Wolfe: Projection-Free Sparse Convex Optimization”, ICML 2013.