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