TuringLang/Turing.jl

Bayesian inference with probabilistic programming.

解決する課題

Turing.jlは、確率プログラミング言語を使用してベイズ推論を行う方法を提供します。これにより、ユーザーは複雑な確率モデルを定義し、観測データに基づいてそれらのモデルのパラメータを推定するために様々な推論アルゴリズムを適用することができます。

仕組み

ユーザーは@modelマクロを使用して、事前分布と尤度を指定したモデルを定義します。その後、ライブラリはJuliaのエコシステム全体と統合して推論を実行します。モデルの指定にはDynamicPPL.jlを使用し、サンプリングと最適化のために様々なバックエンドに接続します:

  • Markov Chain Monte Carlo (MCMC): AbstractMCMC.jlという抽象インターフェースと、AdvancedHMC.jlAdvancedMH.jlのような特定のサンプラーを使用します。
  • Variational Inference: AdvancedVI.jlを介して処理されます。
  • Maximum Likelihood/MAP Estimation: SciMLのOptimization.jlインターフェースを活用します。
  • Automatic Differentiation: DifferentiationInterface.jlを介してForwardDiff.jlMooncake.jlのようなバックエンドをサポートします。

対象者

ベイズモデリングと統計推論のために、柔軟で汎用的な確率プログラミング言語を必要とする研究者やデータサイエンティスト。

ハイライト

  • 統一されたインターフェース: TuringLangエコシステムにおける一連のツールのメインエントリポイントとして機能します。
  • 柔軟なモデル指定: 直感的なモデル定義のために@modelマクロを使用します。
  • 多様な推論アルゴリズム: MCMC、変分推論、および最適化ベースの推定をサポートします。
  • Juliaネイティブ: 高性能な数値計算のためにJulia言語上に構築されています。

関連

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