Skip to content

Automatically Setting the Step Method & Wrappers for existing PyMC proposals #2

@ebilionis

Description

@ebilionis

One of the requirements of pysmc is that it needs to use its own step methods for three reasons:

  1. They must work in parallel (e.g. computing the acceptance rate must requires a reduction operation) tuning must be done in parallel.
  2. Tuning is done differently than in PyMC (e.g. the step method might want to see the complete particle approximation to decide on the new parameters) and it must also take place in parallel.
  3. One must be able to set/get all the parameters as a dictionary.

The class that implements a generic SMC step method is pysmc.RandomWalk. Its core functionality is inherited from pymc.Metropolis.

Now, when using PySMC only step methods that inherit pysmc.RandomWalk should be used.

There are two questions that I want to ask:

  1. Can one create a generic wrapper for an arbitrary PyMC step method that resembles pysmc.RandomWalk? This might be difficult or impossible, because of tuning complications.
  2. If the answer to 1) is NO. Then we should add functionality to the MCMCWrapper class of PySMC that assigns step methods only from the ones that comply fully with the pysmc.RandomWalk interface.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions