The goal of this page is to create a standardized dataset for testing new methods. Problems should be high dimensional (100-10000 parameters) and reflective of important applications.

Here, I will include an optimized (to the best of my ability) implementation of basic functions common to many methods (gradients, stochastic gradients, prox operators, projections, ...) and you can use them to build into more complex methods.

That way, when we compare methods, we are comparing the method, not the implementation of basic calls. Additionally, by standardizing the dataset (however naively), we can hopefully avoid cherry picking and other ambiguities in results.

Community support: The hope is that this database can grow and improve with community support. If you have nice problems in your application that you would like tested on "new" fast methods, please submit them with:

  • a problem description, and how it fits into your application

  • a function call to evaluate the objective value (can be noisy if needed)

  • a function call to evaluate the objective function's gradient or other elementary functions (e.g. Hessian, prox operator)

  • if a constraint is involved, a function call to evaluate either the projection on the constraint set or a linear maximization oracle (G(z,D) = argmin{<z,s> : s in D})

Feedback is appreciated as to how to make this page more useful for optimization research.

Notes

  • I have plans to expand this to Python, and eventually, Julia at some point, but for now it's just a proof of concept, so I'm going with what I use the most.

  • If people find this page useful, please give me feedback of how you are using it, and what functionalities would improve it. If the benefit-to-work ratio is high enough, I will add it.

  • In some cases, I couldn't think of a "usual" approach to compute elementary functions, (e.g. primal SVM) so I just included some data and left it vague.

  • Right now, phase retrieval is only supported for real sensing (A gaussian). I would like to expand to more realistic sensing scenarios, but would need input on how to generate good sensing operators.

  • Please use the feedback form for: bug reports, problem submissions, or general feedback. Problem submissions require a dialogue, so please leave your email; otherwise, leave an email only if you want a response.

  • If I don't respond right away, please forgive this hamster that's running on way too many wheels simultaneously.