ReactiveBayes/RxInfer.jl

Julia package for automated Bayesian inference on a factor graph with reactive message passing

RxInfer.jl – Julia용 반응형 베이지안 추론

무엇인가요RxInfer.jl는 확률 모델을 인자 그래프로 변환하고 반응형 메시지 전달 알고리즘을 실행함으로써 자동 베이지안 추론을 수행하는 Julia 패키지입니다. ReactiveMP.jl 추론 엔진과 GraphPPL.jl 모델 정의 DSL 위에 구축되어 있습니다.

왜 중요한가요 – 공액 사전-우도 쌍을 활용함으로써 RxInfer는 해석적으로 정확한 사후 분포를 계산할 수 있어, Turing.jl의 HMC와 같은 일반적 샘플러보다 많은 모델에서 더 빠르고, 메모리 효율적이며, 더 정확한 결과를 제공합니다. 비공액 추론도 지원하며 대규모 실시간 작업에 확장 가능합니다.

주요 기능

  • 인자 그래프 컴파일: @model 마크로(GraphPPL에서 유래)는 일반적인 Julia 코드를 인자 그래프 표현으로 변환합니다.
  • 반응형 메시지 전달: 새로운 데이터에 자동으로 반응하는 국소 업데이트를 통해 실시간 또는 스트리밍 시나리오를 가능하게 합니다.
  • 공액 인식 최적화: 가능한 한 해석적 업데이트를 사용하여 추론 속도를 극적으로 향상시킵니다.
  • 하이브리드 추론: 비공액 부분은 변분/메시지 전달 방법으로 처리되며, 지원되는 모델 클래스는 지속적으로 확장되고 있습니다.
  • 벤치마크 및 정확도: 리포지토리에는 Turing.jl과 비교해 선형 가우시안 상태공간 모델에서 우수한 속도/정확도를 보여주는 벤치마크 스크립트가 포함되어 있습니다.
  • 서버 모드: RxInferServer는 모델을 RESTful API로 노출할 수 있으며, 공식 Python, TypeScript, Julia SDK를 통해 원격 추론이 가능합니다.
  • 테레메트리 및 선택적 세션 공유: 익명 사용 메트릭은 개발을 안내하며, 공유 기능은 켜고 끌 수 있습니다.

일반적인 사용 사례

  • 실시간 파라미터 추정(예: 센서 융합, 제어 시스템).
  • 상태공간 모델 또는 자기회귀 모델을 사용한 시계열 예측.
  • 은닉 마르코프 모델, 베이지안 선형 회귀 및 정확한 업데이트가 바람직한 기타 공액 모델.
  • RxInferServer를 통해 베이지안 모델을 마이크로서비스로 배포.

설치

] add RxInfer   # Julia 패키지 매니저

설치를 확인하려면 ] test RxInfer를 실행하세요.

빠른 예제 – 편향된 동전 추정

using RxInfer, Random

# 시뮬레이션 데이터
n = 500; p = 0.75
y = rand(Bernoulli(p), n)

# 모델 정의 (GraphPPL 구문)
@model function coin_model(y, a, b)
    θ ~ Beta(a, b)          # 사전 분포
    y .~ Bernoulli(θ)       # 각 관측값의 우도
end

# 추론 실행 (정적 데이터)
result = infer(
    model = coin_model(a = 2.0, b = 7.0),
    data  = (y = y, )
)

println(result)   # θ에 대한 사후 분포

infer 호출은 자동으로 인자 그래프를 구축하고 Beta-Bernoulli 공액성을 인식하여 정확한 사후 분포인 Beta 분포를 반환합니다.

에코시스템 및 관련 패키지

  • ReactiveMP.jl – 핵심 메시지 전달 엔진.
  • GraphPPL.jl – 모델 정의를 위한 DSL.
  • ExponentialFamily.jl – 추론 알고리즘에서 사용되는 지수족 분포 정의.
  • Rocket.jl – RxInfer의 "반응형" 측면을 구동하는 반응형 확장.

문서 및 학습 리소스

  • 공식 문서: https://docs.rxinfer.com (안정판 및 개발판).
  • 예제 리포지토리: https://examples.rxinfer.com (HMM, 시간 변화 AR, 판매 예측 등 고급 모델 포함).
  • 논문: JOSS 논문, 박사 학위 논문, README에 기재된 여러 arXiv/DOI 참조.
  • 커뮤니티: 토론, Q&A, 공개 회의, NumFocus 소속.

라이선스 – MIT License (© 2021–2024 BIASlab, 2024–현재 ReactiveBayes)

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트