logorincon.jpg (12356 bytes)

Recuerda que esta pagina la hacemos todos juntos. Envíanos Tus trabajos ! ! !

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 .

Click Here!