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 语言构建,用于高性能数值计算。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目