TuringLang/Turing.jl
Bayesian inference with probabilistic programming.
解决的问题
Turing.jl 提供了一种使用概率编程语言进行贝叶斯推断的方法。它允许用户定义复杂的概率模型,然后应用各种推断算法,根据观测数据估计这些模型的参数。
工作原理
用户使用 @model 宏来定义模型,该宏指定了先验分布和似然度。随后,该库与更广泛的 Julia 生态系统集成以执行推断。它使用 DynamicPPL.jl 进行模型规范,并连接到各种后端进行采样和优化:
- Markov Chain Monte Carlo (MCMC): 使用抽象接口 (
AbstractMCMC.jl) 和特定的采样器,如AdvancedHMC.jl和AdvancedMH.jl。 - Variational Inference: 通过
AdvancedVI.jl处理。 - Maximum Likelihood/MAP Estimation: 利用来自 SciML 的
Optimization.jl接口。 - Automatic Differentiation: 通过
DifferentiationInterface.jl支持ForwardDiff.jl和Mooncake.jl等后端。
适用对象
需要用于贝叶斯建模和统计推断的灵活、通用概率编程语言的研究人员和数据科学家。
亮点
- 统一接口: 作为 TuringLang 生态系统中一系列工具的主要入口点。
- 灵活的模型规范: 使用
@model宏进行直观的模型定义。 - 多样化的推断算法: 支持 MCMC、变分推断和基于优化的估计。
- Julia 原生: 基于 Julia 语言构建,用于高性能数值计算。
相关
- 项目
- 项目
- 项目
- 项目
- 项目