cvxpy/cvxpylayers

Differentiable convex optimization layers

解決する課題

CVXPYlayers を使用すると、開発者は凸最適化問題を微分可能なレイヤーとしてディープラーニングモデルに直接統合できます。これにより、凸最適化ステップを含むニューラルネットワークの学習が可能になり、バックプロパゲーションを通じて最適化問題自体のパラメータをモデルが学習できるようになります。

仕組み

このライブラリは CVXPY を使用して、パラメータ化された凸最適化問題を定義します。順伝播(forward pass)では最適化問題を解いて解を生成し、逆伝播(backward pass)ではその解の入力パラメータに対する微分を計算することで、自動微分フレームワークとの互換性を実現しています。

対象ユーザー

PyTorch、JAX、または MLX を使用しており、機械学習パイプラインに最適化の制約や目的関数を組み込む必要がある研究者やエンジニア向けに設計されています。

主な特徴

  • マルチフレームワーク対応: PyTorch、JAX、MLX とシームレスに連携します。
  • GPU 加速: Moreau および CuClarabel バックエンドによる GPU 加速をサポートしています。
  • 幅広い最適化のサポート: 標準的な凸計画問題だけでなく、対数-対数凸計画問題 (LLCPs) も扱えます。
  • 双対変数へのアクセス: 主問題の解に加えて、制約の双対変数 (ラグランジュ乗数) を取得できます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト