Inteligencia Artificial II

Documentos relacionados
Tema 8: Introducción a las Redes Bayesianas

Representación y razonamiento con conocimiento incierto

Teoría de probabilidades

Incertidumbre y conocimiento

REDES BAYESIANAS. O Redes de creencias

Bases Formales de la Computación: Redes de Bayes (segunda parte)

Inferencia Exacta: Ejemplo

Razonamiento probabilístico y redes bayesianas

Inteligencia Artificial II Razonamiento Bayesiano

SIMULACION. Urna 1. s(x) h(x) Urna 2. s(x) Dado. Urna /6 2 1/6 3 1/6 4 1/6 5 1/6 6 1/6 Dado 1 1/6 2 1/6 3 1/6 4 1/6 5 1/6 6 1/6

Inteligencia Artificial II (Curso ) Ejercicios propuestos del tema 3

Métodos de Inteligencia Artificial

Modelos Gráficos Probabilistas L. Enrique Sucar INAOE. Sesión 10: Redes Bayesianas Inferencia. 1era parte. [Neapolitan 90]

Inteligencia Artificial Razonamiento probabilístico

1. Método general. 2. Análisis de tiempos de ejecución. 3. Ejemplos de aplicación Problema de las 8 reinas Problema de la mochila 0/1.

Curso de Inteligencia Artificial

Razonamiento probabilístico y Redes Bayesianas

Redes Bayesianas. Manuel Valenzuela-Rendón. Centro de Sistemas Inteligentes Tecnológico de Monterrey, Campus Monterrey.

Tema 4: Aprendizaje de conceptos

Pruebas de Acceso a Enseñanzas Universitarias Oficiales de Grado (PAEG) Matemáticas aplicadas a las Ciencias Sociales II - Junio Propuesta A

PROBABILIDAD Y ESTADÍSTICA

Binary Decision Diagrams

Tema 3: Técnicas básicas de búsqueda para la resolución de problemas

RAZONAMIENTO APROXIMADO

Redes Bayesianas (1) Carlos Hurtado L. Depto. de Ciencias de la Computación, Universidad de Chile

Semana 07[1/21] Sumatorias. 12 de abril de Sumatorias

Curso de Inteligencia Artificial

1. GRAFOS : CONCEPTOS BASICOS

un conjunto cuyos elementos denominaremos vectores y denotaremos por es un espacio vectorial si verifica las siguientes propiedades:

Conceptos. Experimento Aleatorio: Es un fenómeno en el que interviene el azar, es decir no se puede predecir el resultado.

(2) X(3I + A) = B 2I (3) X(3I + A)(3I + A) 1 = (B 2I)(3I + A) 1 (5) X = (B 2I)(3I + A) 1

Espacios Vectoriales

Álgebra Lineal. Tema 6. Transformaciones lineales y matrices

Redes Bayesianas (3) Carlos Hurtado L. Depto. de Ciencias de la Computación, Universidad de Chile

Grafos. AMD Grado en Ingeniería Informática. AMD Grado en Ingeniería Informática (UM) Grafos 1 / 30

Tema 2: Métodos de Deducción para la Lógica Proposicional

Backtracking: Esquema General

Tema AA-4: Sesgo inductivo

RESUMEN DE ALGORITMOS PROBABILÍSTICOS

Aplicaciones Lineales

Parte de Algoritmos de la asignatura de Programación Master de Bioinformática. Búsqueda exhaustiva

El Algoritmo E-M. José Antonio Camarena Ibarrola

TEMA 1.- PROBABILIDAD.- CURSO

Matemáticas 2ºBachillerato Aplicadas a las Ciencias Sociales

Tema 2: Teorema de estructura de los grupos abelianos finitamente generados.

APRENDIZAJE PROBABILÍSTICO NAIVE BAYES

REPASO DE Nºs REALES y RADICALES

Por ello, son necesarios los sistemas expertos que traten situaciones de incertidumbre.

Incertidumbre. Dr. Jesús Antonio González Bernal

Tema 7: Sesgo inductivo

Arboles de decisión. Area de Computación e Inteligencia Artificial

Notación de probabilidad

TECNOLOGÍAS INTELIGENTES PARA EXPLOTACIÓN DE INFORMACIÓN

Semana 14 [1/19] Polinomios. 8 de junio de Polinomios

Inducción Matemática Conjuntos Funciones. Matemática Discreta. Agustín G. Bonifacio UNSL. Repaso de Inducción, Conjuntos y Funciones

Solución de Problemas Mediante Búsqueda (2) Carlos Hurtado Depto de Ciencias de la Computación, Universidad de Chile

6 Vectores. Dependencia e independencia lineal.

Complejidad computacional. Algoritmos y Estructuras de Datos I. Complejidad computacional. Notación O grande

Métodos de Inteligencia Artificial

Conjuntos, relaciones y funciones Susana Puddu

Métodos de Inteligencia Artificial

Tema 3 Algebra. Ecuaciones. Sistemas de ecuaciones: Inecuaciones Índice

INTERVALOS DE CONFIANZA Julián de la Horra Departamento de Matemáticas U.A.M.

A B MIN C D E F MAX x E.T.S.I. INFORMÁTICA 4º CURSO. INTELIGENCIA ARTIFICIAL E INGENIERÍA DEL CONOCIMIENTO

Tema 7: Aprendizaje de árboles de decisión

Búsqueda en línea y Búsqueda multiagente

Curso: Métodos de Monte Carlo Unidad 3, Sesión 7: Problemas de conteo

Matrices. En este capítulo: matrices, determinantes. matriz inversa

Algebra lineal y conjuntos convexos

Matemática 2. Clase práctica de coordenadas y cambio de base

ESTALMAT-Andalucía Actividades 09/10

INAPROXIMABILIDAD. Curso: Algoritmos de aproximación Docente: Pablo Romero Estudiante: Daniel La Buonora Octubre de 2016

Apellidos:... Nombre:...

Estadística I Guión de la Práctica 2 Probabilidad y modelos probabilísticos; Introducción a la inferencia estadística

TEMA 1.- PROBABILIDAD.-CURSO 2016/2017

Tema 2: Representación de problemas como espacios de estados

Arboles de decisión. Area de Computación e Inteligencia Artificial

Tema 1: Distribuciones en el muestreo

Tema 8: Árboles de decisión

Tema 2 Algebra. Expresiones algebraicas Índice

Materia: Matemática de Octavo Tema: Conjunto Q (Números Racionales)

Cálculo científico y técnico con HP49g/49g+/48gII/50g Módulo 3: Aplicaciones Tema 3.5 Cadenas de Markov

SIN CALCULADORA! Este método es bastante extendido pero no es conocido por todos, por lo que vamos a comenzar por él.

Tema 7: Problemas clásicos de Programación Lineal

UNIDAD DE APRENDIZAJE II

lasmatemáticas.eu Pedro Castro Ortega materiales de matemáticas

Simulación I. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

Números naturales y recursividad

Tema 2.- Formas Cuadráticas.

TEMA 1.- POLINOMIOS Y FRACCIONES ALGEBRAICAS

Aplicaciones Lineales

Inferencia. Mauricio Olivares. 19 de junio de 2015 ITAM

Maestría en Bioinformática Probabilidad y Estadística: Clase 13

Tema 2. Fundamentos Teóricos de la. programación dinámica Teorema de Optimalidad de Mitten

Procesos estocásticos

viene dada por la sumatoria de las N observaciones, dividida por el tamaño de la

Tema 4: Búsqueda informada mediante técnicas heurísticas

CURSO CERO DE MATEMATICAS. Apuntes elaborados por Domingo Pestana Galván. y José Manuel Rodríguez García

Sesión 14: Redes de Decisión

Tema 1: Matrices. El concepto de matriz alcanza múltiples aplicaciones tanto en la representación y manipulación de datos como en el cálculo numérico.

Transcripción:

Inteligencia Artificial II Introducción a las Redes Bayesianas J. L. Ruiz Reina Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Inteligencia Artificial II - Tema 5 p. 1/71

Redes bayesianas Como vimos en el tema anterior, las relaciones de independencia (condicional) nos permiten reducir el tamaño de la información necesaria para especificar una DCC Las redes bayesianas (o redes de creencia) constituyen una manera práctica y compacta de representar el conocimiento incierto, basada en esta idea Inteligencia Artificial II - Tema 5 p. 2/71

Redes bayesianas Una red bayesiana es un grafo dirigido acíclico que consta de Un conjunto de nodos, uno por cada variable aleatoria del mundo Un conjunto de arcos dirigidos que conectan los nodos; si hay un arco de X a Y decimos que X es un padre de Y (padres(x) denota el conjunto de v.a. que son padres de X) Cada nodo X i contiene la distribución de probabilidad condicional P(X i padres(x i )) Intuitivamente, en una red bayesiana un arco entre X e Y significa una influencia directa de X sobre Y Es tarea del experto en el dominio el decidir las relaciones de dependencia directa (es decir, la topología de la red) Inteligencia Artificial II - Tema 5 p. 3/71

Ejemplo de red bayesiana (Russell y Norvig) P(sol) P(lluv) P(nubl) P(nieve) P(caries) 0.7 0.2 0.08 0.02 0.8 Tiempo Caries Caries P(dolor) caries no caries 0.6 0.1 Dolor Huecos Caries P(hueco) caries 0.9 no caries 0.2 Inteligencia Artificial II - Tema 5 p. 4/71

Observaciones sobre el ejemplo La topología de la red anterior nos expresa que: Caries es una causa directa de Dolor y Huecos Dolor y Huecos son condicionalmente independientes dada Caries T iempo es independiente de las restantes variables No es necesario dar la probabilidad de las negaciones de caries, dolor,... Inteligencia Artificial II - Tema 5 p. 5/71

Otro ejemplo (Pearl, 1990): Tenemos una alarma antirrobo instalada en una casa La alarma salta normalmente con la presencia de ladrones Pero también cuando ocurren pequeños temblores de tierra Tenemos dos vecinos en la casa, Juan y María, que han prometido llamar a la policía si oyen la alarma Juan y María podrían no llamar aunque la alarma sonara: por tener música muy alta en su casa, por ejemplo Incluso podrían llamar aunque no hubiera sonado: por confundirla con un teléfono, por ejemplo Inteligencia Artificial II - Tema 5 p. 6/71

Red bayesiana para el ejemplo de la alarma P(robo) 0.001 Robo Terremoto P(terr) 0.002 Robo Terrem P(alarma) Alarma robo robo no robo no robo terr 0.95 no terr terr 0.94 0.29 no terr 0.001 Alarma P(juanll) Alarma P(mariall) Juanllama Mariallama alarma 0.90 alarma 0.70 no alarma 0.05 no alarma 0.01 Inteligencia Artificial II - Tema 5 p. 7/71

Observaciones sobre el ejemplo La topología de la red nos expresa que: Robo y Terremoto son causas directas para Alarma También, Robo y Terremoto son causas para Juanllama y para Mariallama, pero esa influencia sólo se produce a través de Alarma: ni Juan ni María detectan directamente el robo ni los pequeños temblores de tierra En la red no se hace referencia directa, por ejemplo, a las causas por las cuales María podría no oír la alarma: éstas están implícitas en la tabla de probabilidades P(M ariallama Alarma) Inteligencia Artificial II - Tema 5 p. 8/71

Un tercer ejemplo (Charniak, 1991): Supongamos que quiero saber si alguien de mi familia está en casa, basándome en la siguiente información Si mi esposa sale de casa, usualmente (pero no siempre) enciende la luz de la entrada Hay otras ocasiones en las que también enciende la luz de la entrada Si no hay nadie en casa, el perro está fuera Si el perro tiene problemas intestinales, también se deja fuera Si el perro está fuera, oigo sus ladridos Podría oír ladrar y pensar que es mi perro aunque no fuera así Variables aleatorias (booleanas) en este problema: Fuera (nadie en casa), Luz (luz en la entrada), Perro (perro fuera), Inst (problemas intestinales en el perro) y Oigo (oigo al perro ladrar) Inteligencia Artificial II - Tema 5 p. 9/71

Red bayesiana para el ejemplo de la familia fuera de casa P(fuera) 0.15 Fuera Inst P(inst) 0.01 Fuera Inst P(perro) Fuera P(luz) fuera 0.6 no fuera 0.05 Luz Perro fuera fuera no fuera inst no inst inst 0.99 0.90 0.97 no fuera no inst 0.3 Perro P(oigo) perro 0.7 no perro 0.01 Oigo Inteligencia Artificial II - Tema 5 p. 10/71

Las redes bayesianas representan DCCs Consideremos una red bayesiana con n variables aleatorias Y un orden entre esas variables: X 1,...,X n En lo que sigue, supondremos que: padres(x i ) {X i 1,...,X 1 } (para esto, basta con que el orden escogido sea consistente con el orden parcial que induce el grafo) P(X i X i 1,...,X 1 ) = P(X i padres(x i )) (es decir, cada variable es condicionalmente independiente de sus anteriores, dados sus padres en la red) Estas condiciones expresan formalmente nuestra intuición al representar nuestro mundo mediante la red bayesiana correspondiente En el ejemplo de la alarma, la red expresa que creemos que P(M ariallama Juanllama, Alarma, T erremoto, Robo) = P(M ariallama Alarma) Inteligencia Artificial II - Tema 5 p. 11/71

Las redes bayesianas representan DCCs En las anteriores condiciones, y aplicando repetidamente la regla del producto: P(X 1,...,X n ) = P(X n X n 1...,X 1 )P(X n 1...,X 1 ) =...... = n P(X i X i 1,...,X 1 ) = i=1 n P(X i padres(x i )) i=1 Es decir, una red bayesiana representa una DCC obtenida mediante la expresión P(X 1,...,X n ) = n i=1 P(X i padres(x i )) Por ejemplo, en el ejemplo de la alarma, la probabilidad de que la alarma suene, Juan y María llamen a la policía, pero no haya ocurrido nada es (usamos iniciales, por simplificar): P(j,m,a, r, t) = P(j a)p(m a)p(a r, t)p( r)p( t) = = 0.9 0.7 0.001 0.999 0.998 = 0.00062 Inteligencia Artificial II - Tema 5 p. 12/71

Representaciones compactas Dominios localmente estructurados: Las relaciones de independencia que existen entre las variables de un dominio hacen que las redes bayesianas sean una representación mucho más compacta y eficiente de una DCC que la tabla con todas las posibles combinaciones de valores Además, para un experto en un dominio de conocimiento suele ser más natural dar probabilidades condicionales que directamente las probabilidades de la DCC Inteligencia Artificial II - Tema 5 p. 13/71

Representaciones compactas Con n variables, si cada variable está directamente influenciada por k variables a lo sumo, entonces una red bayesiana necesitaría n2 k números, frente a los 2 n números de la DCC Por ejemplo, Para n = 30 y k = 5, esto supone 960 números frente a 2 30 (billones) Hay veces que una variable influye directamente sobre otra, pero esta dependencia es muy tenue En ese caso, puede compensar no considerar esa dependencia, perdiendo algo de precisión en la representación, pero ganando manejabilidad Inteligencia Artificial II - Tema 5 p. 14/71

Algoritmo de construcción de una red bayesiana Supongamos dado un conjunto de variables aleatorias VARIABLES que representan un dominio de conocimiento (con incertidumbre) CONSTRUYE_RED(VARIABLES) 1. Sea (X_1,...X_n) una ordenación de VARIABLES 2. Sea RED una red bayesiana vacía 3. PARA i=1,...,n HACER 3.1 Añadir un nodo etiquetado con X_i a RED 3.2 Sea padres(x_i) un subconjunto minimal de {X_{i-1},...,X1} tal que existe una independencia condicional entre X_i y cada elemento de {X_{i-1},...,X1} dado padres(x_i) 3.3 Añadir en RED un arco dirigido entre cada elemento de padres(x_i) y X_i 3.4 Asignar al nodo X_i la tabla de probabilidad P(X_i padres(x_i)) 4. Devolver RED Inteligencia Artificial II - Tema 5 p. 15/71

Ejemplo de construcción de red bayesiana (alarma) Partiendo del orden Robo, T erremoto, Alarma, Juanllama, M ariallama, y aplicando el algoritmo anterior obtenemos la red del ejemplo: P(robo) 0.001 Robo Terremoto P(terr) 0.002 Robo Terrem P(alarma) Alarma robo robo no robo no robo terr 0.95 no terr terr 0.94 0.29 no terr 0.001 Alarma P(juanll) Alarma P(mariall) Juanllama Mariallama alarma 0.90 alarma 0.70 no alarma 0.05 no alarma 0.01 Inteligencia Artificial II - Tema 5 p. 16/71

Construcción de redes bayesianas Problema: elección del orden entre variables En general, deberíamos empezar por las causas originales, siguiendo con aquellas a las que influencian directamente, etc..., hasta llegar a las que no influyen directamente sobre ninguna (modelo causal) Esto hará que las tablas reflejen probabilidades causales más que diagnósticos, lo cual suele ser preferible por los expertos Inteligencia Artificial II - Tema 5 p. 17/71

Construcción de redes bayesianas Un orden malo puede llevar a representaciones poco eficientes Ejemplo: red izquierda (M ariallama, Juanllama, Alarma, Robo y T erremoto) y red derecha (M ariallama, Juanllama, T erremoto, Robo y Alarma) Mariallama Mariallama Juanllama Juanllama Alarma Terremoto Robo Robo Terremoto Alarma Inteligencia Artificial II - Tema 5 p. 18/71

Inferencia probabilística en una red bayesiana El problema de la inferencia en una red bayesiana: Calcular la probabilidad a posteriori para un conjunto de variables de consulta, dado que se han observado algunos valores para las variables de evidencia Por ejemplo, podríamos querer saber qué probabilidad hay de que realmente se haya producido un robo, sabiendo que tanto Juan como María han llamado a la policía Es decir, calcular P(Robo juanllama, mariallama) Inteligencia Artificial II - Tema 5 p. 19/71

Inferencia probabilística en una red bayesiana Notación: X denotará la variable de consulta (sin pérdida de generalidad supondremos sólo una variable) E denota un conjunto de variables de evidencia E 1,E 2,...,E n y e una observación concreta para esas variables Y denota al conjunto de las restantes variables de la red (variables ocultas) e y representa un conjunto cualquiera de valores para esas variables Inteligencia Artificial II - Tema 5 p. 20/71

Inferencia por enumeración Recordar la fórmula para la inferencia probabilística a partir de una DCC: P(X e) = αp(x,e) = α y P(X,e,y) Esta fórmula será la base para la inferencia probabilística: Puesto que una red bayesiana es una representación de una DCC, nos permite calcular cualquier probabilidad a posteriori a partir de la información de la red bayesiana Esencialmente, se trata de una suma de productos de los elementos de las tablas de las distribuciones condicionales Inteligencia Artificial II - Tema 5 p. 21/71

Un ejemplo de inferencia probabilística Ejemplo de la alarma (usamos iniciales por simplificar): P(R j,m) = α P(r j,m),p( r j,m) = = α P(r,t,a,j,m), P( r,t,a,j,m) = t a t a = α P(r)P(t)P(a r,t)p(j a)p(m a), t a P( r)p(t)p(a r, t)p(j a)p(m a) t a Inteligencia Artificial II - Tema 5 p. 22/71

Un ejemplo de inferencia probabilística En este ejemplo hay que hacer 2 4 sumas, cada una de ellas con un producto de cinco números tomados de la red bayesiana En el peor de los casos, con n variables booleanas, este cálculo toma O(n2 n ) Una primera mejora consiste en sacar factor común de aquellas probabilidades que sólo involucran variables que no aparecen en el sumatorio: P(R j,m) = α P(r) t P(t) a P(a r, t)p(j a)p(m a), P( r) t P(t) a P(a r,t)p(j a)p(m a) = = α 0.00059224, 0.0014919 = 0.284, 0.716 Inteligencia Artificial II - Tema 5 p. 23/71

Inferencia por enumeración Las operaciones realizadas en la fórmula anterior se pueden simbolizar con el siguiente árbol: P(a r,t).95 P(t).002 P(r).001 + P(~t).998 + P(~a r,t) P(a r,~t) +.05.94 P(~a r,~t).06 P(j a).90 P(j ~a).05 P(j a).90 P(j ~a).05 P(m a).70 P(m ~a).01 P(m a).70 P(m ~a).01 Inteligencia Artificial II - Tema 5 p. 24/71

Algoritmo de inferencia por enumeración Entrada: una v.a. X de consulta, un conjunto de valores observados e para la variables de evidencia y una red bayesiana. Salida: P(X e) FUNCION INFERENCIA_ENUMERACION(X,e,RED) 1. Sea Q(X) una distribución de probabilidad sobre X, inicialmente vacía 2. PARA cada valor x_i de X HACER 2.1 Extender e con el valor x_i para X 2.2 Hacer Q(x_i) el resultado de ENUM_AUX(VARIABLES(RED),e,RED) 3. Devolver NORMALIZA(Q(X)) Inteligencia Artificial II - Tema 5 p. 25/71

Algoritmo de inferencia por enumeración FUNCION ENUM_AUX(VARS,e,RED) 1. Si VARS es vacío devolver 1 2. Si no, 2.1 Hacer Y igual a PRIMERO(VARS) 2.2 Si Y tiene un valor y en e, devolver P(y padres(y,e)) ENUM_AUX(RESTO(VARS),e) Si no, devolver SUMATORIO(y,P(y padres(y,e)) ENUM_AUX(RESTO(VARS),e_y)) (donde: padres(y,e) es el conjunto de valores que toman en e los padres de Y en la RED, y e_y extiende e con el valor y para Y) Inteligencia Artificial II - Tema 5 p. 26/71

Algoritmo de inferencia por enumeración Observación: Para que el algoritmo funcione, VARIABLES(RED) debe devolver las variables en un orden consistente con el orden implícito en el grafo de la red (de arriba hacia abajo) Recorrido en profundidad: El algoritmo genera el árbol de operaciones anterior de arriba hacia abajo, en profundidad Por tanto, tiene un coste lineal en espacio Puede realizar cálculos repetidos En el ejemplo, P(j a)p(m a) y P(j a)p(m a) se calculan dos veces Cuando hay muchas variables, estos cálculos redundantes son inaceptables en la práctica Inteligencia Artificial II - Tema 5 p. 27/71

Evitando cálculos redundantes Idea para evitar el cálculo redundante: Realizar las operaciones de derecha a izquierda (o, equivalentemente, de abajo a arriba en el árbol de operaciones) Almacenar los cálculos realizados para posteriores usos En lugar de multiplicar números, multiplicaremos tablas de probabilidades Denominaremos factores a estas tablas Inteligencia Artificial II - Tema 5 p. 28/71

Evitando cálculos redundantes Por ejemplo, la operación P(R j,m) = αp(r) t P(t) a P(a R,t)P(j a)p(m a) puede verse como la multiplicación de cinco tablas o factores en los que hay intercaladas dos operaciones de suma o agrupamiento Se trata de hacer esas operaciones entre factores de derecha a izquierda Es el denominado algoritmo de eliminación de variables Veremos con más detalle cómo actuaría este algoritmo para calcular P(R j,m) Inteligencia Artificial II - Tema 5 p. 29/71

El algoritmo de eliminación de variables: un ejemplo En primer lugar, tomamos un orden fijado entre las variables de la red Un orden adecuado será esencial para la eficiencia del algoritmo (más adelante comentaremos algo más sobre el orden) En nuestro caso, tomaremos el inverso de un orden consistente con la topología de la red: M,J,A,T,R El factor correspondiente a M se obtiene a partir de la distribución condicional P(M A) Como M es una variable de evidencia y su valor está fijado a true, el factor correspondiente a P(m A), que notamos f ( A), es la tabla con componentes P(m a) y P(m a): Inteligencia Artificial II - Tema 5 p. 30/71

El algoritmo de eliminación de variables: un ejemplo La siguiente variable en el orden es J De manera análoga f 2 (A) (tomado de P(j A)) es el factor correspondiente Siguiente variable: A El factor correspondiente, notado f 3 (A,R,T) se obtiene a partir de P(A R,T) Ninguna de esas variables es de evidencia, y por tanto no están fijados sus valores Es una tabla con 2 2 2, una por cada combinación de valores de R (variable de consulta) A y T (variables ocultas) En este caso, esta tabla está directamente en la propia red Inteligencia Artificial II - Tema 5 p. 31/71

El algoritmo de eliminación de variables: un ejemplo Hasta ahora, no hemos realizado ninguna operación Sólamente hemos construido los factores Pero A es una variable oculta, así que hemos de realizar el sumatorio sobre sus valores Por tanto, multiplicamos ahora los tres factores y sumamos sobre A La multiplicación de f 1, f 2 y f 3, notada f 4 (A,R,T) se obtiene multiplicando las entradas correspondientes a los mismos valores de A, R y T Es decir, para cada valor v 1 de A, v 2 de R y v 3 de T se tiene f 4 (v 1,v 2,v 3 ) = f 1 (v 1 )f 2 (v 1 )f 3 (v 1,v 2,v 3 ) Por ejemplo: f 4 (true,false,true) = f 1 (true)f 2 (true)f 3 (true,false,true) = 0.70 0.90 0.29 = 0.1827 Inteligencia Artificial II - Tema 5 p. 32/71

El algoritmo de eliminación de variables: un ejemplo Almacenamos f 4 y nos olvidamos de f 1,f 2 y f 3 Nota: aunque no es éste el caso, si alguno de los factores no tuviera a la variable A como argumento, lo conservaríamos y no participaría en la multiplicación, ni en el agrupamiento posterior Inteligencia Artificial II - Tema 5 p. 33/71

El algoritmo de eliminación de variables: un ejemplo Ahora hay que agrupar el valor de A en f 4 (realizar el sumatorio a ) Así, obtenemos una tabla f 5 (R,T) haciendo f 5 (v 1,v 2 ) = a f 4(a,v 1,v 2 ) para cada valor v 1 de R y v 2 de T, y variando a en los posibles valores de A Llamaremos a esta operación agrupamiento Hemos eliminado la variable A Una vez realizada la agrupación, guardamos f 5 y nos olvidamos de f 4 Inteligencia Artificial II - Tema 5 p. 34/71

El algoritmo de eliminación de variables: un ejemplo Continuamos con la siguiente variable T : El factor correspondiente a esta variable, que notaremos f 6 (T), es la tabla P(T) T es una variable oculta Por tanto, debemos multiplicar y agrupar, eliminando la variable T Notemos por f 7 (R) al resultado de multiplicar f 6 por f 5 y agrupar por T Podemos olvidarnos de f 5 y f 6 Inteligencia Artificial II - Tema 5 p. 35/71

El algoritmo de eliminación de variables: un ejemplo Ultima variable: R El factor correspondiente a esta variable, que notaremos f 8 (R), es la tabla P(R) Para finalizar: Multiplicamos los factores que nos quedan (f 7 y f 8 ) para obtener f 9 (R) y normalizamos para que sus dos entradas sumen 1 La tabla finalmente devuelta es justamente la distribución P(R j, m) Inteligencia Artificial II - Tema 5 p. 36/71

Observaciones sobre el algoritmo de eliminación de variables En cada momento tenemos un conjunto de factores, que va cambiando: Al añadir un nuevo factor, uno por cada variable que se considera Al multiplicar factores Al agrupar por una variable oculta Multiplicación de tablas: Si f 1 (X,Y ) y f 2 (Y,Z) son dos tablas cuyas variables en común son las de Y, se define su producto f(x,y,z) como la tabla cuyas entradas son f(x,y,z) = f 1 (x,y)f 2 (y,z) Similar a una operación join en bases de datos, multiplicando los valores correspondientes En el algoritmo de eliminación de variables, sólo multiplicaremos tablas: Previo a realizar cada operación de agrupamiento Y en el paso final Inteligencia Artificial II - Tema 5 p. 37/71

Observaciones sobre el algoritmo de eliminación de variables Agrupamiento de tablas: Dado un conjunto de factores, la operación de agrupar (respecto de los valores de una v.a. X) consiste en obtener otro conjunto de factores Se dejan igual aquellos que no tienen a la variable X entre sus argumentos Y el resto de factores se multiplican y se sustituyen por el resultado multiplicarlos y sumar en la tabla por cada posible valor de X Por ejemplo, si en el conjunto de factores f 1 (T),f 2 (A,R,T),f 3 (A),f 4 (A) tuvierámos que agrupar por la variable T, dejamos f 3 y f 4 y sustituimos f 1 y f 2 por el resultado de agregar (por cada valor de T ) la multiplicación de f 1 y f 2 La operación de sumar por un valor es similar a la agregación de una columna en bases de datos Inteligencia Artificial II - Tema 5 p. 38/71

Un paso previo de optimización: variables irrelevantes En el algoritmo de eliminación de variables, se suele realizar un paso previo de eliminación de variables irrelevantes para la consulta Ejemplo: Si la consulta a la red del ejemplo es P(J r), hay que calcular αp(r) t P(t) a P(a r,t)p (J a) m P(m a) Pero m P(m a) = 1, así que la variable M es irrelevante para la consulta Siempre podemos eliminar cualquier variable que sea una hoja de la red y que no sea de consulta ni de evidencia Y en general, se puede demostrar que toda variable que no sea antecesor (en la red) de alguna de las variables de consulta o de evidencia, es irrelevante para la consulta y por tanto puede ser eliminada Inteligencia Artificial II - Tema 5 p. 39/71

El algoritmo de eliminación de variables Entrada: una v.a. X de consulta, un conjunto de valores observados e para la variables de evidencia y una red bayesiana Salida: P(X e) FUNCION INFERENCIA_ELIMINACION_VARIABLES(X,e,RED) 1. Sea RED_E el resultado de eliminar de RED las variables irrelevantes para la consulta realizada 2. Sea FACTORES igual a vacío 3. Sea VARIABLES el conjunto de variables de RED_E 4. Sea VAR_ORD el conjunto de VARIABLES ordenado según un orden de eliminación 5. PARA cada V en VAR_ORD HACER 5.1 Sea FACTOR el factor correspondiente a VAR (respecto de e) 5.2 Añadir FACTOR a FACTORES 5.3 Si VAR es una variable oculta hacer FACTORES igual a AGRUPA(VAR,FACTORES) 6. Devolver NORMALIZA(MULTIPLICA(FACTORES)) Inteligencia Artificial II - Tema 5 p. 40/71

Otro ejemplo (Béjar) Consideremos las siguientes variables aleatorias: D: práctica deportiva habitual A: alimentación equilibrada S: presión sanguínea alta F : fumador I: ha sufrido un infarto de miocardio Las relaciones causales y el conocimiento probabilístico asociado están reflejadas en la siguiente red bayesiana Inteligencia Artificial II - Tema 5 p. 41/71

Otro ejemplo: red bayesiana P(d) 0.1 D A P(a) 0.4 A D P(s) P(f) 0.4 a no a a no a d d no d no d 0.01 0.2 0.25 0.7 S F s S F P(i) no s s no s f f no f no f 0.8 0.6 0.7 0.3 I Inteligencia Artificial II - Tema 5 p. 42/71

Ejemplo de inferencia probabilística Podemos usar la red bayesiana para calcular la probabilidad de ser fumador si se ha sufrido un infarto y no se hace deporte, P(F i, d) Directamente: Aplicamos la fórmula: P(F i, d) = αp(f,i, d) = α S,A P(F,i, d,a,s) Factorizamos según la red: P(F i, d) = α S,A P( d)p(a)p(s d,a)p (F)P (i S,F) Sacamos factor común: P(F i, d) = αp( d)p(f) A P(A) S P(S d,a)p (i S,F) Inteligencia Artificial II - Tema 5 p. 43/71

Ejemplo de inferencia probabilística Calculemos: Para F = true: P(f i, d) = α P( d) P(f) [P(a) (P(s d,a) P(i s,f) + P( s d,a) P(i s,f))+ +P( a) (P(s d, a) P(i s,f) + P( s d, a) P(i s,f))] = = α 0.9 0.4 [0.4 (0.25 0.8+0.75 0.6)+0.6 (0.7 0.8+0.3 0.6)] = α 0.253 Análogamente, para F = false, P( f i, d) = α 0,274 Normalizando, P(F i, d) = 0.48,0.52 Inteligencia Artificial II - Tema 5 p. 44/71

Aplicando eliminación de variables Seguiremos el siguiente orden de variables, inspirado en la topología de la red (de abajo a arriba): I,F,S,A,D Aunque igual otro orden sería más eficiente, pero eso no lo sabemos a priori Variable I: El factor f I (S,F) es P(i S,F) (no depende de I ya que su valor está determinado a i): S F f_{i}(s,f)=p(i S,F) ----------------------------------------- s f 0.8 no s f 0.6 s no f 0.7 no s no f 0.3 FACTORES = {f I (S,F)} Inteligencia Artificial II - Tema 5 p. 45/71

Aplicando eliminación de variables Variable F : El factor f F (F) es P(F): F f_{f}(f)=p(f) ---------------------------------- f 0.4 no f 0.6 FACTORES = {f I (S,F),f F (F)} Inteligencia Artificial II - Tema 5 p. 46/71

Aplicando eliminación de variables Variable S: El factor f S (S,A) es P(S, d,a) (no depende de D ya que su valor está determinado a d): S A f_{s}(s,a)=p(s no d,a) ----------------------------------------- s a 0.25 s no a 0.7 no s a 0.75 no s no a 0.3 FACTORES = {f I (S,F),f F (F),f S (S,A)} Inteligencia Artificial II - Tema 5 p. 47/71

Aplicando eliminación de variables Como S es una variable oculta, agrupamos por S Para ello, primero multiplicamos f I (S,F) y f S (S,A) obteniendo g(s,a,f) S A F g(f,a)=p(s no d,a) x P(i S,F) ---------------------------------------------------- s a f 0.25 x 0.8 s no a f 0.7 x 0.8 s a no f 0.25 x 0.7 s no a no f 0.7 x 0.7 no s a f 0.75 x 0.6 no s no a f 0.3 x 0.6 no s a no f 0.75 x 0.3 no s no a no f 0.3 x 0.3 Inteligencia Artificial II - Tema 5 p. 48/71

Aplicando eliminación de variables Y ahora, sumamos g(s,a,f) por la variable S, obteniendo h(a,f) A F h(a,f)=sum_{s}g(s,a,f) ---------------------------------------------- a f 0.25 x 0.8 + 0.75 x 0.6 = 0.65 no a f 0.7 x 0.8 + 0.3 x 0.6 = 0.74 a no f 0.25 x 0.7 + 0.75 x 0.3 = 0.4 no a no f 0.7 x 0.7 + 0.3 x 0.3 = 0.58 Acabamos de eliminar la variable S FACTORES = {h(a,f),f F (F)} (nótese que f F (F) no se ha usado) Inteligencia Artificial II - Tema 5 p. 49/71

Aplicando eliminación de variables Variable A: El factor f A (A) es P(A): A f_{a}(a)=p(a) -------------------------------- a 0.4 no a 0.6 FACTORES = {f A (A),h(A,F),f F (F)} Inteligencia Artificial II - Tema 5 p. 50/71

Aplicando eliminación de variables Como A es una variable oculta, agrupamos por A Para ello, primero multiplicamos f A (A) y h(a,f) obteniendo k(a,f) A F k(f,a)=p(a) x h(a,f) ------------------------------------------- a f 0.4 x 0.65 = 0.26 no a f 0.6 x 0.74 = 0.444 a no f 0.4 x 0.4 = 0.16 no a no f 0.6 x 0.58 = 0.348 Inteligencia Artificial II - Tema 5 p. 51/71

Aplicando eliminación de variables Y ahora, sumamos k(a,f) por la variable A, obteniendo l(f) (y eliminando, por tanto, la variable S) F l(f)=sum_{a}k(a,f) -------------------------------- f 0.26 + 0.444 = 0.704 no f 0.16 + 0.348 = 0.508 FACTORES = {l(f),f F (F)} Inteligencia Artificial II - Tema 5 p. 52/71

Aplicando eliminación de variables Variable D: Factor f D () (no depende de D, ya que su valor está fijado a d, por tanto se trata de una tabla con una única entrada): 0.9 FACTORES = {f D (),l(f),f F (F)} Inteligencia Artificial II - Tema 5 p. 53/71

Aplicando eliminación de variables Ultimo paso: multiplicamos y normalizamos Obsérvese que sólo hasta este paso hacemos uso del factor correspondiente a F Multiplicación F m(f)=f_d() x l(f) x f_f(f) ------------------------------------- f 0.9 x 0.704 x 0.4 = 0.253 no f 0.9 x 0.508 x 0.6 = 0.274 Normalizando obtenemos finalmente: P(F i, d) = 0.48, 0.52 Por tanto, la probabilidad de ser fumador, dado que se ha tenido un infarto y no se hace deporte, es del 48% Inteligencia Artificial II - Tema 5 p. 54/71

Complejidad del algoritmo de eliminación de variables La complejidad del algoritmo (tanto en tiempo como en espacio) está dominada por el tamaño del mayor factor obtenido durante el proceso Y en eso influye el orden en el que se consideren las variables (orden de eliminación) Podríamos usar un criterio heurístico para elegir el orden de eliminación En general, es conveniente moverse desde las hojas hacia arriba (consistentemente con la topología de la red) Si la red está simplemente conectada (poliárbol) se puede probar que la complejidad del algoritmo (en tiempo y espacio) es lineal en el tamaño de la red (el número de entradas en sus tablas) Una red está simplemente conectada si hay a lo sumo un camino (no dirigido) entre cada dos nodos Inteligencia Artificial II - Tema 5 p. 55/71

Complejidad de la inferencia exacta Pero en general, el algoritmo tiene complejidad exponencial (en tiempo y espacio) en el peor de los casos Cuando la inferencia exacta se hace inviable, es esencial usar métodos aproximados de inferencia Métodos estocásticos, basados en muestreos que simulan las distribuciones de probabilidad de la red Inteligencia Artificial II - Tema 5 p. 56/71

Muestreo Por muestreo (en ingles, sampling) respecto de una distribución de probabilidad entendemos métodos de generación de eventos, de tal manera que la probabilidad de generación de un evento dado coincide con la que indica la distribución El muestreo más sencillo: consideremos una v.a. booleana A tal que P(A) = θ,1 θ Basta con tener un método de generación aleatoria y uniforme de números x [0,1] Si se genera x < θ, se devuelve a; en caso contrario a En el límite, el número de muestras generadas con valor a entre el número de muestras totales es θ De manera sencilla, se generaliza esta idea para diseñar un procedimiento de muestreo respecto de la DCC que representa una red bayesiana. Inteligencia Artificial II - Tema 5 p. 57/71

Ejemplo de red bayesiana (Russell & Norvig) Consideremos las siguientes variables aleatorias booleanas: N: el cielo está nublado A: el aspersor se ha puesto en marcha LL: ha llovido HM: la hierba está mojada Las relaciones causales y el conocimiento probabilístico asociado están reflejadas en la siguiente red bayesiana Nótese que es un ejemplo de red que no está simplemente conectada. Inteligencia Artificial II - Tema 5 p. 58/71

Otro ejemplo: red bayesiana N P(n) 0.5 N n no n P(a) 0.1 0.5 A Ll N P(ll) n 0.8 no n 0.2 N Ll P(hm) HM a no n n no n ll ll no ll no ll 0.99 0.9 0.9 0.00 Inteligencia Artificial II - Tema 5 p. 59/71

Ejemplo de muestreo a priori Veamos cómo generar un evento aleatorio completo a partir de la DCC que especifica la red anterior Muestreo de P(N) = 0.5,0.5 ; supongamos que aplicamos el método anterior y obtenemos n Muestreo de P(A n) = 0.1,0.9 ; supongamos que se devuelve a Muestreo de P(LL n) = 0.8,0.2 ; supongamos que obtenemos ll Muestreo de P(HM a,ll) = 0.9,0.1 ; supongamos que se devuelve hm Por tanto el evento generado por muestreo ha sido el n, a,ll,hm La probabilidad de generar ese evento es 0.5 0.9 0.8 0.9 = 0.324, ya que cada muestreo individual se realiza independientemente Inteligencia Artificial II - Tema 5 p. 60/71

Algoritmo de muestreo a priori Supongamos dada una RED bayesiana con un conjunto de variables X 1,...,X n ordenadas de manera consistente con el orden implícito en la red MUESTREO-A-PRIORI(RED) 1. PARA i=1,...,n HACER x_i el resultado de un muestreo de P(X_i padres(x_i)) 2. Devolver (x_1,...,x_n) Inteligencia Artificial II - Tema 5 p. 61/71

Propiedades del algoritmo de muestreo a priori Sea S MP (x 1,...,x n ) la probabilidad de que el evento (x 1,...,x n ) sea generado por MUESTREO-A-PRIORI Es fácil ver (deduciéndolo exclusivamente del algoritmo) que S MP (x 1,...,x n ) = n i=1 P(x i padres(x i )) Por tanto, si repetimos el muestreo anterior N veces y llamamos N MP (x 1,...,x n ) al número de veces que se devuelve el evento (x 1,...,x n ), entonces N MP (x 1,...,x n ) N P(x 1,...,x n ) Donde significa que en el límite (cuando N tiende a ) esa igualdad se convierte en exacta (según la ley de los grandes números) Es lo que se llama una estimación consistente Inteligencia Artificial II - Tema 5 p. 62/71

Muestreo con rechazo La propiedad anterior será la base para los algoritmos de inferencia no exacta que veremos a continuación Recordar que el problema de la inferencia probabilística es el de calcular P(X e) donde e denota un conjunto de valores concretos observados para algunas variables y X es la variable de consulta Muestreo con rechazo: generar muestras y calcular la proporción de eventos generados en los que e se cumple Ejemplo: para estimar P(LL a) generar 100 muestras con el algoritmo anterior; si de estas muestras hay 27 que tienen valor de A igual a a, y de estas 27 LL es ll en 8 de los casos y es ll en 19, entonces la estimación es: P(LL a) Normaliza( 8,19 ) = 0.296,0.704 La respuesta exacta sería 0.3, 0.7 Inteligencia Artificial II - Tema 5 p. 63/71

Algoritmo de inferencia: muestreo con rechazo Entrada: una v.a. X de consulta, un conjunto de valores observados e para la variables de evidencia, una RED bayesiana (con n variables) y número N de muestras totales a generar MUESTREO-CON-RECHAZO(X,e,RED,N) 1. Sea N[X] un vector con una componente por cada posible valor de la variable de consulta X, inicialmente todas a 0 2. PARA k=1,...,n HACER 2.1 Sea (y1,...,yn) igual a MUESTREO-A-PRIORI(RED) 2.2 SI y = (y1,...,yn) es consistente con e entonces HACER N[x] igual a N[x]+1, donde en el evento y la v.a. X toma el valor x 3. Devolver NORMALIZA(N[X]) Es fácil ver, deducido de las propiedades de MUESTREO-A-PRIORI, que este algoritmo devuelve una estimación consistente de P(X e) Problema: se rechazan demasiadas muestras (sobre todo si el número de variables de evidencia es grande) Inteligencia Artificial II - Tema 5 p. 64/71

Ponderación por verosimilitud Es posible diseñar un algoritmo que sólo genere muestras consistentes con la observación e Los valores de las variables de evidencia no se generan: quedan fijados de antemano Pero no todos los eventos generados pesan lo mismo: aquellos en los que la evidencia es más improbable deben contar menos Por tanto, cada evento generado va a ir a compañado de un peso igual al producto de las probabilidades condicionadas de cada valor que aparezca en e Inteligencia Artificial II - Tema 5 p. 65/71

Ejemplo de ponderación por verosimilitud Supongamos que queremos calcular P(LL a, hm); para generar cada muestra con su correspondiente peso w, hacemos lo siguiente (w = 1.0 inicialmente): Muestreo de P(N) = 0.5,0.5 ; supongamos que se devuelve n Como A es una variable de evidencia (cuyo valor es a) hacemos w igual a w P(a n) (es decir, w = 0.1) Muestreo de P(LL n) = 0.8,0.2 ; supongamos que se devuelve ll HM es una variable de evidencia (con valor hm); por tanto, hacemos w igual a w P(hm a,ll) (es decir, w = 0.099) Por tanto, el muestreo devolvería n,a,ll,hm con un peso igual a 0.099 Este evento contaría para LL = true, pero ponderado con 0.099 (intuitivamente, refleja que es poco probable que funcionen los aspersores un día de lluvia) Inteligencia Artificial II - Tema 5 p. 66/71

Algoritmo de inferencia: ponderación por verosimilitud Entrada: una v.a. X de consulta, un conjunto de valores observados e para la variables de evidencia, una RED bayesiana (con n variables) y un número N de muestras totales a generar PONDERACION-POR-VEROSIMILITUD(X,e,RED,N) 1. Sea W[X] un vector con una componente para cada posible valor de la variable de consulta X, inicialmente todas a 0 2. PARA k=1,...,n HACER 2.1 Sea [(y1,...,yn),w] igual a MUESTRA-PONDERADA(RED,e) 2.2 Hacer W[x] igual a W[x]+w, donde en el evento y la v.a. X toma el valor x 3. Devolver NORMALIZA(W[X]) Inteligencia Artificial II - Tema 5 p. 67/71

Algoritmo de inferencia: ponderación por verosimilitud MUESTRA-PONDERADA(RED,e) 1. Hacer w=1.0 2. PARA i=1,...,n HACER 2.1 SI la variable X_i tiene valor x_i en e ENTONCES w = w p(x_i=x_i padres(x_i)) SI NO, sea x_i el resultado de un muestreo de P(X_i padres(x_i)) 3. Devolver [(x_1,...,x_n),w] Se puede demostrar que el algoritmo PONDERACION-POR-VEROSIMILITUD devuelve una estimación consistente de la probabilidad buscada En el caso de que haya muchas variables de evidencia, el algoritmo podría degradarse, ya que la mayoría de las muestras tendrían un peso infinitesimal Inteligencia Artificial II - Tema 5 p. 68/71

Más sobre algoritmos de inferencia aproximada Existen muchos otros algoritmos de inferencia aproximada en redes bayesianas, más sofisticados que los vistos aquí Uno de ellos es el algoritmo Monte Carlo de cadenas de Markov En él, cada evento se genera a partir del anterior, haciendo cambios aleatorios en el valor de las variables no observadas y dejando fijo el valor de las variables de evidencia Inteligencia Artificial II - Tema 5 p. 69/71

Aplicaciones de las redes bayesianas Aplicaciones en empresas Microsoft: Answer Wizard (Office), diagnóstico de problemas de impresora,... Intel: Diagnóstico de fallos de procesadores HP: Diagnóstico de problemas de impresora Nasa: Ayuda a la decisión de misiones espaciales Otras aplicaciones: diagnóstico médico, e-learning,... En general, sistemas expertos que manejan incertidumbre Inteligencia Artificial II - Tema 5 p. 70/71

Bibliografía Russell, S. y Norvig, P. Inteligencia artificial (Un enfoque moderno), segunda edición (Prentice Hall Hispanoamericana, 2004) Cap. 14: Razonamiento Probabilístico Inteligencia Artificial II - Tema 5 p. 71/71