stringtranslate.com

Algoritmo de árbol de unión

Ejemplo de un árbol de uniones

El algoritmo de árbol de unión (también conocido como 'árbol de camarilla') es un método utilizado en el aprendizaje automático para extraer marginalización en gráficos generales . En esencia, implica realizar la propagación de creencias en un gráfico modificado llamado árbol de unión . El gráfico se llama árbol porque se ramifica en diferentes secciones de datos; los nodos de variables son las ramas. [1] La premisa básica es eliminar los ciclos agrupándolos en nodos individuales. Se pueden compilar múltiples clases extensas de consultas al mismo tiempo en estructuras de datos más grandes. [1] Existen diferentes algoritmos para satisfacer necesidades específicas y para lo que se necesita calcular. Los algoritmos de inferencia recopilan nuevos desarrollos en los datos y los calculan en función de la nueva información proporcionada. [2]

Algoritmo de árbol de unión

Algoritmo de Hugin

Tenga en cuenta que este último paso es ineficiente para gráficos con un ancho de árbol grande . Calcular los mensajes que se deben pasar entre supernodos implica hacer una marginalización exacta sobre las variables en ambos supernodos. La ejecución de este algoritmo para un gráfico con un ancho de árbol k tendrá, por lo tanto, al menos un cálculo que lleva un tiempo exponencial en k. Es un algoritmo de paso de mensajes . [3] El algoritmo de Hugin requiere menos cálculos para encontrar una solución en comparación con Shafer-Shenoy.

Algoritmo de Shafer-Shenoy

El algoritmo Shafer-Shenoy es el producto de la suma de un árbol de uniones. [6] Se utiliza porque ejecuta programas y consultas de manera más eficiente que el algoritmo Hugin. El algoritmo hace posible los cálculos de condicionales para funciones de creencias . [7] Se necesitan distribuciones conjuntas para que se realicen los cálculos locales. [7]

Teoría subyacente

Ejemplo de una red bayesiana dinámica

El primer paso concierne únicamente a las redes bayesianas y es un procedimiento para convertir un grafo dirigido en uno no dirigido . Lo hacemos porque permite la aplicabilidad universal del algoritmo, independientemente de la dirección.

El segundo paso es fijar las variables en su valor observado. Esto suele ser necesario cuando queremos calcular probabilidades condicionales, por lo que fijamos el valor de las variables aleatorias que condicionamos. También se dice que esas variables están sujetas a su valor particular.

Ejemplo de un grafo cordal

El tercer paso es asegurarse de que los grafos se conviertan en cordales si no lo son ya. Este es el primer paso esencial del algoritmo. Utiliza el siguiente teorema: [8]

Teorema: Para un grafo no dirigido , G, las siguientes propiedades son equivalentes:

Por lo tanto, al triangular un grafo, nos aseguramos de que existe el árbol de uniones correspondiente. Una forma habitual de hacer esto es decidir un orden de eliminación para sus nodos y luego ejecutar el algoritmo de eliminación de variables . El algoritmo de eliminación de variables establece que el algoritmo debe ejecutarse cada vez que haya una consulta diferente. [1] Esto dará como resultado agregar más aristas al grafo inicial, de tal manera que la salida será un grafo cordal . Todos los grafos cordales tienen un árbol de uniones. [4] El siguiente paso es construir el árbol de uniones . Para ello, utilizamos el grafo del paso anterior y formamos su grafo de camarilla correspondiente . [9] Ahora, el siguiente teorema nos da una forma de encontrar un árbol de uniones: [8]

Teorema: Dado un gráfico triangulado, pondere los bordes del gráfico de camarilla por su cardinalidad, |A∩B|, de la intersección de las camarillas adyacentes A y B. Entonces, cualquier árbol de expansión de peso máximo del gráfico de camarilla es un árbol de unión.

Por lo tanto, para construir un árbol de unión, solo tenemos que extraer un árbol de expansión de peso máximo del gráfico de camarillas. Esto se puede hacer de manera eficiente, por ejemplo, modificando el algoritmo de Kruskal . El último paso es aplicar la propagación de creencias al árbol de unión obtenido. [10]

Uso: Se utiliza un gráfico de árbol de unión para visualizar las probabilidades del problema. El árbol puede convertirse en un árbol binario para formar la estructura real del árbol. [11] Un uso específico se puede encontrar en los codificadores automáticos , que combinan el gráfico y una red de paso a gran escala de forma automática. [12]

Algoritmos de inferencia

Acondicionamiento cutset

Propagación de creencias en bucle: un método diferente para interpretar gráficos complejos. La propagación de creencias en bucle se utiliza cuando se necesita una solución aproximada en lugar de la solución exacta . [13] Es una inferencia aproximada . [3]

Condicionamiento de corte: se utiliza con conjuntos de variables más pequeños. El condicionamiento de corte permite obtener gráficos más simples que son más fáciles de leer, pero no son exactos . [3]

Referencias

  1. ^ abc Paskin, Mark. "Un curso breve sobre modelos gráficos" (PDF) . Stanford .
  2. ^ "El algoritmo de inferencia". www.dfki.de . Consultado el 25 de octubre de 2018 .
  3. ^ abcd "Resumen sobre modelos gráficos" (PDF) .
  4. ^ abc "Algoritmos" (PDF) . Instituto Tecnológico de Massachusetts . 2014.
  5. ^ Roweis, Sam (2004). "Algoritmo de inferencia de Hugin" (PDF) . Universidad de Nueva York .
  6. ^ "Algoritmos para inferencia" (PDF) . Instituto Tecnológico de Massachusetts . 2014.
  7. ^ ab Kłopotek, Mieczysław A. (6 de junio de 2018). "Red de creencias dempsterianas-shaferianas a partir de datos". arXiv : 1806.02373 [cs.AI].
  8. ^ ab Wainwright, Martin (31 de marzo de 2008). "Modelos gráficos, algoritmos de paso de mensajes y métodos variacionales: Parte I" (PDF) . Berkeley EECS . Consultado el 16 de noviembre de 2016 .
  9. ^ "Gráfico de camarillas" . Consultado el 16 de noviembre de 2016 .
  10. ^ Barber, David (28 de enero de 2014). "Modelado y razonamiento probabilístico: el algoritmo del árbol de uniones" (PDF) . Universidad de Helsinki . Consultado el 16 de noviembre de 2016 .
  11. ^ Ramirez, Julio C.; Munoz, Guillermina; Gutierrez, Ludivina (septiembre de 2009). "Diagnóstico de fallas en un proceso industrial mediante redes bayesianas: aplicación del algoritmo Junction Tree". Conferencia de Electrónica, Robótica y Mecánica Automotriz (CERMA) de 2009. IEEE. doi :10.1109/cerma.2009.28.
  12. ^ Jin, Wengong (febrero de 2018). "Autocodificador variacional de árbol de unión para generación de grafos moleculares". Universidad de Cornell . arXiv : 1802.04364 . Código Bibliográfico :2018arXiv180204364J.
  13. ^ CERMA 2009 : actas : Conferencia sobre electrónica, robótica y mecánica automotriz 2009 : 22-25 de septiembre de 2009 : Cuernavaca, Morelos, México . Instituto de Ingenieros Eléctricos y Electrónicos. Los Alamitos, California: IEEE Computer Society. 2009. ISBN 9780769537993.OCLC 613519385  .{{cite book}}: Mantenimiento de CS1: otros ( enlace )

Lectura adicional