Sistemas expertos

Sistemas expertos
Sistemas expertos
Nombre:
Sistemas expertos
Descripción:
Los sistemas expertos forman parte de la ciencia de la computación y dentro de ésta se ubican en la rama de la inteligencia artificial.


Sistemas expertos(ES, siglas del término Expert System) es un sistema de información basado en el conocimiento que usa su conocimiento de un área de aplicación compleja y específica a fin de actuar como un consultor experto para los usuarios finales. Los sistemas expertos proporcionan respuestas sobre un área problemática muy específica al hacer inferencias semejantes a las humanas sobre los conocimientos obtenidos en una base de conocimientos especializados.

Historia

Los sistemas expertos forman parte de la ciencia de la computación y dentro de ésta se
ubican en la rama de la inteligencia artificial. Éste término fue usado por primera vez por
un doctor de la Universidad Stanford, Edward A. Feigenbaum. El estipuló que el poder
de resolución de un problema en un programa de computadora viene del conocimiento de
un dominio específico, no solo de las técnicas de programación y el formalismo que
contiene. Antes de eso casi todos los investigadores en inteligencia artificial habían tratado

Evoluchistorica.png

de desarrollar métodos generales de programación que resolverían grandes problemas
conceptuales pero estos programas resolvían pobremente los problemas individuales.
En el desarrollo de los sistemas expertos también se ha producido a medida que se ha ido desarrollando la Inteligencia artificial y los diferentes métodos que se han empleado para su resolución. El desarrollo de lenguajes como LISP y PROLOG condicionaron esa evolución, así como investigaciones en diversos campos relacionados. Los primeros sistemas expertos que se desarrollaron en los años 1960 eran capaces de resolver solo problemas basados en situaciones determinadas, mediante sistemas de reglas .Es a partir de los años 1970 cuando se empiezan a resolver problemas basados en situaciones inciertas, basados en medidas difusas al principio y en redes probabilísticas con posterioridad.

Evolución histórica

  • En 1965 aparece DENDRAL, duró su realización más de diez años hasta 1975, este fue el primer sistema experto. Es en ese año cuando Feigenbaum entra a formar parte del departamento de Informática de Stanford. Allí conoció a Joshua Lederberg, el cual quería averiguar cual era la estructura de las moléculas orgánicas completas. El objetivo de DENDRAL fue estudiar un compuesto químico. El descubrimiento de la estructura global de un compuesto exigía buscar en un árbol las posibilidades, y por esta razón su nombre es DENDRAL que significa en griego "árbol".Antes de DENDRAL los químicos solo tenían una forma de resolver el problema, estar era tomar unas hipótesis relevantes como soluciones posibles, y someterlas a prueba comparándolas con los datos.
  • En 1965 también se empezaron a utilizar técnicas para la resolución de problemas que se caracterizaban por la búsqueda heurística como modelo para la resolución de problemas, y con ellas comenzó la investigación y desarrollo de los sistemas expertos.
  • En 1972, en la Universidad de Standford se desarrolla MYCIN, sistema experto dentro del campo de la medicina para diagnostico de enfermedades infecciosas en la sangre. MYCIN se trataba de un sistema experto para el diagnóstico de enfermedades infecciosas. Desde los resultados de análisis de sangre, cultivos bacterianos y demás datos, el programa era capaz de determinar, o en lo menos, sugerir el microorganismo que estaba causando la infección. Después de llegar a una conclusión, MYCIN prescribía una medicación que se adaptaba perfectamente a las características de la persona, tales como el peso corporal de este.
  • Al mismo tiempo, Davir Marr propone nuevas teorías sobre la capacidad de reconocimiento visual de las diferentes máquinas.
  • En 1972 aparece el lenguaje PROLOG basado en las teorías de Minsky.
  • En 1973 se desarrolla el sistema experto llamado TIERESIAS. El cometido de este sistema experto era el de servir de intérprete entre MYCIN y los especialistas que lo manejaban, a la hora introducir nuevos conocimientos en su base de datos. El especialista debía utilizar MYCIN de una forma normal, y cuando este cometiera un error en un diagnóstico (hecho producido por la falta o fallo de información en el árbol de desarrollo de teorías) TEIRESIAS corregiría dicho fallo destruyendo la regla si es falsa o ampliándola si es eso lo que se necesita.
  • En 1979 aparece XCON, primer programa que sale del laboratorio Su usuario fue la Digital Equipament Corporation (DEC).
  • El cometido de XCON sería configurar todos los ordenadores que saliesen de la DEC. El proyecto presentó resultados positivos y se empezó a trabajar en el proyecto más en serio en diciembre de 1978.
  • En abril de 1979 el equipo de investigación que lo había diseñado pensó que ya estaba preparado para salir, y fue entonces, cuando se hizo una prueba real, esperando resolver positivamente un 95 % de las configuraciones, este porcentaje tal alto se quedó en un 20 % al ser contrastado con la realidad; XCON volvió al laboratorio, donde fue revisado y a finales de ese mismo año funcionó con resultados positivos en la DEC.
  • En 1980 se instauró totalmente en DEC. Y en 1984, el XCOM había crecido hasta multiplicarse por diez. El XCOM supuso un ahorro de cuarenta millones de dólares al año para la DEC.
  • Entre los años 1980 a 1985 se produce la revolución de los Sistemas Expertos. En estos 5 años se crearon diversos sistemas expertos como el DELTA, de General Electric Company, para la reparación de locomotoras diesel y eléctricas. "Aldo en Disco" para la reparación de calderas hidroestáticas giratorias usadas para la eliminación de bacterias.
  • Se crearon multitud de empresas dedicadas a los sistemas expertos como Teknowledge Inc., Carnegie Group, Symbolics, Lisp Machines Inc., Thinking Machines Corporation, Cognitive Systems Inc. formando una inversión total de 300 millones de dólares. Los productos más importantes que creaban estas nuevas compañías eran las "máquinas Lisp", que se trataba de unos ordenadores que ejecutaban programas LISP con la misma rapidez que en un ordenador central, y el otro producto fueron las "herramientas de desarrollo de sistemas expertos".
  • En 1987 XCON empieza a no ser rentable. Los técnicos de DEC tuvieron que actualizar XCOM rápidamente llegándose a gastar más de dos millones de dólares al año para mantenimiento y algo parecido ocurrió con el DELTA..También en 1987 aparecieron los microordenadores Apple y compatibles IBM con una potencia parecida a los LISP. El software se transfirió a máquinas convencionales utilizando el lenguaje "C" lo que acabó con el LISP.
  • A partir de los 1990 y con el desarrollo de la Informática, se produce un amplio desarrollo en el campo de la Inteligencia artificial y los Sistemas Expertos, pudiéndose afirmar que estos se han convertido en una herramienta habitual en determinadas empresas en la actualidad.

¿Qué es un sistema experto?

Es una rama de la Inteligencia artificial; son sistemas informáticos que simulan el proceso de

Experto.jpg

aprendizaje, de memorización, de razonamiento, de comunicación y de acción en consecuencia de un experto humano en cualquier rama de la ciencia.

Características

Para que un sistema actúe como un verdadero experto, es deseable que reúna, en lo posible, lo más importante de las características de un experto humano, esto es:

  • Habilidad para adquirir conocimiento.
  • Fiabilidad, para poder confiar en sus resultados o apreciaciones.
  • Solidez en el dominio de su conocimiento.
  • Capacidad para resolver problemas.

Dada la complejidad de los problemas que usualmente tiene que resolver un sistema experto , puede existir cierta duda en el usuario sobre la validez de respuesta obtenida. Por este motivo, es una condición indispensable que un sistema experto sea capaz de explicar su proceso de razonamiento o dar razón del por qué solicita tal o cual información o dato.

Estas características le permiten almacenar datos y conocimiento, sacar conclusiones lógicas, tomar decisiones, aprender de la experiencia y los datos existentes, comunicarse con expertos humanos, explicar el por qué de las decisiones tomadas y realizar acciones como consecuencia de todo lo anterior.Técnicamente un sistema experto, contiene una base de conocimientos que incluye la experiencia acumulada de expertos humanos y un conjunto de reglas para aplicar ésta base de conocimientos en una situación particular que se le indica al programa. Cada vez el sistema se mejora con adiciones a la base de conocimientos o al conjunto de reglas.

Componentes de un sistema experto

Funcionamiento.jpg
  • Separan conocimientos (reglas y hechos) y el procesamiento; se le añade un interfase de usuario y un componente explicativo; los siguiente componentes pueden estar estructurados de formas muy variadas.
  • Base de conocimientos: Contiene el conocimiento de los hechos y las experiencias de los expertos en un dominio determinado
  • Mecanismo de inferencia: Puede simular la estrategia de solución de un experto
  • Componente explicativo: Explica al usuario la estrategia de solucion encontrada y el por qué de las desiciones tomadas
  • Interfase de usuario: Sirve para que este pueda realizar una consulta en un lenguaje lo más natural posible
  • Componente de adquisición: Ofrece ayuda a la estructuración e implementación del conocimiento en la base de comocimientos

Tipos de sistemas expertos

Existen tres tipos de sistemas expertos:

  • Basados en reglas: Aplicando reglas heurísticas apoyadas generalmente en lógica difusa para su evaluación y aplicación.
  • Basados en casos CBR (Case Based Reasoning): Aplicando el razonamiento basado en casos, donde la solución a un problema similar planteado con anterioridad se adapta al nuevo problema.
  • Basados en redes: Aplicando redes bayesianas, basadas en estadística y el teorema de Bayes.

¿Por qué utilizar un sistema experto?

Con su ayuda, personas con poca experiencia pueden resolver problemas que requieren un "conocimiento formal especializado". Se pueden obtener conclusiones y resolver problemas de forma más rápida que los expertos humanos. Estos sistemas razonan pero en base a un conocimiento adquirido y no tienen sitio para la subjetividad. Se ha comprobado que tienen al menos, la misma competencia que un especialista humano.

Su uso es especialmente recomendado en las siguientes situaciones:

  • Cuando los expertos humanos en una determinada materia son escasos.
  • En situaciones complejas, donde la subjetividad humana puede llevar a conclusiones erróneas.
  • Cuando es muy elevado el volumen de datos que ha de considerarse para obtener una conclusión.

Diferencias entre sistemas expertos y los tradicionales

Sistemas expertos:

  • Toman Decisiones
  • Calculan Resultados
  • Basados en Heurísticas
  • Dan Explicaciones de los Resultados
  • Usan Reglas de Inferencia
  • Accedan Bases de Conocimientos (Deductivas)
  • Centrados en el Experto y el Usuario
  • Manejan Conocimiento Impreciso, Contradictorio o Incompleto
  • Usan Datos y Lenguajes Simbólicos

Sistemas tradicionales:

  • Calculan resultados
  • Basados en Algoritmos
  • Dan Resultados sin Explicaciones
  • Usan Secuenciación, Ciclos y Condicionales
  • Acceden a Bases de Datos
  • Centrados en el Analista y el Programador
  • Conocimientos Precisos, Completos y Exactos
  • Usan Datos Numéricos y Lenguajes Procedurales.

Ventajas

  • Producción y productividad mayores. Pueden trabajar más rápido que lo humanos.Están disponibles ininterrumpidamente de día y noche, ofreciendo siempre su máximo desempeño. Pueden duplicarse ilimitadamente, i.e. tener tantos de ellos como se requieran.
  • Mayor calidad:Dan la probabilidad de aumentar la calidad proporcionando asesoría consistente y reduciendo las tasas de error.
  • Operación en entornos peligrosos. Muchas tareas requieren que los seres humanos operen en entornos hostiles y peligrosos.
  • Captación de experiencia escasa y su dimensión. Uno de los principales beneficios de los sistemas expertos es su facilidad de trasmitir experiencia a través de fronteras internacionales.
  • Siempre se ajustan a las normas establecidas y son consistentes en su desempeño, i.e. no desarrollan apreciaciones subjetivas, tendenciosas, irracionales o emocionales.
  • Confiabilidad.Los sistemas expertos son confiables.No padece de olvido, fatiga, dolor o comete errores de cálculo.
  • No requiere un sueldo, promociones, seguros médicos, incapacidades.
  • Accesibilidad al conocimiento y escritorios de vida. Hacen accesible el conocimiento (y la información) a mucha gente en diversos lugares. Siempre están dispuestos a dar explicaciones, asistir o enseñar a la gente, así como a aprender.
  • Pueden tener una vida de servicio ilimitada.Funciones incrementadas de otros sistemas expertos. La integración de un sistema experto con otros sistemas expertos hacen que estos últimos se vuelvan más eficientes, los sistemas integrados abarcan más aplicaciones, trabajan más rápido y producen resultados de mayor calidad.
  • Capacidad para trabajar con información incompleta o inconcreta. En contraste con los sistemas de cómputo convencionales, un sistema experto puede trabajar con información incompleta al igual que los expertos humanos.
  • Impartición de capacitación. Es factible que un sistema experto facilite la capacitación. El personal nuevo que trabaja con un sistema experto se vuelve más experimentado. La fusión de explicación puede servir como un dispositivo de de enseñanza y de ese modo puede efectuar apuntes que tal vez se inserten en la base de conocimiento.
  • Mejoramiento de las funciones para resolver problemas. Un sistema experto mejora la solución de problemas permitiendo la integración de juicios de expertos de primera línea en el análisis. De este modo, un sistema experto tiene la posibilidades resolver problemas cuyo enlace y conocimiento supera a los de cualquier individuo.
  • Reducción del tiempo para la toma de decisiones. Con el empleo de la recomendación del sistema, un ser humano puede tomar decisiones mucho más rápido.
  • Reducción del tiempo fuera de servicio. Muchos sistemas expertos operacionales se emplean para diagnosticar malos funcionamientos y prescribir reparaciones.

Desventajas

  • Tienen una noción muy limitada acerca del contexto de problema, i.e. no pueden percibir todas las cosas que un experto humano puede apreciar de un situación.
  • Pueden existir decisiones que sólo son de competencia para un ser humano y no una máquina.
  • No saben como subsanar sus limitaciones, e.g. no son capaces de trabajar en equipo o investigar algo nuevo.
  • Son muy costosos de desarrollar y mantener.
  • Tareas que realiza un Sistema Experto Monitorización.
  • La monitorización es un caso particular de la interpretación, y consiste en la comparación continua de los valores de las señales o datos de entrada y unos valores que actúan como criterios de normalidad o estándares. Se trata de que el programa pueda determinar en cada momento el estado de funcionamiento de sistemas complejos, anticipándose a los posibles incidentes que pudieran acontecer.

Integración y migración de los sistemas expertos.

Los sistemas expertos, salvo excepciones, no están aislados sino que forman parte de otros sistemas, expertos o convencionales. Existen dos tipos básicos de arquitectura de integración. En la primera, el sistema basado en el conocimiento forma parte de otro sistema principal. Así, si el sistema necesita comunicarse con el sistema basado en el conocimiento, entablará una comunicación directamente o a través de una red.

En la segunda el sistema basado en el conocimiento es el sistema principal y está conectado a otros sistemas basados en el conocimiento o convencionales, que le ayudan en su operación. Como ejemplo están los subsistemas que realizan complejos cálculos matemáticos necesarios durante el proceso de razonamiento.

En ambos casos debe garantizarse una comunicación fluida de todos los sistemas, aunque estén funcionando en plataformas diferentes, ya sea directamente o a través de una red local. Este aspecto es crítico en sistemas basados en el conocimiento en tiempo real, los cuales requieren un rápido acceso a la información relevante y a las bases de datos para poder ofrecer una solución inmediata y satisfactoria.

Por tanto, habrá que fijarse en las posibilidades de conexión a las bases de datos más conocidas y, en especial, a aquélla que se esté utilizando como estándar en la organización así como la posibilidad de llamar a rutinas externas en diferentes lenguajes y viceversa, o la invocación del sistema basado en el conocimiento desde otros sistemas.

Un aspecto fundamental a tener en cuenta es la portabilidad de la herramienta (herramientas multiplataforma). En este aspecto hay que valorar no sólo si la herramienta es susceptible de funcionar en diferentes plataformas sino también el coste del cambio de plataforma. Existen herramientas que permiten pasar de una plataforma a otra sin apenas esfuerzo, lo que facilitará la comercialización y el uso de los sistemas que se desarrollen.

Tendencias futuras

  • El mercado de herramientas para el desarrollo de sistema experto está sufriendo una profunda transformación debido a una reorganización en el mercado informático y al cambio de estrategia de las compañías dedicadas al desarrollo de estas herramientas. Son cada vez más las compañías que antaño se dedicaban exclusivamente a la Inteligencia artificial y que han decidido introducirse en otros mercados más amplios. Esto ha provocado una confusión que irá en aumento a medida que las empresas que integraban el grupo del mercado de la inteligencia artificial pasen a comercializar otro tipo de productos.
  • El mercado se ha ido reconfigurando aprovechando las experiencias del pasado y el avance tecnológico. Así se ha pasado de utilizar máquinas específicas (por ejemplo máquinas LISP) a usar ordenadores comunes (estaciones de trabajo, ordenadores personales, etc.). Las aplicaciones eran muy específicas y ahora el ámbito es mucho más amplio. Los sistemas basados en el conocimiento estaban pensados para trabajar de forma aislada y ahora se conciben integrados con otros sistemas. Y, finalmente, el número de personas formadas en estas técnicas es mucho mayor que las existentes hace unos años.Un análisis del mercado actual lleva a distinguir seis categorías de herramientas en función de la plataforma de desarrollo y de operación que lo estructuran:

Se clasifican en:

  • Según plataformas
  • Según herramientas de desarrollo:
  • Lenguajes (LISP, PROLOG, C++,...)
  • "Shell" (utilizando esos entornos)
  • CBR

Otra clasificación:

  • Herramientas de propósito general
  • Herramientas de dominio.

Las herramientas de desarrollo de sistemas basados en el conocimiento se pueden clasificar de varias formas.

Según la plataforma de desarrollo y de operación que lo estructuran podemos distinguir cuatro tipos:

  • Herramientas para PCs y Macintosh: Hasta hace poco, las herramientas que existían para estos entornos estaban orientadas al desarrollo de sistemas pequeños y prototipos. Actualmente, y dado el aumento de la potencia de los PCs, hay herramientas que antes sólo funcionaban en estaciones de trabajo y ahora tienen versiones para PC.
  • Herramientas para estaciones de trabajo: Aunque el número de herramientas en este sector no ha sufrido grandes variaciones, la aparición de nuevas herramientas catalogadas como herramientas orientadas a dominios específicos podrían incluirse en esta categoría. Este mercado presenta el mayor volumen de ventas, y puede ser considerado sin duda, junto con el de los PCs, el que tiene más proyección de futuro. De hecho, aquellas compañías que no ofrecen una buena herramienta para estaciones de trabajo están realizando esfuerzos para colocar en el mercado un producto capaz de competir en este entorno.
  • Herramientas para mainframes: El número de herramientas en este mercado es pequeño y se prevé que en los próximos años descienda lenta pero continuamente hasta desaparecer, ya que las compañías que los comercializan se están desplazando hacia las herramientas para estaciones de trabajo y PCs.
  • Herramientas Lisp: Son ordenadores con arquitecturas especiales para ejecutar programas Lisp. El interés por herramientas Lisp continúa descendiendo así como el número de productos en el mercado. Se prevé un descenso continuo en los próximos años.

Según el alcance de la herramienta podemos dividirlas en:

  • Herramientas de Propósito General. No están especialmente concebidas para tratar problemas específicos. Tienen como ventaja su capacidad para ser empleadas en gran variedad de problemas.
  • Orientadas a dominios y problemas específicos. Esta última categoría representa el mayor grupo de herramientas en el mercado. Se trata de herramientas que abordan problemas o áreas específicos. Ahorran mucho tiempo de desarrollo en el caso de ser aplicadas en los dominios para los que se diseñaron. El número permanece estable aunque con perspectivas de crecimiento en los años venideros debido al gran interés existente en este tipo de herramientas.

Por último podemos realizar una última división atendiendo al lenguaje o técnica para el que sirve la herramienta y así podemos distinguir entre:

  • Herramientas CBR (Case-Based Reasoning): La demanda de herramientas de este tipo se está consolidando mediante la mejora de la calidad de sus productos con más utilidades y nuevos componentes. Son herramientas de razonamiento basadas en casos, para a partir de ellos inducir las reglas y criterios por similitud.
  • Herramientas para lenguajes Lisp, Prolog, C++. Son entornos de desarrollo; proporcionan las utilidades necesarias ( editores, compiladores, depuradores ) para poder programar de forma cómoda en estos lenguajes. ( Se incluye el C++ porque cada vez hay más programas basados en el conocimiento que se desarrollan en él).
  • Shells. Son entornos de desarrollo completos y particulares. Contienen un motor de inferencia y utilizan métodos propios de representación del conocimiento que pueden ser más o menos parecidos al Lisp o al Prolog. Sirven principalmente para el desarrollo de prototipos aunque también pueden utilizarse como herramientas finales. Algunos ejemplos son CLIPS, ART, G2.

Áreas de aplicación

Se aplican a una gran diversidad de campos y/o áreas. A continuación se listan algunas de las principales:

Expertoejemplo.jpg


Algunos de los campos actuales de investigación y de aplicación son:

  • Aprendizaje: Se pretende que sea el propio ordenador el que adquiera el conocimiento. Existen muchas técnicas aplicables o no dependiendo del problema: aprendizaje inductivo, deductivo, redes neuronales, algoritmos genéticos.
  • Redes Neuronales: Consisten en nodos conectados con otros mediante enlaces, simulando las
    Redes neuronales.
    conexiones que forman las neuronas en el cerebro. Se investiga su utilización en muchas áreas; Visión Artificial, Razonamiento, Aprendizaje, Comprensión Lenguaje Natural.
  • Redes Bayesianas: Técnica para tratar el razonamiento con incertidumbre. Su base es el teorema de Bayes que es el método matemático exacto para tratar las probabilidades. Consiste en una red donde los nodos son hechos ciertos o no y los enlaces entre los nodos son las probabilidades condicionadas de unos hechos con respecto a otros. Propagando las probabilidades a través de la red, se pueden obtener los resultados más probables a partir de los hechos que se conocen (razonamiento). El ejemplo típico son los sistemas de diagnóstico médico.
  • Algoritmos genéticos: Son métodos de aprendizaje inspirados en la evolución natural, y que utilizan las nociones de individuos, apareamiento, recombinación de cromosomas, mutación genética, adaptación y selección natural. Son la base de las investigaciones en Vida Artificial.
  • Otras técnicas que se pueden mencionar son la utilización de Ontologías para representar el conocimiento, Data Mining para obtención de conocimiento en bases de datos y los Agentes Inteligentes para la recuperación de información en Internet.

Actualmente el duro, difícil y cambiante mercado competitivo se vuelve más complejo por la gran diversidad de información que se ven obligados a almacenar y analizar, razón por la cual las empresas se ven en la necesidad de recurrir a poderosas y/o robustas herramientas o sistemas que les sirvan de soporte a la hora de tomar decisiones. De esta forma estos inteligentes, precisos y eficientes sistemas son adoptados por más organizaciones, en las cuales se convierten y/o transforman en una importante estrategia de negocio.
Por otra parte es importante mencionar que estos seguirán siendo usados en los todos y cada una de las áreas y/o campos donde los expertos humanos sean escasos.

Bibliografía

  • Cuena, J. Notas sobre modelos de razonamiento. Dpto. de I.A., Facultad de Informática, UPM, 1995.
  • Jackson, P. Introduction to Expert Systems Addison-Wesley, 1990.
  • Sterling, L. y Shapiro, E. The Art of Prolog (Segunda edicion) MIT Press, 1993.
  • Bratko, I. Prolog Programming for Artificial Intelligence, Addison-Wesley Ltd. 1986.
  • Clocksin y Mellish. Programming in Prolog, Springer-Verlag, 1981
  • Shoham, Yoav Artificial Intelligence Techniques in Prolog, Morgan Kaufmann, 1993.
  • Bowen, Kenneth A. Prolog and Expert Systems, McGraw-Hill, 1991.
  • Castillo, E., Gutiérrez, J.M. and Hadi, A.S. (1997) Expert Systems and probabilistic Network Models. Springer Verlag, New York. Versión castellana publicada por la Academia de Ingeniería (1998)

Fuentes

Enlaces Externos