geoopt/geoopt

Riemannian Adaptive Optimization Methods with pytorch optim

解決する課題

Geooptは、PyTorchエコシステム内でのリーマン最適化のためのツールを提供します。標準的な深層学習の最適化は平坦な(ユークリッド)空間を前提とすることが多いですが、多くの機械学習の問題では、球面、双曲空間、対称正定値行列など、曲面上や特定の幾何学的制約下に自然に存在するデータを扱う必要があります。

仕組み

このライブラリは、「多様体を認識する」特殊なテンソルおよびパラメータクラスを導入することでPyTorchを拡張します。多様体の実装(例:Poincare ball、Lorentz、Stiefel)や、SGDやAdamといった標準的な最適化手法のリーマン版を提供します。これらのツールを使用することで、射影、指数写像、勾配変換といった操作を多様体上で直接実行でき、学習中にモデルパラメータが目的の幾何学的制約内に留まることを保証します。

対象ユーザー

このプロジェクトは、幾何学的深層学習、双曲ニューラルネットワーク、または非ユークリッド多様体上での最適化を必要とするタスクに取り組む研究者や機械学習エンジニア向けに設計されています。

主な特徴

  • 多様体を認識するPyTorchテンソルおよびパラメータを提供。
  • 一般的な最適化手法(SGDおよびAdam)のリーマン実装を含む。
  • Poincare balls、Lorentzモデル、Stiefel多様体など、多種多様な多様体をサポート。
  • リーマン確率的勾配ランジュバン動力学(Riemannian Stochastic Gradient Langevin Dynamics)およびハミルトニアン・モンテカルロ(Hamiltonian Monte-Carlo)のための専用サンプラーを提供。
  • 実験的なレイヤーモジュールを通じて、既存のPyTorchワークフローとシームレスに統合。

関連

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