论文标题
CDOPT:用于一类Riemannian优化的Python软件包
CDOpt: A Python Package for a Class of Riemannian Optimization
论文作者
论文摘要
对由约束$ c(x)= 0 $定义的嵌入式子曼属的优化在过去几十年中引起了很大的兴趣,因为其在各个领域的广泛应用。基于Riemannian优化方法开发了许多相关的优化套件,这些方法依赖于Riemannian流形的一些基本几何材料,包括缩回,矢量运输等。这些几何材料通常具有挑战性。现有包装仅容纳一些易于访问几何材料的众所周知的歧管。对于这些包装中未包含的其他歧管,用户必须自己开发几何材料。此外,采用从各种最新无约束的优化求解器到Riemannian优化方法的高级功能并不总是可以处理的。 我们介绍CDOPT(可在https://cdopt.github.io/上找到),这是一种用于Riemannian优化类的用户友好型Python软件包。基于约束溶解方法,侵入式优化问题被转变为CDOPT中等效的不受约束的对应物。因此,通过CDOPT解决Riemannian优化问题直接受益于各种现有求解器,并且数十年来获得了不受约束的优化的丰富专业知识。此外,CDOPT中与任何相关歧管的所有计算都是根据其约束表达进行的,因此用户可以轻松地在CDOPT中定义新的歧管,而没有任何差异几何学背景。此外,CDOPT从Pytorch和Flax扩展了神经层,因此允许用户直接通过求解器训练歧管受限制的神经网络,以进行无约束的优化。广泛的数值实验表明,CDOPT在解决各种类别的Riemannian优化问题方面非常有效且稳健。
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.