113
Representación del Conocimiento Sistemas Expertos Dr. Alejandro Guerra-Hernández Universidad Veracruzana Centro de Investigación en Inteligencia Artificial Sebastián Camancho No. 5, Xalapa, Ver., México 91000 mailto:[email protected] 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

Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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:[email protected]

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

Page 2: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 3: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 4: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 5: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 6: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 7: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 8: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 9: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 10: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 11: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 12: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 13: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 14: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 15: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 16: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 17: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 18: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 19: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 20: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 21: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 22: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 23: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 24: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 25: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 26: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 27: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 28: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 29: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 30: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 31: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 32: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 33: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 34: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 35: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 36: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 37: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 38: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 39: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 40: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 41: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 42: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 43: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 44: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 45: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 46: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 47: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 48: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 49: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 50: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 51: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 52: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 53: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 54: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 55: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 56: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 57: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 58: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 59: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 60: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 61: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 62: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 63: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 64: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 65: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 66: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 67: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 68: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 69: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 70: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 71: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 72: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 73: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 74: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 75: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 76: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 77: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 78: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 79: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 80: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 81: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 82: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 83: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 84: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 85: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 86: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 87: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 88: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 89: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 90: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 91: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 92: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 93: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 94: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 95: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 96: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 97: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 98: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 99: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 100: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 101: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 102: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 103: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 104: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 105: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 106: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 107: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 108: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 109: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 110: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 111: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 112: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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

Page 113: Representación del Conocimiento - Sistemas Expertos...Razonamientos Razonamientohaciaadelante UninterpretederazonamientohaciaadelanteI 1 %Unintérpretesimpleparaelrazonamientohaciaadelante

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