Story Transcript
SISTEMAS BASADOS EN EL CONOCIMIENTO I (*) Los espacios en blanco son para dibujar los gráficos explicativos . 1 . Concepto de Sistema Experto : Estructura básica , características , ventajas y limitaciones Un SE es un programa de ordenador que codifica un modelo de conocimiento de un experto humano en un campo reducido . Un SE comienza con un modelo conceptual y termina con una implementación tras pasar por una etapa de codificación del modelo de 4 capas que reconstruye el conocimiento de un experto . Estas 4 capas pueden ser obtenidas por medio de procesos sucesivos de análisis y síntesis y utilizando la llamada Tarea Genérica . 1 . 1 . Estructura básica MAC : Mecanismos de Aplicación del Conocimiento ( dependiendo del tipo de representación del conocimiento , pueden usarse diversos tipos de inferencia y de selección de reglas ) . BC : Base de Conocimientos ( conocimiento modelado extraído de un experto ) . BA : Base de Afirmaciones ( zona donde el MAC guarda conclusiones transitorias y extrae otras ) . BD : Base de datos ( base de datos tradicional ) . I : Interfaz de Usuario . Módulos opcionales : − ME : Módulo de Explicación . − MA : Módulo de Aprendizaje . − SAAC : Sistema de Adquisición Automática de Conocimiento . 1 . 2 . Características de un SE Al final del proceso , lo que tenemos es un programa con las siguientes características : − Competencia en su campo . − Dominio reducido . − Capacidad de explicación . − Tratamiento de la incertidumbre . 1
− Flexibilidad en el diálogo . − Representación explícita del conocimiento . 1 . 3 . Ventajas y limitaciones Ventajas frente al experto humano : − Permanencia . − Duplicación . − Fiabilidad . − Rapidez . − Bajo coste . Desventajas frente al experto humano : − Sentido común . − Flexibilidad . − Lenguaje natural . − Experiencia sensorial . − Perspectiva global . − Falta de capacidad de aprendizaje . − Capacidad de manejar conocimiento no estructurado . − Funciones genuinamente humanas . 2 . Estructura de Tareas Genéricas para modelar conocimiento en el DO Para facilitar el proceso de adquisición de conocimiento y su posterior reducción al nivel simbólico , se hace necesario realizar algunas tareas genéricas que son métodos abstractos para modelar dicho conocimiento . Estas TG deben ser muy generales para que puedan valer para una amplia gama de problemas y no dependan del dominio ni de la forma de representación . A partir de una TG muy general , y aplicando análisis del problema en el DO y sintetizando una solución genérica , obtenemos otras TG menos generales y así sucesivamente hasta que se haya concretado la solución . La clasificación es una de las TG más utilizadas en IA . Por ejemplo , la clasificación heurística consta de 3 subtareas , que son :
2
− Abstracción − Equiparación heurística − Refinamiento Por ejemplo , la clasificación conexionista en redes neuronales se puede descomponer en 4 subtareas : − Extracción de propiedades − Métricas − Selección de máximos − Refuerzo El diagnóstico es otra de las TG muy utilizadas en IA y en especial en SE . Esta tarea consiste en comparar un estado de un conjunto de estados en los que se ha dividido un sistema , con el modelo de dicho estado en el modelo del sistema creado por el programador . La TG consiste en ir acercando el modelo del sistema al sistema real , todo esto mediante la medición del error cometido al comparar los dos sistemas ( el real y el modelo creado por el programador ) , y la subsiguiente reducción de dicho error . Las subtareas de que consta el diagnóstico como TG son : − Selección y evaluación de signos , síntomas y síndromes − Selección de modelos − Generalización de un repertorio de hipótesis diagnósticas − Evaluación y refinamiento de esas hipótesis La inferencia no pertenece a la TG sino al modelo de representación del conocimiento . 3 . La metodología KADS Esta metodología fue creada para desarrollar SBC's mediante TG's . La TG más general se subdivide en 4 capas : a/ Estrategia b/ Tareas c/ Inferencias d/ Conocimiento estático del dominio A lo largo del proceso de desarrollo de un SBC utilizando metodología KADS , se producen fases alternativas de análisis y síntesis . La salida de una fase es la entrada de la siguiente . 3
Este proceso es similar al de un sistema de bloques en un sistema continuo . El proceso a seguir es el siguiente : ANALISIS DE LA APLICACION A NIVEL GLOBAL : como resultado , se descompone el problema en 3 módulos : 1/ Módulo basado en el conocimiento 2/ Interfaz 3/ Resto de la aplicación ADQUISICION DEL CONOCIMIENTO DEL EXPERTO : se construye un modelo en 4 capas : 1/ Aspectos estratégicos del conocimiento 2/ TG 3/ Modelación de inferencia ( rel. con 1/ ) 4/ Conocimiento estático dependiente del dominio ( redes,marcos,guiones ,etc ) ANALISIS DE RESTRICCIONES : se obtiene un modelo de restricciones . Estos tres pasos son de análisis en el dominio del observador ( DO ) . 4 . Identificación y análisis del problema ( TG1 ) Para que sea aconsejable abordar la construcción de un SE , se deben cumplir tres requisitos : que sea posible , que esté justificado y que sea apropiado su desarrollo . Es posible cuando : − Hay expertos en el área − La tarea no requiere capacidad sensorial ni habilidad − El problema no es excesivamente complicado Está justificada cuando : − Se espera obtener rentabilidad ( académica , social o económica ) Es apropiada cuando : − Se requiere razonamiento simbólico − No hay solución algorítmica 4
− La solución neuronal no es más conveniente Esta fase es de análisis . 5 . Adquisición y modelado del conocimiento ( TG2 ) En esta tarea , que es la más importante , tenemos que dialogar con el experto para extraer toda la información posible para poder construir un modelo del sistema . Para poder modelar el conocimiento del experto , hay que intentar crear unas representaciones intermedias entre lo que el experto conoce ( y nos explica ) y una implementación de este conocimiento . Para esto , la metodología KADS , crea estas construcciones intermedias en 4 capas : 1 / Conocimiento estratégico 2 / Estructura de TG 3 / Tipos de inferencia 4 / Conocimiento del dominio ( esta es la única que depende de la aplicación ) Este proceso es un proceso incremental , en el que el modelo se va construyendo conforme dialogamos con el experto y conforme nos documentamos con libros y otros materiales . Esta fase es de análisis . 6 . Reducción al nivel simbólico ( TG3 ) Para realizar esta fase , nos apoyamos generalmente en un entorno de desarrollo tipo NEXPERT , que es un entorno de ayuda para la adquisición e implementación del conocimiento , aunque no todas las entidades obtenidas en TG2 pueden ser implementadas como estructuras de datos y algoritmos . Esta fase es claramente de síntesis . 7 . Ayudas a la implementacion ( TG4 ) En esta fase se completa el diseño del sistema . Pero como aún es difícil pasar del modelo de 4 capas obtenido en TG2 , se hace necesaria la utilización de un entorno de desarrollo . Hay multitud de entornos de desarrollo ( orientados a la adquisición del conocimiento , a la inferencia , lenguajes de implementación , etc ) , pero son todos muy incompletos y por lo tanto provisionales . Para obtener un buen entorno de desarrollo , es necesario resolver el problema del aprendizaje y que el propio entorno aprenda de su interacción con el medio ( algo aún no conseguido ) . Esta fase es claramente de síntesis . 7 . 1 . Entornos de desarrollo Un diseñador puede en un principio diseñar todo el SE con un lenguaje de implementación tipo MODULA−2 por ejemplo , y de esta forma tiene control directo y plena adaptación del sistema a sus requerimientos , pero debido a la gran complejidad de este tipo de sistemas , 5
se hace imprescindible la utilización de entornos de desarrollo , que si bien le quitan flexibilidad , le dan una gran ayuda al desarrollador de SE's . Las características básicas de un entorno de desarrollo son : 1. Potencia en la representación del conocimiento 2. Flexibilidad 3. Comodidad y sencillez 4 .Eficiencia 5. Robustez 6. Traza y depuración 7. Explicación del razonamiento 8. Computadores sobre los que se ejecuta Ejemplo :Nexpert Object En las fases de TG1 y TG2 se mira hacia el dominio , pero a partir de TG3 se mira lo que el entorno es capaz de hacer y se utiliza según las directrices del entorno ( si está orientado a reglas , habrá que adaptarse a este sistema , y así según el entorno ) . Nexpert Object realiza la inferencia con reglas ( IF x1 AND x2 ..... THEN z1... ELSE z2 .....) Nexpert Objects implementa los hechos como objetos ( Objeto.Propiedad ) . En general , se utiliza todo el potencial de la programación orientada a objetos ( clases , subclases , métodos , objetos , hipótesis , herencia , polimorfismo ,etc ) . Nexprt Objects utiliza encadenamiento hacia adelante y hacia atrás para razonar . Nexprt Objects permite tratar de forma restringida los sucesos de carácter temporal ( los que se pueden cambiar en tiempo de ejecución ) y en cierta medida , también permite el tratamiento de la incertidumbre . Este entorno permite modificar la interacción con el usuario . 7 . 2 . Herramientas para la adquisición del conocimiento Debido a la complejidad para captar el conocimiento de un experto , se intentó crear un
6
sistema intermedio entre el lenguaje del experto ( lenguaje natural ) y el lenguaje de implementación de la aplicación . Hay varios tipos de herramientas : − Herramientas basadas en el mismo modelo de representación que usa la base de conocimiento . − Herramientas que conceptualizan el conocimiento en función del método de resolución de de problemas . − Herramientas basadas en un modelo fuerte del dominio . 7 . 3 . Interfaz de usuario La interfaz de usuario es el conjunto de elementos físicos e informáticos que permiten el intercambio de información entre un sistema y sus usuarios . La interfaz de usuario es una forma de esconder los aspectos complejos del desarrollo e implementación de un SE al usuario final . Los entornos de desarrollo actuales permiten configurar la interfaz de usuario más idónea que crea el diseñador de cara a la utilización del usuario final . Los problemas que intenta solucionar la interfaz de usuario son : 1 . Factores humanos . 2 . Modelos mentales y modelos de usuario . 3 . Desarrollo e implementación de interfaces . 4 . Sistemas de gestión de la interacción . 7 . 3 . 1 . Tipos de interfaces y tipos de diálogo Hay dos tipos generales de interfaces : 1 . Interfaces conversacionales : ejecución síncrona o secuencial de comandos tipo MSDOS . 2 . Interfaces de manipulación directa : ejecución asíncrona de acciones tipo Windows . 7 . 3 . 2 . Separación entre diálogo y computación
7
Tradicionalmente se ha implementado el interfaz y sus datos de ejecución o comandos junto al programa de gestión . Es decir , que no había una separación nítida entre interfaz y programa en sí . Pero dificultaba la modernización de interfaces , su adaptación a distintos usuarios y en general al mantenimiento del sistema . Esto se ha intentado subsanar creando interfaces que se puedan separar de los programas de aplicación , de forma que una modificación de uno , no acarree una modificación del otro , y de esta forma , el desarrollo de ambos puede hacerse por separado . Ambos módulos pueden estar conectados por un controlador del diálogo . 7. 3 . 3 . Herramientas de desarrollo de interfaces Hay 3 grandes grupos de este tipo de herramientas : a / Herramientas de simulación . b / Librerías de funciones que implementan técnicas de interacción ( menús , botones , barras de desplazamiento ,etc ) . c / Sistemas de gestión de interfaces de usuario ( herramientas CASE ) . 7 . 3 . 4 . Tipos de modelos de interacción Hay varios tipos : 1 . Gramáticas independientes del contexto ( tipo comandos Autocad ) . 2 . Redes de transiciones ( diagramas de transiciones ) . 3 . Modelos de eventos ( Visual Basic o Delphi ) . 8 . Validación y Evaluación ( TG5 ) La validación es el proceso mediante el cuál evaluamos el sistema para ver si cumple las especificaciones iniciales . Este proceso no está muy bien definido y hay varias tendencias , ya sean aplicando el test de Turing o simplemente comentando con el experto si el sistema responde a lo que él sabe . Pero todos estos procesos son muy inciertos y ambiguos . Actualmente se tiende a ir evaluando los resultados obtenidos tras TG1 , TG2 , TG3 y TG4 mediante la creación de prototipos . Los entornos de desarrollo son especialmente aconsejables para crear prototipos y así poder corregir los defectos o fallos del sistema antes de pasar a la siguiente fase de desarrollo , con el consiguiente ahorro de tiempo y dinero .
8
Las razones que aconsejan la evaluación son : − Fiabilidad . − Validez . − Aceptación . − Razones éticas y legales . − Razones intelectuales .
9