Ходоки в ведущий не исследуют пространство параметров?
Прежде всего: извинения за отсутствие кода и довольно расплывчатые описания; код, который я использую, имеет длину более 1000 строк, и я не уверен, какие его части было бы полезно опубликовать.
Я использую emcee для оценки байесовских параметров. Мой код использует 50 ходунков, каждая из которых занимает 600 итераций (без прореживания), но по какой-то причине цепочки ходоков, кажется, сходятся довольно быстро. В то время как я запускаю 50 обходчиков со случайным распределением между -1 и 1, они не исследуют все пространство параметров, но, кажется, быстро сходятся (обычно вокруг истинных значений параметров). Фотографии ниже:
Реальные значения параметров: 0,6 и 4
Реальные значения параметров -1. и 1.
Любые предложения с благодарностью!
1 ответ
Это то, что они должны делать - быстро сходиться к областям высокой задней плотности. Другое дело, что для бимодальных плотностей ведущий будет генерировать неоптимальные предложения, что замедлит конвергенцию. Это, вероятно, то, что происходит в вашем случае и видно на втором графике в обоих примерах.
Авторы emcee
предложил (в последний раз я читал) обойти это с параллельным отпуском (см. документы), который они реализовали. Но их реализация (в прошлый раз, когда я проверял) не работала, когда плотности между модами различались на несколько порядков.
В любом случае, мультимодальные постеры - это проклятие всех MCMC, и существует множество попыток решить эту проблему, ни одна из которых не является общепризнанной (добро пожаловать на передний край). Вам придется изучить несколько вариантов, возможно, за emcee
, чтобы найти то, что работает для вас.