13 votos

Transiciones divergentes en Stan

Intuitivamente, ¿qué significa el aviso "Hubo 214 transiciones divergentes después del calentamiento"?

Entiendo que las muestras obtenidas son inútiles, y que aumentar adapt_delta, y max_treedepth, y bajar el stepize puede ayudar. Además, reparametrizar también puede ayudar.

Me gustaría saber qué ocurre realmente cuando se produce una transición divergente.

En la Sección 14.5 Transiciones Divergentes del Manual de Referencia de Stan dice "Las posiciones a lo largo de la trayectoria simulada después de que el Hamiltoniano diverja nunca serán seleccionadas como el siguiente sorteo del algoritmo MCMC". ¿Significa esto que después de una transición divergente, todas las transiciones subsiguientes son rechazadas? Por lo tanto, la última propuesta aceptada (y el estado actual) se devolverá muchas veces en la muestra posterior?

Me he dado cuenta de que estoy obteniendo muchas transiciones divergentes cuando trabajo con modelos jerárquicos (esto está bien documentado en los blogs de Internet), pero algunos de mis parámetros son (bueno parecen ser) convergentes y otros no. Pero, en un modelo conjunto, cada proposición debería ser un vector de parámetros, y si esta proposición es rechazada después de una transición divergente (y todas las demás a partir de entonces, como se ha descrito anteriormente), ¿no deberían ser divergentes todas las distribuciones marginales?

Los gráficos de diagnóstico parecen mostrar que, digamos $\mu$ ha convergido y $\sigma$ no lo ha hecho. Un ejemplo que tuve fue que $\sigma$ tenía una desviación estándar cero. Supuse que esto significaba que había una transición divergente después de la primera propuesta y, por tanto, todas las demás propuestas de $\sigma$ fueron rechazados y, en consecuencia, $\sigma$ sólo tenía un valor único en su muestra devuelta. Pero, mi muestra para $\mu$ estaba (o parecía) bien. Pero la propuesta no debería $(\mu, \sigma)$ han sido rechazadas después de la primera propuesta y, por tanto, la $\mu$ también debe tener un único valor.

Consideremos ahora un modelo con un solo parámetro. Imaginemos que mi proposición inicial está lejos de la(s) región(es) de alta densidad posterior, y supongamos que esta cadena nunca llega a las regiones con alta densidad posterior. ¿Es entonces cuando Stan devuelve el mensaje que dice "Hubo x transiciones divergentes después del calentamiento"? ¿Ya que puede ver que el código MCMC no ha muestreado "lo suficiente" de la distribución posterior de interés?

Una de las razones por las que creo que esta intuición es errónea es porque en el pasado he ejecutado código MCMC que no ha convergido (simplemente por no haberse ejecutado durante suficientes iteraciones) y no he recibido este mensaje de error.

¿Puede alguien dar una interpretación intuitiva de lo que ocurre cuando una transición diverge? ¿Qué ocurre si la propuesta llega finalmente a la región de alta densidad posterior? ¿Es posible encontrar dónde diverge el muestreador MCMC y luego descartar las muestras hasta que vuelvan a ser convergentes?

Si el hamiltoniano diverge, las posiciones a lo largo de la trayectoria simulada nunca serán aceptadas. Si tengo 214 transiciones divergentes, esto debe significar que entré en una fase de divergencia y luego volví a una fase de convergencia y luego a otra fase de divergencia. De lo contrario, sólo debería tener una transición divergente. Esto es difícil de entender ya que, según el manual, no se aceptan propuestas después de que una trayectoria diverja y, por tanto, después de que una trayectoria diverja, ¿no debería seguir siendo divergente hasta el final? Además, ¿por qué el código MCMC no termina simplemente después de encontrar una trayectoria divergente? ¿Cómo se acumulan las transiciones divergentes?

18voto

autotapteam Puntos 11

Una transición divergente en Stan indica que la región de la distribución posterior alrededor de esa transición divergente es geométricamente difícil de explorar.

Por ejemplo, aquí hay una cita del manual:

La causa principal de las transiciones divergentes en el HMC euclidiano (aparte de los errores en el código) es la curvatura posterior altamente variable, para la cual los tamaños de paso pequeños son demasiado ineficientes en algunas regiones y divergen en otras. Si el tamaño del paso es demasiado pequeño, el muestreador se vuelve ineficiente y se detiene antes de hacer un giro en U (alcanza la profundidad máxima del árbol en NUTS); si el tamaño del paso es demasiado grande, la simulación hamiltoniana diverge.

https://mc-stan.org/docs/2_19/reference-manual/divergent-transitions.html

Básicamente significa que la trayectoria hamiltoniana que Stan propuso es diferente de la que debería seguir. Así que el valor esperado de, por ejemplo, el log(densidad) que predijo que debería tener en un punto del espacio de parámetros es diferente de lo que realmente es en ese punto. Cuando Stan detecta este problema sabe que algo ha ido mal y rechaza esa transición y básicamente "lo intenta de nuevo". Esto se demuestra gráficamente aquí: https://dev.to/martinmodrak/taming-divergences-in-stan-models-5762

La razón por la que tienes múltiples transiciones es que como Stan ha rechazado esa transición en particular, probará otras nuevas y éstas pueden o no resultar en una divergencia. La razón por la que no se puede detener el muestreo cuando se encuentra la primera divergencia es que las divergencias no son siempre un problema.

Por ejemplo, si ajustas un modelo con 10/10.000 transiciones divergentes y éstas se distribuyen aleatoriamente en el espacio de parámetros, probablemente no haya ningún problema. Sin embargo, si termina con estas 10 transiciones divergentes concentradas en una parte determinada del espacio de parámetros (o tiene muchas más) entonces es probable que los parámetros de su modelo no sean estimados con precisión por Stan. En ese caso debería considerar reformular su modelo. Básicamente, las divergencias son una guía para ayudar a mejorar tu modelo, pero la existencia de una sola no tiene por qué ser fatal.

Por ejemplo la página 46 de la Introducción Conceptual a Hamiltonian Monte Carlo de Betancourt ( https://arxiv.org/pdf/1701.02434.pdf ) muestra cómo las divergencias pueden estar localizadas en una parte del espacio de parámetros y, por tanto, ignorarlas o detenerse al llegar a ellas sería, en el mejor de los casos, un sesgo en la inferencia (porque no se está incluyendo esa región desafiante).

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