https://github.com/sebagraz/pdmpsampler
Non-reversible continuous MCMCs based on Piecewise-Deterministic Markov Processes
https://github.com/sebagraz/pdmpsampler
bouncy-particle-sampler bridge coordinate-sampler mcmc-sampler zigzag-sampler
Last synced: 4 months ago
JSON representation
Non-reversible continuous MCMCs based on Piecewise-Deterministic Markov Processes
- Host: GitHub
- URL: https://github.com/sebagraz/pdmpsampler
- Owner: SebaGraz
- Created: 2018-11-19T21:51:07.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-01-17T09:48:01.000Z (over 6 years ago)
- Last Synced: 2024-10-12T15:13:55.217Z (8 months ago)
- Topics: bouncy-particle-sampler, bridge, coordinate-sampler, mcmc-sampler, zigzag-sampler
- Language: Julia
- Homepage:
- Size: 845 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# PDMCSampler
This repository deals with 3 different non-reversible continuous Markov Chain Monte Carlo algorothms based on piecewise deterministic Markov processes (see *Davis, Markov Models and Optimization*). We would like to use them for sampling from a continuous diffusion process (see *Notes.pdf*). The source folder contains:
* a subfolder *Models* containing the target distributions we want to sample from (currently only Gaussian)
* *PDSamplers.jl* contains the implementation of the ZigZag Sampler, Bouncy Particle Sampler and Coordinate Sampler.
* *Kernels.jl* implements the change of the velocity coordinates when the inhomogeneous Poisson event occours.
* *Simulations.jl* calls and plots the different algorithms for comparisons
* *Faber1.jl* implements the sparse matrix we need to create when we want to run the ZigZag for sampling a linear SDE (See *Notes.pdf*) for explanations.
* Finally *Experiment.jl* calls the ZigZag inside the coordinates of the basis expansion of the Bridge.## Some Plots
Plots coming from the Script *Simulations.jl*: Comparison of the three algorithms: respectively Bouncy, ZigZag and Coordinate Sampler with the same internal clock fixed to 1000 units. The target distribution is 2d-Gaussian with zero mean and negative correlation.

Plots coming from the Script *Experiment.jl*: Final Bridge after 21 seconds of internal clock of ZigZag algorithm and samples every 0.5 seconds from time 1 to time 21 of internal clock (mixing of the algorithm). The target measure is given by the sde $$dX_t = (a + bX_t)dt + dW_t$$ with parameter a = 10.0 ; b = -1.0 ; the number of level before truncation in the Faber Schauder expansion is L = 10 implying 2047 dimensions.

## Usage
Once you import the folder Source and install the package *Ciesielski*, you can run both *Experiment.jl* and *Simulations.jl*. You can play with the parameters of the Multivariate Gaussian RV and with the coefficients of the Linear sde
$$dX_t = (a + bX_t)dt + dW_t$$. It s reccommended## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.## License
[MIT](https://choosealicense.com/licenses/mit/)