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 언어를 기반으로 구축되었습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트