Estoy diseñando un algoritmo de muestreo Monte Carlo híbrido para PyMC , y estoy tratando de hacerlo lo más sencillo y general posible, así que estoy buscando buenos consejos para diseñar un algoritmo HMC. He leído el capítulo de la encuesta de Radford y Beskos et. El documento reciente de al. sobre la optimización óptima (tamaño de paso) de HMC y yo reuní los siguientes consejos:
- Las variables de momento deben distribuirse con la covarianza , donde C generalmente es algo así como la matriz de covarianza de la distribución (para distribuciones simples), pero posiblemente podría ser diferente (para distribuciones con formas divertidas). Por defecto estoy usando el hessian en el modo.
- Las trayectorias deben calcularse con el método leapfrog (otros integradores no parecen valer la pena)
- La tasa de aceptación óptima es de .651 para problemas realmente grandes y, de lo contrario, más alta.
- Tamaño de paso debe ser escalado como , donde L es una variable libre y d es el número de dimensiones.
- El tamaño del paso debe ser menor cuando hay colas ligeras o regiones con características de estabilidad extrañas. La aleatorización del tamaño del paso puede ayudar con esto.
¿Hay otras ideas que debería adoptar o al menos considerar? ¿Otros papeles que debería leer? Por ejemplo, ¿hay algoritmos adaptativos de tamaño de paso que valgan la pena? ¿Hay buenos consejos sobre la longitud de la trayectoria? ¿De hecho hay mejores integradores?
Alguien por favor haga de esto un wiki comunitario.
fuente