Ingeniero en Informática
Sistemas y conocimiento
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 .
- 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 :
- 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 .
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
- 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 ,
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
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
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 .
Las razones que aconsejan la evaluación son :
- Fiabilidad .
- Validez .
- Aceptación .
- Razones éticas y legales .
- Razones intelectuales .
Descargar
Enviado por: | El remitente no desea revelar su nombre |
Idioma: | castellano |
País: | España |