Что я должен знать о разработке хорошего гибридного / гамильтонова алгоритма Монте-Карло?

12

Я разрабатываю алгоритм выборки Гибридного Монте-Карло для PyMC , и я стараюсь сделать его максимально беспроблемным и общим, поэтому я ищу хороший совет по разработке алгоритма HMC. Я прочитал главу обзора Рэдфорда и Beskos et. В недавней статье al. об оптимальной (размер шага) настройке HMC я собрал следующие советы:

  • Переменные импульса должны распределяться с ковариацией , где C обычно является чем-то вроде ковариационной матрицы распределения (для простых распределений), но, возможно, может быть иным (для распределений смешной формы). По умолчанию я использую гессиан в режиме.С-1С
  • Траектории должны быть рассчитаны с помощью метода скачка (другие интеграторы, кажется, не стоят того)
  • Оптимальный коэффициент принятия составляет 0,615 для действительно больших проблем и в противном случае выше.
  • Размер шага должен быть масштабирован , как , где L является свободной переменной , и d представляет число измерений.L×d(1/4)Ld
  • Размер шага должен быть меньше, если есть легкие хвосты или другие области с нечетными характеристиками устойчивости. В этом может помочь рандомизация размера шага.

Есть ли другие идеи, которые я должен принять или, по крайней мере, рассмотреть? Другие документы, которые я должен прочитать? Например, существуют ли алгоритмы адаптивного размера шага, которые того стоят? Есть хороший совет по длине траектории? Есть ли на самом деле лучшие интеграторы?

Кто-нибудь, пожалуйста, сделайте это вики-сообществом.

John Salvatier
источник

Ответы:

3

Эта статья очень интересная (хотя я еще не совсем поняла),

Джиролами М., Колдерхед Б. (2011). Методы риманова многообразия Ланжевена и гамильтониана. JR Statist. Soc. Б. (с обсуждением). 73, часть 2. с. 1-37.

Дикран Сумчатый
источник