Pymanopt: A Python Toolbox for Optimization on Manifolds using Automatic Differentiation
This provides a practical solution for researchers and practitioners in machine learning and related fields who need to perform optimization on manifolds, though it is incremental as it builds upon existing tools like Manopt.
The authors tackled the difficulty of implementing optimization on manifolds due to differential geometry complexities and derivative calculations by introducing Pymanopt, a Python toolbox that uses automatic differentiation to simplify the process, resulting in a tool that reduces user effort and error.
Optimization on manifolds is a class of methods for optimization of an objective function, subject to constraints which are smooth, in the sense that the set of points which satisfy the constraints admits the structure of a differentiable manifold. While many optimization problems are of the described form, technicalities of differential geometry and the laborious calculation of derivatives pose a significant barrier for experimenting with these methods. We introduce Pymanopt (available at https://pymanopt.github.io), a toolbox for optimization on manifolds, implemented in Python, that---similarly to the Manopt Matlab toolbox---implements several manifold geometries and optimization algorithms. Moreover, we lower the barriers to users further by using automated differentiation for calculating derivative information, saving users time and saving them from potential calculation and implementation errors.