diffrax: 自動微分可能でGPU対応のJAXベースの数値微分方程式ソルバーライブラリ
diffrax: 自動微分可能でGPU対応のJAXベースの数値微分方程式ソルバーライブラリ
何を解決するか
Diffraxは、JAXエコシステム内で微分方程式(具体的には常微分方程式 (ODE)、確率微分方程式 (SDE)、および制御微分方程式 (CDE))を数値的に解く方法を提供します。これにより、これらのソルバーを自動微分可能にし、GPU上で実行可能にします。これは、物理ベースのモデルを機械学習と統合するために不可欠です。
仕組み
JAX上に構築されたこのライブラリは、統一された内部構造を使用して異なる種類の微分方程式を扱います。幅広いソルバー(Tsit5やDopri8など)をサポートし、状態をPyTreeとして表現することを可能にし、バックプロパゲーションのための複数の随伴法(adjoint methods)を提供します。JAXベースであるため、積分領域を含むプロセスのほぼすべての部分がvmappableです。
対象ユーザー
科学計算やAIに従事する研究者や開発者、特にニューラル微分方程式を実装している、あるいは高性能で微分可能な数値ソルバーを必要としている方向けに設計されています。
ハイライト
- ODE、SDE、およびCDEソルバーをサポート。
- 完全な自動微分機能とGPU互換性。
- ライブラリ全体にわたるvmappableな操作。
- ニューラル微分方程式のサポート。
- シンプレクティック法や暗黙的(implicit)なオプションを含む、多様なソルバーの提供。
Sources
- undefinedpatrick-kidger/diffrax