jueves, 18 de abril de 2013

Sistema experto basado en reglas


Los sistemas expertos son sistemas computacionales que se derivan de la inteligencia artificial. La meta científica de la inteligencia artificial es construir sistemas computacionales que exhiban comportamiento inteligente. El término inteligencia cubre muchas habilidades cognoscitivas, incluyendo la capacidad de solucionar problemas, de aprender, y de entender un idioma; la inteligencia artificial trata acerca de los tópicos señalados. La mayoría del progreso hecho hasta la fecha en la inteligencia artificial radica en el área de solución de problemas, los conceptos y métodos para construir programas que razonan sobre problemas en vez de solamente calcular su solución. Los programas de inteligencia artificial que alcanzan capacidad un nivel de experto del área en la solución de problemas aplicando un cuerpo del conocimiento sobre tareas específicas se llaman sistemas basados en conocimiento o sistemas expertos.


Los sistemas expertos son llamados así porque emulan el comportamiento de un experto en un dominio concreto y en ocasiones son usados por éstos. Con los sistemas expertos se busca una mejor calidad y rapidez en las respuestas dando así lugar a una mejora de la productividad del experto. Un sistema experto se puede definir formalmente como: "un modelo y sus procedimientos asociados que exhiben, dentro de un dominio específico, un grado de maestría en solucionar problemas comparable al de un experto humano." O de manera más breve: "un sistema experto es un sistema informático que emula la capacidad de toma de decisión de un experto humano." Un experto humano puede ser definido como persona que toma decisiones adecuadas en ambientes que están cargados con incertidumbre y riesgo, y tiene la capacidad superior de hacerlo dados su entrenamiento, experiencia y práctica profesional. Se puede resumir las siguientes características principales de un experto al cual un sistema experto intenta emular: (1) Habilidad en llegar a soluciones rápidas, adecuadas a los problemas. (2) Capacidad para manejar excepciones. (3) Conocimiento de sus limitaciones. El área del conocimiento humano que es capturado en un sistema experto se denomina el dominio de la tarea. La tarea se refiere a alguna actividad orientada a una meta para resolver un problema. El dominio se refiere al área dentro de la cual se está realizando la tarea. Las tareas típicas son el diagnostico, el planeamiento, la programación, la configuración, el diseño y la interpretación.

Un sistema experto está conformado por: (1) Base de conocimiento. La cual contiene conocimiento modelado extraído del diálogo con un experto. (2) Base de hechos o memoria de trabajo. Contiene los hechos sobre un problema que se ha descubierto durante el análisis. (3) Máquina de inferencia. Modela el proceso de razonamiento humano. (4) Módulos de explicación. Explica el razonamiento utilizado por el sistema para llegar a una determinada conclusión. (5) Interfaz de usuario. Es la interacción entre el sistema experto y el usuario, propuesto a ser realizado mediante lenguaje natural. Principalmente existen tres tipos de sistemas expertos: en primera instancia se encuentran los sistemas expertos basados en reglas previamente establecidas, en segundo lugar están los sistemas expertos basados en casos y en tercer lugar se encuentran los sistemas expertos basados en redes bayesianas. En cada uno de estos tipos de sistemas expertos, la solución a un problema planteado se obtiene: en primer lugar aplicando reglas heurísticas apoyadas generalmente en lógica difusa para su evaluación y aplicación, en segundo lugar aplicando el razonamiento basado en casos, donde la solución a un problema similar planteado con anterioridad se adapta al nuevo problema y, en tercera instancia, aplicando redes bayesianas, basadas en estadística y el teorema de Bayes.

Los sistemas basados en reglas trabajan mediante la aplicación de reglas, comparación de resultados y aplicación de las nuevas reglas basadas en situaciones modificadas. También pueden trabajar por inferencia lógica dirigida, bien empezando con una evidencia inicial en una determinada situación y dirigiéndose hacia la obtención de una solución, o bien con hipótesis sobre las posibles soluciones y volviendo hacia atrás para encontrar una evidencia existente, o una deducción de una evidencia existente, que apoye una hipótesis en particular. En el manejo de sistemas expertos existen dos tipos de elementos, por una parte se encuentran los datos, hechos o evidencia y por otra parte, el conocimiento, referido como el conjunto de reglas almacenadas en la base de conocimiento. La máquina de inferencia utiliza ambos tipos de elementos para obtener nuevas conclusiones. Por ejemplo, si la premisa de una regla es cierta, entonces la conclusión de la regla debe ser también cierta. Los datos iniciales se incrementan incorporando las nuevas conclusiones. Por ello, tanto los hechos iniciales o datos de partida como las conclusiones derivadas de ellos forman parte de los hechos o datos de los cuales se dispone en un instante dado. Para obtener conclusiones, los expertos utilizan diferentes tipos de reglas y estrategias de inferencia.

El “modus ponens” es quizás la regla de inferencia más comúnmente utilizada. Se utiliza para obtener conclusiones simples. En ella, se examina la premisa de la regla, y si es cierta, la conclusión pasa a formar parte del conocimiento. Como ilustración, supóngase que se tiene la regla, “Si A es cierto, entonces B es cierto" y que se sabe además que “A es cierto”. La regla Modus Ponens concluye que “B es cierto." Esta regla de inferencia, que parece trivial, debido a su familiaridad, es la base de un gran número de sistemas expertos. La regla de inferencia Modus Tollens se utiliza también para obtener conclusiones simples. En este caso se examina la conclusión y si es falsa, se concluye que la premisa también es falsa. Por ejemplo, supóngase de nuevo que se tiene la regla, “Si A es cierto, entonces B es cierto” pero se sabe que “B es falso.” Entonces, utilizando la regla Modus Ponens no se puede obtener ninguna conclusión pero la regla Modus Tollens concluye que “A es falso”. El rendimiento del motor de inferencia depende del conjunto de reglas en su base de conocimiento. Hay situaciones en las que el motor de inferencia puede concluir utilizando un conjunto de reglas, pero no puede, utilizando otro, aunque éstos sean lógicamente equivalentes.

Una de las estrategias de inferencia más utilizadas para obtener conclusiones compuestas es el llamado encadenamiento de reglas. Esta estrategia puede utilizarse cuando las premisas de ciertas reglas coinciden con las conclusiones de otras. Cuando se encadenan las reglas, los hechos pueden utilizarse para dar lugar a nuevos hechos. Esto se repite sucesivamente hasta que no pueden obtenerse más conclusiones. El tiempo que consume este proceso hasta su terminación depende, por una parte, de los hechos conocidos, y, por otra, de las reglas que se activan. Este algoritmo puede ser implementado de muchas formas. Una de ellas comienza con las reglas cuyas premisas tienen valores conocidos. Estas reglas deben concluir y sus conclusiones dan lugar a nuevos hechos. Estos nuevos hechos se añaden al conjunto de hechos conocidos, y el proceso continúa hasta que no pueden obtenerse nuevos hechos.

La programación basada en las reglas es una de las técnicas comúnmente usadas para crear bases de conocimiento. En este paradigma de programación, las reglas se utilizan para representar conocimiento factual o heurístico, que especifican un sistema las acciones que se realizarán para una situación dada. Una regla se compone de una parte "si" y una parte "entonces". La parte "si" de una regla es una serie de patrones que especifican los hechos, o los datos, que hacen que se aplique una regla. Junto con los datos, los hechos también están presentes en la base de conocimiento. Estos hechos representan declaraciones verdaderas que se utilizan para activar las reglas. Una de las ventajas de las reglas “si-entonces” es su modularidad, cada una define un pedazo relativamente pequeño y, por lo menos en principio, independiente de conocimiento. Nuevas reglas pueden ser agregadas y las viejas pueden ser suprimidas, generalmente de manera independiente de otras reglas.

El paradigma “Generar-Probar-Depurar” es un marco para que el razonamiento asociativo y causal que produce sistemas expertos, basados en reglas, que son eficientes y robustos. Generar-Probar-Depurar se basa en un ciclo donde primero una buena solución aproximada se genera, en la fase de generación. Esta solución se analiza en la búsqueda de los posibles errores, en la fase de pruebas. Si se encuentra un error, el sistema intentará solucionarlo, en la fase de depuración. La solución refinada se prueba otra vez para encontrar posibles errores. Este lazo continúa hasta que la fase de pruebas aprueba la solución. Este acercamiento asume que el problema es un conjunto formado por un conocimiento inicial y un objetivo final que se desea alcanzar. El conocimiento inicial es toda la información que está disponible al principio del proceso de solución, se podría llamar estado inicial, y el objetivo final representa el estado que el sistema tiene que alcanzar basado en una serie de deducciones, la cual se podría llamar el estado final. La hipótesis se puede considerar como un conjunto de suposiciones que el sistema establece con base en el conocimiento inicial y las reglas de producción. La solución es el conjunto de suposiciones que interpretan correctamente el objetivo final, basándose en el conocimiento inicial.

No hay comentarios: