Skip to content

Clarify algorithm in 2015 Arxiv paper on slice sampling? #2

@bredelings

Description

@bredelings

Hi, I've been looking at your 2015 article on slice sampling for probabilistic programming. This seems like an important topic, and I'm curious if you have a version that includes more details in the proof of reversibility for the slice sampling when different values of x have different dimensions?

Q1. It seems that your function P*(x) could yield multiple different values for the same value x1 of x if x=x1 has a higher dimension than x=x0, because the new random dimensions could be sampled differently from the prior each time P*(x) is evaluated. In such cases, when performing the stepping out, which state you modify to obtain the value of P*(x) would seem to matter. Can you clarify this?

Q2. If your implementation ensures that each time x is evaluated, the same value is chosen for each previously-unsampled variable regardless of the final dimension of the MCMC state, then this might not be an issue for StocPy. Maybe that is true of stochastic-database approaches to probprog?

Q3. In the Slice Sampling paper by Radford Neal, he writes:

"Note that when the interval is doubled the two sides are not expanded equally. Instead just one side is expanded, chosen at random (irrespective of whether that side is already outside the slice). This is essential to the correctness of the method, since it produces a final interval that could have been obtained from points other than the current one. The set A of acceptable next states is restricted to those for which the same interval could have been produced, and is in general not all of S ∩I. This complicates the subsequent sampling somewhat, as described below"

This seems not to be what your "StepOut" pseudocode does. Also, you don't seem to have an accept step, which seems necessary if you are using the "doubling" method of expanding the slice.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions