Skip to content

Ideas for using ensemble explorers #372

@astrozot

Description

@astrozot

Following another issue #370 , I have been thinking (and struggling) a little to understand how to implement local ensemble explorers. Specifically, I was thinking of Goodman & Weare’s affine invariant explorer (popularized by emcee in Python), possibly with the simple dimensional scaling proposed in https://arxiv.org/pdf/2505.02987.

My problem is how to deal with an ensemble of explorers (the so-called "walkers") at the same temperature. Originally, I thought that I could just use, as a state of each replica, the various states of the various walkers: in other words, the state would be, instead of a vector with the parameters, a matrix, with each column representing the parameter vector for each walker. This works nicely and the local exploration can be carried out fairly easily by implementing the step! function appropriately.

The real problem, however, happens during the global exploration phase and associated chain swaps. The issue here is that I do not have a single state, but several ones associated with the various walkers. Therefore, the usual trick of swapping temperatures instead of states seems to fail, as it could well happen that I want to swap only a subsets of the walkers between two chains. Do you have any idea or suggestion regarding this?

One (probably sub-optimal) solution could be to swap the entire set of walkers. My problem is how to compute the associated log_potential. Intuitively, I would take the average of the log_potentials of the various walkers for comparison: that would be equivalent to take their geometric mean in the linear space (something that sounds better than taking the simple sum of the log_potentials, equivalent to the products of the potentials). However, I have no strong theoretical reason proceed that way (I would need to check that the detailed-balance equation holds...), but again perhaps you can give some suggestions in this respect.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions