Гамильтониан Монте-Карло хорошо работает с непрерывным распределением целей со «странными» формами. Это требует, чтобы целевое распределение было дифференцируемым, поскольку оно в основном использует наклон целевого распределения, чтобы знать, куда идти. Прекрасный пример - функция в форме банана.
Вот стандартная функция «Метрополис Гастингс в банановой функции»: уровень принятия 66% и очень плохое покрытие.
Вот с HMC: 99% одобрения с хорошим покрытием.
SMC (метод фильтрации частиц) практически непобедим, когда целевое распределение является мультимодальным, особенно если есть несколько отдельных областей с массой. Вместо одной цепочки Маркова, захваченной в режиме, у вас есть несколько цепей Маркова, работающих параллельно. Обратите внимание, что вы используете его для оценки последовательности распределений, обычно возрастающей резкости. Вы можете генерировать увеличивающуюся резкость, используя что-то вроде имитации отжига (поместите экспоненциально увеличивающийся показатель в цель). Или, как правило, в байесовском контексте последовательность распределений является последовательностью последующих:
п( θ | y1),п( θ | y1, у2),, , ,,п( θ | y1, у2, . , , , уN)
Например, эта последовательность является отличной целью для SMC:
Параллельная природа SMC делает его особенно подходящим для распределенных / параллельных вычислений.
Резюме:
- HMC: хорош для вытянутой странной цели. Не работает с не непрерывной функцией.
- SMC: хорошо для мультимодальных и не непрерывных случаев. Может сходиться медленнее или использовать больше вычислительной мощности для создания странных фигур большого размера.
Источник: Большинство изображений взяты из статьи, которую я написал, комбинируя 2 метода (гамильтонова последовательность Монте-Карло). Эта комбинация может симулировать практически любое распределение, которое мы можем создать, даже при очень больших размерах.