Я розробляю гібридний алгоритм вибірки Монте-Карло для PyMC , і я намагаюся зробити це максимально вільним і загальним, тому шукаю гарних порад щодо розробки алгоритму HMC. Я прочитав розділ опитування Радфорда та Beskos et. Нещодавній документ про оптимальну настройку HMC (розмір кроку), і я зібрав наступні поради:
- Змінні імпульсу повинні бути розподілені за допомогою коваріації , де взагалі є чимось на зразок коваріаційної матриці розподілу (для простих розподілів), але, можливо, може бути іншим (для смішних розподілів). За замовчуванням я в режимі використовую гессіан.
- Траєкторії слід обчислювати методом стрибкоподібної жаби (інші інтегратори, здається, не варті цього)
- Оптимальна швидкість прийняття становить .651 для дійсно великих проблем і в іншому випадку вище.
- Розмір кроку слід масштабувати як , де - вільна змінна, - кількість вимірів.
- Розмір кроку повинен бути меншим, якщо є легкі хвости або в інших регіонах з непарними характеристиками стійкості. У цьому може допомогти рандомізація розміру кроків.
Чи є інші ідеї, які я повинен прийняти або принаймні розглянути? Інші папери, які я повинен прочитати? Наприклад, чи є алгоритми адаптивного розміру кроків, які того варті? Чи є хороша порада щодо довжини траєкторії? Чи є насправді кращі інтегратори?
Хтось, будь ласка, зроби це спільнотою вікі.