AdvancedPS.jl
AdvancedPS.jl copied to clipboard
Implementation of advanced Sequential Monte Carlo and particle MCMC algorithms
I'm wondering if a model like the one I present below is possible? The basic problem is one where the state isn't a single distribution, but a collection of distributions,...
[`SMC.jl`](https://github.com/FRBNY-DSGE/SMC.jl/tree/main) has a SMC implementation with tempering. They claim it works well on problems I am interested in. Would it be possible to implement this with `AdvancedPS.jl`?
I looked into the newly released `Threads.@threading` construct in Julia 0.5. It seems that adding parallelization feature to SMC is simple - could be done in a few lines of...
There is an issue with the way we handle inner state container in `PG` and `PGAS`. For a model like this: ```julia mutable struct Model States::Vector{Float64} end ``` `PGAS` would...
This [package](https://github.com/Julia-Tempering/SplittableRandoms.jl) implements a splittable random number generator based on the standard Random library. It might be helpful to compare against our internal splittable `rng`.
As discussed in TuringLang/Turing.jl#426, it would be good if Turing would be able to store statistics on the particle weights for all particle-filtering based methods. These statistics could be stored...
I had a short conversation with Fredrik Lindsten about SMC algorithms that might be interesting to implement. Apart from PGAS, his suggestions were: > - Our divide and conquer SMC...
Integrate refactor from https://github.com/TuringLang/Libtask.jl/pull/179 Two things worth noting: 1) Dealing with the RNG will be the user's responsability. Before ```julia mutable struct Model
In the extension for Libtask, AdvancedPS often accesses the `task` field of a Libtask `TapedTask`. I would like to know why this is done, and whether it is strictly necessary?...
There are several instances in the codebase where we have to create N pseudo-random number generators from one, for example: https://github.com/TuringLang/AdvancedPS.jl/blob/d0d180f432a6e2bf2fdd08c35d25ea2ef7715d4f/src/container.jl#L121-L136 Right now, this is handled by `split`, which generates...