Ходоки в ведущий не исследуют пространство параметров?

Прежде всего: извинения за отсутствие кода и довольно расплывчатые описания; код, который я использую, имеет длину более 1000 строк, и я не уверен, какие его части было бы полезно опубликовать.

Я использую emcee для оценки байесовских параметров. Мой код использует 50 ходунков, каждая из которых занимает 600 итераций (без прореживания), но по какой-то причине цепочки ходоков, кажется, сходятся довольно быстро. В то время как я запускаю 50 обходчиков со случайным распределением между -1 и 1, они не исследуют все пространство параметров, но, кажется, быстро сходятся (обычно вокруг истинных значений параметров). Фотографии ниже:

Реальные значения параметров: 0,6 и 4

Реальные значения параметров: 0,6 и 4

Реальные значения параметров -1. и 1.

Реальные значения параметров -1. и 1

Любые предложения с благодарностью!

1 ответ

Это то, что они должны делать - быстро сходиться к областям высокой задней плотности. Другое дело, что для бимодальных плотностей ведущий будет генерировать неоптимальные предложения, что замедлит конвергенцию. Это, вероятно, то, что происходит в вашем случае и видно на втором графике в обоих примерах.

Авторы emcee предложил (в последний раз я читал) обойти это с параллельным отпуском (см. документы), который они реализовали. Но их реализация (в прошлый раз, когда я проверял) не работала, когда плотности между модами различались на несколько порядков.

В любом случае, мультимодальные постеры - это проклятие всех MCMC, и существует множество попыток решить эту проблему, ни одна из которых не является общепризнанной (добро пожаловать на передний край). Вам придется изучить несколько вариантов, возможно, за emcee, чтобы найти то, что работает для вас.

Другие вопросы по тегам