FluxML/Zygote.jl

21st century AD

何を解決するか

Zygote は Julia 言語用の自動微分(AD)を提供し、開発者が複雑な関数の勾配を自動的に計算できるようにします。これは機械学習モデルの学習や微分可能プログラミングの実装に不可欠です。

動作方法

「ソースツーソース」アプローチを使用しており、ユーザーが手動で書いたかのように、Julia コンパイラにフックして関数の逆伝播を生成します。制御フロー、再帰、クロージャ、辞書などの動的 Julia 機能をサポートしています。また、ChainRules.jl のルールセットと統合されており、rrule を通じてカスタム勾配を定義できます。

対象ユーザー

Julia を機械学習に使用する研究者や開発者向けに設計されており、特に Flux フレームワークを使用している人、または Julia 言語の柔軟性を活かした高パフォーマンスな AD システムが必要な人を対象としています。

特徴

  • ソースツーソース AD: 逆伝播用の効率的なコードを生成します。
  • 動的言語サポート: 再帰、クロージャ、制御フローを処理できます。
  • HDMI に似た柔軟性: パラメータのネスト構造を微分できます。
  • カスタム勾配: ChainRulesCore.jl を通じてカスタムルールを定義できます。

関連

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