20 votos

¿Cuáles son algunas de las mejoras conocidas sobre los algoritmos MCMC de los libros de texto que la gente utiliza para la inferencia bayesiana?

Cuando estoy codificando una simulación de Monte Carlo para algún problema, y el modelo es lo suficientemente simple, utilizo un muestreo de Gibbs de libro de texto muy básico. Cuando no es posible utilizar el muestreo de Gibbs, codifico el libro de texto Metropolis-Hastings que aprendí hace años. Lo único que pienso es la elección de la distribución de salto o de sus parámetros.

Sé que hay cientos y cientos de métodos especializados que mejoran esas opciones de los libros de texto, pero normalmente nunca pienso en usarlos/aprenderlos. Suele parecer que es demasiado esfuerzo mejorar un poco lo que ya funciona muy bien.

Pero recientemente he estado pensando si no hay nuevos métodos generales que puedan mejorar lo que he estado haciendo. Han pasado muchas décadas desde que se descubrieron esos métodos. Tal vez estoy realmente ¡fuera de lugar!

¿Existen alternativas conocidas a Metrópolis-Hastings que sean:

  • razonablemente fácil de aplicar,
  • tan universalmente aplicable como MH,
  • y siempre mejora los resultados de MH en algún sentido (rendimiento computacional, precisión, etc.)?

Conozco algunas mejoras muy especializadas para modelos muy especializados, pero ¿hay algunas cosas generales que todo el mundo utiliza y que no conozco?

1 votos

¿Se refiere a la cadena de Markov Monte Carlo? Las mejoras de los libros de texto sobre simulaciones de Monte Carlo que se me ocurren implican un muestreo antitético y/o estratificado, así como un cuasi-Monte Carlo. Sin embargo, el hecho de que menciones sólo a Gibbs y a Metrópolis-Hastings es indicativo de la computación bayesiana.

0 votos

@StasK, Sí, me interesan principalmente los modelos bayesianos y los modelos de física estadística (que no es más que la inferencia bayesiana sobre distribuciones tipo gibbs p(x) = 1/Z exp(-E(x)/T) ). Perdón por no haberlo mencionado.

0 votos

Hay tantos que probablemente sea imposible enumerarlos todos aquí.

20voto

Bou Puntos 1859

No soy un experto en ninguno de ellos, pero pensé en exponerlos de todos modos para ver qué opinaba la comunidad. Las correcciones son bienvenidas.

Un método cada vez más popular, que no es terriblemente sencillo de aplicar, se llama Monte Carlo hamiltoniano (o a veces el Monte Carlo híbrido). Utiliza un modelo físico con energía potencial y cinética para simular una bola rodando por el espacio de parámetros, como se describe en este documento por Radford Neal. El modelo físico requiere una buena cantidad de recursos computacionales, por lo que tiende a recibir muchas menos actualizaciones, pero éstas tienden a estar menos correlacionadas. HMC es el motor del nuevo STAN que se está desarrollando como una alternativa más eficiente y flexible a BUGS o JAGS para la modelización estadística.

También hay toda una serie de métodos que implican "calentar" la cadena de Markov, lo que puede considerarse como la introducción de ruido térmico en el modelo y el aumento de las posibilidades de muestreo de estados de baja probabilidad. A primera vista, parece una mala idea, ya que se quiere que el modelo muestre en proporción a la probabilidad posterior. Pero en realidad sólo se acaban utilizando los estados "calientes" para ayudar a que la cadena se mezcle mejor. Las muestras reales sólo se recogen cuando la cadena está a su temperatura "normal". Si lo haces correctamente, puedes utilizar las cadenas calentadas para encontrar modos a los que una cadena normal no podría llegar debido a los grandes valles de baja probabilidad que bloquean la transición de modo a modo. Algunos ejemplos de estos métodos son MCMC acoplado a Metrópolis , transiciones templadas , templado en paralelo y muestreo de importancia recocido .

Por último, puede utilizar Monte Carlo secuencial o filtrado de partículas cuando la tasa de rechazo sería tan alta que todos estos otros métodos fracasarían. Soy el que menos conoce esta familia de métodos, por lo que mi descripción puede ser incorrecta pero tengo entendido que funciona así. Empiezas ejecutando tu muestreador favorito, aunque las posibilidades de rechazo son esencialmente una. En lugar de rechazar todas las muestras, eliges las menos objetables e inicias nuevos muestreadores a partir de ellas, repitiendo el proceso hasta que encuentres algunas muestras que realmente puedas aceptar. A continuación, vuelva a corregir el hecho de que sus muestras no eran aleatorias, porque no inicializó sus muestreadores desde ubicaciones aleatorias.

Espero que esto ayude.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X