(взаимодействующий) MCMC для мультимодального заднего


9

Я пытаюсь сэмплировать задний план, имеющий много режимов, особенно далеко друг от друга, используя MCMC. Похоже, что в большинстве случаев только один из этих режимов содержит 95% hpd, который я ищу. Я пытался реализовать решения, основанные на умеренном моделировании, но это не дает удовлетворительных результатов, поскольку на практике переход от одного «диапазона захвата» к другому является дорогостоящим.

Как следствие, мне кажется, что более эффективным решением было бы запустить множество простых MCMC из разных начальных точек и погрузиться в доминирующее решение, заставляя MCMC взаимодействовать друг с другом. Знаете ли вы, есть ли какой-то правильный способ реализовать такую ​​идею?

Примечание: я нашел ту бумагу http://lccc.eecs.berkeley.edu/Papers/dmcmc_short.pdf (распределенная цепь Маркова Монте-Карло, Лоуренс Мюррей), которая выглядит близко к тому, что я ищу, но я действительно не понимаю дизайн функции .ря

[РЕДАКТИРОВАТЬ]: отсутствие ответов, по-видимому, указывает на то, что не существует очевидного решения моей первоначальной проблемы (заставить несколько образцов MCMC из одного и того же целевого распределения из разных начальных точек взаимодействовать друг с другом). Это правда ? почему это так сложно? Спасибо


Похоже на то, для чего я ранее использовал "Population MCMC". См. «Оценка байесовских факторов с помощью термодинамической интеграции и численности населения MCMC» от ​​Calderhead и Girolami. Извините, если это будет немного поздно, но, возможно, другие люди оценят эту ссылку!
Сэм Мейсон

Возможно, так же, как население MCMC является последовательным Монте-Карло.
Роберт П. Голдман

Ответы:


1

Во-первых, я бы порекомендовал поискать лучший метод или, по крайней мере, метод с более глубоким описанием, поскольку «Распределенная цепь Маркова Монте-Карло» из статьи, которую вы цитируете, кажется недостаточно четко сформулированной. Преимущества и недостатки изучены недостаточно. Есть метод, который появился в arxiv совсем недавно и называемый « червоточина гамильтониан Монте-Карло », я бы порекомендовал проверить его.

Возвращаясь к статье, на которую вы ссылались, удаленное предложение очень расплывчато. В части приложения это описывается как «гауссовский метод максимального правдоподобия за предыдущие t / 2 выборки». Может быть, это означает, что вы усредняете последние значения t / 2 в цепочке ? Немного трудно догадаться с плохим описанием, приведенным в ссылке.ря(θя)яTчас

[ОБНОВЛЕНИЕ:] Взаимодействие между несколькими цепочками и применение этой идеи к выборке из апостериорного распределения можно найти в параллельных методах MCMC, например, здесь . Однако выполнение нескольких цепей и принуждение их к взаимодействию может не подходить для мультимодального апостериора: например, если есть очень выраженная область, где сконцентрирована большая часть апостериорного распределения, взаимодействие цепочек может даже ухудшить положение вещей, придерживаясь этого конкретного регион и не исследуя другие, менее выраженные, регионы / способы. Поэтому я настоятельно рекомендую поискать MCMC, специально предназначенный для мультимодальных задач. И если вы хотите создать другой / новый метод, то после того, как вы узнаете, что доступно на «рынке», вы можете создать более эффективный метод.


Спасибо за вашу помощь. Это не совсем то, что я ожидал, но, возможно, я ищу недоступные вещи. В настоящее время я занимаюсь расследованием (я не уверен, что смогу получить все необходимое для гамильтонова MCMC), так называемого дротического MC, который я нашел по вашим ссылкам. Я даю вам щедрость, еще раз спасибо за ваши советы.
Peuhp

@peuhp, это тесно связано с гамильтоновыми методами, упомянутыми выше, но сэмплер Equi-Energy - это метод MCMC, который специально называется как метод мультимодальных апостериорных распределений. Я знаю, что он работает, запуская несколько параллельных цепочек и позволяя переходить между цепочками, но у меня недостаточно знаний / опыта с методом, чтобы опубликовать ответ. Посмотрите на ссылку. Надеюсь, это поможет.
Макро

1

Вы должны попробовать multinest: https://arxiv.org/pdf/0809.3437.pdf https://github.com/JohannesBuchner/MultiNest Это механизм байесовского вывода, который предоставит вам выборки параметров для мультимодального распределения.

Ссылка на github содержит многоэтапный исходный код, который вы компилируете и устанавливаете в соответствии с инструкциями. он также имеет оболочку Python, которая проще в использовании. Коды примеров имеют предыдущий раздел, который служит для ограничения ваших параметров, и раздел вероятности, который содержит вашу вероятность. Файл настроек содержит все ваши настройки и цепочки мультиинсталляционных выходных папок после подгонки. это даст вам образцы ваших параметров


Добро пожаловать в резюме и спасибо за отличный ответ. Может быть, вы можете улучшить свой ответ, суммируя Githublink.
Ферди

1
Ссылка на github содержит многократный исходный код, который вы компилируете и устанавливаете в соответствии с инструкциями. он также имеет оболочку Python, которая проще в использовании. Коды примеров имеют предыдущий раздел, который служит для ограничения ваших параметров, и раздел вероятности, который содержит вашу вероятность. Файл настроек содержит все ваши настройки и цепочки мультиинсталляционных выходных папок после подгонки. это даст вам образцы ваших параметров.
Эрик Камау

Ух ты. Это замечательно. Я проголосовал за ваш ответ. В будущем вы можете включать такое описание каждый раз, когда вы делитесь ссылкой.
Ферди

0

Это кажется сложной и постоянной проблемой в вычислительной статистике. Тем не менее, есть несколько менее современных методов, которые должны работать нормально.

Допустим, вы уже нашли несколько различных задних мод, и вы счастливы, что это наиболее важные моды, и если апостериор вокруг этих мод достаточно нормальный. Затем вы можете вычислить гессиан в этих режимах (скажем, используя optim в R с hessian = T), и вы можете аппроксимировать апостериор как смесь нормалей (или t-распределений). См. P318-319 в Gelman et al. (2003) "Байесовский анализ данных" для деталей. Затем вы можете использовать приближение нормальной / t-смеси в качестве распределения предложений в выборке независимости, чтобы получить выборки из полного апостериорного значения.

Еще одна идея, которую я не пробовал, - это выборка отжигаемой важности (Рэдфорд Нил, 1998, ссылка здесь ).


Еще одна вещь, если у вас уже есть набор цепочек, каждая из которых, по-видимому, «сходилась» локально, - это выполнить некоторую сортировку по важности из комбинации всех ваших цепочек. Я не уверен в этом, хотя.
Мат

Добро пожаловать на форум мат. Не стесняйтесь редактировать свой ответ, чтобы добавить свои новые идеи вместо того, чтобы комментировать свой собственный ответ. Ничего плохого в этом нет :)
brumar

0

Как насчет попробовать новый метод MCMC для мультимодальности, отталкивающе привлекательный алгоритм Метрополиса ( http://arxiv.org/abs/1601.05633 )? Этот мультимодальный сэмплер работает с одним параметром настройки, таким как алгоритм Метрополиса, и прост в реализации.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.