¿Cuáles son los algoritmos estándar para la inferencia en redes bayesianas?

Los algoritmos de inferencia más populares se dividen en dos categorías principales: transmisión de mensajes / variacional o muestreo.

Paso de mensajes

Para los modelos gráficos estructurados en árbol, la propagación de creencias calcula marginales exactos. Entonces, si tiene un problema estructurado en árbol, es probable que sea la mejor manera de hacerlo. Pero en la mayoría de las aplicaciones prácticas no tiene una estructura de árbol, por lo que la propagación de creencias no puede usarse para inferencia exacta.
Para los gráficos que no son de árbol (en bucle), puede usar el algoritmo de árbol de unión , que proporciona márgenes exactos, pero personalmente no lo considero estándar, rara vez lo veo usado en algún caso práctico.

Otros ejemplos modernos de algoritmos de paso de mensajes para inferencia aproximada incluyen propagación de creencias en bucle , paso de mensajes variados o propagación de expectativas . Estos no le dan una respuesta exacta, pero en muchos casos proporcionan una muy buena aproximación.
Un buen ejemplo de implementación de estos algoritmos de paso de mensajes es inferir .NET, desarrollado por Tom Minka y John Winn (autores de documentos clave sobre estas técnicas) en Microsoft Research:
http://research.microsoft.com/en…

Muestreo

Otra familia popular de métodos de inferencia aproximada se basa en la cadena de Markov Monte Carlo (MCMC), también conocida como muestreo. El muestreo de Gibbs es particularmente adecuado para modelos gráficos dirigidos o redes Bayes, pero hay muchos otros métodos disponibles dependiendo de su problema. Estos incluyen Monte Carlo híbrido, muestreo de corte y filtrado de partículas .

Esta respuesta de ninguna manera es completa, pero creo que cubre los enfoques más populares / estándar utilizados por las comunidades bayesianas de estadística / aprendizaje automático. Además, cuál de estos métodos debe usar realmente depende de su problema particular, restricciones de velocidad / tiempo, etc.

En cuanto a las implementaciones de referencia, la caja de herramientas Bayes net matlab de Kevin Murphy tiene varios métodos de inferencia implementados, incluidos el muestreo de Gibbs y la propagación de creencias, por lo que probablemente sea un buen punto de referencia general:
http://bnt.googlecode.com/svn/tr…

Sospecho que a cualquiera que haga esta pregunta le gustaría ahorrar tiempo y esfuerzo para comprender la mayoría de los detalles técnicos de los algoritmos mencionados anteriormente. Entonces una respuesta como tal no lo satisfaría.

En cambio, tengo la impresión de que la pregunta se centró en qué paquetes se pueden usar para calcular la inferencia bayesiana con el menor esfuerzo y aún tiene un resultado razonable y estable.

¿Quién tiene experiencia con alguno de los paquetes disponibles públicamente?
¿Alguien pudo ejecutar Infer.net en linux de manera confiable?

Algoritmo de árbol de unión para inferencia exacta y propagación de creencias en bucle para aproximada

More Interesting

¿Qué lenguaje es mejor usar para el aprendizaje automático (R o Python)?

¿Por qué algunos sistemas de recomendación, como Netflix, dejan de funcionar con demasiadas calificaciones?

¿Qué debería aprender primero para el aprendizaje automático y la autoeducación: cálculo, probabilidad, estadística o álgebra lineal?

Cómo interpretar los resultados de R después del análisis en las organizaciones

¿Cómo realizo la selección de funciones?

¿Todas las funciones de pérdida sufren el problema del gradiente de fuga en las redes neuronales?

Cómo justificar el rendimiento de un modelo de aprendizaje profundo personalizado (CNN)

¿Cuáles son algunos de los conjuntos de habilidades esenciales que debe tener un desarrollador de aprendizaje automático?

¿Por qué hay una compensación entre exploración y explotación en el aprendizaje por refuerzo?

¿Cuál es la diferencia entre un vector de pensamiento y un vector de omisión de pensamiento?

¿El desarrollo teórico en el aprendizaje automático está llegando a un punto muerto (significa que no habrá necesidad de continuar)?

¿Cuál es la importancia del análisis de componentes principales (PCA) en el modelado predictivo?

¿Cuál es la diferencia entre Deconvolución, Upsampling, Unpooling y Convolutional Sparse Coding?

¿Cuál es la mejor manera de encontrar el conjunto de patrones similares en datos de series de tiempo?

¿Cuál es el mejor algoritmo de agrupamiento adaptativo k-means (que k se elige automáticamente)?