Tema 60 – Sistemas basados en el conocimiento.

Tema 60 – Sistemas basados en el conocimiento.

REPRESENTACIÓN DEL CONOCIMIENTO. COMPONENTES Y ARQUITECTURA.

ÍNDICE

1. INTRODUCCIÓN

1.1. Usos de un sistema experto

1.2. Ventajas e inconvenientes de los sistemas expertos

1.3. El conocimiento como base de los sistemas expertos

1.4. Sistemas expertos famosos

2. TIPOS DE SISTEMAS EXPERTOS

3. REPRESENTACIÓN DEL CONOCIMIENTO

3.1. Tipos de conocimiento

3.2. Reglas de producción

3.3. Medidas de confianza

3.4. Redes semánticas

3.5. Marcos de referencia

3.6. Ejemplos

4. TÉCNICAS DE BÚSQUEDA

4.1. Búsqueda a ciegas y explosión combinatoria

4.2. Estrategias de búsqueda

4.3. Búsqueda heurística

5. ARQUITECTURA DE LOS SISTEMAS EXPERTOS

5.1. La base de conocimientos

5.2. El motor de inferencia

5.3. Interfaz con el usuario

5.4. Bases de datos

5.5. Subsistema de explicación

5.6. Subsistema de adquisición del conocimiento

6. BIBLIOGRAFÍA

1. INTRODUCCIÓN A LOS SISTEMAS EXPERTOS

Los sistemas expertos son programas que reproducen el proceso intelectual 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.

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. En este sentido, pueden considerarse como intermediarios entre el experto humano, que transmite su conocimiento al sistema, y el usuario que lo utiliza para resolver un problema con la eficacia del especialista. El sistema experto utilizará para ello el conocimiento que tenga almacenado y algunos métodos de inferencia.

A la vez, el usuario puede aprender observando el comportamiento del sistema. Es decir, los sistemas expertos se pueden considerar simultáneamente como un medio de ejecución y transmisión del conocimiento.

Lo que se intenta, de esta manera, es representar los mecanismos heurísticos que intervienen en un proceso de descubrimiento. Éstos mecanismos forman ese conocimiento difícil de expresar que permite que los expertos humanos sean eficaces calculando lo menos posible. Los sistemas expertos contienen ese “saber hacer”.

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.

1.1. USOS DE UN SISTEMA EXPERTO

Un sistema experto es muy eficaz cuando tiene que analizar una gran cantidad de información, interpretándola y proporcionando una recomendación a partir de la misma. Un ejemplo es el análisis financiero, donde se estudian las oportunidades de inversión, dependiendo de los datos financieros de un cliente y de sus propósitos.

Para detectar y reparar fallos en equipos electrónicos, se utilizan los sistemas expertos de diagnóstico y depuración, que formulan listas de preguntas con las que obtienen los datos necesarios para llegar a una conclusión. Entonces recomiendan las acciones adecuadas para corregir los problemas descubiertos. Este tipo de sistemas se utilizan también en medicina (ej. MYCIN y PUFF), y para localizar problemas en sistemas informáticos grandes y complejos.

Los sistemas expertos son buenos para predecir resultados futuros a partir del conocimiento que tienen. Los sistemas meteorológicos y de inversión en bolsa son ejemplos de utilización en este sentido. El sistema PROSPECTOR es de este tipo.

La planificación es la secuencia de acciones necesaria para lograr una meta. Conseguir una buena planificación a largo plazo es muy difícil. Por ello, se usan sistemas expertos para gestionar proyectos de desarrollo, planes de producción de fábricas, estrategia militar y configuración de complejos sistemas informáticos, entre otros.

Cuando se necesita controlar un proceso tomando decisiones como respuesta a su estado y no existe una solución algorítmica adecuada, es necesario usar un sistema experto. Este campo comprende el supervisar fábricas automatizadas, factorías químicas o centrales nucleares. Estos sistemas son extraordinariamente críticos porque normalmente tienen que trabajar a tiempo real.

El diseño requiere una enorme cantidad de conocimientos debido a que hay que tener en cuenta muchas especificaciones y restricciones. En este caso, el sistema experto ayuda al diseñador a completar

el diseño de forma competente y dentro de los límites de costes y de tiempo. Se diseñan circuitos electrónicos, circuitos integrados, tarjetas de circuito impreso, estructuras arquitectónicas, coches, piezas mecánicas, etc.

Por último, un sistema experto puede evaluar el nivel de conocimientos y comprensión de un estudiante, y ajustar el proceso de aprendizaje de acuerdo con sus necesidades.

1.2. VENTAJAS E INCONVENIENTES DE LOS SISTEMAS EXPERTOS

El acceso al conocimiento y al juicio de un experto es extremadamente valioso en muchas ocasiones (prospecciones petrolíferas, manejo de valores bursátiles, diagnóstico de enfermedades, etc.), sin embargo, en la mayoría de los campos de actividad existen más problemas por resolver que expertos para resolverlos. Para solucionar este desequilibrio es necesario utilizar un sistema experto. En general, actuará como ayudante para los expertos humanos y como consultor cuando no se tiene otro acceso a la experiencia.

Un sistema experto, además, mejora la productividad al resolver y decidir los problemas más rápidamente. Esto permite ahorrar tiempo y dinero. A veces sin esa rapidez las soluciones obtenidas serían inútiles.

Los valiosos conocimientos de un especialista se guardan y se difunden, de forma que, no se pierden aunque desaparezca el especialista. En los sistemas expertos se guarda la esencia de los problemas que se intenta resolver y se programa cómo aplicar los conocimientos para su resolución. Ayudan a entender cómo se aplican los conocimientos para resolver un problema. Esto es útil porque normalmente el especialista da por ciertos sus conocimientos y no analiza cómo los aplica.

Se pueden utilizar personas no especializadas para resolver problemas. Además si una persona utiliza regularmente un sistema experto aprenderá de él, y se aproximará a la capacidad del especialista.

Con un sistema experto se obtienen soluciones más fiables gracias al tratamiento automático de los datos, y más contrastadas, debido a que se suele tener informatizado el conocimiento de varios expertos.

Debido a la separación entre la base de conocimiento y el mecanismo de inferencia, los sistemas expertos tienen gran flexibilidad, lo que se traduce en una mejor modularidad, modificabilidad y legibilidad del conocimiento.

Otra ventaja es que este tipo de sistemas pueden utilizar razonamiento aproximado para hacer deducciones y que pueden resolver problemas sin solución algorítmica.

Los sistemas expertos también tienen inconvenientes. El conocimiento humano es complejo de extraer y, a veces, es problemático representarlo. Si un problema sobrepasa la competencia de un sistema experto, sus prestaciones se degradan de forma notable. Además, las estrategias de razonamiento de los motores de inferencia suelen estar programadas procedimentalmente y se adaptan mal a las circunstancias. Están limitados para tratar problemas con información incompleta.

Un experto humano no estudia progresivamente una hipótesis, sino que decide de inmediato cuando se enfrenta a una situación análoga a otra ocurrida en el pasado Los sistemas expertos no utilizan este razonamiento por analogía.

Los costes y duración del desarrollo de un sistema experto son bastante considerables (aunque se suelen amortizar rápidamente) y su campo de aplicación actual es restringido y específico.

Finalmente, hay que tener en cuenta los problemas sociales que acarrean al ser susceptibles de influir en la estructura y número de empleos.

1.3. EL CONOCIMIENTO COMO BASE DE LOS SISTEMAS EXPERTOS

Como el conocimiento es el núcleo de los sistemas expertos, a menudo se les denomina sistemas de conocimiento o sistemas basados en el conocimiento. El campo de los sistemas expertos trata de las formas de adquirir conocimiento de los especialistas humanos y de representar esos conocimientos en una forma compatible con un ordenador. Los ordenadores ejecutan una forma de tratamiento del conocimiento cuando los usuarios lo solicitan.

¿Qué es el conocimiento?

El conocimiento se puede considerar como la comprensión adquirida.

En muchas aplicaciones, el conocimiento heurístico adquirido mediante la experiencia que proporciona el mundo real es el más adecuado para resolver los problemas.

¿Qué es la información?

La información son hechos e imágenes. El conocimiento consiste en entender esos hechos e imágenes.

Los sistemas expertos ayudan a manejar la sobrecarga de información a la que nos enfrentamos traduciendo ésta en conocimiento utilizable.

Inteligencia artificial (IA)

Los sistemas expertos son una de las aplicaciones de la inteligencia artificial. Ahora que ya se sabe qué es y qué hace un sistema experto, es el momento de volver la vista hacia la inteligencia artificial, el campo del que derivan los sistemas expertos.

La inteligencia artificial es esa “misteriosa” parte de la informática que intenta hacer ordenadores más “inteligentes” y, por tanto, más útiles.

El objeto de la IA no es reemplazar a los humanos con ordenadores inteligentes, sino dotar a los ordenadores de “inteligencia” suficiente para que resulten una herramienta más potente, más útil y de uso más variado.

Los sistemas expertos y otras formas de inteligencia artificial son paquetes de software que se pueden hacer funcionar en casi todos los ordenadores.

Los dos componentes principales de cualquier programa de IA son: una base de conocimientos y un programa de inferencia. Mediante el uso de símbolos se puede crear una “base de conocimientos” que establezca diferentes hechos acerca de objetos, acciones o procesos, y sus relaciones. Una vez creada la base de conocimiento se debe diseñar un método para utilizarla. Básicamente, se necesita un programa que use el conocimiento para razonar y pensar en cómo resolver un problema particular. Esta clase de programa se denomina generalmente “programa de inferencia” o “máquina de inferencia”.

El enfoque básico para la resolución de problemas en inteligencia artificial son los procesos de búsqueda y comparación de patrones.

Aplicaciones de la IA

Procesamiento del lenguaje natural (NLP). Las técnicas de procesamiento del lenguaje natural permiten a los ordenadores comprender el lenguaje de los humanos.

Reconocimiento de la voz. Los sistemas de reconocimiento de la voz imitan la capacidad auditiva humana de reconocer e interpretar la voz.

Visión por ordenador. Los sistemas de visión dotan a los ordenadores de capacidad de percepción visual.

Robótica. Un robot es a la inteligencia artificial lo que el cuerpo es a la mente humana. Se puede crear un robot inteligente usando sensores para obtener retroalimentación y software de IA para modificar el programa de control.

Otras aplicaciones. Aunque las anteriores son las principales aplicaciones de la IA, existen otras muchas más de menor entidad que no se ajustan exactamente a ninguna de esas categorías. Una aplicación más restringida de la inteligencia artificial es el aprendizaje del ordenador. Los investigadores están intentando encontrar formas de hacer que los ordenadores aprendan de su experiencia o de los datos que reciben. La IA se está usando también en educación y en entrenamiento. Los métodos de la IA se están usando para crear una nueva forma de enseñanza asistida por ordenador. Otra aplicación de la IA es la programación automática, en la que se aplican las técnicas de la inteligencia artificial a la difícil tarea de crear software.

1.4. SISTEMAS EXPERTOS FAMOSOS

Los sistemas expertos descritos a continuación son famosos por su impacto en la inteligencia artificial. Se han empleado muchos años de investigación para desarrollar estos primeros programas, que definen la forma y el sistema de funcionamiento de los sistemas expertos actuales.

Dendral

Muchos consideran que Dendral fue el primer sistema experto. Se desarrolló en la Universidad de Stanford a mediados de los años setenta. El desarrollo del programa y sus múltiples descendientes continuó durante la mayor parte de los años setenta. Siendo uno de los sistemas expertos más estudiados, el trabajo que se ha desarrollado sobre Dendral ha influido en el desarrollo de la mayoría de los sistemas expertos.

La versión comercial de Dendral ayuda a los químicos a identificar la estructura molecular de las sustancias desconocidas.

Macsyma

Desarrollado en el MIT, Macsyma está diseñado para realizar manipulaciones simbólicas de expresiones matemáticas. Macsyma se desarrolló a principio de los años setenta y se siguió trabajando en él hasta principios de los años ochenta. Capaz de realizar simbólicamente cálculo integral y diferencial, ayuda a los científicos e ingenieros a resolver problemas complicados que habrían tardado días e incluso meses en resolver manualmente. Macsyma también manipula expresiones algebraicas complicadas y ayuda a reducirlas a su forma más simple.

Mycin

Mycin es un sistema experto desarrollado en Stanford para el diagnóstico y tratamiento de enfermedades infecciosas de la sangre. Es uno de los sistemas expertos más estudiados por su gran éxito. Mycin fue uno de los primeros sistemas expertos en emplear reglas de producción y métodos de inferencia con encadenamiento regresivo.

Una de las características principales de Mycin es que su base de reglas está radicalmente separada de su programa de inferencia. Esto permite eliminar completamente la base de conocimientos, creando Mycin vacíos (llamados Emmycin). Emmycin es el modelo a partir del cual se crearon los “shell” de los modernos sistemas expertos.

Prospector

Prospector, construido sobre la tecnología de Mycin, es un sistema experto diseñado para ayudar a los geólogos a encontrar yacimientos importantes. Su base de conocimientos, que se complementa con reglas de producción y redes semánticas, contiene información sobre los depósitos y sobre la clasificación de distintos tipos de rocas y minerales. Dándole datos acerca de un área particular, Prospector puede estimar las probabilidades de encontrar distintos tipos de depósitos minerales. Prospector ha tenido un éxito poco usual en la localización de grandes depósitos de minerales valiosos. Se desarrolló a principios de los años setenta en SRI Internacional.

Xcon

Xcon es un sistema experto diseñado para ayudar a los técnicos de Digital Equipment Corporation (DEC) a configurar sistemas de miniordenadores. La popular serie VAX de DEC se encuentra disponible en una amplia gama de modelos con una gran cantidad de características y opciones que puede seleccionar el cliente. Dado el gran número de posibles combinaciones, el personal de DEC tenía problemas para configurar el sistema apropiado en el que todos los componentes funcionaran en conjunto. Xcon genera automáticamente la configuración deseada a partir de los requisitos del cliente.

Xcon se denominó originalmente R1 y fue desarrollado en la Universidad Carnegie Mellon a finales de los años setenta, siendo revisado y actualizado en DEC a principios de los años ochenta.

2. TIPOS DE SISTEMAS EXPERTOS

Sistemas de análisis e interpretación. Los sistemas expertos realizan un trabajo de interpretación a partir de la información recibida desde un teclado, desde otro programa del ordenador o desde sensores electrónicos. Una vez que la información está disponible, los programas de inferencia utilizan esos datos junto con la información contenida en una base de conocimientos para intentar comprender los datos, y a continuación proporcionan una explicación para los datos o saca conclusiones apropiadas.

Sistemas de predicción. Los sistemas expertos son muy buenos para predecir resultados futuros. Utilizando los datos de entrada acerca de una situación dada, un sistema experto de predicción puede deducir consecuencias futuras o resultados a partir del conocimiento que tiene. Los sistemas de predicción producen resultados especialmente buenos a la hora de sugerir las consecuencias más probables de unas determinadas condiciones. La base de conocimientos suelen contener las tendencias de los datos y la información histórica, así como los patrones cíclicos apropiados.

Sistemas de diagnóstico y depuración. Otra aplicación especialmente adecuada para los sistemas expertos son los sistemas de diagnóstico y depuración. Ambas técnicas se utilizan en la reparación y detección de fallos en equipos. También se emplean mucho en medicina de diagnóstico. Un sistema experto de diagnóstico recibe los datos acerca del comportamiento del dispositivo, sistema o individuo. De hecho, la mayoría de los sistemas expertos formulan listas de preguntas en un intento de acumular los datos necesarios para llegar a una conclusión. Estos datos de entrada toman la forma de síntomas, características físicas, prestaciones registradas e irregularidades o funciones indeseadas. Con esta información, el programa de inferencia recorre la base de conocimientos para detectar los problemas.

Mientras que algunos sistemas expertos realizan sólo diagnósticos, otros también incluyen características de depuración, lo que significa que recomiendan las acciones adecuadas para corregir los problemas y deficiencias descubiertas.

Sistemas de control. El control consiste fundamentalmente en observar los datos que proporcionan los sensores. Se emplea una gran variedad de sensores para transformar las variaciones de distintas magnitudes físicas en señales eléctricas que pueden ser interpretadas por un ordenador. Se prepara un programa para determinar cuáles de las señales controladas se encuentran dentro de los límites deseados. En un sistema experto, la base de conocimientos contiene reglas para decidir qué hacer con las magnitudes con valores fuera de límite. Si alguno de los sensores indica un valor fuera de límite, se activa un programa de control en el ordenador para devolver los datos a su nivel correcto.

Este proceso de control generalmente emplea técnicas de retroalimentación, es decir, información detectada en el sistema que se está controlando, e informa el ordenador de lo que sucede. El ordenador continúa controlando el sistema hasta que recibe información de que el sistema falla o llega a alguna condición deseada. Denominados sistemas de control en bucle cerrado, éstos permiten automatizar totalmente algunos procesos.

Sistemas de diseño. Los sistemas CAD basados en sistemas expertos liberan a los ingenieros o a los diseñadores para dedicarse a tareas más creativas.

Sistemas de planificación. Los sistemas expertos ayudan a las personas a establecer planes, de forma rápida, para realizar operaciones complejas.

Sistemas de enseñanza. Un sistema experto puede utilizarse para la enseñanza empleando el conocimiento que forma el núcleo del sistema. Un sistema experto evalúa el nivel de conocimientos y comprensión de cada estudiante. Con esta información se puede ajustar el proceso educativo a sus necesidades.

3. REPRESENTACIÓN DEL CONOCIMIENTO

El conocimiento existe en tanto en cuanto es representable. La primera representación, de la que se parte, es una representación mental. Posteriormente se pasa a texto (hablado o escrito) en lenguaje natural. El que no exista una representación en lenguaje natural de un conocimiento no significa que no exista conocimiento.

Cuando el ingeniero tiene el conocimiento en lenguaje natural, debe enfrentarse a la tarea de representarlo de manera eficiente para que el sistema experto sea, a su vez, eficiente.

Para representar el conocimiento hay que determinar:

– El modelo o esquema de representación

– El lenguaje de representación

– El lenguaje de programación

El esquema de representación es la forma de representar el conocimiento y está muy ligado al dominio del problema que se quiere representar. No se ha encontrado un único modelo de representación, ya que el ser humano no tiene un modelo único, sino que depende de dónde lo vaya a usar. El escoger un buen modelo es muy importante.

El lenguaje de representación es el lenguaje formal en el que se representa cada uno de los correspondientes esquemas de representación de cada fragmento de conocimiento.

El lenguaje de programación es el nivel requerido al lenguaje de alto nivel que se empleará para implementar la representación dada.

No son niveles aislados, dependiendo de los esquemas de representación, vendrán los lenguajes de representación y, ligados a éstos, los lenguajes de programación.

Una primera clasificación de los modelos distingue entre representación procedural y representación declarativa.

3.1. TIPOS DE CONOCIMIENTO

Se pueden incluir dos tipos básicos de conocimiento en una base de conocimientos: el conocimiento declarativo y el conocimiento procedural. La mayoría de los sistemas expertos contienen ambos tipos de conocimiento.

Conocimiento declarativo. También denominado conocimiento descriptivo, consiste fundamentalmente en una afirmación acerca de las personas, lugares o cosas. El conocimiento declarativo permite establecer informaciones, deducir relaciones y clasificar objetos. Con el conocimiento declarativo no se puede explicar nada, pero se pueden representar hechos o realidades y expresar las relaciones existentes entre ellos. Se tendrá un conjunto estático de hechos y algunos procedimientos para manipularlos. En los sistemas expertos, los esquemas empleados para representar conocimientos declarativos incluyen redes semánticas, tramas y reglas de producción.

Conocimiento procedural. El conocimiento procedural o prescriptivo es explicativo; proporciona una forma de aplicar el conocimiento declarativo. Con esta clase de conocimientos se pueden indicar formas de ejecutar una acción. El conocimiento procedural indica qué hacer y cómo hacerlo. Una lista de instrucciones para instalar un programa en una unidad de disco duro y una secuencia paso-a-paso para desmontar un motor eléctrico complicado son dos ejemplos de procedimiento procedural. El conocimiento descriptivo se representa en los sistemas expertos mediante reglas de producción y guiones.

Los modelos procedurales son fácilmente utilizables, pero muy rígidos (al alterar el conocimiento hay que reescribir el programa).

Para usar un modelo declarativo se necesita un motor de inferencia. La ventaja es que el conocimiento es una línea mas de declaración.

Las reglas de producción tienen tanto éxito debido a que están entre estas dos clases de representación.

3.2. REGLAS DE PRODUCCIÓN

El método más común de representar el conocimiento en los sistemas expertos son las reglas de producción, debido a que es un modelo bastante natural para representar el conocimiento de las relaciones causa-efecto, y, por ser un mixto entre conocimiento declarativo y procedural, tiene las ventajas de ambos y supera las desventajas. Las reglas de producción, denominadas a veces “reglas” o “producciones“, son sentencias constituidas por dos partes que contienen una pequeña cantidad de conocimiento. El dominio, o sujeto, que se va a representar en el sistema experto se divide en muchas fracciones pequeñas de conocimiento. El conocimiento tiene normalmente carácter heurístico y, por tanto, se puede representar fácilmente en forma de reglas. Los sistemas expertos que emplean reglas de producción se suelen denominar “sistemas de producción” y la base de conocimientos se denomina a veces “base de reglas“. Todos los sistemas de producción son sistemas expertos, pero no todos los sistemas expertos son sistemas de producción, ya que existen otras formas de representar el conocimiento.

Las reglas son fáciles de entender y su uso es sencillo. Facilitan la creación y modificación de las bases de conocimientos.

Cada regla está redactada, en principio, ignorando la existencia de otras. Por ello, una regla no se activa por su nombre sino por sus condiciones. De esta manera, se pueden añadir o suprimir reglas sin preocuparse de la repercusión de las modificaciones.

Estructura de las reglas

Una regla es una sentencia de dos partes que contiene una premisa y una conclusión. Tiene la forma:

SI antecedente ENTONCES consecuente

La parte izquierda son las condiciones de aplicabilidad y la parte derecha es la conclusión, que será una acción o una aserción (afirmación o negación) a añadir a la base de hechos.

El antecedente y el consecuente son proposiciones (afirmaciones) o sentencias. Una proposición será una concatenación de expresiones denominadas cláusulas.

La concatenación del antecedente y del consecuente se hace mediante operadores Y/O. No se deben poner cláusulas consecuente conectadas por O, siempre tienen que unirse con Y para que todo sea verdad.

Ejemplos de estas reglas son:

Si el nivel de agua supera el metro y medio Entonces activar la bomba.

Si el pez tiene una aleta superior triangular Entonces es un tiburón.

Algunos tipos de conocimiento requieren reglas más complicadas, como ésta:

Si el fruto es rojo

Y tiene semillas

Y crece en una mata

Entonces es un tomate.

3.3. MEDIDAS DE CONFIANZA

El saber de un especialista humano se almacena en la base de conocimientos de un sistema experto. La mayoría de los conocimientos pueden ser imprecisos. Esa incertidumbre provoca a su vez incertidumbre acerca de las conclusiones que obtiene el sistema. Por ello, es necesario controlar su propagación a lo largo del proceso de razonamiento.

Existen varios modelos de incertidumbre. Puede ser probabilística, cuando el problema tiene un componente aleatorio, o de tipo posibilístico, cuando se toman decisiones a partir de un conjunto de creencias. No hay que confundir posibilidad con probabilidad: es posible que Miguel desayune 20 huevos, pero es poco probable.

Dentro de los modelos, en cuanto a medida, se tienen aquellos que evalúan la incertidumbre con un valor numérico (se comerá 10 huevos con grado de creencia de 0.3) y los que la evalúan con un valor lingüístico (regular, difícil, imposible,…).

El tratamiento de la incertidumbre es complejo. Es lo que hace que se pueda hablar de sistema con “inteligencia”: el razonamiento del ser humano se considera inteligente por utilizar conocimiento del que no dispone “a priori”.

Fuentes de Incertidumbre

Normalmente, el conocimiento es incierto o inexacto debido a que:

– Existen datos aleatorios, como, por ejemplo, el peso de la gente.

– Puede haber datos insuficientes. Ejemplo, no se puede determinar el grado de apendicitis de un enfermo sin operarle (o sin una muestra).

– El conocimiento disponible se expresa de forma “vaga”. Ejemplo, la palabra grande no tiene significado por sí sola sin incluirla en un contexto, ya que no es lo mismo hablar de un pájaro grande que de un hipopótamo grande.

– Hay situaciones en las que el conocimiento está basado sólo en presentimientos.

– La fuente de conocimiento puede no ser totalmente fiable. Ejemplo, hablar con una persona honesta de un tema del que no sabe.

En estos casos, es necesario incorporar a la representación del conocimiento una medida de incertidumbre.

Factores de certidumbre (Teoría de los Factores de Certeza). Uno de los métodos diseñados para tratar las situaciones inciertas son los factores de certidumbre. Un factor de certidumbre (FC) es una medida numérica de la confianza que se tiene en la validez de un hecho o regla. Los factores de certidumbre permiten a los programas de inferencia trabajar con informaciones imprecisas.

Se pueden emplear diversas escalas de factores de certidumbre. Algunos de ellos se ilustran en la próxima figura. La más utilizada es una escala del 0 al 1, donde el 0 indica una falta total de confianza y el 1 la seguridad total. Otros sistemas expertos utilizan escalas de 0 a 10 o de 0 a

100. Se pueden emplear escalas que van de -1 a +l, como se ilustra en la siguiente figura. Pueden utilizarse otras formas de representación definidas arbitrariamente por el programador.

Ejemplo:

SI la moto anda

Y la batería está bien

ENTONCES la moto arrancará de nuevo con CF= 0.99

clip_image002

Figura 60.2. Ejemplos de escalas de certidumbre

Probabilidad. La probabilidad se define como el grado de creencia “a priori” acerca de la realización o no de un fenómeno aleatorio. Así pues, la probabilidad no mide la vaguedad de un suceso sino la creencia o no del suceso. La probabilidad es la razón entre el número de resultados y el número de sucesos que lo causan. Se emplea la probabilidad bayesiana en algunos sistemas expertos, como ayuda para trabajar con los datos y decisiones inexactos, tan habituales en el mundo real.

Si todos los acontecimientos tienen la misma probabilidad de salir, entonces la probabilidad de un suceso específico X será:

clip_image0031

P(X) =

N

Toda probabilidad tiene un valor comprendido entre 0 y 1 ambos inclusive. Un suceso con

probabilidad 1 es una certeza. Un suceso con probabilidad 0 es considerado como imposible.

La regla de Bayes permite calcular la probabilidad de que se cumpla una hipótesis H habiéndose observado una evidencia E. Se denota P(H/E), y su valor se obtiene según la fórmula:

clip_image004P(E / H) P(H)

P(E)

Ejemplo: Se tiene la evidencia E= fiebre y la hipótesis H= bronquitis, y se sabe que P(E/H)=

0.95 (es decir, que la bronquitis produce fiebre en el 95% de los casos). Entonces calculando

P(H/E) se podrá saber la probabilidad de que se tenga bronquitis dado el hecho “tener fiebre”.

La teoría de la probabilidad puede evaluar un suceso cuando éste se conoce completamente. Si no, la probabilidad obliga a emplear la teoría de la equiprobabilidad de Laplace. Esto puede llegar a deformar el problema.

Para resolver el inconveniente, se utiliza la teoría de la probabilidad superior e inferior: para cada suceso existe una probabilidad superior y otra inferior a la verdadera probabilidad del suceso.

Lo que se hace es evaluar la incertidumbre de un suceso A mediante un intervalo que indica lo menos y lo más que se apuesta por la ocurrencia de A con la información de que se dispone. Se representa:

*

A:[P (A), P*(A)]

en donde P*(A) representa la probabilidad del peor caso y P*(A) representa la probabilidad del caso más favorable.

Lógica difusa. Un método para manejar el conocimiento es mediante la “lógica difusa”, basada en la Teoría de los Conjuntos Difusos de L. A. Zadeh, y que está diseñada para tratar conceptos vagos. Se habla del grado de vaguedad que tienen las cosas, de incertidumbre “a posteriori”. En todos los modelos vistos hasta ahora, una proposición puede ser verdadera o falsa. La vaguedad es la propiedad de no ser estrictamente verdadera o falsa.

Cuando un especialista crea una base de conocimientos puede desear emplear términos imprecisos, como corto, largo, grande y pequeño. El especialista les puede asignar valores entre

0 y 1 para indicar el grado de pertenencia a un intervalo dado.

Con esta teoría se puede realizar un razonamiento aproximado, es decir, obtener consecuencias vagas a partir de conocimientos vagos.

3.4. REDES SEMÁNTICAS

Una de las formas más simples y efectivas para representar el conocimiento es utilizar las redes semánticas. Una red semántica es una representación gráfica del conocimiento que ilustra las relaciones entre los objetos. Las redes semánticas son muy apropiadas para representar el conocimiento declarativo, particularmente aquel que tiene una estructura jerárquica. Cuando el conocimiento se puede clasificar o categorizar, es un buen candidato para una red semántica.

En la figura se ilustra un ejemplo de red semántica. Los círculos se denominan “nodos” y se emplean para representar personas, lugares, cosas o ideas (entidades). Los nodos se conectan entre sí para indicar las relaciones entre ellos. Las conexiones entre nodos se denominan “arcos“. Sobre cada arco se encuentra una etiqueta que establece las relaciones entre los nodos que conecta. Además de ser una excelente herramienta de representación visual, las redes semánticas también pueden programarse en un ordenador para formar una base de conocimientos completa.

clip_image006

Figura 60.3. Una red semántica

Una característica importante de las redes semánticas es que algunos nodos pueden heredar propiedades o características de otros. Dado que las redes semánticas se usan para representar información jerárquica, algunos nodos se encontrarán más arriba que otros en la jerarquía.

3.5. MARCOS DE REFERENCIA

Los marcos de referencia o Frames son un esquema para representar el conocimiento cuyo uso se está generalizando. Se han diseñado fundamentalmente para manejar conocimientos declarativos. Por ejemplo, un marco de referencia puede emplearse para describir cualquier objeto en detalle. El marco de referencia se divide en elementos discretos denominados “slots“. Los slots contienen los atributos de los objetos que se describen. En muchos aspectos, esta estructura es jerárquica, por lo que es similar a las redes semánticas.

El concepto de frame lo introdujo Minsky en 1975. Éste estudió la mente humana fijándose en la memoria de representación, es decir, en la capacidad del ser humano para reconocer objetos por medio de estereotipos que se ha creado de ellos anteriormente. Un estereotipo es un conjunto de características generales de un objeto. Ejemplo: nadie representa mentalmente una silla concreta, sino un estereotipo de ella y, cuando se le presenta una, comprueba si se adapta o no al estereotipo del que dispone, para poder concluir si se trata de una silla. Las acciones también tienen un estereotipo, por ejemplo comer (aunque dos personas comen de forma distinta).

Cada ejemplo de objeto es una instanciación del estereotipo del objeto. Para Minsky un estereotipo representa una colección de objetos. Así un estereotipo va a ser un “casillero” o frame que tiene una serie de ranuras o slots correspondientes a los atributos específicos del objeto. Cada slot puede contener a su vez una o varias facetas. La faceta puede contener el valor del atributo, o un valor que se toma por defecto, o un procedimiento que se llama para obtener el valor.

Para reconocer un objeto, se busca un frame y se rellenan los slots correspondientes a las características de ese frame. Si se rellenan suficientes slots, se puede concluir que el objeto pertenece a la clase de objetos representados por el frame. Cada estereotipo (o frame vacío) representa una clase de objetos y cada objeto es un frame relleno.

Los sistemas de frames se usan a menudo en sistemas de reconocimiento de patrones, tanto visuales como de conceptos abstractos. Esto implica el emparejamiento de un conjunto de valores asociados a una entidad con los valores requeridos para rellenar los slots del frame.

3.6. EJEMPLOS

Una de las formas de comunicar conocimientos a un sistema experto consiste en establecer varios ejemplos o casos históricos sobre dicho dominio. Se puede realizar esto haciendo una lista de conclusiones, resultados o respuestas que se espera que proporcione el sistema experto. Entonces, se indican los atributos necesarios para elegir una posibilidad.

Muchas herramientas para el desarrollo de sistemas expertos emplean esta forma de representar el conocimiento a través de ejemplos. Lo que ocurre es que un programa del sistema experto transforma los ejemplos en reglas. En otras palabras, dada una matriz de ejemplos, el sistema experto deduce sus propias reglas para formar su base de conocimientos.

4. TÉCNICAS DE BÚSQUEDA

El método básico de resolución de problemas utilizado en inteligencia artificial es la búsqueda. La búsqueda, como su propio nombre indica, es el proceso de examinar un conjunto grande de soluciones a un problema a fin de encontrar la mejor. Este es un método de ensayo y error para recorrer una base de conocimientos en busca de un conocimiento que se adapte a hechos conocidos. La base de conocimientos, denominada “espacio de búsqueda” contiene todas las soluciones finales al problema, además de soluciones intermedias. En un sistema experto real el espacio de búsqueda suele ser un conjunto de reglas si-entonces y también puede ser los nodos y arcos de una red semántica o una colección de marcos de referencia.

Árboles de búsqueda. Un árbol de búsqueda es un método gráfico para representar un espacio de búsquedas. Para visualizar los elementos del conocimiento en una base de conocimientos, se puede hacer un dibujo con arcos y nodos como en las redes semánticas. Cada nodo representa un hecho, una regla u otro elemento de la base de conocimientos. El diagrama resultante se parece a menudo a un árbol invertido, con las raíces y el tronco en la parte superior y las hojas en la parte inferior.

4.1. BÚSQUEDA A CIEGAS Y EXPLOSIÓN COMBINATORIA

Las búsquedas a ciegas exploran todos los nodos hasta encontrar una solución. Las técnicas de búsqueda a ciegas son seguras, pero muy lentas.

A medida que se incrementa el número de nodos y hojas de un árbol, el número de alternativas crece exponencialmente.

4.2. ESTRATEGIAS DE BÚSQUEDA

Existen cuatro formas fundamentales de examinar un árbol de búsqueda: búsqueda en anchura, búsqueda en profundidad, búsqueda progresiva y búsqueda regresiva. Estos métodos determinan el orden en que se examinan los nodos del árbol.

Búsqueda en anchura. Una búsqueda en anchura comienza en nodo raíz y continúa hacia abajo, examinando todos los nodos de un nivel antes de pasar al siguiente.

clip_image011

Búsqueda en profundidad. Las búsquedas en profundidad comienzan en el nodo raíz y van recorriendo los distintos niveles del árbol hasta alcanzar el nodo más profundo de la rama más a la izquierda. Si el nodo final de dicha rama no es uno de los objetivos, se retrocede hasta un nivel en que se pueda continuar la búsqueda. El proceso de búsqueda continúa de izquierda a derecha hasta que se encuentra una solución.

Búsqueda progresiva. Las técnicas de búsqueda progresiva, también denominadas “razonamiento progresivo” o “encadenamiento progresivo”, comienzan en el nodo raíz y prosiguen hacia abajo hasta encontrar un objetivo o nodo solución. En otras palabras, las técnicas de búsqueda progresiva son una mezcla de las técnicas de búsqueda en anchura y profundidad. Las búsquedas progresivas comienzan con un hecho y continúan hacia adelante intentando ajustar ese hecho a los datos de la base de conocimientos. Se dice que las búsquedas progresivas están controladas por los datos.

Búsqueda regresiva. En las técnicas de búsqueda regresiva, denominadas también de “razonamiento regresivo” o de “encadenamiento regresivo”, la búsqueda comienza en el nodo objetivo. Una forma de resolver un problema consiste en asumir que la solución tiene una forma determinada y entonces buscar pruebas que soporten dicha suposición. Si la búsqueda basada en un objetivo falla, puede iniciarse otra partiendo de otro objetivo e intentando encontrar hechos que soporten dicho objetivo. Este tipo de búsquedas se denomina controladas por los objetivos y simulan un tipo de razonamiento inductivo. Para demostrar la validez del objetivo seleccionado, el camino de búsqueda se puede recorrer en camino inverso.

4.3. BÚSQUEDA HEURÍSTICA

Las técnicas heurísticas se emplean para centrar la atención de la búsqueda sólo sobre aquellas partes de árbol de búsqueda en la que es más probable que se encuentre la solución. Las técnicas heurísticas pueden eliminar gran parte de árbol de búsqueda, acelerando notablemente el proceso de solución del problema.

Existen técnicas heurísticas de propósito especial y general. Un ejemplo de técnica de búsqueda heurística de propósito general son las técnicas de búsqueda en profundidad limitada. Esta técnica se usa en la búsqueda en profundidad para evitar que la búsqueda tenga lugar en algunas bifurcaciones muy bajas y en las que no existe posibilidad alguna de encontrar una solución. Una búsqueda en profundidad limitada acota arbitrariamente el nivel máximo de profundidad de búsqueda. Una vez alcanzado éste, se corta el proceso de búsqueda, forzando su continuación en un punto anterior. La dificultad es, evidentemente, saber a que profundidad hay que cortar, de modo que no se eliminen soluciones potenciales.

Las búsquedas heurísticas de propósito especifico sólo son aplicables a ciertos tipos de problemas. Un tipo de búsqueda heurística de propósito específico es el uso de reglas especiales denominadas “metarreglas”, que establecen la forma de utilizar las reglas del conocimiento. A partir de una serie de datos, una metarregla limita la búsqueda al subconjunto de la base de conocimientos que más probablemente llevará a una solución. Con esta aproximación, se crea una pequeña base de conocimientos sobre cómo guiar el proceso de búsqueda de la forma más eficiente.

5. ARQUITECTURA DE LOS SISTEMAS EXPERTOS

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. La figura siguiente muestra la estructura de un sistema experto ideal.

5.1. LA BASE DE CONOCIMIENTOS

La base de conocimientos contiene el conocimiento especializado extraído del experto en el dominio. Es decir, contiene conocimiento general sobre el dominio en el que se trabaja. El método más común para representar el conocimiento es mediante reglas de producción. El dominio de conocimiento representado se divide, pues, en pequeñas fracciones de conocimiento o reglas SI . . . ENTONCES . . .

Cada regla constará de una parte denominada condición y de una parte denominada acción, y tendrá la forma:

SI condición ENTONCES acción

Como ejemplo se puede considerar la siguiente regla médica:

SI el termómetro marca 39º

Y el termómetro funciona correctamente

ENTONCES el paciente tiene fiebre

La mayoría de los sistemas expertos utilizan reglas de producción, por lo que la base de conocimientos se denomina con frecuencia base de reglas. Algunos sistemas expertos utilizan también redes semánticas y marcos de referencia.

Una característica clave de los sistemas expertos es que su base de conocimientos es independiente del sistema de inferencia que se emplea para resolver los problemas. De esta forma, cuando los conocimientos almacenados se han quedado obsoletos, o cuando se dispone de nuevos conocimientos, es relativamente fácil añadir reglas nuevas, eliminar las antiguas o corregir errores en las existentes. No es necesario reprogramar todo el sistema experto.

Las reglas suelen almacenarse en alguna secuencia jerárquica lógica, pero esto no es estrictamente necesario. Se pueden tener en cualquier secuencia y el motor de inferencia las usará en el orden adecuado que necesite para resolver un problema.

5.2. EL MOTOR DE INFERENCIAS

El motor de inferencias es el algoritmo que controla el proceso de razonamiento que seguirá el sistema experto. También denominado “programa de control” o “intérprete de reglas”, el programa funciona con los datos suministrados por el usuario para recorrer la base de conocimientos hasta alcanzar una conclusión.

La estrategia de control puede ser de encadenamiento progresivo o de encadenamiento regresivo. En el primer caso se comienza con los hechos disponibles en la base de datos, y se buscan reglas que satisfagan esos datos, es decir, reglas que verifiquen la parte SI. A este enfoque se le llama también guiado por datos, porque es el estado de la base de datos el que identifica las reglas que se pueden aplicar. Cuando se utiliza este método, el usuario comenzará introduciendo datos del problema en la base de datos del sistema.

Al encadenamiento regresivo se le suele llamar guiado por objetivos, ya que, el sistema comenzará por el objetivo (parte acción de las reglas) y operará retrocediendo para ver cómo se deduce ese objetivo partiendo de los datos. Esto se produce directamente o a través de conclusiones intermedias o subobjetivos. Lo que se intenta es probar una hipótesis a partir de los hechos contenidos en la base de datos y de los obtenidos en el proceso de inferencia.

En la mayoría de los sistemas expertos se utiliza el encadenamiento regresivo. Este enfoque tiene la ventaja de que el sistema va a considerar únicamente las reglas que interesan al problema en cuestión. El usuario comenzará declarando una expresión E y el objetivo del sistema será establecer la verdad de esa expresión.

El motor de inferencias controla todo el proceso. Sus dos funciones básicas son inferencia y control. La inferencia se refiere al examen de las reglas y a la ejecución de los programas de comparación de patrones, mientras que el control se refiere a la secuencia en que se examinan las reglas. El motor de inferencias pregunta al usuario los datos iniciales y entonces procede a buscar en la base de conocimientos las reglas que coinciden con los datos de entrada. El intérprete de reglas determina la frecuencia en que se examinan éstas, y solicita información adicional de entrada si no puede tomar una decisión basada en los hechos y reglas disponibles. El motor de inferencias automatiza totalmente este proceso y es completamente invisible cuando funciona en respuesta a una consulta.

5.3. INTERFAZ CON EL USUARIO

La interfaz de usuario permite que el usuario pueda describir el problema al sistema experto. Interpreta sus preguntas, los comandos y la información ofrecida. A la inversa, formula la información generada por el sistema incluyendo respuestas a las preguntas, explicaciones y justificaciones. Es decir, posibilita que la respuesta proporcionada por el sistema sea inteligible para el interesado. También puede solicitar más información si le es necesaria al sistema experto.

La interfaz con el usuario es una colección de programas que funcionan dentro del motor de inferencias y de la base de conocimientos a fin de proporcionar los medios adecuados para mantener una comunicación en dos sentidos entre el software y el usuario. Algunas interfaces de usuario funcionan mediante menús, que plantean preguntas de respuesta múltiple, pidiendo al usuario que elija la respuesta correcta entre las posibilidades expuestas. Esto facilita una entrada de datos rápida y sencilla.

Un sistema experto puede utilizar un programa de lenguaje natural como medio final de comunicación. Este programa empleará técnicas de IA para mejorar la comunicación entre el usuario y el sistema experto.

5.4. BASE DE DATOS

La base de datos, denominada en ocasiones base de datos global o memoria de trabajo, es la parte de la memoria del ordenador que se emplea para mantener un registro de los datos recibidos, conclusiones intermedias y datos generados. El motor de inferencias utiliza la base de datos como un bloc de notas para apuntar lo que sucede en el sistema.

Los datos iniciales se almacenan en la base de datos. A medida que el intérprete va examinando las reglas, se van almacenando las conclusiones derivadas de éstas en la base de datos. El motor de inferencias utiliza estas conclusiones intermedias como nuevos datos para buscar nuevos patrones. Al final de un trabajo, la base de datos contiene la cadena de hechos completa, que incluye no sólo los iniciales, sino también los datos alcanzados en el camino hacia la decisión final.

5.5. SUBSISTEMA DE EXPLICACIÓN

Muchos sistemas expertos contienen una sección diseñada para explicar al usuario la línea de razonamiento seguida para alcanzar una conclusión. Muchos usuarios tienen dificultades para confiar en el consejo de los sistemas expertos, de forma similar a lo que les ocurre en el caso de tratar con un especialista humano que no conocen.

Una forma de resolver este problema es hacer que el sistema explique cómo ha alcanzado los resultados. Con un subsistema de explicación, los usuarios pueden hacer preguntas del tipo “¿por qué?” o “¿cómo?”, y el sistema proporcionará la respuesta adecuada.

Si el usuario pregunta al sistema cómo ha alcanzado una conclusión, éste le presentará la secuencia completa de reglas usada. Esta posibilidad de explicación es especialmente valiosa cuando se tiene la necesidad de tomar decisiones importantes amparándose en el consejo del sistema experto. Además, de esta forma, y con el tiempo suficiente, los usuarios pueden convertirse en especialistas en la materia, al

asimilar el proceso de razonamiento seguido por el sistema. El subsistema de explicación también puede usarse para depurar el sistema experto durante su desarrollo.

5.6. SUBSISTEMA DE ADQUISICIÓN DE CONOCIMIENTO

El módulo de adquisición del conocimiento permite que se puedan añadir, eliminar o modificar elementos de conocimiento (en la mayoría de los casos reglas) en el sistema experto. Casi todos los sistemas expertos contienen un programa o un conjunto de programas que permite a los usuarios añadir datos o modificar la base de reglas. Muchos campos en los que se emplean los sistemas expertos son muy dinámicos. Es decir, el conocimiento está cambiando constantemente, por lo que es necesario modificar la base de conocimientos para reflejar esos cambios. Los subsistemas de adquisición de conocimientos proporcionan los medios adecuados para añadir nuevas reglas y editar las ya existentes. Aunque este subsistema es habitualmente un editor de textos especializado, en algunos sistemas se utiliza un sistema de tratamiento de textos estándar. En este caso, las reglas adicionales o las actualizaciones de las ya existentes se introducen en un fichero mediante el sistema de tratamiento de textos. El subsistema de adquisición de conocimiento lee esta información y realiza la actualización de la base de conocimientos, de la misma forma que un compilador da a un texto el formato apropiado.

6. BIBLIOGRAFÍA

Frenzel, L.E.

A fondo: Sistemas Expertos

Anaya Multimedia