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 語言構建,用於高性能數值計算。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案