Skip to content

TuringLang/SliceSampling.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Slice Sampling Algorithms in Julia

Stable Dev Build Status Coverage

This package implements slice sampling algorithms accessible through the AbstractMCMC interface. For general usage, please refer to here.

Implemented Algorithms

Univariate Slice Sampling Algorithms

  • Univariate slice sampling (Slice) algorithms by R. Neal 1:
    • Fixed window
    • stepping-out window adaptation
    • doubling-out window adaptation

Univariate-to-Multivariate Strategies

  • Random permutation coordinate-wise Gibbs sampling2
  • Hit-and-run sampling3

Multivariate Slice Sampling Algorithms

  • Latent slice sampling (LSS) by Li and Walker4
  • Gibbsian polar slice sampling (GPSS) by P. Schär, M. Habeck, and D. Rudolf5.

Example with Turing Models

This package supports the Turing probabilistic programming framework:

using Distributions
using Turing
using SliceSampling

@model function demo()
    s ~ InverseGamma(3, 3)
    m ~ Normal(0, sqrt(s))
end

sampler   = RandPermGibbs(SliceSteppingOut(2.))
n_samples = 10000
model     = demo()
sample(model, externalsampler(sampler), n_samples; initial_params=[exp(1.0), 0.0])

Footnotes

  1. Neal, R. M. (2003). Slice sampling. The annals of statistics, 31(3), 705-767.

  2. Geman, S., & Geman, D. (1984). Stochastic relaxation, Gibbs distributions, and the Bayesian restoration of images. IEEE Transactions on Pattern Analysis and Machine Intelligence, (6).

  3. Bélisle, C. J., Romeijn, H. E., & Smith, R. L. (1993). Hit-and-run algorithms for generating multivariate distributions. Mathematics of Operations Research, 18(2), 255-266.

  4. Li, Y., & Walker, S. G. (2023). A latent slice sampling algorithm. Computational Statistics & Data Analysis, 179, 107652.

  5. Schär, P., Habeck, M., & Rudolf, D. (2023, July). Gibbsian polar slice sampling. In International Conference on Machine Learning.