Skip to content

Annealed Importance Sampling #38

@treigerm

Description

@treigerm

I have an implementation of Annealed Importance Sampling (AIS) at https://github.com/treigerm/AnnealedIS.jl and @ParadaCarleton kindly suggested that I could merge it into an official Turing package and suggested this one. I was wondering what the best process is to merge my package into this one and if this is the best place.

Skimming through this repository it seems to me that the requirement for AIS and SMC are actually fairly different. AIS technically also has a set of particles but crucially there is no resampling step at observe statements. For a given Turing model AIS requires access to the following functions:

  • The log joint density function of the parameters
  • The log prior density function of the parameters
    If one wants to use AIS with an HMC transition kernel then we also requires access to the gradient of these functions. Additionally, ideally we want to be able to evaluate these function in parallel on a set of particles. You can see how I currently extract those functions from a Turing model here.

In summary, I have two questions:

  • How should I add my implementation of AIS to this package? I.e. should I add it to the contrib folder?
  • What is the "best practice" to extract the two functions mentioned above? Am I doing it correctly in my implementation?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions