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.
- ¿Puedo predecir el precio de las acciones usando el aprendizaje automático en Python?
- ¿Cuáles son algunos buenos ejemplos de reducción de dimensionalidad no lineal en datos de texto?
- ¿Cómo calificaría un buen algoritmo, buenos datos, buena ingeniería de características en términos de efectividad para el aprendizaje automático?
- ¿Cómo y por qué funciona la estimación de contraste de ruido?
- ¿Qué es más exigente, desarrollo de aplicaciones, aprendizaje automático, aprendizaje profundo, inteligencia artificial o IOT?
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…