Sistemas Expertos Introducción Arquitectura - Motor de Inferencias Ana Casali Andrea Torres Ingeniería del Conocimiento -EIE
IC - MODULOS INTRODUCCION SISTEMAS BASADOS EN CONOCIMIENTO RAZONAMIENTO APROXIMADO FUZZY SYSTEMS APRENDIZAJE AUTOMATIZADO AGENTES INTELIGENTES
INGENIERIA DEL CONOCIMIENTO Conjunto de Conocimientos y Técnicas que permiten aplicar el saber científico a la utilización del conocimiento. ADQUISICION QUE SE OCUPA DE LA REPRESENTACION INFERENCIA MANTENIMIENTO
INGENIERIA DEL CONOCIMIENTO Es la disciplina tecnológica que se centra en el desarrollo, funcionamiento y mantenimiento de Sistemas Basados en Conocimiento (SBC KBS) (utilizando Ingeniería de Software) SBC: sistema de software capaz de soportar la representación explícita de conocimiento.
SISTEMA BASADO EN CONOCIMIENTO SBC (KBS): sistema de software que mantienen una gran cantidad de conocimiento (Base de conocimiento) y que incluyen métodos adecuados para explotarlo. Sistema Experto: es un SBC que contiene el conocimiento utilizados por expertos humanos (imita la actividad de un experto)
SBC: Whale Whatcher http://www.myacquire.com/aiinc/whalewatcher/
Sistemas basados en conocimiento (SBC-KBS) Definiciones. Sistemas que representan el conocimiento sobre el dominio en forma explícita y separada del resto del sistema. Waterman.
Sistemas basados en conocimiento (SBC-KBS) Definiciones. Sistemas de software capaz de soportar la representación explícita del conocimiento de un dominio específico y de explotarlo a través de mecanismos apropiados de razonamiento para proporcionar un comportamiento de alto nivel en la resolución de problemas. Guida y Taso
Sistemas Expertos: Definición. Es un sistema de cómputo capaz de simular la conducta inteligente de un experto humano en un dominio específico y especializado, con el objeto de resolver problemas.
Sistemas Expertos: Definición. Es un sistema de cómputo capaz de simular la conducta inteligente de un experto humano en un dominio específico y especializado, con el objeto de resolver problemas. Sistema de computación Hardware + software Simulación Conducta inteligente Experto Fuente de pericia humana en el dominio Dominio limitado Específico y especializado
SE/SBC: Tareas Síntesis: Clasificación, diagnóstico Tareas abordadas Análisis: Planificación, diseño o modelado Las áreas de aplicación son muy variadas!!! Los SBC abordan problemas complejos en dominios específicos en los que el peso de las heurísticas para acotar el espacio de búsqueda es importante.
MYCIN PROSPECTOR INTERNIST CASNET Primeros Sistemas Expertos Stanford (Buchanan - Shortliffe 1976): Diagnóstico y tratamiento de enfermedades infecciosas (aprox. 500 reglas). Introduce factores de certeza. Stanford-US Geological Survey (Duda-Gashning- Hart, 1979): Evaluación de yacimientos minerales y petrolíferos. (aprox 1600 reglas). Probabilidades condicionales y Teorema de Bayes. Pittsburg (Pople-Myers, 1977): Diagnóstico en Medicina interna. CADUCEUS: Analiza relaciones causales. Rutgens (Kulikowsky-Weiss-Safir, 1977): Oftalmología. Aplica un modelo causal para el diagnóstico de glaucoma. Conocimiento inexacto Razonamiento experto Modelos causales R1 MOLGEN Carnegie Mellon (Mc Dermott): Configuración de ordenadores VAX (aprox 500 reglas). Descompone el diseño en distintos niveles de abstracción. Stanford (Stefik): Diseño de experimentos genéticos. Utiliza abstracción. Reducción espacio de búsqueda
Estructura básica de un SE/SBC. Ingeniero del conocimiento Experto del dominio K A T Base de Conocimientos Motor de Inferencias I n t e r f a c e U s u a r i o
Estructura básica de un SE/SBC Base de Conocimientos Su estructura de datos queda definida en términos del esquema de representación elegido para incorporar el conocimiento del dominio de trabajo. Separados entre sí Motor de Inferencias Es la estructura de control de un SE, contiene el programa que gestiona la BC y otros mecanismos necesarios para administrar un sistema de naturaleza interactiva.
Habilidades que se esperan de un SE Manipular con fluidez descripciones simbólicas. Buena perfomance, comparable al menos a la de los especialistas. Interfaz amigable, adecuada a las necesidades de la aplicación. Habilidad para manipular conocimiento incompleto e impreciso. Capacidad de explicar sus decisiones a los usuarios. Posibilidad de justificar sus conclusiones.
SBC: Ventajas El conocimiento no se pierde. Reducción del espacio de búsqueda con heurísticas para que el problema sea tratable en un tiempo razonable. Manejo de conocimiento incierto e incompleto. Posibilidad de justificar el razonamiento seguido. Hacer el conocimiento disponible en ambientes hostiles o con carencia de especialistas. Aumento de fiabilidad, evitando que prevalezcan las últimas experiencias. Modificación sencilla de la BC por su característica modular.
SBC: Inconvenientes La adquisición del conocimiento es difícil y cara. La reutilización del conocimiento en contextos diferentes no es simple. Falta de creatividad y sentido común. Necesitan aprendizaje y adaptación. Quedan inmersos en el campo de los Sistemas Inteligentes. Se trabaja sobre metodología de desarrollo Se los combina con otras tecnologías
REPRESENTACION DEL CONOCIMIENTO
PREMISA FUNDAMENTAL DE IA: Para que un sistema informático demuestre un comportamiento inteligente en la solución de problemas, debe poseer gran cantidad de conocimientos y un potente mecanismo de razonamiento. IMPORTANCIA DE UNA ADECUADA REPRESENTACION DEL CONOCIMIENTO
CONOCIMIENTO DEL MUNDO : (en IA) Es la habilidad para construir un modelo de los objetos, sus vinculaciones y de las acciones que pueden realizar. REPRESENTACION DEL CONOCIMIENTO Es la expresión mediante algún lenguaje, de un modelo que exprese el conocimiento sobre el mundo.
Conocimiento Definición El conocimiento es una mezcla de experiencia, información y saber hacer que actúa como marco para la incorporación de nuevas experiencias y guía la acción. Se utiliza para alcanzar una meta Genera nuevos hechos/conclusiones Resulta en gran medida dependiente de la tarea y del dominio de aplicación.
Representación: Modelado de un sistema Modelo Computable Operacional Bases de Conocimiento Mecanismos de inferencia Mecanismos de control Las tareas de adquisición y modelado son difíciles y costosas. Existen esquemas de representación útiles en dominios variados. Los Sistemas Basados en Conocimiento los combinan.
ELEMENTOS BASICOS QUE INTERVIENEN EN EL DISEÑO DE UN SISTEMA BASADO EN EL CONOCIMIENTO (KBS) Lenguaje formal para expresar conocimiento Forma de efectuar razonamientos COMPONENTE MEDULAR DE UN KBS (Agente) BASE DE CONOCIMIENTOS (KB) Es un conjunto de representaciones de hechos acerca del mundo Conjunto de sentencias del lenguaje para la representación del conocimiento
UNA KB DEBE PERMITIR CON EFICIENCIA: AÑADIR Y MODIFICAR SENTENCIAS BC PREGUNTAS RESPUESTAS MECANISMO DE INFERENCIAS
DISTINTOS FORMALISMOS FORMALISMOS LOGICOS SISTEMAS DE PRODUCCION FORMALISMOS ESTRUCTURADOS: REDES SEMANTICAS OBJETOS ONTOLOGÍAS
FORMALISMOS LOGICOS Conocimiento es representado mediante un conjunto de fórmulas bien formadas (fbfs) en algún sistema lógico (proposicional - predicados - multivaluada...) Los mecanismos de inferencia son los métodos deductivos del sistema lógico (Resolución en predicados)
PROLOG: Una implementación de programación lógica LOGICA DE PREDICADOS + DEDUCCIÓN AUTOMÁTICA (RESOLUCION) Dada la BC y una fórmula α podemos probar que» BC - α Podemos contestar perro (Rex)? preguntas como X / perro (X)?
Representación del Conocimiento Otros formalismos
DISTINTOS FORMALISMOS FORMALISMOS LOGICOS SISTEMAS DE PRODUCCION FORMALISMOS ESTRUCTURADOS: OBJETOS ONTOLOGÍAS
OTROS FORMALISMOS Newell & Simon - 1973 Sistemas de producción Utilizan elementos de la lógica Salen del marco estrictamente formal más flexibles más eficientes Pierden propiedades fundamentales como la consistencia y completitud.
SE basados en reglas de producción Sistemas de producción Al resolver problemas, las personas utilizan su memoria a largo plazo (permanente) que aplican a situaciones actuales contenidas en su memoria a corto plazo (transitoria). BC (Reglas) Memoria de trabajo (Hechos) Mundo Exterior Motor de Inferencias
Sistemas de producción Los procesos del dominio se representan como acciones independientes que son integradas por el mecanismo de inferencias para resolver una tarea más general. ARQUITECTURA BASE DE CONOCIMIENTO Base de Hechos Base de Reglas Motor de Inferencias
SE basados en reglas de producción Reglas de producción IF < CONDICION > THEN < ACCION> Son gránulos de conocimiento. Reúnen información relativa a las condiciones de disparo y a los efectos resultantes del disparo. Son estructuras bidireccionales. SI?X ES MAMIFERO Y?X COME CARNE ENTONCES?X ES CARNIVORO.
SE basados en reglas de producción Ventajas: Naturaleza modular: El conocimiento es fácil de encapsular y expandir. Explicaciones sencillas: El registro de reglas disparadas permite presentar la cadena de razonamiento asociada. Semejanza con el proceso cognitivo humano: modelo natural del razonamiento humano. Dificultades: Completitud y consistencia como responsabilidad del desarrollador. Se necesitan otras estructuras para lograr una visión global del conocimiento del dominio. Se las combina con otros formalismos de representación.
Sistemas de producción Se utilizan Reglas de Producción para representar el conocimiento IF <premisa> THEN <conclusión y/o acción> Son los elementos de deducción básicos El proceso de inferencia se basa fundamentalmente en la Regla de Inferencia de la lógica denominada MP A B, A / B
Reglas de producción Es el modelo formal para representar un elemento mínimo de conocimiento IF <premisa> THEN <conclusión y/o acción> Conclusión Puede especificar Estrategia Acción La premisa puede tener conectivos lógicos <premisa> = <cláusula 1 AND/OR...AND/OR cláusula k >
Sistemas de producción Cada regla es independiente del resto de las reglas en la BC. Las reglas no tienen porque estar ordenadas en la BC. Las reglas se pueden agrupar por nociones semánticas en módulos o grupos. El metaconocimiento puede ser expresado mediante reglas: metareglas
Reglas de producción- Ejemplos Sintaxis Reglas en JESS Jess> (defrule bienvenido-menor "Saludo para niños" (persona {edad < 10}) => (printout t "Hola niño!" crlf)
Sistemas de producción. Un ejemplo de regla Un especialista que participa en el desarrollo de un sistema basado en conocimiento relativo al diagnóstico de una falla en un auto, podrá expresar: si el motor no arranca y las luces no encienden, entonces la falla está en la batería.
Sistemas de producción. Un ejemplo de regla A partir de esta expresión, se puede definir la regla de producción asociada a las proposiciones como: If el motor no arranca And las luces no encienden, Then la falla está en la batería.
Sistemas de producción. Un ejemplo
Sistemas de producción. Un conjunto de reglas If el motor no arranca And las luces no encienden Then falla la batería. If el motor no arranca And las luces encienden And llega combustible Then falla el sistema de ignición. If el motor no arranca And las luces encienden And no llega combustible Then falla el sistema de combustible.
Sistemas de producción. Un conjunto de reglas If el motor no arranca And las luces no encienden Then falla la batería. If el motor no arranca And las luces encienden And llega combustible Then falla el sistema de ignición. If el motor no arranca And las luces encienden And no llega combustible Then falla el sistema de combustible.
El desarrollo de las reglas de producción para construir la KB. Cada una de estas reglas aparece como un gránulo de conocimiento que es independiente La ampliación de la KB puede realizarse sin mayor problema.
El desarrollo de las reglas de producción para construir la KB. estas reglas deben estar relacionadas por los hechos que mencionan para que puedan ser interpretadas durante el proceso de inferencia.
El desarrollo de las reglas de producción para construir la KB. Este es el único requisito que requiere el agregado de nuevas reglas respetar la sintaxis e los hechos representados.
Sistemas de producción Como razonamos??? Utilizando un MECANISMO DE INFERENCIA (MOTOR DE INFERENCIA) El cual determina de que forma utilizar las reglas para alcanzar el objetivo planteado
La ejecución del proceso de inferencia en los KBS Supóngase que se observa una falla en motor del auto y se constata que: no arranca el motor, ni encienden las luces, y llega combustible. es necesario ingresar esta información en la memoria de trabajo, para obtener una solución o respuesta al problema. la interfaz de este KBS, deberá proveer los recursos que permitan ingresar las observaciones del caso.
La ejecución del proceso de inferencia en los KBS
La ejecución del proceso de inferencia en los KBS La respuestas seleccionadas originan los hechos: el motor no arranca, las luces no encienden y llega combustible que ingresarán a la memoria de trabajo del KBS.
La ejecución del proceso de inferencia en los KBS El proceso de ejecución que realiza el motor de inferencia, consiste en tomar cada una de estas plantillas, y explorar la KB buscando matching en las premisas de cada una de las reglas. La primera regla se desencadena, y produce entonces la conclusión: falla la batería, y el problema queda resuelto
Inferencia en los KBS Este proceso de comparación que explora cada una de las reglas, es prácticamente independiente del orden en que se encuentren dispuestas las mismas en la KB. Este proceso de inferencia en los KBS, es denominado: sistema de inferencia por filtrado (pattern maching)
Inferencia en los KBS Las herramientas actuales soportan procesos de matching más complejos, que satisfacen algún predicado: que el valor de un slot de un objeto cumpla alguna condición, por ej. que su valor sea desconocido que la lista asociada a un slot tenga 3 elementos Jess> (defrule match-tres-items (lista-almacen???) => (printout t "Hay una lista de tres items." crlf))
Sistemas de producción Direcciones de búsqueda: Motor de Inferencia Hacia delante, Forward Chaining o guiada por los hechos. JESS Hacia atrás, Backward Chaining o guiada por los objetivos. Para seleccionar las reglas candidatas en cada estado utiliza el FILTRADO o MATCHING.
VENTAJAS Sistemas de producción Flexibles. Sencillos de modificar y extender. A los expertos les resulta simple pensar en reglas. PROBLEMAS Completitud y consistencia. El conocimiento se separa en pequeños gránulos. Es común que se los combine con otros formalismos.
Sistemas de predicción del tiempo Los estratos son nubes de baja altura con aspecto de capas. Los nimboestratos son nubes de altura media. Los cirroestratos son nubes de gran altura. Los cúmulos y cumulonimbos pueden estar a baja o gran altura y su aspecto es como pilas de algodón, pero los cumulosnimbos son grises, mientras que los cúmulos son blancos. Si no hay nubes puede inferirse que el tiempo será soleado. La presencia de cúmulos indica buen tiempo. Las nubes con estratos indican lluvia ligera pero si el viento sopla de noreste a sur la lluvia puede ser prolongada. Las nubes con nimboestratos indican lluvia breve si la dirección del viento es sur a norte, pero se indica lluvia persistente si la dirección del viento es de noreste a sur. Los cumulonimbos indican chubascos. Los cirroestratos indican lluvia en las 24 hs. si el viento es
Sistemas estructurados REDES SEMANTICAS (70s) OBJETOS (80s) ONTOLOGÍAS (90s)
Redes semánticas Idea: el significado de un concepto depende del modo en que se encuentre conectado a otros conceptos Representación: mediante un grafo dirigido donde los nodos representan objetos y los arcos relaciones entre los conceptos REX PERRO MAMIFERO INSTANCIA ES-UN
Redes semánticas - Ejemplo Estudiante -UNR ES-UN TIENE ES-UN Estudiante -FCEIA Legajo ES-UN Estudiante -LCC Estudiante -IEca INSTANCIA Pedro García Juan Perez Prom1 INSTANCIA TIENE INSTANCIA Promedio Prom2 INSTANCIA INSTANCIA TIENE TIENE Legajo P-1233/5
Redes semánticas - Arcos Etiquetas de los arcos es-un relación subclase-clase instancia relación objeto-clase parte-de relación componente-objeto Generalización Instanciación Agregación definidas por el usuario Descripción Dominio de aplicación
Objetos Los vemos más como una forma de representar el mundo que como un paradigma de programación Los encontramos en muchas herramientas dentro del área. Tienen ciertas características en común con los agentes.
Objetos OBJETO: Es una entidad que tiene un comportamiento. ESTADO INTERNO MENSAJES que es capaz de responder. ENCAPSULAMIENTO Permite la utilización de clases con implementaciones intercambiables. INTERFAZ Un PROGRAMA OO es una red de objetos cooperantes, que interactúan entre sí, enviándose mensajes.
Objetos Una CLASE es una definición de las características comunes de un conjunto de objetos semejantes. ESTRUCTURA: Conjunto de variables de clase e instancia. CLASE INTERFAZ: conjunto de métodos. Los objetos concretos buscan en su clase la definición cuando reciben un mensaje.
Objetos Las CLASES se organizan en jerarquías modelizando el dominio Esquema de colaboración entre objetos (explícito en el código) De Estructura: Más estática. HERENCIA De Comportamiento: Ocurre en ejecución. Cuando un objeto recibe un mensaje, busca el código en su clase, y si no lo encuentra recorre la jerarquía.
Ontologías Es una especificación explícita de una conceptualización. [Gruber] Conceptos en un dominio: clases Propiedades de cada concepto describiendo características y atributos: slots Restricciones sobre los slots: facetas Las Ontologías en el desarrollo de Sistemas de Información permite establecer correspondencias y relaciones entre diferentes dominios.
Ontologías: OWL editor Protege
Cómo elegir la mejor representación??? No hay receta establecida!!! Frente a cada problema a resolver: Analizar las características del conocimiento involucrado. Recurrir a la combinación de formalismos.