lunes, 8 de noviembre de 2010

Sistemas Expertos

Sistemas Expertos
 
Introducción
Los sistemas expertos son programas que reproducen el proceso intelectual (conocimiento) de un experto humano en un campo particular, pudiendo mejorar su productividad, ahorrar tiempo y dinero, conservar sus valiosos conocimientos y difundirlos más fácilmente.
Antes de la aparición del computador, el hombre ya se preguntaba si se le arrebataría el privilegio de razonar y pensar. En la actualidad existe un campo dentro de la inteligencia artificial al que se le atribuye esa facultad: el de los sistemas expertos. Estos sistemas permiten la creación de máquinas que razonan como el hombre, restringiéndose a un espacio de conocimientos limitado. En teoría pueden razonar siguiendo los pasos que seguiría un experto humano (médico, analista, empresario, etc.) para resolver un problema concreto. Este tipo de modelos de conocimiento por ordenador ofrece un extenso campo de posibilidades en resolución de problemas y en aprendizaje. Su uso se extenderá ampliamente en el futuro, debido a su importante impacto sobre los negocios y la industria.

Definición
Los sistemas expertos se pueden considerar como el primer producto verdaderamente operacional de la inteligencia artificial.
Son programas de ordenador diseñados para actuar como un especialista humano en un dominio particular o área de conocimiento.

Características de los Sistemas Expertos
La característica fundamental de un sistema experto es que separa los conocimientos almacenados (base de conocimiento) del programa que los controla (motor de inferencia). Los datos propios de un determinado problema se almacenan en una base de datos aparte (base de hechos).
Una característica adicional deseable, y a veces fundamental, es que el sistema sea capaz de justificar su propia línea de razonamiento de forma inteligible por el usuario.

Arquitectura de un Sistema Experto
No existe una estructura de sistema experto común. Sin embargo, la mayoría de los sistemas expertos tienen unos componentes básicos:
·         Base de conocimientos,
·         Motor de inferencia,
·         Base de datos e
·         Interfaz con el usuario.
Muchos tienen, además, un módulo de explicación y un módulo de adquisición del conocimiento.

Estrategias del Motor de inferencia
El Motor de Inferencias (MI) es un programa de control cuya función es seleccionar las reglas posibles a satisfacer el problema, para ello se vale de ciertas estrategias de control sistemáticas o de estrategias heurísticas.

·         Estrategias de control sistemático:
·         Encadenamiento hacia adelante o hacia atrás.
·         Búsqueda en profundidad o a lo ancho.
·         Régimen de control irrevocable o por tentativa.
Estas estrategias son de forma sistemática las cuales deben llevar a la solución del problema

Representación del conocimiento

Las reglas “si-entonces”, también llamadas reglas de producción, constituyen el formalismo más popular para representar conocimiento. En los sistemas expertos tienen las siguientes características deseables:

ü  Modularidad: cada regla define una parte de conocimiento pequeña y relativamente independiente.

ü  Incremental: se pueden añadir nuevas reglas a la base de conocimiento, que son relativamente independientes de las otras reglas.

ü  Modificable: se pueden cambiar reglas por otras nuevas.

ü  Transparente: es capaz de explicar las decisiones tomadas y las soluciones planteadas.

Para desarrollar un sistema experto que resuelva un problema real en un dominio concreto, el primer paso es consultar con humanos expertos en el dominio y después aprender de ese dominio uno mismo. Este paso supone un gran esfuerzo.

Historia de la representación del conocimiento
En ciencias de la computación, particularmente la inteligencia artificial, una serie de representaciones se han ideado para estructurar la información.
KR es el más comúnmente utilizado para referirse a las representaciones destinadas a la transformación por los modernos ordenadores y, en particular, para las representaciones que consiste en objetos explícitos y de afirmación o afirmaciones acerca de ellos. Representing knowledge in such explicit form enables computers to draw conclusions from knowledge already stored ('Clyde is grey'). En representación de conocimiento en forma explícita como permite a los equipos para sacar conclusiones de los conocimientos ya almacenados.
KR Muchos métodos fueron juzgados en la década de 1970 y principios de 1980, como la heurística de preguntas y respuestas, redes neuronales , teoremas , y los sistemas expertos , con éxito variable. Medical diagnosis (eg, Mycin ) was a major application area, as were games such as chess . Diagnóstico médico (por ejemplo, Mycin ) fue una de las principales aplicaciones, al igual que juegos como el ajedrez.
En la década de 1980 lenguajes formales equipo y los sistemas de representación del conocimiento se levantó. Major projects attempted to encode wide bodies of general knowledge; for example the " Cyc " project (still ongoing) went through a large encyclopedia, encoding not the information itself, but the information a reader would need in order to understand the encyclopedia: naive physics; notions of time, causality, motivation; commonplace objects and classes of objects. Los principales proyectos intentado codificar cuerpos gama de conocimientos generales, por ejemplo el " Cic "proyecto (aún en curso) pasó por una gran enciclopedia, no codifica la información en sí misma, pero la información que un lector necesita para comprender la enciclopedia: la física ingenua , nociones de tiempo, la causalidad, la motivación, los objetos comunes y las clases de objetos.
A través de este trabajo, la dificultad de KR llegó a ser mejor apreciada. In computational linguistics , meanwhile, much larger databases of language information were being built, and these, along with great increases in computer speed and capacity, made deeper KR more feasible. En la lingüística computacional , por su parte, mucho más grandes bases de datos de información sobre el idioma se está construyendo, y éstos, junto con grandes incrementos en la velocidad de la computadora y la capacidad, hecho más profundo KR más factible.
Varios lenguajes de programación han sido desarrollados que se orientan a KR. Prolog desarrollado en 1972,  pero popularizado mucho más tarde, representa las proposiciones y la lógica de base, y se pueden extraer conclusiones de los establecimientos conocidos. KL-ONE (1980) es más específicamente a los el conocimiento mismo de representación. In 1995, the Dublin Core standard of metadata was conceived. En 1995, el Dublin Core estándar de metadatos fue concebido. 
Técnicas de adquisición del conocimiento
Las técnicas sobre las que describiré se especializan en las áreas de adquisición del conocimiento, representación de ese conocimiento y maneras de solucionar problemas distribuidos.
Ejemplos de programación._ En donde el conocimiento es adquirido a partir de ejemplos, su función principal es crear programas a partir de ejemplos

Adquisición y refinamiento del conocimiento._ El principio básico de esta técnica es que el conocimiento inicial es ingresado por los programadores, y luego el programa descubre las falencias de las reglas y las remienda. Para que este proceso sea posible el programa experimenta y analiza sucesivamente la base de datos y su funcionamiento y de allí descubre sus debilidades.

Este acercamiento hace que las capacidades de la máquina más la experiencia humana sean aplicables a la generación y mejoramiento interactivo de los SE.

INFERNO: Una aproximación cautelosa a una inferencia incierta.

Inferno es un programa que informa al usuario acerca de las inconsistencias que podrían existir en las información que se le presenta, y hace sugerencias de como cambiar la información para hacerla consistente.
Para lograr esto se necesitan incluir en el programa un razonamiento subjetivo de Bayes, medidas del creer y no creer, y la teoría de la evidencia de Dempster-Shafer.

Resolviendo problemas distribuidos._ Es un proceso en el que varios agentes interactúan para lograr una meta común. Un ejemplo clásico de problemas distribuidos es el control aéreo en un aeropuerto. Usa el knowledge-base-simulation para probar varias estrategias y conductas para llegar lo más eficientemente a la meta.

VERIFICACIÓN DE BASES DE CONOCIMIENTO
El concepto de verificación de bases de conocimientos se corresponde con el de control de calidad del software tradicional. Se diferencian principalmente por las anomalías que se pueden presentar.
Las principales anomalías son las siguientes: inconsistencia, redundancia, circularidad, presencia de objetos innecesarios y ambigüedades.

Modelado del conocimiento

La Ingeniería del Conocimiento comprende tres temas fundamentales:

·         Adquisición del conocimiento.
·         Representación del conocimiento.
·         Integración del conocimiento en un sistema computacional

Metodología para la construcción de sistemas expertos
Para construir un sistema experto existen metodologías de diseño específicas [GRE88, HAY83, IGN91].
A continuación se presenta un procedimiento general de diseño:
Donde
Adquisición del Conocimiento: entrevista al experto para obtener las heurísticas que utiliza para resolver problemas.
Representación del Conocimiento: se analiza, organiza, depura y plasma simbólicamente el conocimiento obtenido del experto
Programación Simbólica se escriben los programas que sean necesarios para simular en la computadora el proceso de resolución que llevaría el experto humano
A continuación se listan algunas consideraciones que deben tomarse en cuenta antes de comenzar a elaborar un sistema basado en conocimiento:
  1. ¿Qué tareas llevará a cabo el Sistema Experto?
  2. ¿Quién es el experto? ¿Por qué es el experto? ¿Qué tan motivado se encuentra para participar? ¿Cuál es su disponibilidad? ¿Existen otros expertos?
  3. ¿Qué relación existe entre las actuales responsabilidades del experto y las tareas que se integrarán en el sistema computacional?
  4. ¿Cuál es el grado de complejidad esperado para cada una de las tareas que se planea lleve a cabo el Sistema Experto?
  5. Identifique el tipo de conocimiento que utiliza el experto. Marque el grado de afinidad según los rangos descritos:
Conclusiones
·         Los sistemas expertos son útiles y prácticos  y  además, son realizables.
·         Un Sistema Inteligente es totalmente flexible y puede ser modificado, o actualizado según las necesidades del usuario, en línea o fuera de línea. Estas modificaciones pueden hacerse más rápidamente que con lenguajes tradicionales
·         Reduce costos y tiempo en la toma de decisiones mejorando la Productividad y Competitividad
·         Se cuenta con “Conocimiento Experto” para decidir.

Recomendaciones
·         Si se dispone a desarrollar un sistema experto, es necesario y recomendable que busque asesoramiento de los mejores expertos humanos que estén a su alcance para lograr un mejor producto.
·         Separar el generador de inferencias de la base de conocimientos.
·         Recuerde que aunque el computador no alcanza el grado de perfección del ser humano y no es consciente del proceso que está llevando a cabo, lo que importa es que funcionan y facilitan una gran cantidad de tareas al hombre.

Resumen
Son programas de ordenador diseñados para actuar como un especialista humano en un dominio particular o área de conocimiento. La característica fundamental de un sistema experto es que separa los conocimientos almacenados (base de conocimiento) del programa que los controla (motor de inferencia). Los datos propios de un determinado problema se almacenan en una base de datos aparte (base de hechos).
No existe una estructura de sistema experto común. Sin embargo, la mayoría de los sistemas expertos tienen unos componentes básicos: Base de conocimientos, Motor de inferencia, Base de datos e Interfaz con el usuario. El Motor de Inferencias (MI) es un programa de control cuya función es seleccionar las reglas posibles a satisfacer el problema, para ello se vale de ciertas estrategias de control sistemáticas o de estrategias heurísticas.
Las reglas “si-entonces”, también llamadas reglas de producción, constituyen el formalismo más popular para representar conocimiento. En los sistemas expertos tienen las siguientes características deseables: Modularidad, incremental, modificable, transparente.
El concepto de verificación de bases de conocimientos se corresponde con el de control de calidad del software tradicional. Para construir un sistema experto existen metodologías de diseño específicas [GRE88, HAY83, IGN91].

Glosario de términos de Inteligencia Artificial

Inteligencia: Una propiedad de la mente en la que se relacionan habilidades tales como las capacidades del pensamiento abstracto, el entendimiento, la comunicación, el raciocinio, el aprendizaje, la planificación y la solución de problemas.
Semántica: El estudio del significado de las palabras.
Ontología: Una forma de representar el conocimiento a través de jerarquías elementales.
CBR (Cased‑Based Reasoning): Sistema de programación en el cual los conocimientos están almacenados en forma de experiencia o casos.
 Algoritmo genético: Técnica basada en la selección natural. La generación de cadenas de bit son creadas y evaluadas usando operaciones similares a la genética, para encontrar la solución más próxima a la optima.
 
Sistemas basados en reglas: Aplicación basada en la representación de los conocimientos que ofrece la habilidad de analizar este conocimiento usando reglas de la forma IF‑THEM.
 
Redes neuronales (neural network): Sistema que emula el sistema nervioso humano, así como el procesamiento de la importación del cerebro. Las redes nerviosas son usadas entre otras cosas en el procesamiento de señales y como sensores, y en el reconocimiento de patrones.
 
Sistemas basados en procedimientos: Son técnicas de programación orientadas a objetos que permiten el enlace de las características de los objetos en forma de código. Cuando un mensaje es recibido por el código, sus características son ejecutadas.
 
Regla: Una técnica de representación para la solución de problemas humanos y razonamiento heurístico usando la forma IF‑ THEM.
 
Realidad virtual: Proceso que usa computadoras para simular la realidad del mundo en 3‑D: oír, ver y tocar
Glosario de términos de Sistemas Expertos

Experto: es una persona con un conocimiento amplio o aptitud en un área particular del conocimiento.
Sistema Experto: Es una tecnología diseñada para extraer los conocimientos de un experto y con ellos elaborar un programa para la computadora en forma de reglas del tipo IF‑THEM.
Inferencia: Una inferencia es una evaluación que realiza la mente entre expresiones bien formadas de un lenguaje
Conocimiento: Hechos, o datos de información adquiridos por una persona a través de la experiencia o la educación, la comprensión teórica o práctica de un tema u objeto de la realidad.
Bibliografía: