Optimization over the embedded submanifold defined by constraints $c(x) = 0$ has attracted much interest over the past few decades due to its wide applications in various areas. Plenty of related optimization packages have been developed based on Riemannian optimization approaches, which rely on some basic geometrical materials of Riemannian manifolds, including retractions, vector transports, etc. These geometrical materials can be challenging to determine in general. Existing packages only accommodate a few well-known manifolds whose geometrical materials are easily accessible. For other manifolds which are not contained in these packages, the users have to develop the geometric materials by themselves. In addition, it is not always tractable to adopt advanced features from various state-of-the-art unconstrained optimization solvers to Riemannian optimization approaches. We introduce CDOpt (available at https://cdopt.github.io/), a user-friendly Python package for a class Riemannian optimization. Based on constraint dissolving approaches, Riemannian optimization problems are transformed into their equivalent unconstrained counterparts in CDOpt. Therefore, solving Riemannian optimization problems through CDOpt directly benefits from various existing solvers and the rich expertise gained over decades for unconstrained optimization. Moreover, all the computations in CDOpt related to any manifold in question are conducted on its constraints expression, hence users can easily define new manifolds in CDOpt without any background on differential geometry. Furthermore, CDOpt extends the neural layers from PyTorch and Flax, thus allows users to train manifold constrained neural networks directly by the solvers for unconstrained optimization. Extensive numerical experiments demonstrate that CDOpt is highly efficient and robust in solving various classes of Riemannian optimization problems.
翻译:由限制定义 $c(x) = 0美元 = 0美元 的嵌入底部优化在过去几十年中引起了很大兴趣。 大量相关的优化包已经根据里曼尼优化方法开发, 依靠里曼尼元元体的一些基本几何材料, 包括撤回、 矢量运输等。 这些几何材料一般难以确定 。 现有的包只能容纳一些众所周知的、 其几何材料容易获得的多元材料。 对于这些软件包中未包含的其他结构层, 用户必须自己开发几何材料。 此外, 以里曼尼最优化方法为基础, 已经开发了大量相关的优化软件包。 托伦曼最优化方法, 也并不总是能够将一些先进的功能从一些最先进、 不受约束的优化软件包应用到 里曼最优化方法 。 我们引入了CDopt( https://cdopt. github.io/), 一个方便用户使用的 Python软件包, 它可以轻易获得里曼最高级的精度优化方法。 基于限制, 里曼最不易解的方法, 问题正在从内部最不折变的内化的内化的内化工具, 向内部最不具有不易的内硬的内化的内化的内化的内化的内化的内化的内存的内存。