Sistemas y conocimiento

Anuncio
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
Descargar