Когда я кодирую симуляцию Монте-Карло для какой-то проблемы, и модель достаточно проста, я использую очень простую выборку из учебника Гиббса. Когда невозможно использовать выборку Гиббса, я пишу учебник «Метрополис-Гастингс», который я выучил много лет назад. Единственная мысль, которую я ему даю, - это выбор прыгающего распределения или его параметров.
Я знаю, что существуют сотни и сотни специализированных методов, которые улучшаются по сравнению с этими вариантами учебников, но я обычно никогда не задумываюсь об их использовании / изучении. Обычно кажется, что это слишком много усилий, чтобы немного улучшить то, что уже работает очень хорошо.
Но недавно я подумал, может быть, нет новых общих методов, которые могли бы улучшить то, что я делал. Прошло много десятилетий с тех пор, как были открыты эти методы. Может быть, я действительно устарел!
Существуют ли известные альтернативы Метрополис-Гастингс?
- достаточно легко реализовать,
- универсально применимый, как MH,
- и всегда улучшает результаты MH в некотором смысле (вычислительная производительность, точность и т. д.)?
Я знаю о некоторых очень специализированных улучшениях для очень специализированных моделей, но есть ли какие-то общие вещи, которые все используют, которых я не знаю?
источник
Ответы:
Я не являюсь экспертом ни в одном из них, но я решил, что все равно выложу их, чтобы посмотреть, что думает сообщество. Исправления приветствуются.
Один из все более популярных методов, который не очень просто реализовать, называется гамильтоновым методом Монте-Карло (или иногда гибридным методом Монте-Карло). Он использует физическую модель с потенциальной и кинетической энергией для имитации шара, катящегося вокруг пространства параметров, как описано в этой статье Рэдфордом Нилом. Физическая модель требует значительного количества вычислительных ресурсов, поэтому вы, как правило, получаете гораздо меньше обновлений, но обновления, как правило, менее коррелированы. HMC - это движущая сила нового программного обеспечения STAN , которое разрабатывается как более эффективная и гибкая альтернатива BUGS или JAGS для статистического моделирования.
Существует также целый набор методов, которые включают в себя «нагревание» цепи Маркова, который можно представить как введение теплового шума в модель и увеличение шансов на выборку состояний с низкой вероятностью. На первый взгляд это кажется плохой идеей, поскольку вы хотите, чтобы модель производила выборку пропорционально апостериорной вероятности. Но на самом деле вы используете только «горячие» состояния, чтобы помочь цепочке лучше перемешаться. Фактические образцы собираются только тогда, когда цепь имеет "нормальную" температуру. Если вы делаете это правильно, вы можете использовать нагретые цепи, чтобы найти режимы, в которые не сможет попасть обычная цепь из-за больших долин с низкой вероятностью, блокирующих переход из режима в режим. Несколько примеров этих методов включают MCMC в метрополии ,, параллельное отпускание и отбор по важности отжига .
Наконец, вы можете использовать последовательную фильтрацию по методу Монте-Карло или частиц, когда скорость отбраковки будет настолько высока, что все эти другие методы не сработают. Я меньше всего знаю об этом семействе методов, поэтому моё описание здесь может быть неверным , но я понимаю, что оно работает так. Вы начинаете с того, что запускаете свой любимый сэмплер, хотя шансы на отклонение по существу равны. Вместо того, чтобы отклонять все ваши сэмплы, вы выбираете наименее нежелательные и инициализируете новые сэмплеры оттуда, повторяя процесс, пока не найдете некоторые сэмплы, которые вы действительно можете принять. Затем вы возвращаетесь и исправляете тот факт, что ваши выборки были неслучайными, потому что вы не инициализировали свои выборки из случайных мест.
Надеюсь это поможет.
источник