Post on 27-Jun-2020
Representación del ConocimientoSistemas Expertos
Dr. Alejandro Guerra-Hernández
Universidad VeracruzanaCentro de Investigación en Inteligencia Artificial
Sebastián Camancho No. 5, Xalapa, Ver., México 91000mailto:aguerra@uv.mx
http://www.uv.mx/personal/aguerra/rc
Maestría en Inteligencia Artificial 2019
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 1 / 113
Introducción Definición
Sistema Experto
I Un sistema experto [1] es un programa que se comporta como unperito humano el algún dominio específico, usando conocimientosobre ese dominio en particular.
I Capaz de explicar sus decisiones y su manera de razonar.I Capaz de contender con la incertidumbre y falta de información
inherentes a esta tarea.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 2 / 113
Introducción Definición
Ejemplos de aplicación
I Diagnóstico médico.I Localización de fallas en equipos.I Interpretación de datos cuantitativos.I También se les conoce como sistemas basados en el conocimiento
(KBS).I La explicación es util para garantizar la confianza del usuario en las
recomendaciones del sistema; o para detectar un fallo flagrante en surazonamiento.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 3 / 113
Introducción Incertidumbre
Incertidumbre e Incompletez
I Son inherentes a los sistemas expertos. La información sobre elproblema a resolver puede ser incompleta o ni fiable.
I Las relaciones entre los objetos del dominio pueden ser aproximadas:En el dominio médico, no estamos seguros si un síntoma se hapresentado en un paciente, o que la medida de un dato esabsolutamente correcta.
I Ciertos fármacos pueden presentar reacciones adversas secundarias,pero éste no suele ser el caso. Este tipo de conocimiento requiere unmanejo explícito de la incertidumbre.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 4 / 113
Introducción Estructura
Funciones de un Sistema Experto
Solución del problema. Una función capaz de usar conocimiento sobre eldominio específico del sistema, incluyendo el manejo deincertidumbre.
Interfaz del usuario. Una función que permita la interacción entre elusuario y el sistema experto, incluyendo la capacidad deexplicar las decisiones y el razonamiento del sistema.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 5 / 113
Introducción Estructura
Arquitectura de un Sistema Experto
I Es conveniente dividir el sistema experto en tres módulos, como semuestra:
Base de conocimiento
Máquina de inferencia
Interfaz del usuario
Shell
Usuario
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 6 / 113
Introducción Estructura
Módulos de un Sistema Experto
Base de conocimientos. Todo el conocimiento específico sobre un dominiode aplicación: Hechos, reglas y/o restricciones que describenlas relaciones en el dominio. Puede incluir también métodos,heurísticas e ideas para resolver los problemas en un dominio.
Máquina de inferencia. Todos los procedimientos para usar activamente labase de conocimientos.
Interfaz del usuario. Toda la comunicación entre el usuario y el sistemaexperto, debe proveer la información suficiente para que elusuario entienda el funcionamiento de la máquina deinferencia a lo largo del proceso.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 7 / 113
Introducción Estructura
Shell de un Sistema Experto
I Conformado por la Máquina de inferencia y la interfaz del usuario.I Es independiente del conocimiento del sistema.I La separación provee modularidad.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 8 / 113
Reglas Reglas de producción
Reglas de producción
I Se les conoce también como reglas si-entonces.I Son por mucho el formalismo de representación de conocimiento más
utilizado en los sistemas expertos.I Pueden tener interpretaciones diversas:
I Si condición P entonces conclusión C .I Si situación S entonces acción A.I Si las condiciones C1 y C2 son el caso, entonces la condición C no lo es.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 9 / 113
Reglas Reglas de producción
Características deseables
Modularidad. Cada regla define una pequeña, relativamenteindependiente, pieza de información.
Agregación. Es posible agregar nuevas reglas al sistema, de formarelativamente independiente al resto de sus reglas.
Flexibilidad. Como una consecuencia de la modularidad, las reglas delsistema pueden modificarse con relativa independencia de lasotras reglas.
Transparencia. Facilitan la explicación de las decisiones tomadas por elsistema experto. Es posible automatizar la respuesta apreguntad del tipo ¿Cómo se llegó a esta conclusión? y¿Porqué estás interesado en tal información?
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 10 / 113
Reglas Reglas de producción
Tipos de conocimiento
Categórico. Se refiere a las reglas de producción que definen relacionespuramente lógicas entre conceptos del dominio de unproblema. Son siempre absolutamente verdaderas.
Soft o Probabilístico. Prevalece en dominios como el médico, donde lasrelaciones no son siempre verdaderas y se establecen conbase en su regularidad empírica, usando grados decertidumbre. Las reglas de producción deben ajustarse paracontender con enunciados del tipo: Si condición A entoncesconclusión C con un grado de certeza F .
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 11 / 113
Reglas Reglas de producción
Ejemplo médico
I Proviene del SE desarrollado para el libro de Negrete-Martínez,González-Pérez y Guerra-Hernández [2] sobre la pericia artificial y suimplementación incremental en Lisp.
I Aquí la regla se muestra en un pseudo-código más cercano a lo queharemos en Prolog:Regla 037:IFpaciente(hipertermia,si), paciente(tos,si), paciente(insufResp,si);paciente(estertoresAlveolares,si), paciente(condensacionPulmonar,si)THENpaciente(neumonia,[si,80]).
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 12 / 113
Reglas Reglas de producción
Expertos humanos y validación
I Por lo general, si se quiere desarrollar un sistema experto, seránecesario consultar a un experto humano en el dominio del problemay estudiar el dominio uno mismo.
I Al proceso de extraer conocimiento de los expertos y la literatura deun dominio dado, para acomodarlo a un formalismo de representaciónse le conoce como ingeniería del conocimiento (knowledge elicitation).
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 13 / 113
Reglas Reglas de producción
Dominio para nuestros ejemplos
ventana
cocina
baño sala
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 14 / 113
Reglas Reglas de producción
Fugas de agua
I Luego de consultar con nuestro plomero favorito y consultar eninternet los manuales de plomería para dummies,
I llegamos a la conclusión de que la fuga puede presentarse en el bañoo en la cocina.
I En cualquier caso, la fuga causa que haya agua en el piso de la sala.I Observen que asumimos que la fuga solo se da en un sitio, no en
ambos al mismo tiempo.I ¿Cómo representamos este conocimiento?
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 15 / 113
Reglas Reglas de producción
Red de inferencias (Gráfico AND/OR)
I IF baño_seco AND sala_humeda THEN problema_en_cocina.
sala_seca
fuga_en_baño
cocina_seca
sala_humeda
problema_en_cocina
baño_seco
ventana_cerrada
no_agua_del_exterior
no_lluvia
fuga_en_cocina
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 16 / 113
Razonamientos Tipos
Tipos de razonamiento
I Hay dos formas básicas de razonamiento con reglas de producción:I Razonamiento hacia atrás.I Razonamiento hacia adelante.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 17 / 113
Razonamientos Razonamiento hacia atrás
Razonamiento hacia atrás
I Partimos de una hipótesis: Que hay una fuga en la cocina; yrazonamos hacia atrás sobre la red de inferencias. Para resolver estahipótesis necesitamos que no agua en el exterior y problema en lacocina sean verdaderas. La primera es el caso si no llueve o la ventanaestá cerrada, etc.
I El razonamiento se conoce como hacia atrás, porque forma unacadena de las hipótesis (problema en la cocina) hacia las evidencias(ventana cerrada).
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 18 / 113
Razonamientos Razonamiento hacia atrás
Implementación en Prolog
I ¡Por default!
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 19 / 113
Razonamientos Razonamiento hacia atrás
Reglas à la Prolog I
1 % Base de conocimientos para fuga en casa23 % Conocimiento previo45 fuga_en_bano :-6 sala_seca ,7 cocina_seca .89 problema_en_cocina :-
10 sala_humeda ,11 bano_seco .1213 no_agua_del_exterior :-14 ventana_cerrada15 ;16 no_lluvia .1718 fuga_en_cocina :-19 problema_en_cocina ,20 no_agua_del_exterior .2122 % Evidencia2324 sala_humeda .25 bano_seco .26 ventana_cerrada .
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 20 / 113
Razonamientos Razonamiento hacia atrás
Reglas à la Prolog II
1 ?- fuga_en_cocina .2 true
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 21 / 113
Razonamientos Razonamiento hacia atrás
Desventajas de usar Prolog directamente
1. La sintaxis de estas reglas no es la más adecuada para alguien que noconoce Prolog. Este es el caso de nuestros expertos humanos, quedeben especificar nuevas reglas, leer las existentes y posiblementemodificarlas, sin saber Prolog.
2. La base de conocimientos es sintácticamente indistinguible del restodel sistema experto. Esto, como se mencionó, no es deseable.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 22 / 113
Razonamientos Razonamiento hacia atrás
Interprete de encadenamiento hacia atrás I
1 % Un interprete de encadenamiento hac ía atr ás para reglas if - then .23 :- op( 800, fx, if).4 :- op( 700, xfx, then).5 :- op( 300, xfy, or).6 :- op( 200, xfy, and).78 is_true( P) :-9 fact( P).
1011 is_true( P) :-12 if Cond then P, % Una regla relevante ,13 is_true( Cond). % cuya condici ón Cond es verdadera .1415 is_true( P1 and P2) :-16 is_true( P1),17 is_true( P2).1819 is_true( P1 or P2) :-20 is_true( P1)21 ;22 is_true( P2).
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 23 / 113
Razonamientos Razonamiento hacia atrás
Nuevas reglas I
1 %% % base de conocimiento para fugas , en fomato de reglas if - then23 %% % Conocimiento previo45 if sala_humeda and cocina_seca6 then fuga_en_bano .78 if sala_humeda and bano_seco9 then problema_en_cocina .
1011 if ventana_cerrada or no_lluvia12 then no_agua_del_exterior .1314 if problema_en_cocina and no_agua_del_exterior15 then fuga_en_cocina .1617 %% % Evidencias1819 fact(sala_humeda). % Cambiar a sala_seca para que falle la meta20 fact(bano_seco).21 fact(ventana_cerrada). % Comentar para probar explicaciones porque
1 ?- is_true ( fuga_en_cocina ).2 true
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 24 / 113
Razonamientos Razonamiento hacia atrás
Desventajas
I El usuario debe incluir en la base de conocimientos toda la evidenciacon la que cuenta, en forma de hechos, antes de poder iniciar elproceso de razonamiento.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 25 / 113
Razonamientos Razonamiento hacia adelante
Razonamiento hacia adelante
I En el razonamiento hacia atrás partíamos de las hipótesis para irhacia la evidencia.
I Algunas veces resulta más natural razonar en la dirección opuesta: Apartir de nuestro conocimiento previo y la evidencia disponible,explorar que conclusiones podemos obtener.
I Ejemplo: Una vez que hemos confirmado que la sala está mojada yque el baño está seco, podríamos concluir que hay un problema en lacocina.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 26 / 113
Razonamientos Razonamiento hacia adelante
Un interprete de razonamiento hacia adelante I
1 % Un inté rprete simple para el razonamiento hacia adelante23 forward :-4 new_derived_fact(P), % Se deriva un nuevo hecho .5 !,6 write(’Nuevo hecho derivado : ’), write(P), nl,7 assert(fact(P)),8 forward % Buscar más hechos nuevos .9 ;
10 write(’No se derivaron más hechos .’). % Terminar , no más hechos derivados .1112 new_derived_fact(Concl) :-13 if Cond then Concl , % Una regla14 \+ fact(Concl), % cuya conclusi ón no es un hecho15 composed_fact(Cond). % Su condici ón es verdadera ?1617 composed_fact(Cond) :-18 fact(Cond). % Un hecho simple1920 composed_fact(Cond1 and Cond2) :-21 composed_fact(Cond1),22 composed_fact(Cond2). % Ambos operandos verdaderos .2324 composed_fact(Cond1 or Cond2) :-25 composed_fact(Cond1)26 ;27 composed_fact(Cond2). % Al menos un operando verdadero .
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 27 / 113
Razonamientos Razonamiento hacia adelante
Consultas
I Se parte de la evidencia conocida, especificada mediante el predicadofact, se derivan los hechos que se pueden inferir mediante las reglasde producción y se agregan a la base de conocimiento, mediante elpredicado assert (lo cual nos lleva a definir fact como dinámico).1 ?- forward .2 Nuevo hecho derivado : problema_en_cocina3 Nuevo hecho derivado : no_agua_del_exterior4 Nuevo hecho derivado : fuga_en_cocina5 No se derivaron más hechos .6 true.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 28 / 113
Razonamientos Razonamiento hacia adelante
Interfaz
I Una interfaz para cargar los modulos definidos hasta ahora, seimplementa como sigue:1 % Cargar el sistema basado en conocimiento .23 :- dynamic(fact /1).45 :- [ encadenamientoAtras ].6 :- [ encadenamientoAdelante ].7 :- [ kbFugasIfThen ].
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 29 / 113
Razonamientos Razonamiento hacia adelante
Comparando ambos razonamientos
I Las cadenas de inferencia conectan varios tipos de información como:
Datos → · · · → MetasEvidencia → · · · → HipótesisObservaciones → · · · → DiagnósticosDescubrimientos → · · · → ExplicacionesManifestaciones → · · · → Causas
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 30 / 113
Razonamientos Razonamiento hacia adelante
¿Qué tipo de razonamiento es mejor?
I Si lo que queremos es verificar si una hipótesis determinada esverdadera, entonces el razonamiento hacia atrás resulta más natural.
I Si es el caso que tenemos numerosas hipótesis y ninguna razón paracomenzar con una de ellas en particular, entonces el encadenamientohacia adelante es más adecuado.
I En general, el razonamiento hacia adelante es más adecuado ensituaciones de monitoreo, donde los datos se adquierencontinuamente.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 31 / 113
Razonamientos Razonamiento hacia adelante
Red de inferencias revisitada
I Si solo hay unos pocos nodos de datos (el flanco izquierdo de lagráfica) y muchos nodos meta (el flanco derecho), entonces elencadenamiento hacia adelante sería el más apropiado;
I y viceversa, el encadenamiento hacia atrás es más apropiado en elcaso contrario.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 32 / 113
Razonamientos Razonamiento bi-direccional
Razonamiento bi-direccional
I En medicina, por ejemplo, normalmente algunas observacionesiniciales disparan razonamientos del médico hacia adelante, paragenerar una hipótesis de diagnóstico inicial.
I Ésta debe ser confirmada o rechazada con base en evidencia adicional,la cual se obtiene mediante procesos de razonamiento hacia atrás.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 33 / 113
Razonamientos Razonamiento bi-direccional
Ejemplo en nuestro dominio
sala_mojada
fuga_en_baño
cocina_seca
hacía adelante
hacía atrás
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 34 / 113
Explicaciones Tipos
Tipos de explicación
I Existen formas estándar de generar explicaciones en los sistemasbasados en reglas de producción. Los tipos de explicacióncomputables son respuestas a las preguntas de tipo:I ¿Cómo? yI ¿Porqué?
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 35 / 113
Explicaciones ¿Cómo?
Ejemplo de explicación tipo ¿Cómo?
I Supongamos que la última respuesta computada por nuestro sistemaes que hay una fuga en la cocina. La explicación sería como sigue, porque:1. Hay un problema en la cocina, lo cual fue concluído a partir de que la
sala está mojada y el baño seco.2. El agua no provino del exterior, lo cual fue concluído a partir de que la
ventana estaba cerrada.I Tal explicación es de hecho el árbol de derivación de la meta, es decir,
el árbol-SLD de Prolog.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 36 / 113
Explicaciones ¿Cómo?
Algoritmo para explicaciones ¿Cómo?
I Definamos <= como un operador infijo, para poder representar elárbol de prueba de una proposición P de la siguiente manera:1. Si P es un hecho, entonces el árbol de prueba es P mismo.2. Si P fue derivado usando una regla: if Cond then P, el árbol de prueba
es P <= PruebaCond ; donde PruebaCond es a su vez, el árbol deprueba de Cond .
3. Sean P1 y P2 proposiciones cuyos árboles de prueba son A1 y A2,entonces el árbol de prueba de P1 and P2 es A1 and A2. El caso de or,se resuelve análogamente.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 37 / 113
Explicaciones ¿Cómo?
Implementación I
1 % is_true(P ,A) A es el á rbol de prueba de la meta proposicional P23 :- op(800, xfx, <=).45 is_true(P,P) :-6 fact(P).78 is_true(P, P <= CondA) :-9 if Cond then P,
10 is_true(Cond, CondA).1112 is_true(P1 and P2, A1 and A2) :-13 is_true(P1,A1),14 is_true(P2,A2).1516 is_true(P1 or P2, A1 or A2) :-17 is_true(P1,A1)18 ;19 is_true(P2,A2).
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 38 / 113
Explicaciones ¿Cómo?
Interfaz V2
1 % Cargar el sistema basado en conocimiento .23 :- dynamic(fact /1).45 :- [ encadenamientoAtras ].6 :- [ encadenamientoAdelante ].7 :- [ explicacionesComo ].8 :- [ kbFugasIfThen ].
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 39 / 113
Explicaciones ¿Cómo?
Ejemplo consulta con explicaciones ¿Cómo?
1 ?- [ loadSystemV2 ].2 true.34 ?- is_true ( fuga_en_cocina ,A).5 A = ( fuga_en_cocina <=( problema_en_cocina <= sala_humeda and6 bano_seco )and( no_agua_del_exterior <= ventana_cerrada or _66 ))
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 40 / 113
Explicaciones ¿Cómo?
Formatear la explicación I
1 % show_tree(A ): Imprime el á rbol de derivaci ón A.23 show_tree(A) :-4 show_tree(A,0).56 % show_tree(A ,N): Imprime el á rbol de derivaci ón A,7 % al nivel de indentaci ón N.89 show_tree(A,N) :-
10 var(A), tab(N), writeln(’cualquier_cosa ’).1112 show_tree(A1 <= A2,N) :- !,13 tab(N), write(A1), writeln(’ <=’),14 show_tree(A2,N).1516 show_tree(A1 and A2,N) :- !,17 N1 is N + 2,18 show_tree(A1,N1), tab(N1), writeln(’and ’),19 show_tree(A2,N1).2021 show_tree(A1 or A2,N) :- !,22 N1 is N + 2,23 show_tree(A1,N1), tab(N1), writeln(’or ’),24 show_tree(A2,N1).2526 show_tree(A,N) :-27 tab(N), writeln(A).
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 41 / 113
Explicaciones ¿Cómo?
Consulta mejorada
1 ?- [ loadSystemV2 ].2 true.34 ?- is_true ( fuga_en_cocina ,A), show_tree (A).5 fuga_en_cocina <=6 problema_en_cocina <=7 sala_humeda8 and9 bano_seco
10 and11 no_agua_del_exterior <=12 ventana_cerrada13 or14 cualquier_cosa15 A = ( fuga_en_cocina <=( problema_en_cocina <= sala_humeda and16 bano_seco )and( no_agua_del_exterior <= ventana_cerrada or _12250 ))
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 42 / 113
Explicaciones ¿Porqué?
Explicaciones del tipo ¿Porqué?
I Se necesitan en tiempo de ejecución, no al final de una consulta.I Requieren que el usuario pueda interactuar con la máquina de
inferencia del sistema experto, através de la interfaz.I Será necesario especificar que proposiciones pueden ser preguntadas al
usuario, mediante el predicado askable/1. Agregar a la base deconocimientos:1 %% % Hechos que se pueden preguntar la usuario23 askable(no_lluvia).4 askable(ventana_cerrada).
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 43 / 113
Explicaciones ¿Porqué?
Algoritmo
I Dado askable(P), cada vez que la meta P se presente, el sistemapreguntará si P es el caso, con tres respuesta posibles: si, no, yporque.
I En caso de respuesta si al sistema, la proposición P es agregada a labase de conocimientos, usando assert(fact(P)).
I Debemos agregar también una cláusula al estilo dealready_asked(P), para evitar preguntar de nuevo por P cuandoesto ya no es necesario.
I La respuesta a porque debería ser una cadena de reglas que conectanla evidencia P con la meta original
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 44 / 113
Explicaciones ¿Porqué?
Implementación de explicaciones tipo ¿Porqué? I
1 :- dynamic already_asked /1.23 % iis_true(P ,A): P es el caso con la explicaci ón A.4 % Versi ón interactiva con el usuario .56 iis_true(P,A) :-7 explore(P,A,[]).89 % explore(P ,A,T): A es una explicaci ón de porque P es verdadera , H
10 % es una cadena de reglas que liga P con las metas anteriores .1112 explore(P, P, _) :-13 fact(P).1415 explore(P1 and P2, A1 and A2, T) :-16 explore(P1, A1, T),17 explore(P2, A2, T).1819 explore(P1 or P2, A1 or A2, T) :-20 explore(P1, A1, T)21 ;22 explore(P2, A2, T).2324 explore(P, P <= ACond , T) :-25 if Cond then P,26 explore(Cond, ACond , [if Cond then P | T]).2728 explore(P,A,T) :-
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 45 / 113
Explicaciones ¿Porqué?
Implementación de explicaciones tipo ¿Porqué? II
29 askable(P),30 \+ fact(P),31 \+ already_asked(P),32 ask_user(P, A, T).3334 % ask_user(P ,A,T): Pregunta al usuario si P es el caso ,35 % generando las explicaciones A y T.3637 ask_user(P, A, T) :-38 nl, write(’Es cierto que: ’), write(P),39 writeln(’ Conteste si/no/ porque :’),40 read(Resp),41 process_answer(Resp,P,A,T).4243 process_answer(si,P, P <= preguntado ,_) :-44 asserta(fact(P)),45 asserta(already_asked(P)).4647 process_answer(no,P,_,_) :-48 asserta(already_asked(P)),49 fail.5051 process_answer(porque ,P,A,T) :-52 display_rule_chain(T,0), nl,53 ask_user(P,A,T).
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 46 / 113
Explicaciones ¿Porqué?
Formato de la explicación I
1 % display_rule_chain(R ,N): Despliega las reglas R, identando a2 % nivel N.34 display_rule_chain([],_).56 display_rule_chain([if Cond then P | Reglas ], N) :-7 nl, tab(N), write(’Para explorar si ’),8 write(P), write(’ es el caso, usando la regla ’),9 nl, tab(N), write(if Cond then P),
10 N1 is N + 2,11 display_rule_chain(Reglas ,N1).
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 47 / 113
Explicaciones ¿Porqué?
Interfaz V3
1 % Cargar el sistema basado en conocimiento .23 :- dynamic(fact /1).45 :- [ encadenamientoAtras ].6 :- [ encadenamientoAdelante ].7 :- [ explicacionesComo ].8 :- [ explicacionesPorque ].9 :- [ kbFugasIfThen ].
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 48 / 113
Explicaciones ¿Porqué?
Observaciones
I El predicado principal se llama ahora iis_true/2, para indicar que esla versión interactiva del anterior is_true/2
I De otra forma hay un conflicto de nombres, que Prolog resuelvedefiniendo nuevamente el predicado en cuestión a partir del últimoarchivo cargado.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 49 / 113
Explicaciones ¿Porqué?
Preliminares a la consulta
I Antes de ejecutar la consulta, verifique que ha comentado la líneacorrespondiente a fact(ventana_cerrada en la base deconocimientos original, para que el sistema experto deba preguntarpor este hecho o por no_lluvia.
I El usuario puede pedir explicaciones al respecto en ambos casos.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 50 / 113
Explicaciones ¿Porqué?
Ejemplo de consulta con explicación ¿Porqué? I
1 ?- [ loadSystemV3 ].2 true.34 ?- iis_true ( fuga_en_cocina ,A), show_tree (A).56 Es cierto que: ventana_cerrada Conteste si/no/ porque :7 |: porque .89 Para explorar si no_agua_del_exterior es el caso, usando la regla
10 if ventana_cerrada or no_lluvia then no_agua_del_exterior11 Para explorar si fuga_en_cocina es el caso, usando la regla12 if problema_en_cocina and no_agua_del_exterior then fuga_en_cocina1314 Es cierto que: ventana_cerrada Conteste si/no/ porque :15 |: si.1617 fuga_en_cocina <=18 problema_en_cocina <=19 sala_humeda20 and21 bano_seco22 and23 no_agua_del_exterior <=24 ventana_cerrada <=25 preguntado26 or27 cualquier_cosa28
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 51 / 113
Explicaciones ¿Porqué?
Ejemplo de consulta con explicación ¿Porqué? II
29 A = ( fuga_en_cocina <=( problema_en_cocina <= sala_humeda and bano_seco )30 and( no_agua_del_exterior <=( ventana_cerrada <= preguntado )or _6410 ))
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 52 / 113
Explicaciones ¿Porqué?
Limitaciones
I Obviamente el módulo de explicaciones del tipo ¿Porqué? solofunciona con reglas proposicionales.
I Si usásemos variables, habría que preguntar también por los valoresde estas.
I No verificamos que las respuestas del usuario sean válidas. Ver eltutorial de prolog E/S.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 53 / 113
Incertidumbre Grados de certeza
Grados de certeza
I Mucha de la experticia humana no es categórica. Tanto los datoscomo las reglas asociadas a un dominio de problema, pueden serparcialmente ciertos.
I Tal incertidumbre se puede modelar si asignamos alguna calificación,otra que no sea verdadero o falso. Por ej., un valor entre 0 y 1.
I Tales valores reciben diversos nombres como grados de certeza, ogrados de creencia, o probabilidad subjetiva.
I No están basados estrictamente en la teoría de probabilidad.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 54 / 113
Incertidumbre Grados de certeza
Esquema de certeza
I Cada proposición P será asociada a un número FC entre 0 y 1, querepresentará su grado de certeza. Usaremos un par P : FC para estarepresentación. La notación adoptada para las nuevas reglas será: ifCond then P : FC .
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 55 / 113
Incertidumbre Grados de certeza
Combinación de factores de certeza
I El esquema de combinación será el siguiente
c(P1 and P2) = mın(c(P1), c(P2)) (1)c(P1 or P2) = max(c(P1), c(P2)) (2)
I En el caso de una regla if P1 then P2 : FC , entonces:
c(P2) = c(P1)× FC (3)
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 56 / 113
Incertidumbre Grados de certeza
Simplificaciones
I Por simplicidad asumiremos que las reglas tienen implicaciones únicas.I Si ese no fuese el caso, las reglas en cuestión pueden escribirse con
ayuda del operador or, para satisfacer esta restricción de formato.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 57 / 113
Incertidumbre Grados de certeza
Nueva base de conocimientos I
1 %% % base de conocimiento para fugas , en fomato de reglas if - then23 %% % Conocimiento previo con certidumbre45 if sala_humeda and cocina_seca6 then fuga_en_bano .78 if sala_humeda and bano_seco9 then problema_en_cocina :0.9.
1011 if ventana_cerrada or no_lluvia12 then no_agua_del_exterior .1314 if problema_en_cocina and no_agua_del_exterior15 then fuga_en_cocina .1617 % Evidencia con certidumbre1819 given(sala_humeda , 1). % verdadero20 given(bano_seco , 1).21 given(cocina_seca , 0). % falso22 given(no_lluvia , 0.8). % muy probable23 given(ventana_cerrada , 0).
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 58 / 113
Incertidumbre Grados de certeza
Implementación I
1 % Interprete basado en reglas con incertidumbre23 % cert(P ,C): C es el grado de certeza de la proposici ón P45 cert(P,C) :-6 given(P,C).78 cert(P1 and P2, C) :-9 cert(P1,C1),
10 cert(P2,C2),11 min(C1,C2,C).1213 cert(P1 or P2, C) :-14 cert(P1,C1),15 cert(P2,C2),16 max(C1,C2,C).1718 cert(P, C) :-19 if Cond then P:C1,20 cert(Cond,C2),21 C is C1 * C2.2223 cert(P, C) :-24 if Cond then P,25 cert(Cond,C1),26 C is C1.2728 % max y min
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 59 / 113
Incertidumbre Grados de certeza
Implementación II
2930 max(X,Y,X) :- X >=Y,!.31 max(_,Y,Y).3233 min(X,Y,X) :- X=<Y,!.34 min(_,Y,Y).
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 60 / 113
Incertidumbre Grados de certeza
Interfaz V4
1 % Cargar el sistema basado en conocimiento .23 :- dynamic(fact /1).45 :- [ encadenamientoAtras ].6 :- [ encadenamientoAdelante ].7 :- [ incertidumbre ].8 :- [ kbFugasIncert ].
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 61 / 113
Incertidumbre Grados de certeza
Consulta con incertidumbre
1 ?- cert( fuga_en_cocina ,FC).2 FC = 0.8
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 62 / 113
Incertidumbre Grados de certeza
Limitaciones
I Asumamos que el factor de certeza de a es 0.5 y el de b es 0.Entonces, el factor de certeza de a or b es 0.5.
I Ahora, si en factor de certeza de b se incrementa a 0.5, esto no tieneefecto en el factor de certeza de la disyunción, que sigue siendo 0.5;lo cual resulta, al menos, contraintuitivo.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 63 / 113
Incertidumbre Grados de certeza
Objeciones transnochadas
I Los expertos humanos parecen tener problemas para razonar basadosrealmente en la teoría de probabilidad. La verosimilitud que usan, nose corresponde con la noción de probabilidad definidamatemáticamente.
I El procesamiento con base en la teoría de probabilidad, parecerequerir de información que no siempre está disponible; o asumirsimplificaciones que no siempre se justifican.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 64 / 113
Razonamiento bayesiano Introducción
Redes Bayesianas
I También se les conoce como Redes de creencia [1].I Proveen una manera de usar el cálculo de probabilidades para manejar
incertidumbre en nuestras representaciones de conocimiento.I Proveen mecanismos eficientes para manejar las dependencias
probabilísticas, mientras explotan las independencias;I Resultando en una representación natural de la causalidad.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 65 / 113
Razonamiento bayesiano Introducción
Supuestos
I El medio ambiente puede representarse por medio de un vector devariables.
I Nuestras variables tienen un dominio booleano, es decir, podrán tenercomo valor falso o verdadero.
I Ejemplo: ladron y alarma son dos variables de este tipo. La variablealarma es verdadera cuando la alarma suena, y la variable ladron esverdadera cuando un ladrón ha entrado en casa. En cualquier otrocaso, ambas variables son falsas.
I Se puede generalizar a dominios no booleanos.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 66 / 113
Razonamiento bayesiano Introducción
Eventos
I Cuando las variables son booleanas, es normal pensar en ellas como sirepresentasen eventos.
I Ejemplo: Cuando la variable alarma se vuelve verdadera, el eventoalarma sonando sucedió.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 67 / 113
Razonamiento bayesiano Introducción
Probabilidades
I Un agente, natural o artificial, normalmente no está completamenteseguro de cuando estos eventos son verdaderos o falsos.
I El agente razona acerca de la probabilidad de que la variable encuestión sea verdadera.
I Las probabilidades en este caso, son usadas como una medida delgrado de creencia.
I Este grado depende de que tanto el agente conoce su medioambiente.Tales creencias se conocen tambien como probabilidadessubjetivas
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 68 / 113
Razonamiento bayesiano Introducción
Notación
I Sean X e Y dos proposiciones, entonces, como de costumbre:I X ∧ Y es la conjunción de X e Y .I X ∨ Y es la disyunción de X e Y .I ¬X es la negación de X .
I La expresión p(X ) denota la probabilidad de que la proposición X seaverdadera.
I La expresión p(X |Y ) denota la probabilidad condicional de que laproposición X sea verdadera, dado que la proposición Y lo es.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 69 / 113
Razonamiento bayesiano Introducción
Nuevas metas
I Un meta típica es este contexto toma esta forma: Dado que losvalores de ciertas variables han sido observados ¿Cuales son lasprobabilidades de que otras variables de interés tomen cierto valorespecífico? O,
I dado que ciertos eventos han sido observados ¿Cual es la probabilidadde que sucedan otros eventos de interés?
I Ejemplo: Si observamos que la alarma suena ¿Cual es la probabilidadde que un ladrón haya entrado en la casa?
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 70 / 113
Razonamiento bayesiano Introducción
Problemas
I La mayor dificultad para resolver estas metas está en manejar ladependencia entre las variables del problema.
I Sea el caso que nuestro problema contempla n variables booleanas;entonces, necesitamos 2n − 1 números para definir la distribución deprobabilidad completa entre los 2n estados posibles del medioambiente!
I Esto no es sólo caro computacionalmente, sino imposible, debido aque toda esa información no suele estar a la disposición del agente.
I Afortunadamente, suele ser el caso que no es necesario contar contodas esas probabilidades.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 71 / 113
Razonamiento bayesiano Introducción
Dependencia, independencia y redes bayesianas
I La distribución de probabilidades completa, no asume nada acerca dela independencia entre variables.
I Afortunadamente, algunas cosas son independientes de otras.I Las redes bayesianas proveen una forma elegante para declarar la
dependencia e independencia entre variables.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 72 / 113
Razonamiento bayesiano Introducción
Ejemplo de red bayesiana
ladrón relámpago
sensor
alarma llamada
I La estructura de esta red indica algunas dependencia probabilísticas, ytambién algunas independencias.
I Ejemplo: ladron no es dependiente de relampago. Sin embargo, sise llega a saber que alarma es verdadera, entonces bajo lascondiciones dadas, ladron y relampagoya no son independientes.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 73 / 113
Razonamiento bayesiano Introducción
Un ejemplo más elaborado
I Es evidente que las ligas en la red bayesiana indican causalidad.I Ejemplo: El ladron es causa de que el sensor se dispare. El sensor
por su parte, es la causa de que la alarma se encienda.I La estructura de la red permite razonamientos como el siguiente:I Ejemplo: Si alarma es verdadero, entonces un ladron pudo entrar en
casa, puesto que esa es una de las causas de que la alarma suene.I Si nos enteramos de que hay una tormenta, la presencia del ladrón
debería volverse menos probable.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 74 / 113
Razonamiento bayesiano Introducción
Tipos de razonamiento
I En el ejemplo anterior, el razonamiento es de diagnóstico y predictivoal mismo tiempo.
I Al sonar la alarma, podemos diagnosticar que la causa posible es lapresencia de un ladrón.
I Al enterarnos de la tormenta, podemos predecir que la causa real fueun relámpago.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 75 / 113
Razonamiento bayesiano Introducción
Rumbo a la formalización
I Un nodo Z es descendiente de X si hay un camino siguiendo las ligasdesde X hasta Z .
I Supongamos que Y1, Y2, . . . son padres de X en una red bayesiana.I Por definición la red implica la siguiente relación de independencia
probabilística: X es independiente de los nodos que no son susdescendientes, dados sus padres.
I De forma que, para computar la probabilidad de X , basta con tomaren cuenta los descendientes de X y sus padres (Y1, Y2, . . . ).
I El efecto de las demás variables en X es acumulado atravésde sus padres.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 76 / 113
Razonamiento bayesiano Introducción
Ejemplo
I Supongamos que sabemos que sensor es verdadera, y que estamosinteresados en la probabilidad de alarma. Todos los demás nodos enla red no son descendientes de alarma, y dado que el valor del únicopadre de alarma es conocido, su probabilidad no depende de ningunaotra variable.
I Formalmente:
p(alarma | ladron ∧ relampago ∧ sensor ∧ llamada) = p(alarma | sensor)
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 77 / 113
Razonamiento bayesiano Introducción
Probabilidades de la red
I Para completar la representación de un modelo probabilístico con unared bayesiana debemos, además de especificar la estructura de la red,definir algunas probabilidades.
I Para los nodos que no tienen padres, conocidos como causas raíz, esnecesario especificar sus probabilidades a priori.
I Para los demás nodos debemos especificar su probabilidadcondicional, tomando en cuenta el estado de sus padres, es decirp(X | padres de X ).
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 78 / 113
Razonamiento bayesiano Introducción
Nuestra red en Prolog
1 %% % Red bayesiana alarma - ladron23 % Estructura de la Red45 padre( ladron , sensor). % el ladr ón tiende a disparar el sensor6 padre( relampago , sensor). % un relá mpago fuerte tambi én7 padre( sensor , alarma).8 padre( sensor , llamada).9
10 % Probabilidades1112 p( ladron , 0.001). % Probabilidad a priori13 p( relampago , 0.02).14 p( sensor , [ ladron , relampago ], 0.9). % Probabilidad condicionada15 p( sensor , [ ladron , not relampago ], 0.9).16 p( sensor , [ not ladron , relampago ], 0.1).17 p( sensor , [ not ladron , not relampago ], 0.001).18 p( alarma , [ sensor ], 0.95).19 p( alarma , [ not sensor ], 0.001).20 p( llamada , [ sensor ], 0.9).21 p( llamada , [ not sensor ], 0.0).
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 79 / 113
Razonamiento bayesiano Introducción
Independencia y representación
I Observen que hay dos causas raíz en la red: ladron y relampago,por lo que es necesario especificar sus probabilidades a priori.
I El nodo sensor tiene dos padres, ladron y relampago, por lo quesus probabilidades condicionadas dado el estado de sus padres, formanuna tabla de cuatro entradas (2n, donde n es el número de padres).
I Las variables alarma y llamada sólo tienen un padre, por lo que sustablas de probabilidad condicional tienen dos entradas.
I 10 probabilidades, en lugar de 25 − 1 = 31 probabilidades!
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 80 / 113
Razonamiento bayesiano Cálculo de probabilidades
Cálculo de probabilidades
I Sean X e Y dos proposiciones, entonces:I p(¬X ) = 1− p(X )I p(X ∧ Y ) = p(X )p(Y )I p(X ∨ Y ) = p(X ) + p(Y )− p(X ∧ Y )I p(X ) = p(X ∧ Y ) + (X ∧ ¬Y ) = p(Y )p(X | Y ) + p(¬Y )p(X | ¬Y )
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 81 / 113
Razonamiento bayesiano Cálculo de probabilidades
Eventos independientes
I Las proposiciones X es Y se dice independientes si p(X | Y ) = p(X )y p(Y | X ) = p(Y ). Esto es, si Y no afecta mi creencia sobre X yviceversa.
I Si X e Y son independientes, entonces:I p(X ∧ Y ) = p(X )p(Y )
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 82 / 113
Razonamiento bayesiano Cálculo de probabilidades
Eventos disjuntos
I Se dice que las proposiciones X e Y son disjuntas si no pueden serverdaderas al mismo tiempo, en cuyo caso: p(X ∧ Y ) = 0 yp(X | Y ) = 0 y p(Y | X ) = 0.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 83 / 113
Razonamiento bayesiano Cálculo de probabilidades
Generalización de eventos conjuntos
I Sean X1, . . . , Xn proposiciones, entonces:
p(X1∧· · ·∧Xn) = p(X1)p(X2 | X1)p(X3 | X1∧X2) . . . p(Xn | X1∧· · ·∧Xn−1)
I Si todas las variables son independientes, esto se reduce a:
p(X1 ∧ · · · ∧ Xn) = p(X1)p(X2)p(X3) . . . p(Xn)
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 84 / 113
Razonamiento bayesiano Cálculo de probabilidades
Teorema de Bayes
I Finalmente, necesitaremos el teorema de Bayes:
p(X | Y ) = p(X )p(Y | X )p(Y )
que se sigue de la regla de la conjunción definida previamente.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 85 / 113
Razonamiento bayesiano Cálculo de probabilidades
Aplicación del Teorema de Bayes
I Consideremos que un ladrón es una causa de que la alarma seencienda, es natural razonar en términos de que proporción deladrones disparan alarmas, es decir p(alarma | ladron).
I Pero cuando oímos la alarma, estamos interesados en saber laprobabilidad de su causa, es decir p(ladron | alarma). Aquí es dondeentra el teorema de Bayes en nuestra ayuda:
p(ladron | alarma) = p(ladron)p(alarma | ladron)p(alarma)
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 86 / 113
Razonamiento bayesiano Cálculo de probabilidades
Conocimiento previo
I Una variante del teorema de Bayes, toma en cuenta el conocimientoprevio B.
I Esto nos permite razonar acerca de la probabilidad de una hipótesisH, dada la evidencia E , bajo el supuesto del conocimiento previo B:
p(H | E ∧ B) = p(H | B)p(E | H ∧ B)p(E | B)
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 87 / 113
Razonamiento bayesiano Implementación
Un intérprete para redes bayesianas
I Dada una red, queremos que este intérprete responda a preguntas delestilo de: ¿Cual es la probabilidad de una proposición dada,asumiendo que otras proposiciones son el caso?
I Algunas preguntas al intérprete de razonamiento Bayesiano, podríanser:I p(ladron | alarma) =?I p(ladron ∧ relampago) =?I p(ladron | alarma ∧ ¬relampago) =?I p(alarma ∧ ¬llamada | ladron) =?
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 88 / 113
Razonamiento bayesiano Implementación
Reglas de cómputo I
I El intérprete computará la respuesta a cualquiera de estas metas,aplicando recursivamente las siguientes reglas:1. Probabilidad de una conjunción:
p(X1 ∧ X2 | Cond) = p(X1 | Cond)× p(X2 | X1 ∧ Cond)
2. Probabilidad de un evento cierto:
p(X | Y1 ∧ · · · ∧ X ∧ . . . ) = 1
3. Probabilidad de un evento imposible:
p(X | Y1 ∧ · · · ∧ ¬X ∧ . . . ) = 0
4. Probabilidad de una negación:
p(¬X | Cond) = 1− p(X | Cond)
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 89 / 113
Razonamiento bayesiano Implementación
Reglas de cómputo II
5. Si la condición involucra un descendiente de X , usamos el teorema deBayes. Si Y es un descendiente de X en la red, entonces:
p(X | Y ∧ Cond) = p(X | Cond)p(Y | X ∧ Cond)p(Y | Cond)
6. Si la condición no involucra a ningún descendiente de X , puede haberdos casos:6.1 Si X es una causa raíz, entonces p(X | Cond) = p(X), donde p(X)
está especificada en la red.6.2 Si X tiene padres, entonces:
p(X | Cond) =∑
S∈estadosPosibles(Padres)
p(X | S)p(S | Cond)
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 90 / 113
Razonamiento bayesiano Implementación
Ejemplo I
I ¿Cual es la probabilidad de un ladrón dado que sonó la alarma?p(ladron | alarma).
I Primero, por la regla 5:
p(ladron | alarma) = p(ladron)p(alarma | ladron)p(alarma)
I y por la regla 6:
p(alarma | ladron) = p(alarma)p(sensor | ladron) +p(alarma | ¬sensor | ladron)
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 91 / 113
Razonamiento bayesiano Implementación
Ejemplo II
I y por la misma regla 6:
p(sensor | ladron) = p(sensor | ladron ∧ relampago)p(ladron ∧ relampago | ladron) +p(sensor | ¬ladron ∧ relampago)p(¬ladron ∧ relampago | ladron) +p(sensor | ladron ∧ ¬relampago)p(ladron ∧ ¬relampago | ladron) +p(sensor | ¬ladron ∧ ¬relampago)p(¬ladron ∧ ¬relampago | ladron)
I Aplicando las reglas 1,2,3 y 4 como corresponde, esto se reduce a:
p(sensor | ladron) = 0,9× 0,02 + 0 + 0,9× 0,98 + 0 = 0,9p(alarma | ladron) = 0,95× 0,9 + 0,001× (1− 0,9) = 0,8551
I Usando las reglas 1,4 y 6 obtenemos:
p(alarma) = 0,00467929
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 92 / 113
Razonamiento bayesiano Implementación
Ejemplo III
I Finalmente
p(ladron | alarma) = 0,001× 0,8551/0,00467929 = 0,182741
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 93 / 113
Razonamiento bayesiano Implementación
En Prolog I
1 % Motor de inferencia para Red Bayesiana2 :- op( 900, fy, not).34 prob( [X | Xs], Cond, P) :- !, % Prob de la conjunci ón5 prob( X, Cond, Px),6 prob( Xs, [X | Cond], PRest),7 P is Px * PRest .89 prob( [], _, 1) :- !. % Conjunci ón vacía
1011 prob( X, Cond, 1) :-12 miembro( X, Cond), !. % Cond implica X1314 prob( X, Cond, 0) :-15 miembro( not X, Cond), !. % Cond implica X es falsa1617 prob( not X, Cond, P) :- !, % Negaci ón18 prob( X, Cond, P0),19 P is 1 - P0.2021 % Usa la regla de Bayes si Cond0 incluye un descendiente de X2223 prob( X, Cond0 , P) :-24 borrar( Y, Cond0 , Cond),25 pred( X, Y), !, % Y es un descendiente de X26 prob( X, Cond, Px),27 prob( Y, [X | Cond], PyDadoX),28 prob( Y, Cond, Py),
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 94 / 113
Razonamiento bayesiano Implementación
En Prolog II29 P is Px * PyDadoX / Py. % Asumiendo Py > 03031 % Casos donde Cond no involuchra a un descendiente3233 prob( X, _, P) :-34 p( X, P), !. % X una causa raíz - prob dada3536 prob( X, Cond, P) :- !,37 findall( (Condi ,Pi), p(X, Condi ,Pi), CPlist), % Conds padres38 suma_probs( CPlist , Cond, P).3940 % suma_probs( CondsProbs , Cond , SumaPond )41 % CondsProbs es una lista de conds y sus probs42 % SumaPond suma de probs de Conds dada0 Cond4344 suma_probs( [], _, 0).4546 suma_probs( [ (Cond1 ,P1) | CondsProbs ], Cond, P) :-47 prob( Cond1 , Cond, PC1),48 suma_probs( CondsProbs , Cond, PResto),49 P is P1 * PC1 + PResto .5051 % pred(var1 , var2 ). var1 es predecesora de var2 en la red .5253 pred( X, not Y) :- !, % Y negada54 pred( X, Y).5556 pred( X, Y) :-57 padre( X, Y).
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 95 / 113
Razonamiento bayesiano Implementación
En Prolog III
5859 pred( X, Z) :-60 padre( X, Y),61 pred( Y, Z).6263 % miembro(X ,L). X es miembro de L.6465 miembro( X, [X | _]).6667 miembro( X, [_ | L]) :-68 miembro( X, L).
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 96 / 113
Razonamiento bayesiano Implementación
Consultas
1 ?- prob( ladron ,[ alarma ],P).2 P = 0. 182741321476588 .34 ?- prob( alarma ,[],P).5 P = 0. 00467929198 .67 ?- prob( ladron ,[ llamada ],P).8 P = 0. 23213705371651422 .9
10 ?- prob( ladron ,[ llamada , relampago ],P).11 P = 0. 008928571428571428 .1213 ?- prob( ladron ,[ llamada ,not relampago ],P).14 P = 0. 47393364928909953 .
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 97 / 113
Representaciones estructuradas Redes semánticas y marcos
Redes semánticas y Marcos
I Están diseñados para representar, de manera estructurada, grandescantidades de hechos.
I Este conjunto de hechos es normalmente compactado: Se obvianalgunos hechos, cuando estos pueden ser inferidos.
I Utilizan la herencia, de manera similar a como se utiliza en loslenguajes de programación orientados a objetos.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 98 / 113
Representaciones estructuradas Redes semánticas y marcos
Red semántica
animal
avediurna vuelo
isa
locomociónactividad
albatros kiwi
isaisa
blanco_y_negro
enrique
beto
colorisa
isa
café
caminata
ian nocturna
color
actividad
locomoción
isa
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 99 / 113
Representaciones estructuradas Redes semánticas y marcos
Relaciones y herencia
I La relación especial isa denota la relación es un. La red del ejemplorepresenta los siguientes hechos:I Un ave es un tipo de animal.I El vuelo es el medio de locomoción de las aves.I Un albatros es un ave.I Enrique y Beto son albatros.I Un kiwi es un ave.I La caminata es el medio de locomoción de un kiwi.I etc.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 100 / 113
Representaciones estructuradas Redes semánticas y marcos
Red semántica en Prolog
1 % Red sem á ntica23 isa(ave, animal).4 isa(albatros ,ave).5 isa(kiwi,ave).6 isa(enrique , albatros).7 isa(beto, albatros).8 isa(ian,kiwi).9
10 actividad(ave, diurna).11 actividad(kiwi, nocturna).1213 color(albatros , blanco_y_negro).14 color(kiwi,cafe).1516 locomocion(ave, vuelo).17 locomocion(kiwi, caminata).
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 101 / 113
Representaciones estructuradas Redes semánticas y marcos
Inferencias sobre red semántica I
1 % Interprete Redes Semá nticas23 fact(Hecho) :-4 Hecho ,!.56 fact(Hecho) :-7 Hecho =.. [Rel,Arg1,Arg2],8 isa(Arg1, SuperClaseArg1),9 SuperHecho =.. [Rel, SuperClaseArg1 ,Arg2],
10 fact(SuperHecho).
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 102 / 113
Representaciones estructuradas Redes semánticas y marcos
Consulta a red semántica
1 ?- [ seRedSemantica ].2 true.34 ?- fact( locomocion (ian,Loc )).5 Loc = caminata .67 ?- fact( locomocion ( enrique ,Loc )).8 Loc = vuelo .
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 103 / 113
Representaciones estructuradas Redes semánticas y marcos
Marcos
I Predecesor de la programación orientada a objetos.I Un marco (frame) es una estructura de datos, cuyos componentes se
llaman ranuras (slots).I Las ranuras pueden guardar información de diferentes tipos:
I Valores.I Referencias a otros marcos.I Procedimientos para computar valores.
I Tambien usan herencia.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 104 / 113
Representaciones estructuradas Redes semánticas y marcos
Representación basada en marcos.
animal
tamaño relativo : tamanoRelativo(Obj)
ave
a_kind_of :locomoción : vueloactividad : diurna
albatros
a_kind_of :color : blanco_y_negrotamaño : 115
kiwi
a_kind_of :locomoción : caminataactividad : nocturnatamaño : 40color : café
enriqueinstance_of :tamaño : 120
betoinstance_of :tamaño : 40
ian
instance_of :
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 105 / 113
Representaciones estructuradas Redes semánticas y marcos
Marcos en Prolog I
1 % Base de conocimiento basada en Marcos2 % Los hechos se representan como marco(ranura , valor ).3 % El valor puede ser un procedimiento para su cá lculo .45 % Marco ave : un ave protot í pica67 ave(a_kind_of , animal).8 ave(locomocion , vuelo).9 ave(actividad , diurna).
1011 % Marco albatros : un ave protot í pica con hechos extra :12 % es blanco y negro ; y mide 115 cm1314 albatros(a_kind_of ,ave).15 albatros(color , blanco_y_negro).16 albatros(tamano ,115).1718 % Marco kiwi : un ave protot í pica con hechos extra :19 % camina , es nocturno , café y mide unos 40 cm2021 kiwi(a_kind_of ,ave).22 kiwi(locomocion , caminata).23 kiwi(actividad , nocturna).24 kiwi(tamano ,40).25 kiwi(color ,cafe).2627 % Marco enrique : es un albatros28
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 106 / 113
Representaciones estructuradas Redes semánticas y marcos
Marcos en Prolog II
29 enrique(instance_of , albatros).30 enrique(tamano ,120).3132 % Marco beto : es un albatros bebé3334 beto(instance_of , albatros).35 beto(tamano ,40).3637 % Marco ian : es un kiwi .3839 ian(instance_of ,kiwi).4041 % Marco animal : su tama ño relativo se calcula ejecutando un42 % procedimiento4344 animal(tamanoRelativo ,45 execute(tamanoRelativo(Obj,Val), Obj, Val)).4647 % tamanoRelativo(Obj , TamRel ): El tama ño relativo TamRel de Obj4849 tamanoRelativo(Obj, TamRel) :-50 value(Obj, tamano , TamObj),51 value(Obj, instance_of , ClaseObj),52 value(ClaseObj , tamano , TamClase),53 TamRel is (TamObj / TamClase) * 100.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 107 / 113
Representaciones estructuradas Redes semánticas y marcos
Inferencia con marcos en Prolog I
1 % Motor de inferencia para Marcos23 value(Frame ,Slot, Value) :-4 Query =.. [ Frame ,Slot, Value ],5 Query , !. % valor encontrado directamente .67 value(Frame ,Slot, Value) :-8 parent(Frame , ParentFrame), % Un marco más general9 value(ParentFrame ,Slot, Value).
101112 parent(Frame , ParentFrame) :-13 ( Query =.. [ Frame , a_kind_of , ParentFrame ]14 ;15 Query =.. [ Frame , instance_of , ParentFrame ]16 ) ,17 Query .
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 108 / 113
Representaciones estructuradas Redes semánticas y marcos
Consultas a los marcos
1 ?- value ( enrique , actividad ,Act).2 Act = diurna34 ?- value (kiwi, actividad ,Act).5 Act = nocturna .
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 109 / 113
Representaciones estructuradas Redes semánticas y marcos
Inferencia con marcos y funciones en Prolog I
1 % Motor inferencial para marcos V2: Incluye funciones23 value(Frame ,Slot, Value) :-4 value(Frame , Frame , Slot, Value).56 value(Frame , SuperFrame , Slot, Value) :-7 Query =.. [ SuperFrame , Slot, ValAux ],8 Query ,9 process(ValAux , Frame , Value), !.
1011 value(Frame , SuperFrame , Slot, Value) :-12 parent(SuperFrame , ParentSuperFrame),13 value(Frame , ParentSuperFrame , Slot, Value).1415 parent(Frame , ParentFrame) :-16 ( Query =.. [ Frame , a_kind_of , ParentFrame ]17 ;18 Query =.. [ Frame , instance_of , ParentFrame ]19 ) ,20 Query .2122 process(execute(Proc, Frame , Value), Frame , Value) :- !,23 Proc.2425 process(Value ,_, Value). % un valor , no un procedimiento .
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 110 / 113
Representaciones estructuradas Redes semánticas y marcos
Consultas
1 ?- value ( enrique , tamanoRelativo ,Tam).2 Tam = 104. 3478260869565234 ?- value (beto, tamanoRelativo ,Tam).5 Tam = 34. 7826086956521767 ?- value (ian, tamanoRelativo ,Tam).8 Tam = 1009
10 ?- value (beto, color ,C).11 C = blanco_y_negro .
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 111 / 113
Representaciones estructuradas Redes semánticas y marcos
Interfaz
I La base de conocimientos basada en marcos y su motor de inferencia,incluyendo funciones, se puede llamar con el script seMarcos.pl:1 % Sistema Experto basado en marcos .23 % :- [ inferenciaMarcos ].4 :- [ inferenciaMarcosFunc ].5 :- [ kbMarcos ].
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 112 / 113
Representaciones estructuradas Redes semánticas y marcos
Referencias I
I Bratko. Prolog programming for Artificial Intelligence. Fourth. Pearson, 2012.
J Negrete-Martínez, PP González-Pérez y A Guerra-Hernández. Pericia Artificial: Unaaproximación incremental a los Sistemas Expertos. Xalapa, Ver., México: UniversidadVeracruzana, 1996.
Dr. Alejandro Guerra-Hernández (UV) Representación del Conocimiento MIA 2019 113 / 113