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