CAPÍTULO 1. INTRODUCCIÓN 1.1 INTRODUCCIÓN Tiempo atrás se pensaba que algunos problemas como la demostración de teoremas, el reconocimiento de la voz y el de patrones, ciertos juegos (como el ajedrez o las damas), y sistemas altamente complejos de tipo determinista o estocástico, debían ser resueltos por personas, dado que su formulación y resolución requieren ciertas habilidades que sólo se encuentran en los seres humanos (por ejemplo, la habilidad de pensar, observar, memorizar, aprender, ver, oler, etc.). Sin embargo, trabajos realizados por investigadores procedentes de varios campos, demostraron que muchos de estos problemas pueden ser formulados y resueltos por maquinas. El amplio campo que trata estos problemas se conoce como inteligencia artificial (IA), que en un principio parecían imposibles, intratables y difíciles de formular utilizando ordenadores. A. Barr y E. A. Feigenbaum, dos de los pioneros de la investigación en IA, expresan la siguiente definición: La Inteligencia Artificial es la parte de la Ciencia que se ocupa del diseño de sistemas de computación inteligentes, es decir, sistemas que exhiben las características que asociamos a la inteligencia en el comportamiento humano que se refiere a la comprensión del lenguaje, el aprendizaje, el razonamiento, la resolución de problemas, etc. Hoy en día, el campo de la IA engloba varias subareas tales como los sistemas expertos, la demostración automática de teoremas, el juego automático, el reconocimiento de la voz y de patrones, el procesamiento del lenguaje natural, la visión artificial, la robótica, las redes neuronales, etc. El presente trabajo está dedicado a los sistemas expertos. Aunque los sistemas expertos constituyen una de las áreas de investigación en el campo de la IA, la mayor parte de las restantes áreas, si no todas, disponen de una componente de sistemas expertos formando parte de ellas. 1 1.2 SISTEMAS EXPERTOS: DEFINICIÓN Según Stevens (1984): Los sistemas expertos son máquinas que piensan y razonan como un experto lo haría en una cierta especialidad o campo. Un sistema experto de verdad no sólo realiza funciones tradicionales de manejar grandes cantidades de datos, sino que también manipula esos datos de forma tal que el resultado sea inteligible y tenga significado para responder a preguntas incluso no completamente especificadas. A partir de ésta surgieron definiciones de otros autores como Castillo y Álvarez (1991) y Durkin (1994) que pueden resumirse de la siguiente manera: Un sistema experto es un sistema informático (software y hardware) que simula a los expertos humanos en un área de especialización dada. Un sistema experto debería ser capaz de procesar y memorizar información, aprender y razonar en situaciones deterministas e inciertas, comunicar con los hombres y/u otros sistemas expertos, tomar decisiones apropiadas y explicar porqué se han tomado tales decisiones. Además, se puede pensar en un sistema experto como un consultor que puede suministrar ayuda a los expertos humanos con un grado razonable de fiabilidad. En la figura 1.1 se pueden ver los campos dominantes entre aquellos en los que se utilizan sistemas expertos. 1.3 EJEMPLOS DE APLICACIÓN DE SISTEMAS EXPERTOS A) Transacciones bancarias: Anteriormente para realizar una transacción bancaria (depositar o extraer dinero de una cuenta) había que visitar el banco en horas de oficina. Hoy en día, estas y otras transacciones pueden realizarse en cualquier horario utilizando los cajeros automáticos o comunicándose a través de la línea telefónica. B) Control de tráfico: Tiempo atrás el flujo de tráfico en las calles se controlaba por guardias de tráfico. Hoy se utilizan sistemas expertos que operan automáticamente los semáforos y regulan el flujo del tráfico en las calles de una ciudad. 2 C) Problemas de planificación: En este aspecto se pueden utilizar sistemas expertos para la asignación y la organización de aulas en una gran universidad. D) Diagnóstico médico: En este campo se requerirían como datos los síntomas del paciente, los resultados de análisis clínicos y otros hechos relevantes; utilizando estos buscaría en una base de datos la información necesaria para poder identificar la correspondiente enfermedad. 1.4 ¿POR QUÉ LOS SISTEMAS EXPERTOS? El desarrollo o adquisición de un sistema experto es generalmente caro, pero el mantenimiento y el coste marginal de su uso repetido es relativamente bajo. Pero la ganancia en términos monetarios, tiempo y precisión resultantes del uso de los sistemas expertos son muy altas y la amortización en muy rápida. Debido a esto antes de desarrollar o adquirir un sistema experto debe realizarse un análisis de factibilidad y de costebeneficio. Ventajas al utilizar Sistemas Expertos: a) Con la ayuda de un sistema experto, personal con poca experiencia puede resolver problemas que requieren un conocimiento de experto. b) El conocimiento de varios expertos humanos puede combinarse, lo que da lugar a sistemas expertos más fiables. c) Los sistemas expertos pueden responder a preguntas y resolver problemas mucho más rápidamente que un experto humano. d) Los sistemas expertos pueden suministrar respuestas rápidas y fiables en situaciones en las que los expertos humanos no pueden. e) Los sistemas expertos pueden ser utilizados para realizar operaciones monótonas, aburridas e inconfortables para los humanos (por ejemplo un avión o una cápsula espacial dirigida por un sistema experto). f) Se pueden obtener enormes ahorros mediante el uso de sistemas expertos. El uso de los sistemas expertos es recomendado cuando: § El conocimiento es difícil de adquirir o se basa en reglas que sólo pueden ser aprendidas de la experiencia. § La mejora continua del conocimiento es esencial y / o cuando el problema está sujeto a reglas o códigos cambiantes. § Los expertos humanos son caros o difíciles de encontrar. § El conocimiento de los usuarios sobre el tema es limitado. 3 1.5 TIPOS DE SISTEMAS EXPERTOS Deterministas: Son formulados usando un conjunto de reglas que relacionan varios objetos bien definidos. Se los conoce como: “Sistemas basados en reglas” porque obtienen conclusiones basándose en un conjunto de reglas utilizando un mecanismo de razonamiento lógico. Por ejemplo las transacciones bancarias y el control del tráfico. Según la Naturaleza del Problema Estocásticos: Se introducen algunos medios para tratar la incertidumbre en situaciones inciertas. En este aspecto, algunos sistemas expertos usan la estructura de los sistemas basados en reglas pero introducen una medida asociada a la incertidumbre de las reglas y a la de sus premisas. Una medida de la incertidumbre es la probabilidad en la que la distribución conjunta de un conjunto de variables se utiliza para describir las relaciones de dependencia entre ellas. A estos sistemas se los conocen como “sistemas expertos probabilísticos” y la estrategia de razonamiento se conoce como “razonamiento probabilístico” o “inferencia probabilística”. Este trabajo se basará en los sistemas expertos probabilísticos. 4 1.6 COMPONENTES DE UN SISTEMA EXPERTO Figura 1.2 Componentes típicos de un sistema experto. Las flechas representan el flujo de la información. 1.6.1 La Componente Humana: Un sistema experto resulta de la colaboración de uno o varios expertos humanos especialistas en el tema de estudio y los ingenieros del conocimiento con los usuarios en mente. Los expertos humanos suministran el conocimiento básico en el tema de interés, y los ingenieros del conocimiento lo trasladan a un lenguaje que el sistema experto pueda comprender. La colaboración de éstos es el elemento más importante en el desarrollo de un sistema experto. 1.6.2 La Base del Conocimiento: Los especialistas deben brindar a los ingenieros del conocimiento una base de conocimiento ordenada y estructurada, y un conjunto de relaciones bien definidas y explicadas. 5 Hay que diferenciar entre dato y conocimiento. El conocimiento se refiere a afirmaciones de validez general tales como reglas, distribuciones de probabilidad, etc. Los datos se refieren a la información relacionada con una aplicación particular, por ejemplo en diagnóstico médico, los síntomas, enfermedades y las relaciones entre ellos forman parte del conocimiento, mientras los síntomas particulares de un paciente dado forman parte de los datos. Mientras el conocimiento es permanente, los datos son efímeros es decir, no forman parte de la componente permanente de un sistema y son destruidos después de usarlos. El conocimiento se almacena en la base de conocimiento y los datos en la memoria de trabajo. 1.6.3 Subsistemas de Adquisición de Conocimiento: Controla el flujo del nuevo conocimiento que fluye del experto humano a la base de datos. El sistema determina qué nuevo conocimiento se necesita o si el conocimiento recibido es en realidad nuevo. 1.6.4 Control de la Coherencia: Este subsistema controla la consistencia de la base de datos y evita que unidades de conocimiento inconsistentes entren en la misma. Sin este subsistema, unidades de conocimientos contradictorios pueden formar parte de la base de conocimiento, dando lugar a un comportamiento insatisfactorio en el sistema, por ejemplo: en sistemas con mecanismos de propagación de incertidumbre es común llegar a conclusiones absurdas o en conflicto cuando el sistema genera probabilidades mayores a la unidad o negativas. 1.6.5 El Motor de Inferencia: Es le corazón de todo sistema experto. El objetivo principal es el de sacar conclusiones aplicando el conocimiento a los datos. Estas conclusiones pueden estar basadas en conocimientos deterministas o probabilísticos. El tratamiento de situaciones de incertidumbre (probabilísticos) puede ser considerablemente más difícil que el tratamiento de situaciones ciertas (deterministas). En los sistemas expertos basados en probabilidad, la propagación de incertidumbre es la tarea principal del motor de inferencia que permite sacar conclusiones bajo incertidumbre, esto hace que el motor de inferencia sea la componente más débil de casi todos los sistemas expertos. 1.6.6 El Subsistema de Adquisición del Conocimiento: Es utilizado por el motor de inferencia cuando el conocimiento inicial es muy limitado y no se pueden sacar conclusiones, este obtiene el conocimiento necesario y continúa con el proceso de inferencia hasta que se hayan sacado conclusiones. El usuario puede suministrar la información requerida para éste y otros objetivos, para esto es necesario una “Interfase de Usuario” y una comprobación de consistencia de información suministrada por el usuario antes de introducirla en la memoria de trabajo. 1.6.7 Interfase de Usuario: Es el enlace entre el sistema experto y el usuario. Para que un sistema experto sea una herramienta efectiva debe incorporar mecanismos eficientes para mostrar y obtener información fácil y agradable, por ejemplo: luego del trabajo del motor de inferencia la información que se tiene que visualizar es el de las conclusiones, razones de las mismas y una explicación de las acciones iniciadas. Cuando el motor de inferencia no puede concluir debido a la ausencia de información, la interfase de usuario es el vehículo para obtener la información necesaria. Una implementación inadecuada de la interfase de usuario disminuirá la calidad de un sistema experto. 6 1.6.8 El Subsistema de Ejecución de Ordenes: Es la componente que permite al sistema experto iniciar acciones que están basadas en las conclusiones sacadas por el motor de inferencia, por ejemplo: un sistema experto que analiza el tráfico ferroviario puede decidir retrasar o parar ciertos trenes para optimizar el tráfico global. Las explicaciones de estas razones pueden darse al usuario a través del “Subsistema de Explicación”. 1.6.9 El Subsistema de Explicación: Es el subsistema que explica el proceso seguido por el motor de inferencia o por el subsistema de ejecución, por ejemplo: si un cajero automático rechaza una palabra clave (una acción) la máquina puede mostrar un mensaje (una explicación) como la siguiente: “retenemos su tarjeta de crédito para garantizar su seguridad”. En muchos casos, la explicación es necesaria debido a los riesgos asociados con la acción a ejecutar, por ejemplo en el campo del diagnóstico médico. 1.6.10 El Subsistema de Aprendizaje: Diferenciamos entre Aprendizaje Estructural y Aprendizaje Paramétrico. Aprendizaje Estructural: Se refiere a algunos aspectos relacionados con la estructura del conocimiento (reglas, distribuciones de probabilidad, etc.). Por ejemplo: el descubrimiento de nuevos síntomas para una enfermedad o la inclusión de una nueva regla en la base de conocimiento. Aprendizaje Paramétrico: Se refiere a estimar los parámetros necesarios para construir la base de conocimiento, por ejemplo la estimación de frecuencias o probabilidades asociadas a síntomas o enfermedades. De las componentes antes mencionadas se puede ver que los Sistemas Expertos realizan varias tareas. Estas incluyen, pero no se limitan a las siguientes: § § § § § § § Adquisición de conocimiento y verificación de su coherencia. Almacenar (memorizar) conocimientos. Preguntar cuándo se requieren nuevos conocimientos. Aprender de la base de conocimiento y de los datos disponibles. Realizar inferencia y razonamiento en situaciones deterministas y de incertidumbre. Explicar conclusiones y acciones tomadas. Comunicar con los expertos y no expertos humanos y con otros Sistemas Expertos. 1.7 DESARROLLO DE UN SISTEMA EXPERTO Etapas en el desarrollo de un Sistema Experto: 7 1.3 1) 2) 3) 4) 5) 6) 7) Planteamiento del problema: Se trata de la definición del problema a resolver, es la etapa más importante para el desarrollo de un sistema experto. Encontrar expertos humanos que puedan resolver el problema: En algunos casos, las bases de datos pueden jugar el papel del experto humano. Diseño de un Sistema Experto: Esta etapa incluye el diseño de estructuras para almacenar el conocimiento, el motor de inferencia, el subsistema de explicación, la interfase de usuario, etc. Elección de la herramienta de desarrollo o lenguaje de programación: Debe decidirse si realizar un sistema experto a medida o utilizar una herramienta o un lenguaje de programación. Desarrollo y prueba de un prototipo: Si el prototipo no pasa las pruebas requeridas, las pruebas anteriores (con las modificaciones apropiadas) deben ser repetidas hasta obtener un prototipo satisfactorio. Refinamiento y generalización: En esta etapa se corrigen los fallos y se incluyen nuevas posibilidades no incorporadas en el diseño inicial. Mantenimiento y puesta al día: En esta etapa el usuario plantea problemas o defectos del prototipo, corrige errores, actualiza el producto con nuevos avances, etc. 8 1.8 OTRAS ÁREAS DE LA INTELIGENCIA ARTIFICIAL 1.8.1 Representación del conocimiento: Se refiere a los mecanismos para representar y manipular esta información. Los esquemas de representación resultantes deben permitir una búsqueda o una operación eficiente de los mecanismos de inferencia. 1.8.2 Reconocimiento de patrones: Trata de diferentes técnicas de clasificación para identificar los subgrupos o conglomerados con características comunes en cada grupo. El grado de asociación de cualquiera de los objetos con cada uno de los grupos suministra un modo de sacar conclusiones. 1.8.3 Reconocimiento de la voz: Trata del problema de procesar el lenguaje hablado y capturar los diferentes elementos semánticos que forman la conversación. 1.8.4 Procesamiento del lenguaje natural: Un objetivo consiste en extraer tanta información como sea posible de un texto escrito. 1.8.5 Planificación: Los métodos de planificación analizan diferentes estrategias para descomponer un problema dado, resolver cada una de sus partes, y llegar a una solución final. La interacción entre las partes dependerá del grado de descomponibilidad del problema. 1.8.6 Demostración automática de teoremas: Esta tarea puede ser realizada por maquinas programables. Éstas son capaces no sólo de modificar el conocimiento existente, sino también de obtener conclusiones nuevas. 1.8.7 Juegos automatizados: Constituyen un ejemplo de una de las más antiguas y fascinantes áreas de la Inteligencia Artificial. El juego automático requiere un estudio teórico profundo y tiene varias aplicaciones en otras áreas tales como: métodos de búsqueda, optimizaciones, etc. 1.8.8 Visión artificial: Uno de sus objetivos es la posibilidad de usar ordenadores para localizar y reconocer automáticamente objetos en tres dimensiones. 1.8.9 Robótica: Es una de las áreas más populares. Los robots combinan elementos mecánicos, sensores y ordenadores que les permiten tratar con objetos reales y realizar muchas tareas de forma precisa, rápida y cómoda. 1.8.10 Redes Neuronales: Se crearon con el objetivo de reproducir de forma básica las funciones elementales del cerebro humano. Las arquitecturas en red con un gran número de conexiones entre varias capas de procesadores fueron introducidas para reproducir la estructura del cerebro humano. La información contenida en una red neuronal se codifica en la estructura de la red y en los pesos de las conexiones. 9 CAPÍTULO 2 : SISTEMAS BASADOS EN REGLAS 2.1 INTRODUCCIÓN Los Sistemas Basados en Reglas son una herramienta eficiente para tratar muchas situaciones complejas gobernadas por reglas deterministas, sistemas de control de tráfico, sistemas de seguridad, transacciones bancarias, etc. Las reglas deterministas constituyen la más sencilla de las metodologías utilizadas en Sistemas Expertos. La base de conocimiento contiene el conjunto de reglas que definen el problema y el motor de inferencia saca las conclusiones aplicando la lógica clásica a estas reglas. 2.2 LA BASE DE CONOCIMIENTO En los Sistemas basados en reglas intervienen dos elementos importantes: § § Los datos: Están formado por la evidencia o los hechos conocidos en una situación particular. Este elemento es dinámico, es decir, puede cambiar de una aplicación a otra, por lo tanto no es de naturaleza permanente y se almacena en la memoria de trabajo. En situaciones deterministas, las relaciones entre un conjunto de objetos pueden ser representadas mediante un conjunto de reglas. El conocimiento: Se almacena en la base de conocimiento y consiste en un conjunto de objetos y un conjunto de reglas que gobierna las relaciones entre esos objetos. La información almacenada en la base de conocimiento es permanente y estática, es decir, no cambia de una aplicación a otra, a menos que se incorporen al sistema experto elementos de aprendizaje. Ejemplos de reglas: Regla 1: si nota > 9, entonces calificación = sobresaliente. Regla 2: si puesto < 20 o nota > 7 , entonces admitir = si y notificar = si. Cada una de estas reglas relacionan dos o más objetos y están formadas por las siguientes partes: 10 ü La PREMISA: Es la expresión lógica entre las palabra clave “si” y “entonces”. La premisa puede contener una o más afirmaciones objeto - valor conectados con operadores lógicos “y”, “o”, o “no”. ü La CONCLUSIÓN: Es la operación lógica tras la palabra clave “entonces”. DEFINICIÓN: “ Una regla es una afirmación lógica que relaciona dos o más objetos e incluye dos partes, la premisa y la conclusión. Cada una de estas partes consiste en una expresión lógica con una o más afirmaciones objetovalor conectadas mediante los operadores lógicos “y”, “o”, o “no””. Una regla se escribe como: “si premisa, entonces conclusión”. Una expresión lógica que contiene sólo una afirmación objeto-valor se denomina Expresión Lógica Simple, tal es el caso de la regla 1 dada anteriormente como ejemplo; en caso contrario, la expresión se denomina Expresión Lógica Compuesta, por ejemplo la regla 2. Una regla que contiene solamente expresiones lógicas simples se denomina una Regla Simple (ejemplo regla 1) en otro caso, se llama Regla Compuesta (ejemplo regla 2). Ejemplo: Cajero Automático: Se considera una situación en la que un usuario desea sacar dinero de su cuenta corriente mediante un cajero automático (CA). En cuanto el usuario introduce la tarjeta en el CA, la máquina la lee y la verifica. Si la tarjeta no es verificada con éxito, el CA devuelve la tarjeta al usuario con el mensaje de error. En otro caso, el CA pide al usuario su número de identificación personal (NIP). Si el número fuese incorrecto se dan tres oportunidades de corregirlo. Si el NIP es correcto, el CA pregunta al usuario cuánto dinero desea sacar. Para que el pago se autorice, la cantidad solicitada no debe exceder de una cierta cantidad límite diaria, además de haber dinero suficiente en su cuenta. En la tabla siguiente se muestran los siete objetos con sus posibles valores: 11 En la siguiente figura se muestran las siete reglas que gobiernan la estrategia que el CA debe seguir cuando un usuario desea sacar dinero de su cuenta: 2.3 EL MOTOR DE INFERENCIA El motor de inferencia usa los datos del conocimiento para obtener nuevas conclusiones o hechos. Los datos iniciales se incrementan incorporando las nuevas conclusiones. Por ello, tanto los hechos iniciales o datos de partida como sus conclusiones forman parte de los hechos o datos de que se dispone en un instante dado. Las conclusiones pueden clasificarse en dos tipos: Las conclusiones simples son las que resultan de una regla simple; las conclusiones compuestas son las que resultan de más de una regla. Para obtener conclusiones se utilizan diferentes tipos de reglas y estrategias de inferencia y control. ü Reglas de Inferencia: • Modus Ponens. • Modus Tollens. 12 • Resolución. ü Estrategias de Inferencia: • Encadenamiento de Reglas. • Encadenamiento de Reglas orientado a un objetivo. • Compilación de Reglas. 2.3.1 Modus Ponens y Modus Tollens La “Modus Ponens” 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. Suponiendo que se tiene la regla, “si A es cierto, entonces B es cierto” y se sabe que A es cierto entonces la regla Modus Ponens concluye que B es cierto. 2.2. La regla de inferencia “Modus Tollens” también se utiliza para obtener conclusiones simples. En ella se examina la conclusión y si es falsa, se concluye que la premisa también es falsa. Por ejemplo, suponiendo la regla siguiente: “si A es cierto, entonces B es cierto”; pero se sabe que B es falso entonces usando la regla “Modus Ponens” no se obtiene ninguna conclusión, pero utilizando la regla Modus Tollens se concluye que A es falso. 2.3 13 La regla Modus Ponens necesita información de los objetos de la premisa para concluir, mientras que la regla Modus Tollens necesita información sobre los objetos de la conclusión. Ejemplo: La regla Modus Tollens equivale a una expansión de la base de conocimiento: Supóngase que la base de conocimiento consiste sólo en la regla 1 (figura 2.4). Se puede utilizar la regla de inferencia Modus Tollens para invertir la regla 1 y obtener alguna conclusión cuando se tiene información sobre los objetos de su conclusión. Aplicar la regla Modus Tollens a la regla “si A , entonces B” es equivalente a aplicar la En este caso, la regla 1, utilizando la regla Modus Ponens a la regla equivalencia: se obtiene la regla 1b (figura 2.5). 2.4 2.5 2.3.2 Mecanismos de Resolución Las conclusiones compuestas, que se basan en dos o más reglas se obtienen usando el llamado “Mecanismo de Resolución”. Esta regla de inferencia consiste en las siguientes etapas: 14 1. Las reglas son sustituidas por expresiones lógicas equivalentes. 2. Estas expresiones lógicas se combinan con la otra expresión lógica. 3. Esta última expresión se utiliza para obtener la conclusión. Estas etapas involucran conceptos tales como la combinación y simplificación de expresiones lógicas como se verá en siguiente ejemplo. Ejemplo de Mecanismo de Resolución: Considérese el ejemplo del cajero automático (CA) con el objeto añadido explicar , que puede tomar los valores {si, no}, indicando si se necesita explicar las acciones del CA. Aplicamos el mecanismo de resolución a la evidencia NIP = incorrecto y a las siguientes reglas : • • Si NIP = incorrecto, entonces pago = no autorizado. Si pago = no autorizado, entonces explicar = si. Tal como muestra la figura 2.6, la regla de inferencia correspondiente al mecanismo de resolución conduce a la conclusión explicar = si. Siguiendo los pasos indicados se tiene: 1) Las dos reglas se sustituyen por las expresiones equivalentes: • NIP = correcto o pago = no autorizado. • Pago = autorizado o explicar = si. 2) Las dos expresiones anteriores se combinan de la forma indicada para dar la expresión NIP = correcto o explicar = si, y 3) Esta última expresión se combina con la evidencia NIP = incorrecto y se obtiene la conclusión compuesta, explicar = si. 2.6 Es importante señalar que la regla de inferencia correspondiente al mecanismo de resolución no siempre conduce a conclusiones, porque puede no conocerse la verdad o 15 falsedad de ciertas expresiones. Si esto ocurre, el sistema experto, o más precisamente, su motor de inferencia, debe decidir entre: • • Abandonar la regla, dada la imposibilidad de obtener conclusiones, o Preguntar al usuario, mediante el subsistema de demanda de información, sobre la verdad o falsedad de una o varias expresiones para poder continuar el proceso de inferencia hasta que se obtenga una conclusión. 2.3.3 Encadenamiento de Reglas Se utiliza para obtener conclusiones compuestas. Se puede usar 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 puedan obtenerse más conclusiones. Algoritmo de Encadenamiento de reglas: • • Datos: Una base de conocimiento (objetos y reglas) y algunos hechos iniciales. Resultado: El conjunto de hechos derivados lógicamente de ellos. 1. Asignar a los objetos sus valores conocidos tales como lo dan los hechos conocidos o la evidencia. 2. Ejecutar cada regla de la base de conocimiento y concluir nuevos hechos si es posible. 3. Repetir la etapa dos hasta que no puedan ser obtenidos nuevos hechos. Ejemplo: Encadenamiento de Reglas: La figura 2.7 muestra un ejemplo de 6 reglas que relacionan 13 objetos (de la A hasta la M). La figura 2.8 muestra relaciones entre los objetos, donde cada uno de ellos es representado por un nodo. Las aristas representan la conexión entre los objetos de la premisa de la regla y el objeto de la conclusión. Supóngase que se sabe que los objetos A, B ,D ,E, F , H e I son ciertos y los restantes de valores desconocidos representados en la figura 2.9. En este caso, el algoritmo de encadenamiento de regla procede de la siguiente manera: • • • • • • La regla 1 concluye que C = cierto. La regla 2 concluye que G = cierto. La regla 3 concluye que J = cierto. La regla 4 concluye que K = cierto. La regla 5 concluye que L = cierto. La regla 6 concluye que M = cierto. Puesto que no pueden obtenerse más conclusiones el proceso se detiene. 16 2.7 2.8 2.7. 17 2.9 2.3.4 Encadenamiento de Reglas Orientado a un Objetivo Este requiere del usuario seleccionar, en primer lugar, una variable o nodo objetivo; entonces el algoritmo navega a través de las reglas en búsqueda de una conclusión para el nodo objetivo. Si no se obtiene ninguna conclusión con la información existente, el algoritmo fuerza a preguntar al usuario en busca de nueva información sobre los elementos que son relevantes para obtener información sobre el objetivo. Algoritmo de encadenamiento de reglas orientado a un objetivo: • • Datos: Una base de conocimiento (objetos y reglas), algunos hechos iniciales y un nodo o variable objetivo. Resultado: El valor del nodo o variable objetivo. 1) Asigna a los objetos sus valores conocidos tales como están dados en los hechos de partida, si es que existe alguno. Marcar todos los objetos cuyo valor ha sido asignado. Si el nodo objetivo está marcado pasar a la etapa siguiente; en otro caso: a) Designar como objetivo inicial el objetivo en curso. b) Marcar el objetivo en curso. c) Sea ObjetivosPrevios = vacío. d) Designar todas las reglas como activas (ejecutables). e) Ir a la etapa 2. 18 2) Encontrar una regla activa que incluya el objetivo en curso y ninguno de los objetivos en ObjetivosPrevios. Si se encuentra una regla ir a la etapa 3; en otro caso ir a la etapa 5. 3) Ejecutar la regla referente al objetivo en curso. Si concluye, asignar el valor concluido al objetivo en curso, e ir a la etapa 6; en otro caso ir a la etapa 4. 4) Si todos los objetos de la regla están marcados, declarar la regla como inactiva e ir a la etapa 2; en otro caso: a) Añadir el objetivo en curso a ObjetivosPrevios. b) Designar uno de los objetos no marcados en la regla como el objetivo en curso. c) Marcar el objetivo en curso. d) Ir a la etapa 2 5) Si el objetivo en curso es el mismo que el objetivo inicial, ir a la etapa 7; en otro caso, preguntar al usuario por el valor del objetivo en curso. Si no se da un valor, ir a la etapa 6; en otro caso asignar al objeto el valor dado e ir a la etapa 6. 6) Si el objetivo en curso es el mismo que el objetivo inicial, ir a la etapa 7; en otro caso, designar el objetivo previo como objetivo en curso, eliminarlo de ObjetivosPrevios, e ir a la etapa 2. 7) Devolver el valor del objetivo en curso si es conocido. 2.3.5 Compilación de Reglas Consiste en comenzar con un conjunto de datos (información) y tratar de alcanzar algunos objetivos. Cuando ambos, datos y objetos, se han determinado previamente, las reglas pueden ser compiladas, es decir, pueden describirse los objetivos en función de los datos para obtener las llamadas “Ecuaciones Objetivos”. Ejemplo: Considérese el conjunto de seis reglas de la figura 2.8 y supóngase que son conocidos los valores de los objetos A, B, D, E, F, H e I y que los restantes C, G, J, K, L, M son objetivos. Denotemos por ^ el operador lógico Y entonces, utilizando las seis reglas, pueden obtenerse las siguientes ecuaciones objetivos: • • • • • • La regla 1 implica C = A ^ B. La regla 2 implica G = D ^ E ^ F. La regla 3 implica J = H ^ I. La regla 4 implica K = C ^ G = (A ^ B) ^ (D ^ E ^ F). La regla 5 implica L = G ^ J = (D ^ E ^ F) ^ (H ^ I). La regla 6 implica M = K ^ L = A ^ B ^ D ^ E ^ F ^ H ^ I. Las tres primeras ecuaciones son equivalentes a las tres primeras reglas. Las tres ecuaciones objetivos son respectivamente equivalentes a las reglas siguientes: • • • Regla 4a: si A y B y D y E y F, entonces K. Regla 5a: si D y E y F y H e I, entonces L. Regla 6a: si A y B y D y E y F y H e I, entonces M. 19 Entonces, si por ejemplo, cada uno de los objetos {A, B, D, E, F, H, I} toma el valor cierto, entonces se obtiene de forma inmediata, a partir de las reglas 4a, 5a, 6a, que los objetos {K, L, M} deben ser ciertos. 2.4 CONTROL DE COHERENCIA Es importante controlar la coherencia del conocimiento tanto durante la construcción de la base de conocimiento como durante los procesos de adquisición de datos y razonamiento. Si la base de conocimiento contiene información inconsistente (por ejemplo, reglas y/o hechos), es muy importante que el Sistema Experto se comporte insatisfactoriamente y obtenga conclusiones absurdas. El objetivo del Control de Coherencia consiste en: 1) Ayudar al usuario a no dar hechos inconsistentes, por ejemplo dándole las restricciones que debe satisfacer la información demandada. 2) Evitar que entre en la base de conocimiento cualquier tipo de conocimiento inconsistente o contradictorio. El control de la coherencia debe hacerse controlando la coherencia de las reglas y la de los hechos. 2.4.1 Coherencia de Reglas Definición : “ un conjunto de reglas se denomina coherente si existe, al menos, un conjunto de valores de todos los objetos que producen conclusiones no contradictorias”. Ejemplo : Conjunto de reglas incoherentes: Considérense las cuatro reglas siguientes, que relacionan dos objetos A y B binarios {C, F}: . Regla 1: Si A = C, entonces B = C. . Regla 2: Si A = C, entonces B = F. . Regla 3: Si A = F, entonces B = C. . Regla 4: Si A = F, entonces B = F. Entonces, pueden obtenerse las siguientes conclusiones: 1. Las Reglas 1 - 2 son coherentes puesto que, tal como se muestra en la Tabla 2.3, para A = F, no producen conclusiones. 2. Las Reglas 1 - 3 son coherentes puesto que para A = F y B = C, producen una conclusión (B = C) ( Tabla 2.4). 3. Las Reglas 1 - 4 son incoherentes porque producen conclusiones contradictorias para todos los posibles valores de A y B, tal como se ve en la Tabla 2.5. Un conjunto de reglas puede ser coherente, aunque algunos conjuntos de valores puedan producir conclusiones inconsistentes. Estos conjuntos de valores se llaman valores no 20 factibles. Por ejemplo, las Reglas 1 - 2 son coherentes, aunque producen conclusiones inconsistentes en todos los casos en que A = C. En consecuencia, el subsistema de control de coherencia eliminará automáticamente el valor C de la lista de posibles valores del objeto A, permitiendo de esta forma al usuario seleccionar sólo valores factibles de los objetos. 2.3 2.4 2.5 DEFINICIÓN: Valores no factibles: “ Se dice que un valor a para el objeto A no es factible si las conclusiones obtenidas al hacer A = a contradicen cualquier combinación de valores del resto de los objetos”. 21 Ejemplo : Valores no factibles: Considérese el conjunto de las cuatro reglas del ejemplo anterior. En este caso, el motor de inferencia concluirá lo siguiente: 1. Las dos primeras reglas implican que A ≠ C, puesto que A = C siempre conduce a conclusiones inconsistentes. Por tanto, el valor A = C deberá ser eliminado automáticamente de la lista de valores factibles de A. Dado que A es binario, entonces resulta A = F (el único valor posible). 2. Las tres primeras reglas implican que A = F y B = C. Por tanto, el valor B = F deberá ser eliminado automáticamente de la lista de valores factibles de B. 3. Las primeras cuatro reglas implican que A ≠ C, A ≠ F, B ≠ C y B ≠ F. Por tanto, los valores {C, F} son eliminados de las listas de valores de A y B, con lo que las listas de valores factibles de todos los objetos están vacías, lo que implica que las cuatro reglas son incoherentes. Ejemplo: Coherencia de reglas: Supóngase que se tienen los cuatro objetos: A ∈ {0, 1}, B ∈ {0, 1}, C ∈ {0, 1, 2} y D ∈ {0, 1}. Considérense las cuatro reglas: . Regla 1: Si A = 0 y B = 0, entonces C = 0. . Regla 2: Si A = 0 y D = 0, entonces C = 1. . Regla 3: Si A = 0 y B = 0, entonces C = 1. . Regla 4: Si A = 0, entonces B = 0. . Regla 5: Si B = 0, entonces A = 1. Supóngase ahora que se desea añadir las tres últimas reglas a una base de conocimiento que contiene las dos primeras reglas. Entonces, las Reglas 1 y 3 son inconsistentes, puesto que tienen la misma premisa pero diferentes conclusiones. Por lo que, la Regla 3 debe ser rechazada y el experto humano informado de la razón del rechazo. El experto humano corregirá la regla en cuestión y / o las reglas existentes si fueran incorrectas. La Regla 4 entrará en la base de conocimiento, puesto que es consistente con las Reglas 1 y 2. La Regla 5 es inconsistente con la Regla 4. Por ello, la consistencia de ambas reglas debe ser comprobada antes de pasar a formar parte de la base de conocimiento. 2.4.2 Coherencia de Hechos Los datos o evidencias suministrados por los usuarios deben ser también consistentes en sí y con el conjunto de reglas de la base de datos. Por ello, el sistema no debe aceptar hechos que contradigan el conjunto de reglas y / o el conjunto de hechos existente en cada instante del proceso. La coherencia de los hechos puede lograrse mediante las estrategias siguientes: 1. Eliminar todos los valores no factibles (los que contradicen el conjunto de reglas y / o hechos) de los objetos una vez detectados. Cuando se pregunte al usuario por información sobre los valores de un conjunto de objetos, el sistema experto debería aceptar sólo los valores de cada objeto que sean consistentes con las reglas y con el conocimiento previo. 22 2. El motor de inferencia debe comprobar que los hechos conocidos no contradicen el conjunto de reglas. Si el sistema no elimina los valores no factibles, entonces el usuario podrá dar evidencias contradictorias tales como Pago = autorizado y NIP = incorrecto en el ejemplo del cajero automático (CA). Por ello, tan pronto como se de la primera evidencia, Pago = autorizado, el sistema debe seleccionar sólo los valores del NIP que no conduzcan a conclusiones contradictorias. 3. Suministrar al usuario una lista de objetos a los que no se ha asignado valores previamente. 4. Para cada uno de los objetos, mostrar y aceptar sólo sus valores factibles. 5. Actualizar continuamente la base de conocimiento, es decir, tan pronto como se dé un hecho o se obtenga una conclusión, y eliminar los valores no factibles. El motor de inferencia obtiene todas las conclusiones posibles examinando, y posiblemente concluyendo, las reglas tan pronto como una simple unidad de información llega al sistema. 2.5 EXPLICANDO CONCLUSIONES Las conclusiones no bastan para satisfacer al usuario de un sistema experto, por lo que, normalmente, los usuarios esperan que el sistema les dé algún tipo de explicación que indique el por qué de las conclusiones. Durante el proceso realizado por el motor de inferencia, las reglas activas (las que han concluido) forman la base del mecanismo de explicación, que es regulado por el subsistema de explicación. En los sistemas expertos basados en reglas, es fácil dar explicaciones de las conclusiones obtenidas. El motor de inferencia obtiene conclusiones basándose en un conjunto de reglas y, por tanto, conoce de qué regla procede cada conclusión. Por ello, el sistema puede dar al usuario la lista de hechos concluidos junto con las reglas que se han utilizado para obtenerlos. Ejemplo: Explicando conclusiones. Considérese las seis reglas de las Figuras 2.7 y 2.8. Como en el ejemplo proporcionado en “Encadenamiento de reglas”, supóngase que se sabe que los objetos A, B, D, E, F, H e I son ciertos y que los restantes objetos toman valores desconocidos. Entonces, aplicando el Algoritmo de encadenamiento de reglas visto en el punto 2.3.3 y examinando las reglas que han sido ejecutadas, el sistema experto puede suministrar la explicación siguiente a las conclusiones obtenidas: 1. Hechos dados: A = cierto, B = cierto, D = cierto, E = cierto, F = cierto, H = cierto, I = cierto. 2. Conclusiones y explicaciones: . C = cierto, basada en la Regla 1. . G = cierto, basada en la Regla 2. . J = cierto, basada en la Regla 3. . K = cierto, basada en la Regla 4. . L = cierto, basada en la Regla 5. . M = cierto, basada en la Regla 6. 23 CAPÍTULO 3: SISTEMAS EXPERTOS BASADOS EN PROBABILIDAD 3.1 INTRODUCCIÓN En la mayor parte de las aplicaciones, la incertidumbre es lo común; por ejemplo, una pregunta típica en diagnóstico médico es: dado que el paciente presenta un conjunto de síntomas, ¿cuál de las enfermedades posibles es la que tiene el paciente?. Esta situación implica un cierto grado de incertidumbre puesto que: . Los hechos o datos pueden no ser conocidos con exactitud. Por ejemplo, un paciente puede no estar seguro de haber tenido fiebre la noche pasada. Por ello, hay un cierto grado de incertidumbre en la información asociada a cada paciente (subjetividad, imprecisión, ausencia de información, errores, datos ausentes, etc.). . El conocimiento no es determinista. Por ejemplo, las relaciones entre las enfermedades y los síntomas no son deterministas, puesto que un mismo conjunto de síntomas puede estar asociado a diferentes enfermedades. De hecho, no es extraño encontrar dos pacientes con los mismos síntomas pero diferentes enfermedades. La probabilidad es, hoy en día, la más intuitiva y la más aceptada de las medidas de incertidumbre. Lindley (1987), por ejemplo, dice: “La única descripción satisfactoria de la incertidumbre es la probabilidad. Esto quiere decir que toda información incierta debe estar en forma de una probabilidad, que varias incertidumbres deben ser combinadas usando las reglas de la probabilidad, y que el cálculo de probabilidades es adecuado para manejar situaciones que implican incertidumbre. En particular, las descripciones alternativas de la incertidumbre son innecesarias.” 3.2 ALGUNOS CONCEPTOS BÁSICOS DE LA TEORÍA DE LA PROBABILIDAD 3.2.1 Medida de Probabilidad Para medir la incertidumbre se parte de un marco de discernimiento dado S, en el que se incluyen todos los posibles resultados de un cierto experimento como conjunto exhaustivo y mutuamente exclusivo. El conjunto S se conoce como espacio muestral. Una vez definido este conjunto, el objetivo consiste en asignar a todo subconjunto de S un número real que mida el grado de incertidumbre sobre su realización. Para obtener medidas con significado 24 físico claro y práctico, se imponen ciertas condiciones o propiedades intuitivas adicionales que definen una clase de medidas que se conocen como medidas de probabilidad. Definición: Medida de Probabilidad. Una función p que proyecta los subconjuntos A ⊆ S en el intervalo [0, 1] se llama medida de probabilidad si satisface los siguientes axiomas: . Axioma 1 (Normalización): p(S) = 1. . Axioma 2 (Aditividad): Para cualquier sucesión infinita, A1, A2, . . ., de subconjuntos disjuntos de S, se cumple la igualdad: De los axiomas anteriores pueden deducirse las siguientes propiedades: . Propiedad 1 (Normalización): p(ö) = 0. . Propiedad 2 (Monotonicidad): Si A ⊆ B ⊆ S, entonces p(A) p(B). . Propiedad 3 (Continuidad-Consistencia): Para toda sucesión creciente A1 ⊆ A2 ⊆ . . . o decreciente A1 ⊇ A2 ⊇ . . . de subconjuntos de S se tiene: . Propiedad 4 (Inclusión-Exclusión): Dado cualquier par de subconjuntos A y B de S, se cumple siempre la siguiente igualdad: 3.2.2 Distribuciones de Probabilidad Sea {X1, . . . , Xn} un conjunto de variables aleatorias discretas y {x1, . . . , xn} el conjunto de sus posibles realizaciones. Las variables aleatorias se denotan con mayúsculas y sus realizaciones se denotan con minúsculas. Por ejemplo, si Xi es una variable binaria, entonces xi puede ser 1 ó 0. Los resultados que siguen son también válidos si las variables son continuas, pero en este caso los símbolos de suma deben sustituirse por integrales. Sea p(x1, . . . , xn) la función de probabilidad conjunta de las variables de X, es decir, La función de probabilidad marginal de la i-ésima variable se obtiene mediante la fórmula: Definición: Probabilidad condicional: Sean X e Y dos conjuntos disjuntos de variables tales que p(y) > 0. Entonces, la probabilidad condicional (función de probabilidad condicionada) de X dado Y = y viene dada por: 25 La ecuación (3.5) implica que la función de probabilidad conjunta de X e Y puede escribirse como: Se obtiene un caso particular de (3.5) cuando X es una única variable e Y es un subconjunto de variables. En este caso, (3.5) se convierte en: que es la función de probabilidad de la i-ésima variable, Xi, dado el subconjunto de variables {X1, . . . , Xk}. La suma del denominador de (3.7) se extiende a todos los valores posibles de Xi. 3.2.3 Dependencia e Independencia Definición: Independencia de dos variables: Sean X e Y dos subconjuntos disjuntos del conjunto de variables aleatorias {X1, . . . , Xn}. Entonces se dice que X es independiente de Y si y solamente si: para todos los valores posibles x e y de X e Y; en otro caso, X se dice dependiente de Y . Si X es independiente de Y, pueden combinarse (3.6) y (3.8) para obtener p(x, y)/p(y) = p(x), que implica: Una propiedad importante de la relación de independencia es su simetría, es decir, si X es independiente de Y, entonces Y es independiente de X. Esto ocurre porque: Definición: Independencia de un conjunto de variables: Las variables aleatorias {X1, . . . , Xm} se dice que son independientes si y sólo si: para todos los valores posibles x1, . . . , xm de X1, . . . , Xm. En otro caso, se dice que son dependientes. 26 Si X1, . . . , Xm son condicionalmente independientes dado otro subconjunto Y1, . . . , Yn, entonces: 3.2.4 Teorema de Bayes Una conocida fórmula de la teoría de la probabilidad puede obtenerse como sigue. Utilizando (3.3) y (3.5), se obtiene: 3.2.5 Tipos de Errores En situaciones de incertidumbre pueden cometerse dos tipos de errores: . Una decisión positiva falsa, también conocida como error de tipo I. . Una decisión negativa falsa, también conocida como error de tipo II. En un caso de diagnóstico médico, por ejemplo, los posibles errores son: . Error de Tipo I: Un paciente no tiene la enfermedad pero el doctor concluye que la tiene. . Error de Tipo II: Un paciente tiene la enfermedad pero el doctor concluye que no la tiene. Estos tipos de errores se ilustran en la Tabla 3.1.: Tabla 3.1. 3.3 REGLAS GENERALIZADAS La medida de probabilidad puede utilizarse para extender los sistemas basados en reglas a situaciones de incertidumbre. Una forma de introducir la incertidumbre en los sistemas basados en reglas consiste en utilizar reglas generalizadas. Por ejemplo, dada la regla determinista: . Regla 1: Si A es cierta, entonces B es cierta, se puede introducir incertidumbre asociando una probabilidad a esta afirmación. . Regla 2: Si A es cierta, entonces la probabilidad de que B sea cierta es p(b) = è. Acá 0 è 1 es una medida de la incertidumbre de B. La Regla 1 es un caso especial de la Regla 2 haciendo è = 1 (certeza). Pero cuando 0 < è < 1 (incertidumbre), se puede 27 pensar en la Regla 2 como una regla generalizada. Por ello, el valor de è determina el nivel de implicación como sigue (figura 3.1): Implicación fuerte (è = 1): Si la premisa de una regla es cierta, su conclusión debe ser también cierta. Por ello, dada la regla “Si A es cierta, entonces B es cierta”, se puede decir que A implica B con probabilidad 1. Esto se ilustra en la Figura 3.1(a). Implicación débil (0 < è < 1): La regla anterior puede ser vista en un sentido generalizado cuando A implica B sólo en algunas ocasiones. En este caso, se dice que A implica B con probabilidad p(B = cierto / A = cierto), como se muestra en la Figura 3.1(b). No implicación (è = 0): El caso en que A no implica B puede considerarse como que A implica B con probabilidad 0. Esto se ilustra en la Figura 3.1(c). Figura 3.1 El uso de reglas generalizadas requiere utilizar medidas de incertidumbre para objetos y reglas, junto con fórmulas de agregación para combinar la incertidumbre de los objetos en las premisas con las de las reglas para obtener la incertidumbre de los objetos en las conclusiones. Una forma alternativa de utilizar la medida de probabilidad consiste en describir las relaciones entre los objetos (variables) mediante una función de probabilidad conjunta. A los sistemas expertos que utilizan las funciones de probabilidad conjunta de las variables como base para hacer la inferencia, se les conoce como sistemas expertos de tipo probabilístico. 3.4 INTRODUCIENDO PROBABILIDAD LOS SISTEMAS EXPERTOS BASADOS EN El núcleo de los sistemas expertos basados en reglas es el conjunto de reglas que describen las relaciones entre los objetos (variables). En los sistemas expertos probabilísticos las relaciones entre las variables se describen mediante su función de probabilidad conjunta. Por ello, la función de probabilidad conjunta forma parte de lo que se llama conocimiento. 28 Ejemplo: Diagnostico médico. Supóngase que se dispone de una base de datos con información sobre N pacientes y que un paciente puede tener una y sólo una de m enfermedades, e1, . . . , em, tal como muestra la Figura 3.2 para m = 5 enfermedades. Supóngase también que un paciente puede tener ninguno, uno, o más de n síntomas S 1, . . . , Sn, como indica la Figura 3.3 para n = 3 síntomas. Supóngase que la variable aleatoria enfermedad, E, toma como valores las enfermedades e1, . . . , em. Supóngase también que los síntomas son variables binarias, de forma que cada una toma el valor 1, si está presente, o el valor 0, si está ausente. Cualquier variable aleatoria en el conjunto {E, S1, . . . , Sn} define una partición del conjunto universal de pacientes en una clase disjunta y exhaustiva de conjuntos. Entonces, combinando las enfermedades y los síntomas, cada paciente puede clasificarse en una y sólo una región tal como se muestra en la Figura 3.4, que proviene de superponer las Figuras 3.2 y 3.3. Por ejemplo, el círculo negro de la Figura 3.4 representa un paciente que tiene la enfermedad e4 y los tres síntomas: S1, S2 y S3. Figura 3.2 Figura 3.3 29 Figura 3.4 3.5 LA BASE DE CONOCIMIENTO La base de conocimiento de un sistema experto basado en reglas consta del conjunto de objetos variables y del conjunto de reglas. La base de conocimiento de un sistema experto probabilístico consiste en un conjunto de variables, {X1, . . . , Xn}, y una función de probabilidad conjunta definida sobre ellas, p(x1, . . . , xn). Por ello, para construir la base de conocimiento de un sistema experto probabilístico, se necesita definir la función de probabilidad conjunta de las variables. El modelo más general posible se basa en especificar directamente la función de probabilidad conjunta, es decir, asignar un valor numérico (parámetro) a cada una de las posibles combinaciones de valores de las variables. Pero, la especificación directa de la función de probabilidad conjunta implica un gran número de parámetros por lo que, no hay ordenador en el mundo capaz de almacenarlo incluso para un valor de n tan pequeño como 50. Esta fue una de las primeras críticas al uso de la probabilidad en los sistemas expertos. Sin embargo, en la mayor parte de las situaciones prácticas, muchos subconjuntos de variables pueden ser independientes o condicionalmente independientes. En tales casos, se pueden obtener simplificaciones del modelo más general teniendo en cuenta la estructura de independencia de las variables. Esto suele dar lugar a una reducción importante del número de parámetros; a continuación se dan los siguientes ejemplos de tales simplificaciones: 1. El Modelo de Síntomas Dependientes (MSD). 2. El Modelo de Síntomas Independientes (MSI). 3. El Modelo de Síntomas Relevantes Independientes (MSRI). 4. El Modelo de Síntomas Relevantes Dependientes (MSRD). Para introducir estos modelos se considera el problema del diagnóstico médico, en el que se tienen n síntomas S1, . . . , Sn, y una variable aleatoria E, que podría tomar uno de m valores posibles e1, . . . , em. En este problema se desea diagnosticar la presencia de una enfermedad dado un conjunto de síntomas s1, . . . , sk. Para ello se tiene la función de probabilidad conjunta de la enfermedad y los síntomas p(e, s1, . . . , sn). 3.5.1 El Modelo de Síntomas Dependientes 30 En este modelo se supone que los síntomas son dependientes pero que las enfermedades son independientes entre sí, dados los síntomas. El MSD se ilustra en la Figura 3.5, donde todo síntoma se conecta con los demás síntomas y con todo valor posible de E (indicando dependencia). Entonces la función de probabilidad conjunta para el MSD puede escribirse como: Figura 3.5 Esta ecuación se obtiene utilizando (3.6) con X = {E} e Y = {S1, . . . , Sn}. Ahora, p(ei|s1,....sn) puede expresarse como: La primera de las ecuaciones se deduce de (3.3), y la segunda se obtiene aplicando (3.6). La proporcionalidad se sigue de que p(s1, . . . , sn) es una constante de normalización. 3.5.2 El Modelo de Síntomas Independientes Debido a la imposibilidad de trabajar con el modelo anterior en muchos casos prácticos, resulta necesario proceder a la simplificación del modelo. Una simplificación posible consiste en suponer que, para una enfermedad dada, los síntomas son condicionalmente independientes entre sí. El modelo resultante se denomina modelo de síntomas independientes (MSI) que se muestra en la Figura 3.6, donde los síntomas no están ligados, para indicar la independencia. Puesto que los síntomas se suponen condicionalmente independientes dada la enfermedad, se tiene: 31 Figura 3.6 Por ello, se puede escribir la función de probabilidad conjunta de la enfermedad E dados los síntomas s1, . . . , sn como: Sustituyendo (3.26) en (3.21), se obtiene el modelo de síntomas independientes (MSI). La ecuación (3.26) muestra cómo la hipótesis de independencia modifica las probabilidades de todas las enfermedades cuando se conocen nuevos síntomas. 3.5.3 Modelo de Síntomas Relevantes Independientes Se puede conseguir una reducción aún mayor del número de parámetros suponiendo que cada enfermedad tiene un número reducido de síntomas relevantes. En consecuencia, para cada valor ei de la enfermedad E se seleccionan algunos síntomas relevantes S 1, . . . , Sr (relativamente pocos frente al total de síntomas) y los restantes síntomas se suponen independientes para ese valor de E. El MSRI se ilustra en la Figura 3.7. Nótese que para e1, el conjunto de síntomas relevantes es {S1, S2}; para e2, el conjunto de síntomas relevantes es {S2, S3, S4}; y así sucesivamente. Figura 3.7 32 Por simplicidad de notación, supóngase que S1, . . . , Sri son relevantes para la enfermedad ei y que los restantes síntomas Sri+1, . . . , Sn son irrelevantes. Según el MSRI, p(sj|ei) se supone idéntica para todos los síntomas que son irrelevantes para la enfermedad ei. Entonces la función de probabilidad conjunta de la enfermedad ei dados los síntomas s1, . . . , sn puede escribirse como sigue: Sustituyendo (3.28) en (3.21), se obtiene el MSRI. 3.5.4 El Modelo de Síntomas Relevantes Dependientes Aunque el MSRI reduce el número de parámetros considerablemente, es poco realista, ya que los síntomas asociados a ciertas enfermedades suelen producirse en grupos o síndromes. Por ello, puede ser poco razonable suponer que los síntomas relevantes son independientes. El modelo de síntomas relevantes dependientes (MSRD) evita este inconveniente. Se puede pensar en el MSRD como una solución de compromiso entre el MSD y el MSRI. El MSRD se ilustra en la Figura 3.8, donde los síntomas relevantes para cada enfermedad están conectados, indicando la dependencia. Figura 3.8 33 Supóngase que S1, . . . , Sri son relevantes para la enfermedad ei y que los restantes síntomas Sri+1, . . . , Sn son irrelevantes. Entonces según el MSRD, la función de probabilidad conjunta de ei dados los síntomas s1, . . . , sn puede escribirse como: donde pj = p(sj|ei), que es la misma para todas las enfermedades para las que Sj es irrelevante. Sustituyendo (3.32) en (3.21), se obtiene el MSRD. Sea cual sea el modelo elegido, la base de conocimiento debe contener el conjunto de variables de interés y el mínimo de parámetros (probabilidades o frecuencias) necesarios para especificar la función de probabilidad conjunta de las variables. 3.6 EL MOTOR DE INFERENCIA El motor de inferencia utiliza el conocimiento y los datos para responder a ciertas cuestiones hechas por el usuario. Los ejemplos de tales preguntas son: . Cuestión 1: Antes de que sea examinado por un doctor, ¿cuál es la enfermedad más probable para el paciente?. Aquí no hay evidencia disponible. El paciente todavía no ha sido examinado y el conjunto de síntomas que presenta el paciente es vacío (queda por determinar). El problema consiste en calcular la probabilidad marginal (inicial) de E, . Cuestión 2: Dado que el paciente presenta un subconjunto de síntomas S 1 = s1, . . . , sk = sk, ¿qué enfermedad tiene el paciente con mayor probabilidad?. El conjunto evidencial en este caso consiste en el conjunto de valores s1, . . . , sk. El problema consiste en calcular la función de probabilidad conjunta para cada enfermedad ei dada la evidencia s1, . . . , sk: Una de las tareas del motor de inferencia en los sistemas expertos probabilísticos consiste en calcular las probabilidades condicionales de diferentes enfermedades cuando se conocen nuevos síntomas o datos. El motor de inferencia es responsable de actualizar las probabilidades condicionales: 34 para todos los posibles valores de los síntomas, y de decidir cuáles tienen probabilidades condicionales altas. 3.7 CONTROL DE LA COHERENCIA Uno de los problemas más serios de los sistemas expertos es la presencia de incoherencias en su base de conocimiento y/o en su memoria de trabajo. Existen algunas razones para ello, como ser: 1. Los expertos humanos pueden suministrar conocimiento incoherente. 2. El usuario puede suministrar datos incoherentes. 3. El motor de inferencia no actualiza los hechos . 4. No hay un subsistema para controlar la coherencia que evite que llegue conocimiento inconsistente a la base de conocimiento y/o la memoria de trabajo. 35 3.8 COMPARANDO LOS DOS TIPOS DE SISTEMAS EXPERTOS BASADOS EN REGLAS Objetos y conjunto de reglas. Fácil de implementar, pues sólo es necesario utilizar elementos simples, tales como objetos, Base de Conocimiento conjuntos de valores, premisas, conclusiones y reglas. El conocimiento que puede ser almacenado es limitado. PROBABILISTICOS Espacio de probabilidad, que incluye las variables, sus posibles valores, y su función de probabilidad conjunta. Inconveniente: el alto número de parámetros que manejan, lo que hace que sea difícil su especificación y definición. Las conclusiones se obtienen de los hechos aplicando las diferentes estrategias de inferencia, tales como Modus Ponens, Modus Tollens y encadenamiento de reglas; por lo que es rápido y fácil de implementar. Se basa en la evaluación de las probabilidades condicionales utilizando uno o varios métodos propuestos por los diferentes tipos de sistemas expertos probabilístico. El grado de dificultad depende del modelo seleccionado y varía desde baja, para los modelos de independencia, a alta, para los modelos de dependencia generales. La explicación es fácil, ya que se sabe qué reglas han sido utilizadas para concluir en cada momento. El motor de inferencia Subsistema de sabe qué reglas se han utilizado Explicación en el encadenamiento y han contribuido a obtener conclusiones y qué reglas se han utilizado sin éxito. Se basa en los valores relativos de las probabilidades condicionales que miden los grados de dependencia. Una comparación de las probabilidades condicionales para diferentes conjuntos de evidencia permite analizar sus efectos en las conclusiones. Consiste en incorporar nuevos objetos, nuevos conjuntos de valores factibles para los objetos, Subsistema de nuevas reglas o modificaciones Aprendizaje de los objetos existentes, de los conjuntos de valores posibles, o de las reglas. Consiste en incorporar o modificar la estructura del espacio de probabilidad: variables, conjunto de posibles valores, o los parámetros (valores de las probabilidades). Motor de Inferencia 36 CAPÍTULO 4: REDES NEURONALES 37 4.1 DEFINICIONES DE INTELIGENCIA ARTIFICIAL (IA) • • • Métodos y algoritmos que permitan comportarse a las computadoras de modo inteligente. Estudio de las facultades mentales a través del uso de modelos computacionales. Desarrollo de autómatas (máquinas construidas por el hombre) para simular el proceso deductivo e inductivo humano de adquisición y aplicación de conocimiento. Dogma central de la IA “Los procesos que se llevan a cabo en el cerebro pueden ser analizados, a un nivel de abstracción dado, como procesos computacionales de algún tipo". 4.1.1 CONTROVERSIA Durante el desarrollo de la IA siempre ha existido una controversia sobre los límites de esta Ciencia. Hubert L. Dreyfus: Qué no pueden hacer las computadoras: “Grandes artistas han tenido la sensación de que la realidad era inflexiblemente rechazada por ambos filósofos y tecnologístas, y que la base de la inteligencia humana no puede ser aislada y explícitamente entendida.”. Donald Michiel: Jefe científico del Instituto Turing: “Es una equivocación preguntar todo el tiempo, ¿Pueden las computadoras pensar?, ¿Pueden ellas ser realmente creativas?, para todos los propósitos prácticos que ellas pueden. El mejor camino para nosotros es dejar a los filósofos en su cuarto oscuro y avanzar usando la computadora al máximo.”. 4.2 EVOLUCIÓN DE LA IA Primera Generación (hasta 1955) Esta generación estableció las bases filosóficas y los primeros modelos matemáticos de esta disciplina. Alan Turing (1950) publicó “Computing Machinery and Intelligence” donde sugiere: 38 “las maquinas pueden algunas veces competir con el hombre en todas las persecuciones intelectuales.”. Claude Shannon (1950) publicó “A Chess-Playing Machine” en Scientific American analizando el problema del juego automático de ajedrez (10120 movimientos posibles). En 1953, publicó “Computers and Autómata” con nuevos y sugestivos interrogantes. ¿Podrá construirse una máquina que: 1. Localice y repare sus propias averías?. 2. Se programe a sí misma?. 3. “Aprenda”?. Warren McCulloch and Walter Pitts (1943) desarrollaron el primer modelo matemático de red neuronal en “A Logical Calculus of the Ideas Immanent in Nervous Activity”. Este modelo consistía en una red de neuronas binarias y sinapsis. Este modelo es esencialmente equivalente a una máquina de Turing. Segunda Generación: • La Conferencia de Dartmouth Organizada por John McCarthy y Marvin Minsky (1956), fundó las bases modernas de esta disciplina bajo el lema: “Para avanzar sobre las bases de la conjetura que todo aspecto del aprendizaje o cualquier otro rasgo de la inteligencia puede en principio describir que una máquina puede ser hecha para simularlo.”. • Logic Theorist fue uno de los primeros programas eficientes desarrollado por Allen Newell, Herbert Simon y J.C. Shaw. • Mycin fue el pionero de los sistemas expertos (desarrollado por Edward Shortlie). Puede diagnosticar infecciones bacterianas a partir de síntomas. • En 1957 Allen Newell predijo que en un plazo de 10 años, un ordenador sería el campeón del mundo de ajedrez. 4.3 EL TEST DE TURING Alan M. Turing (1912-1954), en el artículo “Computing Machinery and Intelligence”, describió un juego de imitación para probar la inteligencia de las máquinas: “Si la conversación con una computadora es indistinguible de una con un humano, la computadora está desplegando inteligencia.”. • Test de Turing: Primera Fase: 39 Un interrogante intenta determinar cuál de los dos comunicadores es un hombre y cuál es una mujer cuestionando a cada uno. Las reglas del juego le exigen al hombre que intente engañar al interrogante y la mujer intente convencerlo que ella es la mujer. Se hacen preguntas a través de un medio neutro como una terminal remota y cada reunión se aísla en un cuarto separado para eliminar cualquier pista visual o audible. • Test de Turing: Segunda Fase: Ahora el hombre es reemplazado por una computadora y los resúmenes del juego. Si la computadora puede engañar al interrogante tan a menudo como el hombre lo hizo, nosotros decimos que la computadora está desplegando inteligencia. 4.4 CARACTERÍSTICAS DE LOS MODELOS DE IA Los modelos y algoritmos “estándar” de la IA tienen las siguientes características: • El conocimiento se representa explícitamente usando reglas, redes semánticas, modelos probabilísticos, etc. • Se imita el proceso humano de razonamiento lógico para resolver los problemas, centrando la atención en las causas que intervienen en el problema y en sus relaciones (encadenamiento de reglas, inferencia probabilística). • Se procesa la información secuencialmente. Con el rápido desarrollo de la IA aparecieron un gran número de problemas complejos donde no se disponía de una representación explícita del conocimiento y de un procedimiento de razonamiento lógico para resolverlo. - Posibles causas de este fallo: Procedimientos algorítmicos y estructura computacional empleados eran incorrectos. - Posible solución: Uso de estructuras computacionales paralelas inspiradas en redes neuronales biológicas. 4.5 INSPIRACIÓN BIOLÓGICA Las neuronas reciben señales (inputs) de otras neuronas vía conexiones sinápticas que pueden ser excitantes o inhibidoras. En función de las señales recibidas, una neurona envía a su vez una señal a otras neuronas por medio del axón. 40 Una neurona contiene un potencial interno continuo llamado potencial de membrana. Cuando éste excede un cierto valor umbral, la neurona puede transmitir todo su potencial por medio del axón. Se estima que el cerebro humano contiene más de cien mil millones (10 11) de neuronas y que hay más de 1000 sinapsis a la entrada y a la salida de cada neurona. 4.6 REDES NEURONALES ARTIFICIALES (NEURAL NETWORKS) Neural Network Study (1988, AFCEA International Press, p. 60): “… una red nerviosa es un sistema compuesto de muchos elementos de procesamiento simple operando en paralelo cuya función es determinada por estructura de red, fuerzas de conexión y el proceso realizado al ejecutar elementos o nodos.”. Haykin, S. (1994), Neural Networks: A Comprehensive Foundation, NY: Macmillan, p. 2: “... Una red nerviosa es un procesador distribuido masivamente en paralelo que tiene una propensión natural por guardar conocimiento experimental y hacerlo disponible para el uso.” . Se parece el cerebro en dos aspectos: 1.- El conocimiento es adquirido por la red a través de un proceso de aprendizaje. 2.- Las fuerzas de conexión interneurónicas conocidas como pesos sinápticos son usados para guardar el conocimiento. 4.7 REDES NEURONALES. ESTRUCTURA 41 ü Las redes neuronales artificiales están compuestas de gran cantidad de procesadores conectados entre sí y actuando en paralelo. ü Los modelos neuronales biológicos son mucho más complejos que los modelos computacionales actuales. ü El comportamiento de la red está determinado por su topología, los pesos de las conexiones y la función característica de las neuronas. 4.7.1 REDES NEURONALES. CARACTERÍSTICAS • • • • Aprendizaje adaptativo: Las RNA aprenden a realizar tareas a partir de un conjunto de datos dados en el proceso de aprendizaje. Auto-organización: Pueden crear su propia organización o representación de la información recibida. Operación en tiempo real: Las operaciones realizadas pueden ser llevadas a cabo por computadores paralelos, o dispositivos de hardware especiales que aprovechan esta capacidad. Tolerancia a fallos parciales: La destrucción parcial de una red daña parcialmente el funcionamiento de la misma, pero no la destruye completamente. Esto es debido a la redundancia de la información contenida. 4.7.2 REDES NEURONALES. DEFINICIONES Definición 1: Neurona o Unidad Procesadora: Una neurona, o unidad procesadora, sobre un conjunto de nodos N, es una tripleta (X; f; Y ), donde X es un subconjunto de N, Y es un único nodo de N y f :à es una función neuronal (también llamada función activación) que calcula un valor de salida para Y basado en una combinación lineal de los valores de las componentes de X, es decir, Los elementos X, Y y f se denominan conjunto de nodos de entrada, conjunto de nodos de salida, y función neuronal de la unidad neuronal, respectivamente. 42 Definición 2: Red Neuronal Artificial: Una red neuronal artificial (RNA) es un par (N;U), donde N es un conjunto de nodos y U es un conjunto de unidades procesadoras sobre N que satisface la siguiente condición: Cada nodo Xi ª N tiene que ser un nodo de entrada o de salida de al menos una unidad procesadora de U. 4.7.3 EJEMPLO 43 4.8 EL APRENDIZAJE Existen dos fases en toda aplicación de las redes neuronales: la fase de aprendizaje o entrenamiento y la fase de prueba. • Fase de Aprendizaje: Una característica de las redes neuronales es su capacidad de aprender. Aprenden por la actualización o cambio de los pesos sinápticos que caracterizan a las conexiones. Los pesos son adaptados de acuerdo a la información extraída de los patrones de entrenamiento nuevos que se van presentando. Normalmente, los pesos óptimos se obtienen optimizando (minimizando o maximizando) alguna “función de energía”. Por ejemplo, un 44 criterio popular en el entrenamiento supervisado es minimizar el least-square-error (error cuadrático medio) entre el valor deseado y el valor de salida de la red. • Fase de Prueba: Una vez calculados los pesos de la red, las neuronas de la última capa se comparan con la salida deseada para determinar la validez del diseño. 4.8.1 EL APRENDIZAJE: METODOS Supervisado: Los datos están constituidos por varios patrones de entrada y de salida. El hecho de conocer la salida implica que el entrenamiento se beneficia con la supervisión de un maestro. No Supervisado: Para los modelos de entrenamiento No Supervisado, el conjunto de datos de entrenamiento consiste sólo en los patrones de entrada. Por lo tanto, la red es entrenada sin el beneficio de un maestro. La red aprende a adaptarse basada en las experiencias recogidas de los patrones de entrenamiento anteriores. 4.8.2 APRENDIZAJE DE HEBB Hebb describe una forma de ajustar el peso de una conexión acorde a la correlación existente entre los valores de las dos unidades de proceso que conecta. En su libro, “The Organization of Behavior” (1949) expresa: “Cuando un axón de célula A es bastante como para excitar una célula B y repetidamente o persistentemente toma una parte disparándola, algún proceso de crecimiento o cambio metabólico tiene lugar en una o ambas células tal que A es tan eficiente como una de las células B que al disparar se aumenta.”. Computacionalmente, esto se traduce en: No Supervisado: el valor del peso wij es la correlación del valor de las unidades xi y xj: 45 Supervisado: Se ajusta el valor del peso entre las dos unidades en proporción a la diferencia entre los valores deseado y calculado en cada una de las unidades de la capa de salida. á es la constante de aprendizaje (0 < á < 1). 4.9 VALIDACIÓN DEL MODELO Una vez que ha terminado el proceso de aprendizaje y los pesos de la red neuronal han sido calculados, es importante comprobar la calidad del modelo resultante. Algunas medidas estándar del error son: 1. La suma de los cuadrados de los errores (Sum Square Errors, SSE), definida como: 2. La raíz cuadrada del error cuadrático medio (Root Mean Square Error, RMSE) definida como: 3. El error máximo, donde es la salida de la red para el vector de entrada a p . Nótese que en el caso de una única salida, la función norma || . || se reduce a la función valor absoluto | . | usual. 4.10 SOBREAJUSTE (OVERFITTING) En estadística es bien conocido que cuando se utiliza un modelo con muchos parámetros para ajustar un conjunto de datos procedente de procesos con pocos grados de libertad, el modelo obtenido puede no descubrir las tendencias reales del proceso original, aunque pueda presentar un error pequeño. La curva (a) pasa exactamente por los puntos de entrenamiento. La curva (b) muestra el comportamiento sobre un conjunto alternativo. La curva (c) es un polinomio de tercer grado. La diferencia entre ambos modelos puede verse en (d). 46 4.11 NEURONAS UNIDADES DE PROCESO • Neuronas: X = (x1; ... ; xi; ... ; xn), donde xi es el nivel de actividad de la i-ésima neurona. • Pesos: Los pesos de la neurona i-ésima forman un vector Wi = (wi1,.....;wij;...;win); donde wij es el peso de la conexión de xj a xi. La actividad lineal de xi está dada por la función: que depende de los pesos Wi. Para incluir un valor umbral èi para la neurona xi, se considera una neurona auxiliar de valor X0 = -1 y se conecta a xi con un peso èi. 4.12 FUNCIONES DE ACTIVACIÓN • Funciones lineales: f(x) = x. 47 • Funciones paso: Dan una salida binaria dependiente de si el valor de entrada está por encima o por debajo del valor umbral. • Funciones sigmoidales: Funciones monótonas acotadas que dan una salida gradual no lineal. 1. La función logística de 0 a 1: 2. La función tangente hiperbólica de -1 a 1: fc(x) = tanh(cx): 4.13 ARQUITECTURAS DE RED 1. Conexiones hacia delante. 2. Conexiones laterales. 3. Conexiones hacia atrás (o recurrentes). 48 4.14 LA RED DE HOPFIELD La red neuronal de Hopfield es una arquitectura formada por una sola capa que se utiliza principalmente como memoria auto asociativa, para almacenar y recuperar información. La información se almacena usando un método simple de aprendizaje no supervisado que obtiene la matriz de pesos que hace que dado cada uno de los patrones de entrenamiento (almacenamiento) la red devuelva el mismo patrón (recuperación). Posteriormente, cuando se tenga una configuración arbitraria de las neuronas como entradas, la red devolverá aquel patrón almacenado que esté más cerca de la configuración de partida en términos de la distancia de Hamming. 4.14.1 LA RED DE HOPFIELD MEMORIZANDO DATOS Se considera una red neuronal de una sola capa sobre un conjunto de neuronas binarias {x1;....xn} (con valores en {-1; 1}) donde cada neurona xi posee un vector de pesos wi = (wi1; ... ; win), con wii = 0 indicando que no existe conexión consigo misma. Se considera también la siguiente definición binaria de la neurona: Ahora, supóngase que se quieren obtener los pesos apropiados para “memorizar” un patrón a=(a1; ... ; an). Entonces, los pesos tienen que satisfacer las siguientes condiciones de estabilidad: por tanto la red devuelve el mismo patrón dado como entrada. Como se están usando los valores neuronales {-1; 1}, entonces pueden alcanzar considerando los pesos: y las condiciones anteriores de estabilidad se El mismo algoritmo puede extenderse a varios patrones, {(ap1;...; apn); p = 1;..... ; r} En este caso, cuando se da como entrada un patrón ap se obtiene: 49 El problema de estabilidad se determina por los términos de correlación cruzada en el segundo término de la suma en (8). Si es más pequeño que n, entonces se puede concluir que el patrón es estable. 4.14.2 EJEMPLO: RECONOCIMIENTO DE CARACTERES Para este ejemplo se utiliza una red de Hopfield con 25 neuronas consistente en una cuadrícula 5 x 5 que recibe una imagen de puntos de una letra. Se consideran únicamente las tres representaciones habituales de las vocales A, E, e I. Los dígitos A, E, e I se representan como -1-11-1-1..., 1111-1...., y -1111-1...., respectivamente donde los valores negativos se representan en gris y los positivos en negro. La matriz de pesos 25 x 25 se obtiene como: El valor resultante, ignorando la constante de normalización, se representa por un cuadrado negro de pequeño tamaño en la esquina superior izquierda (peso w12). En la siguiente figura, los colores negro y gris están asociados a los pesos positivos y negativos, respectivamente, donde el tamaño de la caja representa la magnitud del valor. 50 4.15 INFORMACIÓN CORRUPTA Una vez construida la red de Hopfield, ésta reconoce las tres vocales aún cuando se utiliza como entrada cualquier otra cuadrícula (digitalización) 5 x 5 correspondiente a una versión particular no estándar de la vocal. 4.16 ESTADOS ESPÚREOS Si se intenta utilizar la misma arquitectura de red para reconocer las cinco vocales: 51 como en este caso el número de patrones es mayor de 0,138 x n = 0,138 x 25 = 3,45, pueden aparecer algunos estados de falsa estabilidad en el modelo. 4.17 REDES MULTI-CAPA Entre las arquitecturas de red más populares destacan las llamadas redes multi-capa o de retropropagación. Definición: Capa de Entrada de una Red Neuronal: Una unidad se dice que está en la capa de entrada de una red neuronal (X;U), si es la entrada de al menos una unidad funcional de U y no es la salida de ninguna unidad procesadora de U. Definición: Capa de Salida de una Red Neuronal: Una unidad se dice que está en la capa de salida de una red funcional (X;U), si es la salida de al menos una unidad funcional de U y no es la entrada de ninguna unidad procesadora de U. Definición: Capas Intermedias u Ocultas de una Red Neuronal: Una unidad se dice que está en la capa intermedia de una red neuronal (X;U), si es la entrada de al menos una unidad funcional de U y, al mismo tiempo, es la salida de al menos una unidad procesadora de U. 4.18 EL PERCEPTRÓN El perceptrón es una red neuronal de dos capas (una de entrada y una de salida) con conexiones hacia delante. 52 ¿Cómo se pueden obtener los pesos adecuados para “aprender” un conjunto de patrones?. 4.18.1 EL PERCEPTRÓN (APRENDIZAJE) • Aprendizaje Hebbiano: Inicialmente se eligen valores aleatorios para los pesos. La idea del aprendizaje Hebbiano era modificar los pesos acorde a la correlación entre las unidades. Se eligen los patrones de uno en uno; por ejemplo: , entonces se modifica el peso: • Descenso de Gradiente: Inicialmente se eligen valores aleatorios para los pesos. La idea de este método es utilizar un proceso iterativa que minimice la función de error: En el caso lineal (f(x) = x) se tiene: 53 En general, se tiene: El parámetro ç se llama tasa de aprendizaje. En el caso de funciones sigmoidales, las fórmulas anteriores no involucran derivadas simbólicas, pues: Se han propuesto distintas mejoras de este método para incrementar su eficiencia. • Se puede incluir un parámetro de inercia á para acelerar la convergencia al mínimo: • Otros métodos incluyen términos de la función de error que penalizan grandes pesos: donde ë ¸ es un parámetro de regularización, que controla el equilibrio entre el modelo ajustado y la penalización. El efecto de esta regularización de los pesos es suavizar la función de error, ya que los pesos grandes están usualmente asociados a valores de salida altos. 4.19 CLASIFICACIÓN LINEAL: PLANTEAMIENTO Los problemas de clasificación consisten en asignar patrones dados a sus respectivas clases, o categorías, basándose en patrones representativos de cada clase. 54 Se puede construir un perceptrón con estos puntos para obtener automáticamente el criterio de clasificación. Por ejemplo, si se considera un perceptrón con dos entradas, xi y yi, y una salida ci con función de activación lineal: 4.19.1 CLASIFICACIÓN LINEAL: APRENDIZAJE Descenso de gradiente con ç = 0,2. 55 Si se considera una función de activación sigmoidal: 56 4.20 CLASIFICACIÓN NO LINEAL Supóngase que se tiene un conjunto de 100 puntos aleatorios en el intervalo (-1; 1) clasificados en dos categorías: los que están dentro del círculo (puntos rellenos), y los que están fuera (puntos huecos). 57 Como estas dos categorías no son linealmente separables, entonces un perceptrón no puede obtener un criterio de clasificación apropiado. 4.21 EL PERCEPTRÓN MULTI-CAPA En este caso los patrones de aprendizaje son un conjunto de inputs y sus correspondientes outputs El método más popular de aprendizaje se denomina retro-propagación y está basado en minimizar la función de error mediante un método de descenso de gradiente. Inicialmente se eligen valores aleatorios para los pesos. 58 4.22 RETRO-PROPAGACIÓN. LA CAPA DE SALIDA Los pesos correspondientes a las neuronas de la capa de salida yi = f(Yi) son modificados considerando los valores de las neuronas ocultas hi = f(Hi). En este caso, la función de error es: 4.22.1 RETRO-PROPAGACIÓN: LA CAPA OCULTA Los pesos correspondientes a las neuronas de la capa oculta hi = f(Hi) son modificados considerando los valores de las neuronas de entrada xi = f(Xi) y los de las neuronas de salida yi = f(Yi). 59 4.22.2 RETRO-PROPAGACIÓN: ALGORITMO 1. Inicializar los pesos con valores arbitrarios. 2. Elegir un patrón p y propagarlo hacia delante. Con ello obtenemos las capas oculta y de salida). 3. Calcular los errores de salida: (outputs de 4. Calcular los errores de la capa oculta: 5. Calcular: y actualizar los pesos. 6. Repetir los pasos anteriores para cada patrón. 60 4.23 CLASIFICACIÓN NO LINEAL Perceptrón multicapa 2 : 5 : 1 4.24 MAPAS CAÓTICOS: EL MAPA DE HENON El mapa de Henon es uno de los ejemplos más ilustrativos de sistemas simples con dinámica compleja (caos determinista). 61 Para aproximar este mapa se utiliza una red neuronal 2:3:1 (la salida es xn y las entradas xn-1 x n-2). 4.24.1 EL MAPA DE HENON: RED NEURONAL 62 En algunos casos el proceso de optimización no converge al mínimo global, sino a uno local. Esto es debido al gran número de parámetros involucrados en la red y a las características de los modelos de aprendizaje. 4.25 REDES COMPETITIVAS Las redes competitivas son muy utilizadas para detectar automáticamente grupos, o categorías, dentro de los datos disponibles. Cada patrón de entrada representa un punto en el espacio de configuración (el espacio de entradas) donde se quieren obtener clases. Para ello, la capa de salida contiene tantas neuronas como clases, o categorías, como se quieran obtener. 4.25.1 REDES COMPETITIVAS: APRENDIZAJE Este tipo de arquitectura se entrena normalmente con un algoritmo consistente en seleccionar la ganadora (“winner takes all"), por lo que sólo son actualizados los pesos asociados a la neurona de mayor salida (la ganadora) para un patrón dado. Considérense los datos de entrenamiento consistentes en un conjunto de patrones de entrada (a 1j; ... ; anj); j = 1; ... ; m. Se empieza con pequeños valores aleatorios para los pesos. A continuación, se aplica el patrón (a 1j; ... ; anj), y se selecciona la unidad de salida ganadora, sea yk. Los pesos asociados con esta neurona son modificados de acuerdo con: 63 El efecto es mover el vector peso (wk1; ... ; wkn) directamente hacia (a1j; ... ; anj). 64 CAPÍTULO 5: CONCLUSIONES 5.1 CONCLUSIONES A partir del trabajo realizado se puede demostrar que mediante la Inteligencia Artificial se pueden resolver problemas que antes eran considerados altamente complejos y difíciles de tratar a través de ordenadores, como ser: el reconocimiento de la voz, juegos y sistemas de tipos deterministas y estocásticos, entre otros. Esta engloba varias áreas, una de las cuales son los sistemas expertos, que están presentes en la mayor parte de las áreas de la Inteligencia Artificial. A pesar de que la adquisición de un sistema experto es cara, la ganancia y la amortización son elevadas, además cuenta con ciertas ventajas: pueden ser utilizados para realizar trabajos que son considerados inconfortables para el hombre, personal inexperto puede resolver problemas que requieren un mayor conocimiento, mediante su uso se obtienen grandes ahorros, entre otras ventajas. Estos se utilizan en transacciones bancarias, control de tráfico, diagnóstico médico, etc. De los dos tipos de sistemas expertos, la regla determinista constituye la metodología más sencilla empleada en los sistemas expertos y es tratada por los Sistemas Basados en Reglas. De la misma manera, la incertidumbre es común en muchas aplicaciones, donde una de las medidas más aceptadas para tratar este problema es la probabilidad. Otra de las ramas de la Inteligencia Artificial son las Redes Neuronales, que pueden realizar tareas a partir de un proceso de aprendizaje mediante procesadores conectados entre sí y actuando en paralelo. 65 BIBLIOGRAFÍA - Enrique Castillo, José Manuel Gutiérrez y Ali S. Hadi. Sistemas Expertos y Modelos de Redes Probabilísticas. Editorial Academia de Ingeniería (España). Madrid, España. 1998. ISBN 84-600-9395-6. - Enrique Castillo, Ángel Cobo, José Manuel Gutiérrez y Rosa Eva Pruneda. Introducción a las Redes Funcionales con Aplicaciones – Un Nuevo Paradigma Neuronal. Editorial Paraninfo. Madrid, España. 1999. ISBN 84-283-2525-1. - José Manuel Gutiérrez (Universidad de Cantabria). Neural Networks. 2002. 66 ÍNDICE 1. INTRODUCCIÓN 1.1 Introducción. 1.2 Sistemas Expertos: Definición. 1.3 Ejemplos de Aplicación de Sistemas Expertos. 1.4 ¿Por qué los Sistemas Expertos?. 1.5 Tipos de Sistemas Expertos. 1.6 Componentes de un Sistema Experto. 1.7 Desarrollo de un Sistema Experto. 1.8 Otras Áreas de la Inteligencia Artificial. 1 1 2 2 3 4 5 7 9 2. SISTEMAS BASADOS EN REGLAS 2.1 Introducción. 2.2 La Base de Conocimiento. 2.3 El Motor de Inferencia. 2.4 Control de Coherencia. 2.5 Explicando Conclusiones. 10 10 10 12 20 23 3. SISTEMAS BASADOS EN PROBABILIDAD 3.1 Introducción. 3.2 Algunos básicos de la teoría de la probabilidad. 3.3 Reglas generalizadas. 3.4 Introduciendo los Sistemas Expertos basados en Probabilidad. 3.5 La Base de Conocimiento. 3.6 El Motor de Inferencia. 3.7 Control de la Coherencia. 3.8 Comparando los dos tipos de Sistemas Expertos. 24 24 24 27 28 30 34 35 36 4. REDES NEURONALES 4.1 Definiciones de Inteligencia Artificial. 4.2 Evolución de la Inteligencia Artificial. 4.3 El Test de Turing. 4.4 Características de los modelos de Inteligencia Artificial. 4.5 Inspiración Biológica. 4.6 Redes Neuronales Artificiales. 4.7 Redes Neuronales. Estructura. 4.8 El Aprendizaje. 4.9 Validación del modelo. 4.10 Sobreajuste. 4.11 Neuronas Unidades de Proceso. 4.12 Funciones de Activación. 4.13 Arquitecturas de Red. 4.14 La Red de Hopfield. 37 38 38 39 40 40 41 41 44 46 46 47 47 48 49 67 4.15 Información Corrupta. 4.16 Estados Espureos. 4.17 Redes Multi – capa. 4.18 El Perceptrón. 4.19 Clasificación Lineal: Planteamiento. 4.20 Clasificación No Lineal. 4.21 El Perceptrón multi – capa. 4.22 Retro - propagación. La Capa de salida. 4.23 Clasificación No lineal. 4.24 Mapas Caóticos: El Mapa de Henon. 4.25 Redes Competitivas. 5. CONCLUSIONES BIBLIOGRAFÍA 51 51 52 52 54 57 58 59 61 61 63 65 66 68