明示的な制約を課すことは比較的新しいことですが、複雑な摂動セットに対して堅牢な最適化を実行する信頼できる AI や、物理法則と制約を尊重する必要がある科学的アプリケーションなどによって刺激される深層学習では、ますます重要になっています。ただし、最適化の専門知識がなければ、制約のある深層学習の問題を確実に解決することは困難です。既存の深層学習フレームワークは制約を認めません。汎用の最適化パッケージは、制約を処理できますが、自動微分を実行せず、非滑らかさの処理に問題があります。このホワイト ペーパーでは、NCVX と呼ばれる新しいソフトウェア パッケージを紹介します。その最初のリリースには、制約付き機械/深層学習問題のための PyTorch 対応の汎用最適化パッケージであるソルバー PyGRANSO が含まれています。 NCVX は PyTorch から自動微分、GPU アクセラレーション、テンソル変数を継承し、自由に利用でき、広く使用されているオープンソース フレームワーク上に構築されています。 NCVX は https://ncvx.org で入手でき、詳細なドキュメントと、機械/深層学習およびその他の分野からの多数の例が含まれています。
Imposing explicit constraints is relatively new but increasingly pressing in deep learning, stimulated by, e.g., trustworthy AI that performs robust optimization over complicated perturbation sets and scientific applications that need to respect physical laws and constraints. However, it can be hard to reliably solve constrained deep learning problems without optimization expertise. The existing deep learning frameworks do not admit constraints. General-purpose optimization packages can handle constraints but do not perform auto-differentiation and have trouble dealing with nonsmoothness. In this paper, we introduce a new software package called NCVX, whose initial release contains the solver PyGRANSO, a PyTorch-enabled general-purpose optimization package for constrained machine/deep learning problems, the first of its kind. NCVX inherits auto-differentiation, GPU acceleration, and tensor variables from PyTorch, and is built on freely available and widely used open-source frameworks. NCVX is available at https://ncvx.org, with detailed documentation and numerous examples from machine/deep learning and other fields.