See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/44343683 Redes neuronales artificiales : fundamentos, modelos y aplicaciones / José Ramón Hilera González, Victor José Martínez Hernando Book · January 1995 Source: OAI CITATIONS READS 0 4,001 2 authors: José R. Hilera Victor Martinez Hernando University of Alcalá Universidad Politécnica de Madrid 153 PUBLICATIONS 826 CITATIONS 4 PUBLICATIONS 127 CITATIONS SEE PROFILE Some of the authors of this publication are also working on these related projects: Publications of José R. Hilera View project Accesibilidad e inclusión en E-learning - Observatorio virtual accesible View project All content following this page was uploaded by José R. Hilera on 23 January 2017. The user has requested enhancement of the downloaded file. SEE PROFILE PROLOGO Existe actualmente una tendencia a establecer un nuevo campo de las ciencias de la computación que integraría los diferentes métodos de resolución de problemas que no pueden ser descritos fácilmente mediante un enfoque algorítmico tradicional. Estos métodos, de una forma u otra, tienen su origen en la emulación, más o menos inteligente, del comportamiento de los sistemas biológicos. Aunque este nuevo campo todavía no está perfectamente definido, ya se han acuñado diferentes terminos para denotarlo. Así, algunos autores se refieren a él como Computación Cognitiva (Cognitive Computing), otros lo denominan Computación del mundo real (Real-World Computing), y también se utiliza la expresión Computación Soft (Soft Computing), para distinguirlo del enfoque algorítmico tradicional que sería, en este caso, la Computación Hard. Aunque su uso no se ha extendido todavía, otro término alternativo sería el de Brainware. En cualquier caso, se trata de una nueva forma de computación que es capaz de manejar las imprecisiones e incertidumbres que aparecen cuando se trata de resolver problemas relacionados con el mundo real (reconocimieto de formas, toma de decisiones, etc.), ofreciendo soluciones robustas y de fácil implementación. Para ello, se dispone de un conjunto de metodologías, como son la Lógica Borrosa, las Redes Neuronales, el Razonamiento Aproximado, los Algoritmos Genéticos, la Teoría del Caos y la Teoría del Aprendizaje. Aunque, en principio, se trata de enfoques diferentes, existe una tendecia a buscar combinaciones entre ellos, para lo cual son cada vez más frecuentes los encuentros entre expertos en cada una de estas disciplinas, lo cual permitirá una consolidacién de este campo de las ciencias de la computación y, en consecuencia, el progreso en el desarrollo de nuevas tecnologías de procesamiento de la información. En este libro se tratará de introducir precisamente una de estas formas de computación, la basada en la utilización de Redes Neuronales Artificiales; aunque también se dedicará atención (capítulo 9) a su posible combinación con otra de las mencionadas, la Lógica Borrosa. Con las Redes Neuronales se intentará expresar la solución de problemas complejos, no como una secuencia de pasos, sino como la evolución de unos sistemas de computación, inspirados en el funcionamiento del cerebro humano y dotados, por tanto, de una cierta "inteligencia"; los cuales, no son sino la combinación de una gran cantidad de elementos simples de proceso (neuronas) interconectados que, operando de forma masivamente paralela, consiguen resolver problemas relacionados con el reconocimieto de formas o patrones, predicción, codificación, clasificación, control y optimización. Aunque con el texto se introduce al lector en el ámbito general de las redes neuronales, también se pretende el estudio con cierto detalle de algunos importantes tipos particulares de estos sistemas, con una descripción detallada de su funcionamiento y mecanismo de aprendizaje que permitirá, al lector que lo desee, ralizar la emulación de estas redes, para resolver diferentes problemas, mediante la codificación, utilizando un lenguaje de programación cualquiera, de los algoritmos que se presentan a lo largo del texto. En el primer capítulo se realiza una panorámica histórica de la evolución de las redes neuronales, su relación con la Inteligencia Artificial y sus posibles aplicaciones. También se aborda, de forma general, el tema de la implementación práctica de las redes neuronales, desde los neurocomputadores de propósito general y especial hasta los chips neuronales VLSI. En este sentido es importante destacar que, aunque se pueden desarrollar aplicaciones mediante programas de simulación, codificando algoritmos de funcionamiento y aprendizaje, la verdadera potencia de las redes neuronales se pone de manifiesto precismanete mediante su implementacion física en hardware con multiples elementos de proceso que permitan explotar masivamente el paralelismo inherente a estos sistemas de computación. En el segundo capítulo se analizan los fundamentos de las redes, partiendo del modelo biológico de neurona hasta llegar a la descripción de la estructura de las redes de neuronas artificiales para, en el capítulo siguiente (3), estudiar las características que diferencian los diferentes modelos de redes neuronales: su topología, mecanismo de aprendizaje y naturaleza de la información "aprendida". En este capítulo se hace referencia a la práctica totalidad de modelos de redes existentes, presentanto al final una completa tabla resumen donde se encuadran todos ellos junto con sus características más significativas. Los cinco siguientes capítulos (4, 5, 6, 7 y 8) se dedican al estudio, con cierto detalle, de algunos modelos de redes que se han elegido por su importancia y por reperesentar cada uno de ellos un posible ámbito de aplicación de estos sistemas de computación. Las redes que se analizan son: Perceptrón, ADALINE y MADALINE, BackPropagation, Redes de Hopfield, ART, Redes de Kohonen, Counterpropagation y las redes estocásticas conocidas como Máquinas de Boltzmann y de Cauchy. En todos los casos se presenta su arquitectura, funcionamiento, mecanismo de aprendizaje, limitaciones del modelo y posibles aplicaciones. Así, en el capítulo 4 se tratan las cuatro primeras, que se caracterizan por tener una arquitectura similar, con unas conexiones entre neuronas orientadas en el mismo sentido (hacia delante), y un mecanismo de aprendizaje supervisado, precisando de un ente externo a la red que determine cuándo ésta ha aprendido correctamente lo que se le quería enseñar. La presentación de los modelos es cronológica, comenzando por el Perceptrón y las redes ADALINE y MADALINE, que presentan serias limitaciones respecto a sus posibles aplicaciones, que son resueltas con la aparición de la red Backpropagation, la más ampliamante utilizada hasta la actualidad. En el capítulo 5 se analiza el modelo de red ideado por J. Hopfield, uno de los principales responsables del desarrollo de la computación neuronal. El modelo que lleva su nombre tiene una arquitectura y aprendizaje muy diferentes al de las redes anteriores, siendo especialmente adecuado como memoria de acceso por contenido y, sobre todo, para sresolver una gran variedad de problemas de optimización, como el de la bipartición de grafos, el del viajante y del emparejamiento ponderado, que serán tratados con detalle en este capítulo. El Modelo de Resonancia Adaptativa (ART) se presenta en el capítulo 6, donde se describe un nuevo tipo de redes que "aprenden" de la experiencia, mientras funcionan (aprendizaje on-line), sin necesidad de supervisión, que además están compuestas de unas neuronas entre las que se establece una cierta competición por conseguir activarse. Se analizan en este capítulo las dos variantes del modelo, conocidas como red ART1, que opera con datos binarios, y ART2, que mejora la anterior, procesando todo tipo de datos. En el capítulo 7 se presenta el modelo de red ideado por T. Kohonen, basado en la hipotética capacidad inherente del cerebro de formar "mapas topológicos" de las informaciones recibidas del exterior. En este sentido, la red analizada es capaz de organizar por si misma mapas que reflejan las características comunes de las informaciones aprendidas, garantizando que las neuronas topológicamente próximas sean sensibles a entradas físicamenete similares. Las redes estocásticas también tienen cabida en el libro, dedicando el capítulo 8 a tales sistemas, que pretenden mejorar el funcionamiento de las redes clásicas o deterministas mediante la utilización de neuronas con comportamiento probabilístico, recurriendo a un símil termodinámico de la mecánica estadística considerando una red como si de un cuerpo o material real compuesto de partículas elementales (átomos, moléculas, etc.) se tratara. La redes de este tipo que se analizan son la Máquina de Boltzmann y la Máquina de Cauchy, El libro concluye con un último capítulo (9) en el que se analizan algunas posibles combinaciones de la capacidad de aprendizaje de las Redes Neuronales Artificiales con la de procesamiento de información imprecisa de la Lógica Borrosa, otro de los pilares, como se comentó al comienzo de este prólogo, de la emergente Computación Cognitiva, Soft o del mundo real. En este capítulo se describe un modelo de neurona y aprendizaje borrosos, y se analiza la posibilidad de utilizar redes en el diseño de sistemas de control borroso. Finalmente, resaltar la significación e importancia que las Redes Neuronales están adquiriendo en la actualidad, como lo evidencia el hecho de formar parte de las materias troncales de los nuevos Planes de Estudio correspondientes a las Titulaciones Universitarias de Ingeniería en Informática e Ingeniería Técnica en Informática de Sistemas. Este ha sido el principal motivo que nos ha impulsado a escribir un texto, con el objetivo de que pueda ser útil en el desarrollo de estos estudios, sumándose así al reducido número de libros que sobre el tema han sido editados en español. Julio, 1994 Universidad de Alcalá de Henares Universidad Politécnica de Madrid José R. Hilera Víctor J. Martínez I. Introducción a la computación neuronal 1.1 I.- UNA INTRODUCCIÓN A LA COMPUTACIÓN NEURONAL El principal propósito de todos los sistemas neuronales es el control centralizado de varias funciones biológicas. Algunas de ellas son responsables del abastecimiento de energía; el sistema neuronal está conectado con el metabolismo, control cardiovascular y la respiración. Hay mecanismos neuronales para los ritmos biológicos, funciones de emergencia , etc. Las funciones anteriores son comunes a la mayoría de los animales y en las estructuras biológicas neuronales es posible incluso discernir varios "sedimentos" de las diferentes fases de la evolución. Por otro lado, en los animales superiores, la mayor capacidad del sistema nervioso central está relacionado con el comportamiento, esto es, control del estado del organismo con respecto a su entorno, el cual implica muchas tareas diferentes gracias al encadenamiento de acciones elementales para conseguir un comportamiento social complicado. No obstante, cuando se habla de computación neuronal, normalmente sólo se tiene en mente las funciones sensoriales y motoras, así como algún tipo de "proceso interno" llamado pensamiento. Todas estas funciones son interdependientes en un sentido u otro, pero puede ser posible conceptualizar alguna de ellas de una forma idealizada. En el desarrollo de la tecnología de la información, actualmente parece existir una nueva fase donde el objetivo es reproducir muchas de estas funciones neuronales artificialmente. No obstante, no está siempre claro a cuales de los aspectos arriba indicados se refiere. El motivo principal parece ser el desarrollo de nuevos tipos de ordenadores. Por ejemplo, un objetivo puede ser la implementación de funciones sensoriales artificiales para hacer "ver" u "oír" a las máquinas; esta es una extensión de las más tradicionales técnicas de instrumentación. Aunque el potencial de los métodos de Inteligencia Artificial, por medio de los cuales éstos problemas fueron abordados, han sido conocidos desde hace 25 años, todavía se espera que nuevas vías para la Inteligencia Artificial se puedan abrir cuando el paralelismo masivo de los circuitos computacionales y las nuevas tecnologías sean desarrolladas y la capacidad de computación se incremente en órdenes de magnitud. Sin embargo, antes que ésto, será necesario encontrar qué se quiere computar. Hay, al menos, una nueva dimensión de computación que ha sido muy difícil de alcanzar con los ordenadores digitales [Kohonen 88c]. 1.1.- PANORAMA HISTÓRICO Conseguir diseñar y construir máquinas capaces de realizar procesos con cierta "inteligencia" ha sido uno de los principales objetivos y preocupaciones de los científicos a lo largo de la historia. De los intentos realizados en este sentido se ha llegado a definir las líneas fundamentales para la obtención de máquinas inteligentes: En un principio los esfuerzos estuvieron dirigidos a la obtención de AUTÓMATAS, en el sentido de máquinas que realizaran, con más o menos éxito, alguna función típica de los seres humanos. Pero esto no era más que el resultado del desarrollo técnico de la habilidad mecánica de los constructores de I. Introducción a la computación neuronal 1.1 tales artefactos. Sin embargo, en esta misma línea se sigue investigando hoy en día con herramientas enormemente sofisticadas y con resultados realmente sorprendentes: la habilidad mecánica ha pasado a convertirse en disponibilidad microinformática (lenguajes Lisp y Prolog, sistemas expertos, etc.), de forma que, actualmente, existen diversas maneras de realizar procesos similares a los inteligentes y que podemos encuadrar dentro de la denominada INTELIGENCIA ARTIFICIAL (IA). Sin embargo, a pesar de disponer de herramientas y de lenguajes de programación diseñados expresamente para el desarrollo de "máquinas inteligentes", existe un problema de fondo que limita enormemente los resultados que se pueden obtener: estas "máquinas" se implementan sobre ordenadores basados en la filosofía de funcionamiento expuesta inicialmente por Von Neumann, y se apoyan en una descripción secuencial del proceso de tratamiento de la información. El elevado nivel y desarrollo de éstos ordenadores por espectacular y complejo que haya llegado a ser, no deja de seguir la línea antes expuesta: una máquina puramente mecánica que es capaz de realizar tareas mecánicas (de cálculo, ordenación o control) de forma increíblemente rápida, pero incapaz de obtener resultados aceptables cuando se trata de tareas sencillas, por ejemplo, para un ser humano de corta edad (reconocimiento de formas, habla, etc.). La otra línea de investigación ha tratado, desde los orígenes de la humanidad, de aplicar los principios físicos que rigen en la naturaleza para obtener máquinas que realizaran los trabajos pesados en nuestro lugar. Así, por ejemplo, los motores de vapor o explosión, emplean un determinado tipo de combustión para obtener la energía que necesitan, al igual que lo hacen los seres vivos. De igual manera se puede pensar respecto a la forma y capacidad de razonamiento del ser humano; se puede intentar obtener máquinas con esta capacidad basadas en el mismo principio de funcionamiento (o en algo que tenga una cierta similitud con dicho principio). No se trata de construir máquinas que compitan con los seres humanos, sino que realicen ciertas tareas de "rango intelectual" con que ayudarle, lo que supone un principio básico de la inteligencia artificial. Por otro lado, los sistemas que se lleguen a desarrollar no van a suponer la desaparición de los ordenadores, tal como hoy los entendemos, por lo menos en aquellas tareas en las que están mejor dotados incluso que los seres humanos. Las primeras explicaciones teóricas sobre el cerebro y el pensamiento ya fueron dadas por algunos antiguos filósofos griegos como Platón (427-347 a.C.) y Aristóteles (384-422 a.C.). Las mismas ideas sobre el proceso mental también las mantuvo Descartes (1596-1650) y los filósofos empiristas del siglo XVIII. La clase de las llamadas máquinas cibernéticas, a la cual la computación neuronal pertenece, tiene más historia de lo que generalmente se cree: Heron el Alejandrino construyó un autómata hidráulico sobre el 100 a.C. Además, se han construido numerosos modelos de animales para demostrar el comportamiento necesidad-adaptación sobre diferentes condiciones de vida como, por ejemplo, las numerosas versiones del "ratón en el laberinto" [Nemes 69]. Alan Turing, en 1936, fue el primero en estudiar el cerebro como una forma de ver el mundo de la computación; sin embargo, los primeros teóricos que concibieron los fundamentos de la computación neuronal fueron Warren McCulloch, un neurofisiólogo, y Walter Pitts, un matemático, quienes, en 1943, lanzaron una teoría acerca de la forma de trabajar de las neuronas [McCulloch 43]. Ellos modelaron una red neuronal simple mediante circuitos eléctricos. Otro importante libro en los inicios de la teoría de redes neuronales fue el I. Introducción a la computación neuronal 1.1 escrito en 1949 por Donald Hebb: La organización del comportamiento, en el que se establece una conexión entre psicología y fisiología [Hebb 49]. En 1957, Frank Rosenblatt comenzó el desarrollo del Perceptrón, un modelo de red neuronal del cual hablaremos más adelante. El perceptrón es la más antigua red neuronal y se usa hoy en día de varias formas para la aplicación como reconocedor de patrones; este modelo era capaz de generalizar, es decir, después de haber aprendido una serie de patrones era capaz de reconocer otros similares aunque no se le hubieran presentado anteriormente. Sin embargo, tenía una serie de limitaciones, quizá la más conocida era su incapacidad para resolver el problema de la función OR-exclusiva y, en general, no era capaz de clasificar clases no separables linealmente [Rosenblatt 58]. En 1959, Bernard Widrow y Marcial Hoff, de Stanford, desarrollaron el modelo ADALINE (ADAptative LINear Elements). Esta fue la primera red neuronal aplicada a un problema real (filtros adaptativos para eliminar ecos en las líneas telefónicas) y se ha usado comercialmente durante varias décadas [Widrow 60]. Uno de los mayores investigadores de las redes neuronales desde los años 60 hasta nuestros días es Stephen Grossberg (Universidad de Boston). A partir de su extenso conocimiento fisiológico, ha escrito numeros libros y desarrollado modelos de redes neuronales. Estudió los mecanismos de la percepción y la memoria. Grossberg realizó en 1967 una red, Avalancha, que consistía en elementos discretos con actividad que varía con el tiempo que satisface ecuaciones diferenciales continuas, para resolver actividades tales como reconocimiento continuo del habla y aprendizaje del movimiento de los brazos de un robot [Grossberg 82]. En 1969 surgieron numerosas críticas que frenaron, hasta 1982, el crecimiento que estaban experimentando las investigaciones sobre redes neuronales. Marvin Minsky y Seymour Papert, del Instituto Tecnológico de Massachusetts (MIT) publicaron un libro: Perceptrons [Minsky 69], que, además de contener un análisis matemático detallado del perceptrón, consideraban que la extensión a perceptrones multinivel (el perceptrón original solo poseía una capa) era completamente estéril. Las limitaciones del perceptrón eran importantes, sobre todo, su incapacidad para resolver muchos problemas interesantes. Muchas de las investigaciones dieron un giro hacia la Inteligencia Artificial, que prometía más por aquel entonces. A pesar del libro Perceptrons, algunos investigadores continuaron su trabajo. Tal fue el caso de James Anderson que desarrolló un modelo lineal llamado Asociador Lineal que consistía en unos elementos integradores lineales (neuronas) que sumaban sus entradas. Este modelo se basa en el principio de que las conexiones entre neuronas son reforzadas cada vez que están activadas. Anderson diseñó una potente extensión del Asociador Lineal llamado "Brain-State-in-a-Box" (BSB) [Anderson 77]. En Europa y Japón las investigaciones también continuaron. Kunihiko Fukushima desarrolló el Neocognitrón, un modelo de red neuronal para el reconocimiento de patrones visuales [Fukushima 80]. Teuvo Kohonen, un ingeniero eléctronico de la universidad de Helsinki, desarrolló un modelo similar al de Anderson pero independientemente [Kohonen 77]. En 1982, numerosos eventos coincidieron que hicieron resurgir el interés por las redes neuronales. John Hopfield presentó su trabajo sobre redes neuronales en la Academia Nacional de las Ciencias [Hopfield 82]. En el trabajo describe con claridad y rigor matemático I. Introducción a la computación neuronal 1.1 una red a la que ha dado su nombre, que es una variación del Asociador Lineal, pero además mostró como tales redes pueden trabajar y qué pueden hacer. Además, en 1982 se celebró la U.S.-Japan Joint Conference on Cooperative/Competitive Neural Networks y Fujitsu comenzó el desarrollo en "computadores pensantes" para aplicaciones en robótica. En 1985, el Instituto Americano de Física comenzó lo que ha sido la reunión anual Neural Networks for Computing. Esta ha sido la primera de muchas otras. En 1987, el IEEE celebró la primera conferencia internacional sobre redes neuronales con más de 1.800 asistentes y 19 nuevos productos mostrados. En el mismo año se formó la Internatonal Neural Network Society (INNS) bajo la iniciativa y dirección de Grossberg en U.S.A., Kohonen en Finlandia y Amari en Japón; en menos de dos años, la INNS tenía más de 3.000 socios. A partir de este momento, el interés por este área de la I+D se ha ido incrementando de forma notable, como lo demuestran tanto el número de congresos y reuniones científicas especializadas, como la aparición de revistas científicas de calidad contrastada dentro del área, así como el interés demostrado por diversos tipos de empresas en utilizar esta tecnología para desarrollar aplicaciones concretas. En 1988, del espíritu de cooperación en esta nueva tecnología resultó la unión del IEEE y de la INNS; la International Joint Conference on Neural Networks (IJCNN) produjo, en 1989, 430 artículos, 63 de los cuales enfocados a una aplicación. La IJCNN de Enero de 1990, en Washington, incluyó una hora de concierto de música realizada por redes neuronales. La alternativa europea es la International Conference on Artificial Neural Networks (ICANN), que comenzó su andadura en Septiembre de 1991 y, actualmente, está organizada por la Sociedad Europea de Redes Neuronales. También merece una referencia aparte la reunión anual Neural Information Processing Systems (NIPS) celebrada en Denver (Colorado) desde 1987 y que probablemente represente el nivel más alto de calidad desde el punto de vista científico. Estado actual de la tecnología [Sigüenza 93] Actualmente, son numerosos los trabajos que se realizan y publican cada año, las aplicaciones nuevas que surgen así como las empresas que lanzan al mercado productos nuevos tanto hardware como software (sobre todo para simulación). En relación con la información que se publica en las revistas especializadas en el área de redes neuronales cabe destacar como las más interesantes: Neural Networks, revista oficial de la Sociedad Internacional de Redes Neuronales (INNS); Network, Computation in Neural System; IEEE Transactions on Neural Networks, publicada por IEEE Neural Networks Council; Neural Computation; e International Journal of Neural Systems. Como ejemplo del resurgir de la investigación sobre redes neuronales podemos destacar la labor patrocinada por la Oficina de Tecnología Táctica de la Agencia de Proyectos de Investigación Avanzada del Departamento de Defensa de los Estados Unidos (DARPA/TTO) y llevada a cabo en el Instituto Tecnológico de Massachussets (MIT) de octubre de 1987 a febrero de 1988. El resultado de dicho estudio apareció en el libro Neural Network Study [DARPA 88], el cuál constituye una revisión del estado del arte de la tecnología de redes neuronales hasta febrero de 1988 así como sus posibles aplicaciones al área de defensa y otras áreas tales como clasificación de patrones, robótica (especialmente control de trayectorias), visión artificial, procesamiento de señales y aplicaciones al habla. Dentro del entorno europeo señalar las dos citas anuales de la Sociedad Europea de Redes Neuronales (ENNS) y, como fuente de planificación política de investigación (por medio de la financiación selectiva de proyectos de investigación), el programa ESPRIT que, durante I. Introducción a la computación neuronal 1.1 los últimos años ha financiado una veintena de proyectos que podrían enmarcarse dentro del área de las redes neuronales y sus aplicaciones. La participación española en estos proyectos ha sido reducida, quedando limitada a las Universidades Politécnica y Autónoma de Madrid, Universidad Politécnica del País Vasco, Centro de Estudios Avanzados de Blanes, Instituto de Cibernética del CSIC, Instituto de Ingeniería del Conocimiento (IIC) y a la empresa Software de Base, S.A. Respecto a la situación del mercado de redes neuronales, en la figura 1.1 se muestra como estaba repartido el mercado de las redes neuronales en el año 1989 y cúales son las previsiones de evolución de dicho mercado. Figura 1.1 El mercado de las redes neuronales [Sigüenza 93]. I. Introducción a la computación neuronal 1.1 1.2.- DEFINICIÓN DE RED NEURONAL. Existen numerosas formas de definir lo que son las redes neuronales; desde las definiciones cortas y genéricas hasta las que intentan explicar más detalladamente lo que significa "red neuronal" o "computación neuronal". Veamos algunos ejemplos de ambos casos: Una nueva forma de computación, inspirada en modelos biológicos. niveles. Un modelo matemático compuesto por un gran número de elementos procesales organizados en "... un sistema de computación hecho por un gran número de elementos simples, elementos de proceso altamente interconectados, los cuales procesan información por medio de su estado dinámico como respuesta a entradas externas." [Hecht-Niesen 88a]. "Redes neuronales artificiales son redes interconectadas masivamente en paralelo de elementos simples (usualmente adaptativos) y con organización jerárquica, las cuales intentan interactuar con los objetos del mundo real del mismo modo que lo hace el sistema nervioso biológico". [Kohonen 88c]. Es necesario destacar que tales "computadores neuronales" no ejecutan las típicas instrucciones máquina de los computadores digitales, a menos que estén hechos para emular el comportamiento de las redes neuronales físicas. En principio, la operación de proceso básico realizada por todos los procesadores elementales es una operación análoga de transformación de sus señales de entrada. En las redes neuronales biológicas, las células neuronales (neuronas) corresponden a los elementos de proceso anteriores. Las interconexiones se realizan por medio de las ramas de salida (axones) que producen un número variable de conexiones (sinapsis) con otras neuronas (o quizá con otras partes como músculos y glándulas). Las redes neuronales son sistemas de simples elementos de proceso fuertemente interconectados. La compleja operación de las redes neuronales es el resultado de abundantes lazos de realimentación junto con "no linealidades" de los elementos de proceso y cambios adaptativos de sus parámetros, que pueden definir incluso fenómenos dinámicos muy complicados. Una peculiaridad de las redes neuronales biológicas es su tamaño: en todo el sistema nervioso central hay del orden de 1011 neuronas, pero el número de interconexiones es aun mayor, probablemente sobre las 1015. No parece posible programar las funciones de dicho sistema de acuerdo con un plan principal, además teniendo en cuenta que el tamaño y la estructura de la red está cambiando radicalmente durante y después de la niñez, cuando está ya en uso. Es verdad que ciertos caracteres textuales de la red son inherentes y durante la ontogénesis las proyecciones neuronales crecen aproximadamente hacia aquellos lugares en los cuales serán necesitados más tarde. En otras palabras, la distribución de los recursos y los caminos de comunicación más importantes, están formados de acuerdo con un plan genético, mientras que el resto del "programming" en especial la memoria, debe ser adquirida después de nacer. Programar tal red puede significar sólo dos cosas: a) Las estructuras de interconexión entre las células son alteradas, y b) Las "fuerzas" de estas interconexiones son cambiadas. I. Introducción a la computación neuronal 1.1 Parece que existen bastantes estrategias claras de como cambiar las fuerzas en la dirección correcta, mientras que cambios en las interconexiones son más difíciles de definir porque suelen tener efectos radicales en el comportamiento de la red, especialmente en lo concerniente a la operación secuencial y las funciones jerárquicas. Es muy difícil imaginar cómo una red tan enorme puede ser programada. Una posibilidad, con relación a los subsistemas sensoriales podría ser que la estructura del sistema, o el proceso dinámico definido por él, de alguna forma tiende a imaginar las experiencias sensoriales de otros acontecimientos. Otra función importante del sistema nervioso es definir acciones que son parte del comportamiento, y controlar el estado del organismo en relación con su entorno. Mientras que las representaciones internas en las cuales está basado el comportamiento pueden ser derivadas de las entradas de forma bastante directa, las definiciones de las salidas deben ser basadas en estrategias completamente diferentes. De hecho, apenas existe otra posibilidad para programar las acciones que aplicar el principio de "retroceso y empuje" para alterar los mecanismos que son responsables de ellas. Algún tipo de "backpropagation" de la información es, por tanto, necesario. Por otro lado, el significado y la calidad de las acciones deben ser juzgados no desde los movimientos inmediatos, sino desde la realización de criterios que tienen en cuenta el resultado requerido, a veces bastante indirectamente. A menudo, las acciones son solamente corregidas si se realizan con cierta frecuencia, donde el mecanismo que lo provoque debe contener circuitos que definan tales frecuencias y que se cambien en relación con los resultados aprendidos. Está claro que programar las acciones es un proceso mucho más indirecto que programar las representaciones internas; el factor aleatorio no puede ser evitado. Programando las funciones de entrada y de salida nos lleva sólo a una operación de comportamiento en la que el estímulo y la respuesta son consideradas muy relevantes. Ciertamente es posible realizar autómatas bastante complejos y comportamientos "necesidadconducta" de este modo. Sin embargo, se mantiene la expectativa sobre la posibilidad de que las redes neuronales puedan actuar como ordenadores para algunos problemas abstractos y también donde la computación se realice en el estado interno de la red. 1.3.- VENTAJAS DE LAS REDES NEURONALES. Debido a su constitución y a sus fundamentos, las redes neuronales artificiales presentan un gran número de características semejantes a las del cerebro. Por ejemplo, son capaces de aprender de la experiencia, de generalizar de casos anteriores a nuevos casos, de abstraer características esenciales a partir de entradas que representan información irrelevante, etc. Esto hace que ofrezcan numerosas ventajas y que este tipo de tecnología se esté aplicando en múltiples áreas. Estas ventajas incluyen [Maren 90]: * Aprendizaje adaptativo. Capacidad de aprender a realizar tareas basada en un entrenamiento o una experiencia inicial. * Autoorganización. Una red neuronal puede crear su propia organización o representación de la información que recibe mediante una etapa de aprendizaje. * Tolerancia a fallos. La destrucción parcial de una red conduce una degradación de su estructura, sin embargo, algunas capacidades de la red se pueden retener incluso sufriendo un I. Introducción a la computación neuronal 1.1 gran daño. * Operación en tiempo real. Los computadores neuronales pueden ser realizados en paralelo y máquinas con especial hardware se diseñan y fabrican para obtener esta capacidad. * Fácil inserción dentro de la tecnología existente. Se pueden obtener chips especializados para redes neuronales que mejoran su capacidad en ciertas tareas. Ello facilitará la integración modular en los sistemas existentes. 1.3.1.- Aprendizaje adaptativo. La capacidad de aprendizaje adaptativo es una de las características más atractivas de las redes neuronales. Esto es, aprenden a llevar a cabo ciertas tareas mediante un entrenamiento con ejemplos ilustrativos. Como las redes neuronales pueden aprender a diferenciar patrones mediante ejemplos y entrenamiento, no es necesario que elaboremos modelos a priori ni necesitamos especificar funciones de distribución de probabilidad. Las redes neuronales son sistemas dinámicos autoadaptativos. Son adaptables debido a la capacidad de autoajustarse de los elementos procesales (neuronas) que componen el sistema. Son dinámicos pues son capaces de estar constantemente cambiando para adaptarse a las nuevas condiciones. En el proceso de aprendizaje, los enlaces ponderados de las neuronas, se ajustan de manera que se obtengan unos resultados específicos. Una red neuronal no necesita un algoritmo para resolver un problema, ya que ella puede generar su propia distribución de los pesos de los enlaces mediante el aprendizaje. También existen redes que continúan aprendiendo a lo largo de su vida después de completado el período inicial de entrenamiento La función del diseñador es únicamente la obtención de la arquitectura apropiada. No es problema del diseñador el cómo la red aprenderá a discriminar; sin embargo, si es necesario que desarrolle un buen algoritmo de aprendizaje que proporcionará la capacidad de discriminar de la red mediante un entrenamiento con patrones. 1.3.2.- Autoorganización. Las redes neuronales usan su capacidad de aprendizaje adaptativo para autoorganizarse la información que reciben durante el aprendizaje y/o la operación. Mientras que el aprendizaje es la modificación de cada elemento procesal, la autoorganización consiste en la modificación de la red neuronal completa para llevar a cabo un objetivo específico. Cuando las redes neuronales se usan para reconocer ciertas clases de patrones, ellas se autoorganizan la información usada. Por ejemplo, la red llamada back-propagation se creará su propia representación característica mediante la cual puede reconocer ciertos patrones. Esta autoorganización provoca la generalización: facultad de las redes neuronales de responder apropiadamente cuando se les presenta datos o situaciones a los que no habían sido expuestas anteriormente. El sistema puede generalizar la entrada para obtener una respuesta. Esta característica es muy importante cuando se tienen que solucionar problemas en los cuales la información de entrada es poco clara; además, permite que el sistema de una solución incluso cuando la información de entrada está especificada de forma incompleta. I. Introducción a la computación neuronal 1.1 1.3.3.- Tolerancia a fallos. Las redes neuronales son los primeros métodos computacionales con la capacidad inherente de tolerancia a fallos. Comparados con los sistemas computacionales tradicionales, los cuáles pierden su funcionalidad en cuanto sufren un pequeño error de memoria, en las redes neuronales, si se produce un fallo en un pequeño número de neuronas, aunque el comportamiento del sistema se ve influenciado, sin embargo, no sufre una caída repentina. Hay dos aspectos distintos respecto a la tolerancia a fallos: primero, las redes pueden aprender a reconocer patrones con ruido, distorsionados o incompletos, esta es una tolerancia a fallos respecto a los datos. Segundo, ellas pueden seguir realizando su función (con cierta degradación) aunque se destruya parte de la red. La razón por la que las redes neuronales son tolerantes a los fallos es el que tienen su información distribuida en las conexiones entre neuronas, existiendo un cierto grado de redundancia en este tipo de almacenamiento. La mayoría de los ordenadores algorítmicos y sistemas de recuperación de datos, almacenan cada pieza de información en un espacio único, localizado y direccionable. Las redes neuronales almacenan información no localizada. Por tanto, la mayoría de las interconexiones entre los nodos de la red tendrán unos valores en función de los estímulos recibidos y se generará un patrón de salida que represente la información almacenada. 1.3.4.- Operación en tiempo real. Una de las mayores prioridades de la mayoría de las áreas de aplicación es la necesidad de realizar grandes procesos con datos de forma muy rápida. Las redes neuronales se adaptan bien a esto debido a su implementación paralela. Para que la mayoría de las redes puedan operan en un entorno de tiempo real, la necesidad de cambio en los pesos de las conexiones o entrenamiento es mínima. Por tanto, de todos los métodos posibles, las redes neuronales son la mejor alternativa para reconocimiento y clasificación de patrones en tiempo real. 1.3.5.- Fácil inserción dentro de la tecnología existente. Una red individual puede ser entrenada para desarrollar una única y bien definida tarea (tareas complejas, que hagan múltiples selecciones de patrones, requerirán sistemas de redes interconectadas). Debido a que una red puede ser rápidamente entrenada, testeada, verificada y trasladada a una implementación hardware de bajo coste, es fácil insertar redes neuronales para aplicaciones específicas dentro de sistemas existentes. De esta manera, las redes neuronales se pueden utilizar para mejorar sistemas de forma incremental, y cada paso puede ser evaluado antes de acometer un desarrollo más amplio. 1.4.- REDES NEURONALES Y COMPUTADORES DIGITALES Para entender el potencial real de la computación neuronal, será necesario hacer una clara distinción entre sistemas de computación neuronales y digitales: I. Introducción a la computación neuronal 1.1 Los sistemas neurológicos biológicos no aplican principios de circuitos lógicos o digitales. Un sistema de computación digital debe ser síncrono o asíncrono. Si fuera asíncrono, la duración de los impulsos neuronales debería ser variables para mantener uno de los valores binarios por períodos de tiempo indefinidos, lo cual no es el caso. Si el principio fuera síncrono, se necesitaría un reloj global al cual los pulsos estén sincronizados. Este tampoco es el caso. Las neuronas no pueden ser circuitos de umbral lógico porque hay miles de entradas variables en la mayoría de las neuronas y el umbral es variable con el tiempo, siendo afectado por la estimulación, atenuación, etc. La precisión y estabilidad de tales circuitos no es suficiente para definir ninguna función "booleana". Los procesos colectivos que son importantes en computación neuronal no pueden implementarse por computación digital. Por todo ello, el cerebro debe ser un computador analógico. Ni las neuronas ni la sinapsis son elementos de memoria biestables. Todos los hechos fisiológicos hablan a favor de las acciones de las neuronas como integradores analógicos, y la eficiencia de la sinapsis cambia de forma gradual. En la computación neuronal no hay instrucciones máquina ni códigos de control. Debido a los problemas de estabilidad discutidos anteriormente, el formato de estos códigos no puede ser mantenido por períodos significativos de tiempo, en particular, durante el período de crecimiento. Los circuitos del cerebro no implementan computación recursiva y, por tanto, no son algorítmicos. Debido a los problemas de estabilidad, los circuitos neuronales no son suficientemente estables para definiciones recursivas de funciones como en computación digital. Un algoritmo, por definición, define una función recursiva. Incluso en el nivel más alto, la naturaleza del proceso de información es diferente en el cerebro y en los computadores digitales. Para emular una con otra, al menos a cierto nivel de abstracción, los estados internos de dos sistemas de computación deben ser igualmente accesibles. Esta equivalencia no existe entre el cerebro y los sistemas de programación. Las computadoras artificiales no pueden adquirir ni interpretar todas las experiencias humanas en las cuales se basa el asentamiento de valores. 1.5.- REDES NEURONALES E INTELIGENCIA ARTIFICIAL Dentro de lo que se entiende por Inteligencia Artificial (I.A.), una de las ramas más prometedoras es la que corresponde a las denominadas redes de autoproceso, entendiendo como tales aquellas formadas por nodos en los que hay elementos procesadores de información de cuyas interacciones locales depende el comportamiento del conjunto del sistema. I. Introducción a la computación neuronal 1.1 Figura 1.2 Situación de las redes neuronales en el campo de la Inteligencia Artificial [López 89]. Como indica la figura 1.2, dentro del campo de la inteligencia artificial, existen dos grandes ramas de las redes de autoproceso: a) Procesamiento numérico: Reciben directamente la señal de entrada desde el exterior y operan sobre ella. Esta rama se dedica a los sistemas constituidos por nodos hardware interconectados entre sí formando una red. También se les suele llamar sistemas conectivistas o conexionistas. Si la conexión entre los nodos se realiza de forma global bajo unas reglas de composición, estamos ante los llamados Sistemas Distribuidos, mientras que si la conexión se realiza agrupando en subredes, se denominan Sistemas Asociativos o "Redes de Redes". Dentro de los sistemas distribuidos, si realizamos agrupaciones locales de los nodos para representar conceptos, estaríamos ante las denominadas Redes Subsimbólicas; mientras que si lo que realiza es una distribución en la que cada nodo funciona corporativamente, se denomina Red Neuronal o Neurocomputador (cada nodo está constituido por una neurona). b) Procesamiento simbólico: estas redes están constituidas por "conceptos" (NODOS de la red) y por "reglas sintácticas" (lazos de INTERCONEXION); ambas forman las denominadas bases de conocimiento. La simulación de estas redes es casi exclusivamente software. Como se vio en la panorámica histórica de la evolución de las redes neuronales, durante toda la década de los 70, hasta el resurgimiento con los trabajos de Hopfield, decayó el I. Introducción a la computación neuronal 1.1 estudio de las redes neuronales y las investigaciones se orientaron al campo de la I.A., gracias a lo cual, se ha desarrollado una extensa teoría y unas aplicaciones que tienen una gran importancia actualmente. Por otro lado, esto no quiere decir que las teorías de redes neuronales y de I.A. estén separadas; de hecho, ya se ha visto cómo se pueden situar e interconectar la teoría de las redes neuronales dentro del campo de la I.A. Sin embargo, existen unas diferencias de las redes neuronales con respecto a lo que se entiende como inteligencia artificial clásica muy relevantes y que destacamos a continuación: * Representación del Conocimiento: En I.A. se utilizan métodos de representación del conocimiento (Reglas de Producción, marcos, esquemas, reglas semánticas, etc.) generalmente localizados: átomos de conocimiento, concepto asociado a una regla, etc. Esto hace que la gestión de las bases de conocimiento sea problemática: añadir una regla o suprimir un dato puede tener consecuencias imprevisibles sobre los demás datos. Actualmente se piensa que los conocimientos se representan de forma distribuida en el cerebro: la "memoria" de un hecho corresponderá a la activación de una familia específica de neuronas. De esto se pueden deducir algunas consecuencias: a) La red puede crear su propia organización de la información. b) Como se dispone de un número finito de neuronas, varios hechos se memorizan por la activación de clases de neuronas no disjuntas. c) Mejor tolerancia a fallos, la pérdida de neuronas no implica que se deje de recordar, por tanto, debe existir información redundante. * Mecanismos de Inferencia: Los mecanismos de inferencia (razonamiento) utilizados en I.A. están basados en la lógica (lenguaje PROLOG, por ejemplo). Sin embargo, el cerebro humano no realiza un razonamiento necesariamente lógico; utiliza la imprecisión y la contradicción parcial. El modo de funcionamiento del cerebro es la evolución dinámica de las actividades neuronales. * Aprendizaje: El aprendizaje en I.A. consiste simplemente en añadir nuevos átomos de conocimiento (nuevos hechos, reglas, etc.). En el cerebro, el aprendizaje de un hecho parecido a otro del que ya tenemos conocimiento, se hace por refuerzo de las conexiones entre neuronas y esta actividad conjunta es necesaria para memorizarlo. Se ha demostrado que si un sujeto no está expuesto a ciertos estímulos al comienzo de su vida, no podrá detectar más estos estímulos debido a la degeneración de las conexiones necesarias. * Paralelismo: I. Introducción a la computación neuronal 1.1 Es una característica innata de los sistemas conexionistas. Aunque un ordenador realiza cálculos mucho más deprisa que un ser humano, no es capaz de desarrollar procesos que éste realiza de forma sencilla (comprensión de una frase, analizar una imagen, reconocer un rostro, movimiento en un espacio determinado, etc.). Esto es debido a que el cerebro humano, para hacerlo, pone en marcha simultáneamente a millones de neuronas. Para terminar de situar la teoría de redes neuronales dentro del mundo de la "computación" en general, y frente a la I.A. en particular, en la tabla 1.1 se resume y sintetiza parte de las ideas vistas hasta ahora acerca de las redes neuronales y las diferencias existentes respecto a la computación "convencional" (máquinas tipo Von Neumann) y a la computación "simbólica" (I.A.). Se muestran las diferencias en función de la teorías en las que se basan; en los campos para las que son y no son apropiadas, el tipo de memoria que utilizan, cómo se construyen y qué tipo de soporte utilizan. Computación "Convencional" Computación "Simbólica" Computación "Neuronal" Basado en: Arquitectura Von Neumann Lógica Cognitiva Neurobiología Apropiada para: Algoritmos conocidos Heurística Adaptación Pero no para: Condiciones "difusas" Causalidad desconocida Cálculos precisos Memoria: Precisa, estática Bases de conocimiento Distribuida Construida mediante: Diseño, programación y prueba Representación del conocimiento + motor de inferencia Configuración y "aprendizaje" Soporte: Ordenadores secuenciales Máquinas LISP Procesadores paralelos Tabla 1.1. Formas básicas de computación [Rubio 90]. I. Introducción a la computación neuronal 1.1 1.6.- APLICACIONES DE LAS REDES NEURONALES. Las redes neuronales son una tecnología computacional emergente que puede utilizarse en un gran número y variedad de aplicaciones tanto comerciales como militares. Se pueden desarrollar redes neuronales en un período de tiempo razonable y pueden realizar tareas concretas mejor que otras tecnologías convencionales, incluyendo los sistemas expertos. Cuando se implementan mediante hardware (redes neuronales en chips VLSI), presentan una alta tolerancia a fallos del sistema y proporcionan un grado de paralelismo en el proceso de datos muy grande. Eso hará posible insertar redes neuronales de bajo coste en sistemas existentes y recientemente desarrollados. Hay muchos tipos diferentes de redes neuronales, cada uno de los cuáles tiene una aplicación particular más apropiada. Empezaremos relacionando ejemplos de algunas aplicaciones comerciales separándolas en grupos según las distintas disciplinas: Biología Aprender más acerca del cerebro y otros sistemas. Obtención de modelos de la retina. Empresa Evaluación de probabilidad de formaciones geológicas y petrolíferas. Identificación de candidatos para posiciones específicas. Explotación de bases de datos. Optimización de plazas y horarios en líneas de vuelo. Reconocimiento de caracteres escritos. Medio Ambiente Analizar tendencias y patrones. Previsión del tiempo. Financias Previsión de la evolución de los precios. Valoración del riesgo de los créditos. Identificación de falsificaciones. Interpretación de firmas. Manufacturación Robots automatizados y sistemas de control (visión artificial y sensores de presión, temperatura, gas, etc.) Control de producción en líneas de proceso. Inspección de la calidad. Medicina Analizadores del habla para la ayuda de audición de sordos profundos. Diagnóstico y tratamiento a partir de síntomas y/o de datos analíticos (Electrocardiograma, encefalograma, análisis saguíneo, etc.). I. Introducción a la computación neuronal 1.1 Monitorización en cirugía. Predicción de reacciones adversas a los medicamentos. Lectores de rayos X. Entendimiento de la causa de los ataques epilépticos. Militares Clasificación de las señales de radar. Creación de armas inteligentes. Optimización del uso de recursos escasos. Reconocimiento y seguimiento en el tiro al blanco. Podemos buscar hechos comunes en esta lista de aplicaciones; la mayoría de ellas consisten en realizar un reconocimiento de patrones: buscar un patrón en una serie de ejemplos, clasificar patrones, completar una señal a partir de valores parciales o reconstruir el patrón correcto partiendo de uno distorsionado. Muchos de los ejemplos tienen que trabajar con datos sensoriales y de percepción (señales visuales, auditivas y otras) y otros realizan filtrado o mapeo de señales de entrada. En general, los ejemplos mostrados indican que son característicos más de las personas que de los ordenadores convencionales. A continuación se describe con más detalle aquellas áreas de aplicación más importantes para las cuáles los computadores neuronales, en general, se están utilizando o pueden ser utilizados y los problemas particulares encontrados en cada una de ellas. 1.6.1.- Reconocimiento de Patrones El término "Reconocimiento de Patrones" originalmente se refería a la detección de formas simples tales como caracteres escritos a mano, mapas del tiempo y espectros del lenguaje. Sin embargo, un objetivo más ambicioso ha sido durante todo el tiempo implementar la percepción artificial, es decir, imitar las funciones de los sistemas sensoriales biológicos en su forma más completa. Los primeros experimentos, alrededor de 1960 estaban basados en redes neuronales elementales, como Perceptron [Rosenblatt 58], Adaline [Widrow 60], y Matrices de Aprendizaje [Steinbuch 61]. Los primeros pasos, como siempre, fueron fáciles, pero pronto se vio que la realización de los sistemas biológicos era muy difícil de alcanzar. Incluso, la alta capacidad de computación, alcanzable por circuitos de computación paralela, no resolvían los problemas. Especialmente, en el análisis de imágenes, existen requerimientos que son muy difíciles de alcanzar: a) Invariabilidad de la detección con respecto ala traslación, rotación, escala, perspectiva, oclusión parcial y casamiento simple de los objetos, especialmente bajo condiciones de iluminación variables y b) relación de observaciones de varios contextos a niveles diferentes de abstracción, en orden a distinguir los eventos más selectivamente. Destacar que los animales son capaces de prestar atención a objetos individuales en una escena, por cada uno de los cuales la invariabilidad de percepción debe ser válida separadamente. Esto debe mostrar que debe ser fácil con un preproceso de la escena completa por medio de la transformada de Fourier o Mellin, por lo que habría que tenerlo en cuenta para obtener la solución deseada. Lo que también era ignorado es que incluso el más desarrollado sistema sensorial biológico no opera de forma autónoma: la percepción sensorial está siempre muy unida con el proceso cognitivo global. Para la replicación de las funciones sensoriales, no es suficiente imitar el sistema sensorial, sino que se tiene que replicar todo el cerebro con todas sus capacidades de pensamiento, y precisar la I. Introducción a la computación neuronal 1.1 capacidad de reconocimiento por el alto grado de aprendizaje. No sería razonable esperar la solución de todos estos problemas antes de proceder a la obtención de las posibles aplicaciones. En ingeniería, los problemas son generalmente simplificados. Tomemos por ejemplo la locomoción: es difícil implementar el movimiento coordinado de los miembros, pero un método más directo es aplicar ruedas y modificar el terreno construyendo carreteras. Igualmente existen multitud de aplicaciones para las cuales soluciones artificiales, no naturales, pueden ser incluso más eficaces. El desarrollo del reconocimiento de patrones (especialmente en visión computerizada) tomó este camino a mediados de los 60. Destacar que la agudeza espacial de la visión de los mamíferos varía por un factor de veinte cuando se compara las áreas foveales y periféricas de la retina; además el globo del ojo está en continuo movimiento espasmódico. Aun así, mediante una delicada reconstrucción de la información visual, se hace posible una percepción clara y firme. Nada comparable ha sido logrado, ni siquiera probado, en visión computerizada, donde el campo de imagen, primeramente, está separado en un conjunto regular de elementos de pintura, los cuáles están medidos y agrupados en áreas homogéneas (segmentadas), sus contornos son analizados y sus realizaciones topológicas y geométricas son descritas por "gramáticas de imagen". Sin embargo, es evidente que es posible llegar a ciertos niveles de invariabilidad con respecto a las señales de imagen, si simplemente tenemos en cuenta las relaciones topológicas. Estos métodos, no obstante, tienen muy poco en común con los principios de operación de las funciones sensoriales biológicas, y , por tanto queda abierto el problema básico de la percepción en computación neuronal. Si en la actualidad los métodos de redes neuronales artificiales se están desarrollando para el mismo propósito, será necesario desarrollar métodos de reconocimiento de patrones para que los circuitos aprendan por si mismos las funciones y caracteres elementales y lleguen a hacerse auto-organizados sin utilizar ningún tipo de programación heurística. Las áreas de aplicación más importantes del "reconocimiento de patrones neuronal" serían las mismas que aquellas para las cuales los métodos convencionales y heurísticos han sido desarrollados durante los pasados 30 años: a) Sensación remota. b) Análisis de imágenes médicas. c) Visión en computadores industriales (especialmente para robots). d) Elementos de proceso de las entradas para computadores. Tareas más concretas para las cuales se han desarrollado ya equipos de computadores especiales son: a) Segmentación y clasificación de regiones de imágenes. b) Reconocimiento de caracteres escritos (manuales y texto impreso). c) Reconocimiento del habla y d) Procesamiento y restauración de imágenes con ruido. En un nivel más ambicioso se puede intentar lograr capacidades como: a) Análisis de imágenes (en lo referente a diferentes niveles temáticos de abstracción, tales como monitorización de uso terrestre en las bases de imágenes por satélite). b) Reconocimiento de imágenes (interpretación de escenas) y c) Reconocimiento del habla (análisis e interpretación de frases habladas). I. Introducción a la computación neuronal 1.1 Para implementar estas tareas existen todavía ciertos problemas básicos pendientes de solución; por ejemplo aquellos referentes a las propiedades intrínsecas de la información de entrada tales como: a) Los patrones primitivos más naturales (líneas, sus curvaturas y puntos final, bordes, estadísticas de grupos de puntos). b) Información visual que describen las curvaturas de las superficies. c) Textura e d) Invariantes fonológicas en el habla. Por otro lado, la integración de estas funciones en un sistema de conocimiento de alto nivel es un objetivo cuya complejidad es de un orden de magnitud mayor de lo que generalmente se cree. Por tanto, parecen existir multitud de aplicaciones potenciales pero todavía existen problemas no resueltos. No parece razonable continuar el desarrollo de métodos heurísticos sofisticados: se estima que sobre 30.000 artículos y unos 200 libros de texto se han escrito ya sobre técnicas de reconocimiento de patrones y visión artificial en los últimos 30 años y si las soluciones hubieran estado al alcance por este camino, ya hubieran sido visibles. 1.6.2.- Bases de Datos de Conocimiento para Información Estocástica. Una amplia capacidad de memoria y rapidez en recordar unidades relevantes de ella son normalmente signos de inteligencia. Para formar el conocimiento es necesario almacenar en la mente un gran número de relaciones, lo que forma la base del pensamiento y la solución de problemas. La noción de que la mente humana opera de acuerdo a asociar principios es un muy antigua: Aristóteles publicó algunos tratados teóricos donde estos principios ya fueron cualitativamente expuestos. Aunque es claro que la mayoría de los objetos del mundo exterior son distintos y discretos, y sus acontecimientos pueden ser descritos con relaciones lógicas, la información primaria obtenida de ellos en forma de señales sensoriales es estocástica, no clara, y raramente expresable en términos de caracteres distintivos. Si la descripción del mundo exterior pudiera hacerse verbalmente, estas relaciones podrían expresarse fácilmente en forma concisa y discreta, pero tal operación no es posible sin un sujeto "que piense y que entienda". Cuando definimos los problemas de forma lógica u otros formalismos discretos (técnicas de I.A.) es muy difícil que un sistema artificial sea capaz de formar conceptos automáticamente, atributos distintos y otras representaciones abstractas a partir de señales sensoriales confusas, no distintivas y estocásticas. Veamos con más detalle en qué consiste la lógica de la búsqueda: La Información Semántica consiste normalmente en unidades de datos y sus enlaces (relaciones, asociaciones) con otras unidades. El Conocimiento adquirido en dicha base de datos puede ser conducido a través de largas cadenas de dichos enlaces, los cuales se realizan cuando las asociaciones se hacen parcialmente. Posiblemente sea ilustrativo comparar una base de datos y el proceso de búsqueda con un sistema de ecuaciones y sus soluciones. Cuando representamos una cuestión estamos introduciendo una o varias ecuaciones que contienen variables desconocidas. Por ejemplo, podemos especificar un número de relaciones parciales en las cuales algunos miembros son desconocidos, el sistema tiene que encontrar en la memoria todas las relaciones que casen con las ecuaciones en sus partes especificadas, de forma las variables desconocidas se hagan conocidas. Se está hablando hasta ahora de las bases de datos relacionales que son ampliamente utilizadas actualmente. La búsqueda de información en ellas conlleva las siguientes operaciones elementales: a) combinaciones muy rápidas en paralelo de un gran número de argumentos de búsqueda, los cuáles son I. Introducción a la computación neuronal 1.1 los elementos almacenados en memoria y b) análisis y presentación de los resultados que satisfacen todas las condiciones. Para buscar soluciones a una tarea de búsqueda que es definida en términos de multitud de preguntas incompletas y simultáneas, como suele ser el caso de este tipo de tareas, no es suficiente implementar una memoria direccionable por contenido (autoasociativa). En las redes neuronales, los argumentos de búsqueda están generalmente impuestos en las condiciones iniciales de la red y la solución a las "preguntas" se obtiene cuando el estado de actividad de la red llega a alguna clase de "mínimo de energía". Las características de estos sistemas son las siguientes: a) sus elementos de red son elementos analógicos, b) se pueden activar un gran número de relaciones en al memoria, las cuáles sólo se emparejan de forma aproximada con los argumentos de búsqueda y c) no es seguro que el sistema converja a un óptimo global, es más usual que la respuesta corresponda a uno de los óptimos locales los cuales pueden ser una solución aceptable en la práctica. 1.6.3.- Control de Robots. El control adaptativo en tiempo real es primordial en muchas de las aplicaciones de control de procesos, como puede ser el guiado del movimiento de un robot. Hay dos categorías importantes de robots: los de "trayectoria programada" y los denominados "robots inteligentes". Para programar los primeros, lo que supone controlar sus movimientos y acciones de la forma deseada, hay que almacenar en memoria una secuencia de coordenadas y comandos. Durante su uso se definen idénticas trayectorias y comandos por medio de la información memorizada. Los robots inteligentes se supone que pueden planear sus acciones. La inteligencia exhibida por los robots ha sido ampliamente implementada por programas de I.A., lo cuál significa que las estrategias han de ser inventadas y programadas heurísticamente por el ser humano. A menudo es deseable tener un nivel más alto de aprendizaje en tales robots, lo que apunta al uso de los sistemas neuronales. Por ejemplo, aprender a moverse en un entorno desconocido es una tarea que difícilmente puede ser formalizada por programación lógica, y la coordinación de las funciones sensoriales con las funciones motoras no puede resolverse de forma analítica. Se han realizado ya algunas simulaciones por ordenador que han demostrado tales capacidades de aprendizaje autónomo [Barto 83]. 1.6.4.- Toma de Decisiones. En las implementaciones de I.A. convencional, las condiciones y acciones que entran en el problema son descritas como "decisión árbol" y la evaluación es un problema de combinatoria. Sin embargo, este no es exactamente el camino mediante el que piensa un ser natural. Éste debe realizar análisis formales similares para evitar malas soluciones, pero cuando se llega a la estrategia formal, entonces otras razones, basadas en presentimientos e instintos intuitivos sobre la situación, adquieren más importancia. Estas capacidades pueden, no obstante, realizarse en sistemas de aprendizaje artificial suficientemente grandes que operen con principios de computación neuronal. El criterio de operación aplicado en éstos casos es más complejo y será aprendido automáticamente de ejemplos de algún tipo de descripción estadística. Se puede decir que las estrategias de toma de decisiones están almacenadas en la forma de las reglas, mientras que estas reglas se establecen automáticamente, y sólo existen en forma implícita como un estado colectivo de las interconexiones adaptativas. I. Introducción a la computación neuronal 1.1 1.6.5.- Filtrado de señales. Las redes neuronales se usan como filtros para la eliminación de ruidos y desórdenes en señales, o para la reconstrucción de patrones a partir de datos parciales; por ejemplo, la red back-propagation se usa a menudo para obtener una versión de ruido-reducido a partir de una señal de entrada y la red MADALINE se ha usado cerca de dos décadas comercialmente para mejorar la transmisión telefónica. 1.6.6.- Segmentación, Comprensión y Fusión de Datos. La segmentación de datos, sobre todo en señales de variación temporal (p.ej., datos sísmicos) o en imágenes, es una tarea muy solicitada. La mayoría de los algoritmos de segmentación no proporcionan completamente los resultados deseables. Por ejemplo, en imágenes, las líneas que limitan las regiones están a menudo mezcladas con ruido u otras interferencias de pequeña escala. Dificultades similares se encuentran en la segmentación de datos en el habla, retornos sísmicos y otros datos de sensores complejos. Actualmente existen numerosas aproximaciones de redes neuronales habilitadas para segmentación de imágenes, la mayoría de los cuáles presentan una capacidad superior en comparación con alguno de los más complejos algoritmos de segmentación. Por otro lado, en algunos campos como la medicina, testeo de componentes aeroespaciales y telemetría, se producen, transmiten y almacenan enormes cantidades de datos; por lo que el costo con elementos de almacenamiento masivo se hace prohibitivo. Se necesita dar prioridad al desarrollo de metodologías de comprensión de datos. Para resolver este problema ya se han aplicado diferentes tipos de redes neuronales con prometedores resultados. 1.6.7.- Interfaces Adaptativas para Sistemas Hombre/Máquina. Las interfaces hombre/máquina están empezando a considerarse como uno de los aspectos más importantes en la mayoría de los sistemas computacionales. Esto es especialmente cierto en aquellos sistemas diseñados para facilitar algunos procesos humanos, tales como el aprendizaje, la manipulación de datos o en los sistemas de control. Recientes estudios indican cómo la carga de trabajo debe estar dividida entre la persona y el computador. La relación hombre/máquina puede ser mejorada significativamente mediante la adaptación de la interface al usuario. Este tipo de tareas incluye reconocimiento y control de patrones multiescala. Las redes neuronales proporcionan la tecnología ideal para facilitar la relación entre el usuario y sistemas complejos. I. Introducción a la computación neuronal 1.1 1.7.- TIPOS DE REDES NEURONALES MÁS IMPORTANTES. En capítulos posteriores estudiaremos en profundidad algunos modelos de redes neuronales que, por su importancia histórica y su gran difusión, se han considerado de interés general. Sin embargo, a continuación, se muestra una tabla resumen de los tipos de red más conocidos, comentando esquemáticamente las aplicaciones más importantes de cada una, sus ventajas e inconvenientes y quién o quienes fueron sus creadores y en qué año. I. Introducción a la computación neuronal Nombre de la red Año Aplicaciones más Comentarios 1.1 Limitaciones importantes Avalancha 1967 desarrollada por Reconocimiento de Ninguna red sencilla No es fácil alterar la Stephen habla continua. Control puede hacer todo esto. velocidad o interpolar el Grossberg. brazos robot. movimiento. Reconocimiento de Sofisticada. Sensible a la translación, Gail Carpenter, Resonancia patrones (radar, sonar, Poco utilizada. distorsión y escala. Stephen Adaptativa etc.). Teoría 1986 Inventada/ Grossberg. (ART) ADALINE/ 1960 MADALINE Filtrado de señales. Rápida, fácil de Sólo es posible clasificar Ecualizador adaptativo. implementar con espacios linealmente Modems. circuitos analógicos o separados. Bernand Widrow. VLSI. Back 1974-85 propagation. Red más popular. Necesita mucho tiempo Paul Werbos, texto. Control de Numerosas para el aprendizaje y David Parker, robots. Predicción. aplicaciones con muchos ejemplos . David Rumelhart. Reconocimiento de éxito. Facilidad de patrones. aprendizaje. Potente. Bart Kosko. Memoria Aprendizaje y Baja capacidad de Asociativa heteroasociativa de arquitectura simples. almacenamiento. Los Bidireccional acceso por contenido. Memoria 1985 Síntesis de voz desde datos deben ser codificados. Reconocimiento de Redes simples. La máquina de Boltmann Jeffrey Hinton, Boltzmann y patrones (imágenes, Capacidad de necesita un tiempo muy Terry Sejnowski, Cauchy sonar y radar). representación óptima largo de aprendizaje. Harold Szu. Optimización. de patrones. Extracción de Posiblemente mejor Realización y potenciales James Anderson conocimiento de bases realización que las aplicaciones no de datos redes de Hopfield estudiadas totalmente Control del Semejante a Requiere complicadas David Marr, movimiento de los Avalancha. entradas de control James Albus, Máquinas de Brain-Estate-in-a- 1985-86 1977 Box. Cerebellatron 1969 brazos de un robot. Counter- 1986 propagation Hopfield Neocognitron Perceptron 1982 1978-84 1957 Comprensión de Combinación de Numerosas neuronas y Robert Hecht- imágenes; Perceptron y TPM conexiones Nielsen Reconstrucción de Puede implementarse Capacidad y estabilidad. John Hopfield patrones y en VLSI. Fácil de optimización. conceptualizar Reconocimineto de Insensible a la Requiere muchos K. Fukushima caracteres manuscritos translación , rotación elementos de proceso, y escala niveles y conexiones Reconocimiento de La red más antigua. No puede reconocer carácteres impresos Construida en HW. caracteres complejos Reconocimiento de Realiza mapas de Requiere mucho Map (SOM). patrones, codificación características entrenamiento Topology- de datos; optimización comunes de los datos Self-Organizing- Preserving-Map 1980-84 Andres Pellionez aprendidos. Frank Rosenblatt Teuvo Kohonen I. Introducción a la computación neuronal Nombre de la red Año Aplicaciones más Comentarios 1.1 Limitaciones importantes Inventada/ desarrollada por (TPM). Tabla 1.2. Características de los tipos de redes neuronales más importantes (Adaptada de [Hecht-Nielsen 88a]). 1.8.- IMPLEMENTACIÓN DE LAS REDES NEURONALES. En la búsqueda de sistemas inteligentes en general, se ha llegado a un importante desarrollo del software (en la actualidad ya existen lenguajes de procesamiento simbólico de la información), sin embargo, generalmente estos lenguajes se apoyan en arquitecturas convencionales de ordenadores. Actualmente, las direcciones de investigación consisten en la búsqueda de nuevas arquitecturas más adecuadas para este tipo de tareas. Dentro de esta línea se encuentran alguno de los neurocomputadores más conocidos [AEIA 91]. Un neurocomputador es básicamente un conjunto de procesadores conectados con una cierta regularidad, que operan concurrentemente. En la actualidad ya existen una serie de neurocomputadores comerciales destinados a la realización de redes neuronales; podemos citar el Mark III y IV, el ANZA y ANZA Plus o el Delta-Sigma. A pesar de los logros alcanzados en este campo, está muy lejos que estas estructuras alcancen el nivel de desarrollo y difusión de los ordenadores convencionales. Por otro lado, otra forma totalmente distinta de realizar redes neuronales consiste en la implementación de éstas por medio de uno o varios circuitos integrados específicos, para así poder obtener una estructura que se comporte lo más similar posible a como lo haría una red neuronal. Aunque esta segunda aproximación se halla básicamente en manos de las universidades y centros de investigación, existen algunos productos comerciales como el N64 de Intel, chip que incluye 64 neuronas y 10.000 sinapsis, y que puede procesar 2.500 conexiones por segundo; o el MB4442 de Fujistsu, con una sola neurona y capaz de procesar 70.000 conexiones por segundo; o el MD1220 de Micro Devices, con estructura bit slice; o el conjunto NU3232 y N32 de Neural Semiconductors. Como diferencias con respecto a los neurocomputadores cabría resaltar el menor número de neuronas de los chips neuronales, consecuencia del hecho de que dentro del propio chip se incluyen todas las interconexiones, y, por tanto, su velocidad resulta varios órdenes de magnitud superior que para los neurocomputadores. En la actualidad, estos chips se utilizan para aplicaciones en las que la red neuronal ya se ha diseñado y probado por otros métodos y lo que se requiere es una mayor velocidad para poder trabajar en tiempo real. Aunque la tecnología microelectrónica parece que es, actualmente, la más adecuada para la realización de redes neuronales, existen varios problemas sin resolver, como es la dificultad de obtener el alto grado de interconexionado propio de estas redes, o el problema de la entrada/salida masiva de datos, condicionada por el número de pines, o, por último, el poder conseguir sinapsis con pesos variables, necesarias si se quiere que la red tenga una verdadera capacidad de aprendizaje. Otra tecnología que podría ser apropiada en la implementación de las redes neuronales es la tecnología electroóptica, con la ventaja de utilizar la luz como medio de transporte de la I. Introducción a la computación neuronal 1.1 información, permitiendo la transmisión masiva de datos. Los intentos de aplicación de esta tecnología en la realización de redes neuronales, se encuentran todavía en estados de investigación muy básicos. 1.8.1 REALIZACIÓN DE REDES NEURONALES 1. La realización más simple e inmediata consiste en simular la red sobre un ordenador convencional mediante un software específico. Es un procedimiento rápido, poco costoso e insustituible por el momento para realizar el entrenamiento y evaluación de las redes; pero cuya mayor desventaja radica en el hecho de que se intenta simular redes con un alto grado de paralelismo sobre máquinas que ejecutan secuencialmente las operaciones. Valores intrísicos de las redes neuronales no pueden obtenerse de esta forma. 2. Realización de redes neuronales a través de arquitecturas orientadas a la ejecución de procesos con un alto grado de paralelismo, tales como redes de transputers, arquitecturas sistólicas, etc. El objetivo de tales redes es acelerar la simulación de la red neuronal permitiendo, si es posible, una respuesta en tiempo real. Esta segunda línea puede verse como una optimización de la anterior en lo que respecta al tiempo de proceso, pero subsiste el hecho de que el comportamiento real de la red sigue siendo simulada por una estructura "ajena" a la ectructura intrínseca de una red neuronal. 3. Una tercera aproximación radicalmente distinta es la realización de redes neuronales mediante su implementación por uno o varios circuitos integrados específicos. Se intenta de esta manera construir un elemento o conjunto de elementos que se comporten lo más similarmente posible a como lo haría una red neuronal. Son los llamados "chips" neuronales. Las neuronas y las conexiones se emulan con dispositivos específicos de forma que la ectructura del circuito integrado refleja la arquitectura de la red. Se consigue de esta forma realizaciones que funcionan a alta velocidad, permitiendo en muchas ocasiones el proceso en tiempo real, pero a costa de una pérdida notable de flexibilidad. En relación a la importancia comercial de cada una de las distintas herramientas de desarrollo de redes neuronales citar, por ejemplo, un estudio aparecido en 1992 en la revista AI Expert analizando el mercado americano, en el que se detectan 36 empresas dedicadas a manufacturar este tipo de productos. En dicho estudio se incluyen hasta 58 productos distribuidos en: 35 productos de software de propósito general, 7 de software de propósito específico, tarjetas aceleradoras y chips específicos (15 productos) y 3 de ordenadores dedicados. En la tabla 1.3 se puede observar una serie de ejemplos de productos comerciales con su correspondiente dominio de aplicación. Hay que destacar que dichos productos están soportados por arquitecturas hardware convencionales. I. Introducción a la computación neuronal Producto 1.1 Vendedor Hardware Sistema Operativo Dominio CAD/Chem Custom Formulation System Al Ware HP; Sun; DEC ws; RS/6000 UNIX; VMS Diseño y formulación de productos químicos. Database Mining Workstation HNC _ _ Análisis y detección de relaciones entre elementos en BD (credit scoring, valoración de propiedades, predicción de demanda, detección de fraude de tarjetas). NeuroVision Vision Harvest PC DOS Clasificación de objetos por forma, color y textura (inspección de productos industriales y agrícolas). NT 5000 Neural Network Control System California Scientific Software _ _ Control de procesos en tiempo real NueX Smart Structures Tool Charles River Analytics Mac II Mac (Nexpert Object 2.0) Sistema híbrido RN/SE. Control de procesos, detección y aislamiento de averías, evaluación de daños. Process Insights Pavillon Technologies VAX y plataformas UNIX UNIX Sistema híbrido RN/lógica borrosa/sistemas caóticos. Control adaptativo de procesos de refinado petroquímico. Quality Plus HNC PC; Sun; SPARC Station DOS; UNIX Inspección de calidad de productos basada en imagen (clasificación de manzanas y cítricos, reciclado de botellas, evaluación de estado de autopistas, etc.). QuickStrokes HNC PC; Sun; SPARC Station DOS; UNIX Reconocimiento de caracteres manuscritos. Tabla 1.3.- Productos comerciales especializados [Sigüenza 93]. 1.8.2.- HERRAMIENTAS SOFTWARE DE DESARROLLO La comercialización de productos software ha sido y sigue siendo la forma más extendida para "simular" redes neuronales debido a las ventajas citadas anteriormente. La diferencia entre los distintos productos software radica en aspectos tales como el tipo y número de arquitecturas de red que soporta (backpropagation, Hopfield, Kohonen, etc.), velocidad de procesamiento (número de conexiones por unidad de tiempo), inteface gráfico, exportación del código C para el desarrollo automático de aplicaciones, etc. Respecto a las herramientas software desarrolladas en Europa, citar la obtenida del proyecto ESPRIT, no comercializada todavía y que funciona en estaciones de trabajo, bajo sistema operativo UNIX y con interface gráfico basado en X-windows. En España, el grupo de redes neuronales del Instituto de Ingeniería del Conocimiento ha desarrollado el I. Introducción a la computación neuronal 1.1 producto comercial SARA (Shell de Algoritmos de Retropropagación Adaptativa), el cuál presenta como única arquitectura disponible el perceptrón multicapa, utilizando la denominada regla delta como mecanismo de aprendizaje y como medio de corrección de errores distintas versiones del algoritmo backpropagation. A su vez, funciona sobre una gran variedad de máquinas y entornos, desde PCs a mainframes. En el momento actual existen un número bastante elevado de productos software para el desarrollo de aplicaciones con redes neuronales. A la hora de decidirse por la utilización de una u otra, conviene tener muy claro el tipo de uso que se va a hacer de la misma. Es preferible elegir entre aquellos productos que se centran en pocas arquitecturas pues, en muchos casos, cuando ofrecen una gran variedad de las mismas, no todas las incluidas son plenamente funcionales. Otros aspectos importantes a tener en cuenta son, por ejemplo, la forma de leer los datos durante la fase de aprendizaje (si se leen del disco en vez de la memoria, el proceso se hace largo y tedioso), la inclusión de módulos para el análisis de resultados o la posibilidad de generar código C incluyendo los pesos obtenidos. Algunos ejemplos de productos comerciales se incluyen en la tabla 1.4: Producto Vendedor Hardware Sistema Operativo ANSim SAIC PC DOS AnSkit SAIC PC DOS Autonet Peak Software PC DOS Brain Maker California Scientific Software PC; PS/2; Mac DOS DynaMind NeuroDynamix PC DOS ExpertNet ImageSoft PC DOS; Windows Genesis Neural Systems PC DOS HNet AND America PC (ANDcoprocessor) DOS; Windows MacBrain Neurix Mac NetBuilder NeuralWare PC DOS NETS COSMIC/NASA PC; Mac; VAX; Sun; HP 9000 DOS; UNIX: VMS NeuralCASE NeuroSym PC DOS Neuraldesk Neural Computer Sciences PC Windows Neurokit Software Bytes PC DOS NeuroShell Ward Systems PC DOS NeuralWorks Explorer NeuralWare PC; Mac DOS; Mac N-Net Al Ware PC; PS/2; Sun; SPARC; VAX DOS; UIX; VMS SARA IIC PC; PS/2 DOS ExploreNet HNC PC DOS; Windows Neural Network IBM PS/2 DOS; Windows; OS/2 Utility/2 I. Introducción a la computación neuronal Neural Network 1.1 IBM AS/400 OS/400 NeuralWare PC; PS/2; Mac; RS/6000; Sun; DOS; OS/2; UNIX; VMS Utility/400 Neuralworks Pro II/Plus SPARC; DEC; HP; Silicon Graphics Tabla 1.4.- Herramientas de desarrollo software comerciales [Sigüenza 93]. 1.8.3 NEUROCOMPUTADORES DE PROPÓSITO GENERAL Como se ha dicho anteriormente, un neurocomputador es básicamente un conjunto de procesadores conectados con una cierta regularidad que operan concurrentemente. En contraposición con los de propósito especial, un neurocomputador de propósito general debe ser capaz de emular un gran número de modelos de red neuronal. En los neurocomputadores comerciales actuales, se ha adaptado el concepto de memoria virtual, propio de los ordenadores convencionales, a la idea de red neuronal virtual. Según esta idea, el usuario define la red neuronal que quiere simular, y mapea dicha red sobre una serie de procesadores de manera que cada procesador simula, en tiempos diferentes, distintas neuronas de la red. Esto obliga a que cada procesador debe tener acceso a cierta cantidad de memoria donde almacenará los estados de aquellas neuronas que en algún instante van a contribuir con su estado a la activación de la neurona simulada por el procesador y los pesos a través de los cuales le llegarán estas contribuciones. Un neurocomputador de propósito general estará formado por un conjunto de procesadores de forma que en cada paso, cada uno de ellos recupera de su memoria local los pesos wij y los estados xi de las neuronas conectadas a la neurona que en aquel momento está simulando, realiza la suma de los productos y transmite el nuevo estado al resto de los elementos de proceso a través del bus de comunicaciones. Paralelamente, el procesador está recibiendo los estados actualizados del resto de las neuronas, que almacena en la memoria de "nuevos estados". Cuando todas las neuronas se hallan actualizado, la memoria de "nuevos estados" se carga en la memoria de "estados actuales", que servirá como base para el siguiente cálculo. De manera similar, para poder trabajar con reglas de aprendizaje, cada procesador debe llevar asociado dos memorias de pesos, la de "pesos actuales" y la de "pesos nuevos". Los neurocomputadores de propósito general pueden subdividirse en dos grupos: - Placas coprocesadoras y - Matrices de procesadores paralelos. Estas dos categorías se diferencian básicamente en el número y complejidad de las unidades de proceso que utilizan, de forma que su frontera es, a veces, difícil de establecer. Placas coprocesadoras Son placas basadas en microprocesadores convencionales o DPSs junto con una cierta cantidad de memoria que se conectan a PCs o estaciones de trabajo y permiten acelerar significativamente la simulación de la red neuronal. I. Introducción a la computación neuronal 1.1 El Mark III está formado por un conjunto de procesadores Motorola 68020 asociados cada uno de ellos a un co-procesador de punto flotante 68881, con la estructura típica antes mencionada. La placa es directamente conectable a VAX-VME, y se distribuye junto con un paquete software que se encarga de la asignación dinámica de los elementos de proceso a las neuronas virtuales. Soporta hasta 65.000 neuronas y 1.000.000 de conexiones susceptibles de ser entrenadas, con una velocidad de proceso de 45.000 conexiones por segundo. El Mark IV (versión mejorada) soporta hasta 256.000 neuronas, 5.500.000 de sinápsis y procesa hasta 5.000.000 de interconexiones por segundo. Tanto Mark III como IV comparten el mismo entorno software: el ANSE (Artificial Neural System Environment). Este entorno facilita la definición de la red, su edición, almacenamiento y recuperación, y se encarga asímismo de su ejecución sobre el hardware específico a través de un compilador. El ANZA es un coprocesador conectable a cualquier IBM PC/AT o compatible. Consta de un microprocesador MC68020 junto con un coprocesador matemático 68881 y 4 Mbytes de memoria. Es capaz de simular redes de hasta 30.000 neuronas y 480.000 sinápsis, a velocidades de hasta 25.000 sinápsis/segundo en fase de aprendizaje, o 45.000 sinápsis/segundo en fase de relajación. La comunicación ANZA-PC/AT se hace a través del paquete UISL (User Interface Subroutine Library) que facilita, además, la definición de la red a simular. El UISL contiene modelos de un gran número de redes conocidas. El ANZA Plus es capaz de simular redes de hasta 1.000.000 de neuronas y 15.000.000 de conexiones, a velocidades de 1.500.000 sinápsis/segundo en aprendizaje y 6.000.000 sinápsis/segundo en fase de relajación. El Delta-Sigma es un conjunto formado por un procesador de punto flotante, el Delta, instalable en PCs y una estación de trabajo especialmente diseñada para la simulación de redes neuronales basada en un 80386 más un coprocesador 80387 (Sigma). Dispone de un paquete software (el ANSim) que permite la definición de las redes a simular. El conjunto es capaz de simular redes de hasta 1.000.000 de neuronas y 10.000.000 de sinápsis, a velocidades de hasta 2.000.000 sinápsis/segundo. Matrices de Procesadores Se trata de matrices de unidades procesadoras conectadas con una topología más o menos regular. Son extensiones de las estructuras vistas hasta ahora. El CONE (COmputation Network Environment) desarrollado por IBM se basa en el Network Emulation Processor (NEP), un procesador expandible que actúa como coprocesador para PCs. Se pueden interconectar hasta 256 NEPs a través del bus de comunicaciones Nepbus. Globalmente, el conjunto NEP-CONE puede procesar hasta 106 neuronas con 4.106 conexiones. El NEP incluye un TMS320 (DSP a 5 MIPs), una RAM de datos de 64Kx16, una RAM de programa de 4Kx16 y 3 interfaces. Cada NEP puede emular alrededor de 4.000 neuronas y 16.000 conexiones, con velocidades de 30 a 50 actuaciones de la red por segundo. El NNETS (Neural Network Environment Transputer System) desarrollado en el Johnson Space Center (NASA) contiene 40 transputer (32 bits, 10 MIPs, 256 Kbytes de memoria) interconectados a través de 4 líneas serie, full-duplex de 10 Mbits. I. Introducción a la computación neuronal 1.1 Por último citaremos el RISC Neural basado en un array de procesadores tipo RISC (Reduced Instruction Set Computer). El procesador se ha diseñado a medida y contiene un juego de instrucciones con 16 operaciones básicas. Las unidades de proceso se interconectan de forma lineal. Una unidad de comunicaciones en cada procesador se encarga del protocolo de control de los 4 buses de 16 bits. Hay 3 señales de control de comunicaciones por procesador. Cada unidad de comunicaciones contiene, además, dos registros que permiten el acceso a un procesador en particular (registro de nombre) o a un conjunto de ellos (registro de capa). Los mensajes son paquetes de 3 palabras de 16 bits: el nombre o capa, que define el destino del mensaje; la dendrita, que define el registro de entrada; y la señal, que define el valor asociado a la entrada. Cada red puede soportar 64 K procesadores (216) y cada procesador puede emular hasta 64 K neuronas virtuales. 1.8.4 NEUROCOMPUTADORES DE PROPÓSITO ESPECIAL Son aquellos que han sido diseñados para implementar un modelo específico de red neuronal. Como ejemplos tomaremos el sistema de reconocimiento de imágenes de Wisard o el coprocesador para redes realimentadas del Centro Nacional de Microelectrónica y la Universidad Autónoma de Barcelona (CNM-UAB). El primero es un sistema desarrollado específicamente para el procesamiento de imágenes. Se basa en una serie de celdas RAM que operan como discriminantes de la imagen. Los discriminantes se entrenan con imágenes que se asocian a clases. Durante la fase de aprendizaje, el sistema selecciona el discriminante que, de acuerdo con la clasificación deseada, se asocia a la imagen que se está viendo y se registran bits a 1 en las celdas de los bloques de memoria direccionados por la imagen. Si la imagen se presenta fuera de la fase de entrenamiento exactamente igual a como la "vio" durante el aprendizaje, el sistema genera "1" en todas las salidas. Si se le muestra una imagen que coincide parcialmente con la aprendida, el sistema produce un conjunto reducido de 1 a la salida. Un "calculador" se encarga de analizar el grado de similitud entre la imagen entrenada y la entrada en aquel instante, produciendo además una medida de "confianza". El compilador de Si de la UCL pretende combinar las altas prestaciones que ofrece el diseño a medida (propósito especial) con la flexibilidad de los neurocomputadores de propósito general. El usuario puede definir, a través de un lenguaje de alto nivel, la topología de la red, las funciones de estado siguiente y de aprendizaje; más unos ciertos parámetros básicos como el grafo de resolución de los estados y pesos. El compilador de Si genera la arquitectura utilizando una estructura regular de buses e implementa la red añadiendo celdas de biblioteca especializadas. Varios chips pueden interconectarse gracias a la ectructura de buses. El control central da acceso al bus de comunicaciones secuencialmente a cada unidad de proceso (PU). Cada PU se divide en dos partes: la unidad de pesos, encargada de implementar las sinápsis, y la unidad neuronal, encargada de realizar las funciones de la neurona. Finalmente, el coprocesador desarrollado en el CNM-UAB es un procesador conectable a PC, especialmente indicado para la emulación de redes neuronales realimentadas (tipo pseudo-Hopfield) con pesos discretos. Las características funcionales de este procesador son las siguientes: - Capacidad de trabajar con 4.096 neuronas binarias. - Posibilidad de aprendizaje (pesos variables). - Velocidad de proceso prevista de 109 sinápsis/segundo en caso de redes neuronales realimentadas. I. Introducción a la computación neuronal 1.1 Desde el punto de vista estructural, el procesador se articula como una placa que contiene: - Un co-procesador neuronal específicamente diseñado, que se implementaría mediante un circuito integrado de aplicación específica. - 4 Mbits de memoria RAM, necesarios para almacenar los pesos, y - La lógica necesaria para la comunicación placa/PC. Las redes neuronales realimentadas presentan una asombrosa tolerancia a fallos y una gran capacidad para rabajar con informaciones parciales e incompletas. Como contrapartida, su simulación (o emulación según sea el caso) es especialmente lenta por cuanto, a diferencia de las redes "feed-forward", en las qie la información se procesa linealmente desde la capa de entrada a la de salida, en las realimentadas la información de entrada produce una transición de estados (de longitud desconocida a priori) hacia una cofiguración estable. 1.8.5 IMPLEMENTACIÓN MICROELECTRÓNICA (VLSI) Debido a las dificultades para adptar correctamente las grandes estructuras de procesado de información a las necesidades de los algorítmos de las redes neuronales, se han buscado soluciones basadas en la implementación VLSI de dichas redes. En general, si la red ha estado previamente simulada, y su configuración de conexiones perfectamente determinada, se busca la implementación sobre un circuito de conexiones fijas. El primer problema que supone la solución microelectrónica corresponde a la elección de los dos aspectos siguientes: 1º Implementación analógica o digital. 2º Arquitectura en matriz de neuronas o de sinapsis. La respuesta a la primera cuestión tiene muchos matices, y es necesario hacer consideraciones sobre los aspectos relacionados con la precisión, velocidad, consumo, inmunidad al ruido, memoria, capacidad de aprendizaje, etc. Sin embargo, ningún aspecto es definitivo para una u otra alternativa. Existen algoritmos mejor adaptados a una solución u otra y problemas que se resuelven mejor con una alternativa que con otra. Desde el punto de vista de la arquitectura, es necesario pensar en las dos posibles alternativas matriciales: neuronas y sinápsis. En la matriz de neuronas cada nodo o neurona está localmente conectado a sus vecinos. El tipo de red y algoritmo definen la necesidad de interconexión, siendo éste un parámetro fundamental, ya que consume una gran cantidad de área del chip. La densdad de conexionado y la conexión con el exterior (entrada y salida) limitan, en definitiva, la capacidad de integración sobre un dado de silicio. En una matriz de sinapsis se da una organización tipo PLA (Programable Logic Array), con una serie de lineas horizontales correspondientes a los equipotenciales de entrada, y una serie de lineas verticales que corresponden a las líneas de suma de las neuronas. Cada sinapsis es una multiplicación. La presentación del panorama que actualmente existe en el ámbito de la implementación VLSI de redes neuronales resulta complicado por la gran cantidad de aportaciones existentes tanto en soluciones analógicas como digitales y con la alternativa de I. Introducción a la computación neuronal matriz de neuronas o de sinápsis [AEI 91]. 1.1 II. Fundamentos de las redes neuronales 2.1 II.- FUNDAMENTOS DE LAS REDES NEURONALES. 2.1.- EL MODELO BIOLÓGICO. La teoría y modelación de redes neuronales artificiales está inspirada en la estructura y funcionamiento de los sistemas nerviosos; en ellos, la neurona es el elemento fundamental. Existen neuronas de diferentes formas, tamaños y longitudes. Estos atributos son importantes para determinar la función y utilidad de la neurona. La clasificación de estas células en tipos estándar ha sido realizada por muchos neuroanatomistas. 2.1.1.- Estructura de la neurona. Una neurona es una célula viva y, como tal, contiene los mismos elementos que forman parte de todas las células biológicas. Además contienen elementos característicos que las diferencian. En general, una neurona consta de un cuerpo celular más o menos esférico, de 5 a 10 micras de diámetro, del que salen una rama principal, el axón, y varias ramas más cortas llamadas dendritas. A su vez el axón puede producir ramas entorno a su punto de arranque y, con frecuencia, se ramifica extensamente cerca de su extremo. Figura II.1 Forma general de una neurona. Una de las características que diferencian a las neuronas del resto de las células vivas es su capacidad de comunicarse. En términos generales, las dendritas y el cuerpo celular reciben señales de entrada; el cuerpo celular las combina e integra y emite señales de salida. El axón transporta esas señales a los terminales axónicos que se encargan de distribuir información a un nuevo conjunto de neuronas. Por lo general, una neurona recibe información de miles de II. Fundamentos de las redes neuronales 2.1 otras neuronas y, a su vez, envía información a miles de neuronas más. Se calcula que en el cerebro humano existen del orden de 1015 conexiones. 2.1.2.- Naturaleza bioeléctrica de la neurona. Las señales que se utilizan y a las que nos estamos refiriendo son de dos tipos distintos de naturaleza: eléctrica y química. La señal generada por la neurona y transportada a lo largo del axón es un impulso eléctrico; mientras que la señal que se transmite entre los terminales axónicos de una neurona y las dendritas de la neuronas siguientes es de origen químico; concretamente se realiza mediante moléculas de sustancias transmisoras (neurotransmisores) que fluyen a través de unos contactos especiales, llamados sinapsis, que juegan el papel de receptor y están localizados entre los terminales axónicos y las dendritas de la neurona siguiente (espacio sináptico, entre 50 y 200 Angstroms). La generación de las señales eléctricas está íntimamente relacionada con la composición de la membrana celular. Existen muchos procesos complejos relacionados con la generación de dichas señales, sin embargo, se pueden simplificar del siguiente modo: la neurona, como todas las células es capaz de mantener en su interior un líquido cuya composición difiere marcadamente de la composición del líquido de exterior. La diferencia más notable se da en relación con la concentración de los iones sodio y potasio. El medio externo es unas 10 veces más rico en sodio que el interno, mientras que el medio interno es unas 10 veces más rico en potasio que el externo. Esta diferencia de concentración en iones sodio y potasio a cada lado de al membrana produce una diferencia de potencial de aproximadamente 70 milivoltios, negativa en el interior de la célula. Es lo que se llama potencial de reposo de la célula nerviosa. Figura II.2 Propagación del impulso eléctrico a lo largo del axón. Afluencia localizada de iones sodio (Na+) seguida de una salida de iones potasio (K-) [AEIA 91]. La llegada de señales procedentes de otras neuronas a través de las dendritas (recepción de neurotransmisores) actúa acumulativamente, bajando ligeramente el valor del potencial de reposo. Dicho potencial modifica la permeabilidad de la membrana de manera que, cuando llega a un cierto valor crítico, comienza una entrada masiva de iones sodio, que invierten la polaridad de la membrana. La inversión del voltaje de la cara interior de la membrana cierra el paso a los iones sodio y II. Fundamentos de las redes neuronales 2.1 abre el paso a los iones potasio hasta que se restablece el equilibrio en reposo. La inversión del voltaje, conocida como potencial de acción, se propaga a lo largo del axón y a su vez, provoca la emisión de los neurotransmisores en los terminales axónicos. Figura II.3 La inversión de voltaje (potencial de acción) cierra el canal de sodio y abre el canal de potasio. La salida de iones potasio restablece rápidamente el potencial negativo [AEIA 91]. Después de un pequeño periodo refractario puede seguir un segundo impulso. El resultado de todo esto es la emisión por parte de la neurona de trenes de impulsos cuya frecuencia varía en función (entre otros factores) de la cantidad de neurotransmisores recibidos. Existen dos tipos de sinápsis: a) las sinápsis excitadoras, cuyos neurotransmisores provocan disminuciones de potencial en la membrana de la célula postsináptica, facilitando la generación de impulsos a mayor velocidad y b) las sinápsis inhibidoras, cuyos neurotransmisores tienden a estabilizar el potencial de la membrana, dificultando la emisión de impulsos. Casi todas las neuronas reciben entradas procedentes de sinápsis excitadoras e inhibidoras. En cada instante, alguna de ellas estarán activas y otras se hallarán en reposo; la suma de los efectos excitadores e inhibidores determina si la célula será o no estimulada, es decir, si emitirá o no un tren de impulsos y a qué velocidad. Para establecer una similitud directa entre la actividad sináptica y la analogía con las redes neuronales artificiales vamos a fijar los siguientes aspectos: Las señales que llegan a la sinápsis son las entradas a la neurona; éstas son ponderadas (atenuadas o amplificadas) a través de un parámetro denominado "peso" asociado a la sinápsis correspondiente. Estas señales de entrada pueden excitar a la neurona (sinápsis con peso positivo) o inhibirla (peso negativo). El efecto es la suma de de las entradas ponderadas. Si la suma es igual o mayor que el umbral de la neurona, entonces la neurona se activa (da salida). Esta es una situación "todo o nada"; cada neurona se activa o no se activa. La facilidad de transmisión de señales se altera mediante al actividad del sistema nervioso. Las sinápsis son susceptibles a al fatiga, deficiencia de oxígeno y a los agentes tales como los anestésicos. Otros eventos pueden incrementar el grado de activación. Esta habilidad de ajustar señales es un mecanismo de aprendizaje. Las funciones umbral integran la energía de las señales de entrada en el espacio y en el tiempo. II. Fundamentos de las redes neuronales 2.1 2.2.- ELEMENTOS DE UNA RED NEURONAL ARTIFICIAL. Las redes neurales son modelos que intentan reproducir el comportamiento del cerebro. Como tal modelo, realiza una simplificación, averiguando cuáles son los elementos relevantes del sistema, bien porque la cantidad de información de que se dispone es excesiva o bien porque es redundante. Una elección adecuada de sus características, más una estructura conveniente, es el procedimiento convencional utilizado para construir redes capaces de realizar una determinada tarea. Cualquier modelo de red neuronal consta de dispositivos elementales de proceso: las neuronas. A partir de ellas, se pueden generar representaciones específicas, de tal forma que un estado conjunto de ellas puede significar una letra, un número o cualquier otro objeto. En el siguiente apartado se realiza la "idealización" del funcionamiento neurobiológico descrito anteriormente que sirve de base de las redes neuronales artificiales (RNA). Generalmente, se pueden encontrar tres tipos de neuronas. 1) Aquellas que reciben estímulos externos, relacionadas con el aparato sensorial, que tomarán la información de entrada. 2) Dicha información se transmite a ciertos elementos internos que se ocupan de su procesado. Es en las sinápsis y neuronas correspondientes a este segundo nivel, donde se genera cualquier tipo de representación interna de la información. Puesto que no tienen relación directa con la información de entrada ni con la de salida, estos elementos se denominan "unidades ocultas". 3) Una vez ha finalizado el período de procesado, la información llega a las unidades de salida, cuya misión es dar la respuesta del sistema. La neurona artificial pretende mimetizar las características más importantes de la neuronas biológicas. Cada neurona i-ésima está caracterizada, en cualquier instante, por un valor numérico denominado valor o estado de activación ai(t); asociado a cada unidad, existe una función de salida, fi, que transforma el estado actual de activación en una señal de salida, yi. Dicha señal es enviada a través de los canales de comunicación unidireccionales a otras unidades de la red, en estos canales la señal se modifica de acuerdo con la sinapsis (el peso, wji) asociado a cada uno de ellos, según una determinada regla. Las señales moduladas que han llegado a la unidad j-ésima se combinan entre ellas generando así la entrada total, Install Equation Editor and double1Una función de activación, F, determina el Netj. click here to view equation. nuevo estado de activación aj(t+1) de la neurona, teniendo en cuenta la entrada total calculada y el anterior estado de activación aj(t). La dinámica que rige la actualización de los estados de las unidades (evolución de la red neural) puede ser de dos tipos; modo asíncrono y modo síncrono. En el primer caso, las neuronas evalúan su estado continuamente, según les va llegando información, y lo hacen de forma independiente. En el caso síncrono, la información también llega de forma continua, pero, los cambios se realizan simultáneamente, como si existiera un reloj interno que decidiera cuando deben cambiar su estado. Los sistemas biológicos quedan probablemente entre ambas posibilidades. II. Fundamentos de las redes neuronales 2.1 Figura II.4 Entradas y salidas de una neurona Uj. En los siguientes apartados se describirán los conceptos básicos de los distintos componentes de un modelo de red neural artificial: tipos de unidades de proceso o neuronas, su estado de activación, su función de salida y de activación, su conexión con otras neuronas y el concepto de aprendizaje de una red neuronal. 2.2.1.- Unidades de proceso: La neurona artificial. Si se tienen N unidades (neuronas), podemos ordenarlas arbitrariamente y designar la j-ésima unidad como Uj. Su trabajo es simple y único y consiste en recibir las entradas de las células vecinas y calcular un valor de salida, el cual es enviado a todas las células restantes. En cualquier sistema que se esté modelando, es útil caracterizar tres tipos de unidades: entradas, salidas y ocultas. Las unidades de entrada reciben señales desde el entorno; estas entradas (que son a la vez entradas a la red) pueden ser señales provenientes de sensores o de otros sectores del sistema. Las unidades de salida envían la señal fuera del sistema (salidas de la red), estas señales pueden controlar directamente potencias u otros sistemas. Las unidades ocultas son aquellas cuyas entradas y salidas se encuentran dentro del sistema, es decir, no tiene contacto con el exterior. Se conoce como capa o nivel a un conjunto de neuronas cuyas entradas provienen de la misma fuente (que puede ser otra capa de neuronas) y cuyas salidas se dirigen al mismo destino (que puede ser otra capa de neuronas). El estudio más detallado de la estructura de las edes neuronales los trataremos al final del capítulo, ahora nos centraremos en la modelización de la neurona artificial. 2.2.2.- Estado de activación Adicionalmente al conjunto de unidades, la representación necesita de los estados del sistema en un tiempo t. Esto se especifica, por un vector de N números reales A(t), que representa el estado de activación del conjunto de unidades de procesamiento. Cada elemento del vector representa la activación de una unidad en el tiempo t. La activación de una unidad Ui en el tiempo t se designa por ai(t), es decir: II. Fundamentos de las redes neuronales 2.1 A(t) =(a1(t), a2(t), ..., ai(t),...,aN(t)) El procesamiento que realiza la red se ve como la evolución de un patrón de activación en el conjunto de unidades que lo componen, a través del tiempo. Todas las neuronas que componen la red se hallan en un cierto estado. En una visión simplificada podemos decir que hay dos posibles estados, reposo y excitado, a los que denominaremos globalmente estados de activación, y a cada uno de los cuales se le asigna un valor. Los valores de activación pueden ser contínuos o discretos. Además, pueden ser limitados o ilimitados. Si son discretos, suelen tomar un conjunto pequeño de valores o bien valores binarios. En notación binaria, un estado activo se indicaría por un 1, y se caracteriza por la emisión de un impulso por parte de la neurona (potencial de acción), mientras que un estado pasivo se indicaría por un 0 y significaría que la neurona está en reposo. En otros modelos se considera un conjunto continuo de estados de activación, en lugar de sólo dos estados, en cuyo caso se les asigna un valor entre [0,1] o en el intervalo [-1,1], generalmente siguiendo una función sigmoidal. Finalmente, es necesario saber qué criterios o reglas siguen las neuronas para alcanzar tales estados de activación. En principio, esto va a depender de dos factores: a) Por un lado, puesto que las propiedades macroscópicas de las redes neuronales no son producto de actuación de elementos individuales, sino del conjunto como un todo, es necesario tener idea del mecanismo de interación entre las neuronas. El estado de activación estará fuertemente influenciado por tales interaciones, ya que el efecto que producirá una neurona sobre otra será proporcinal a la fuerza, peso o magnitud de la conexión entre ambas. b) Por otro lado, la señal que envía cada una de las neuronas a sus vecinas dependerá de su propio estado de activación. 2.2.3.- Función de salida o de transferencia Entre las unidades o neuronas que forman una red neural artificial existe un conjunto de conexiones que unen unas a otras. Cada unidad transmite señales a aquellas que están conectadas con su salida. Asociada con cada unidad Ui hay una función de salida fi(ai(t)), la cual transforma el estado actual de activación ai(t) en una señal de salida yi(t), es decir: yi(t) = fi(ai(t)) El vector que contiene las salidas de todas las neuronas en un instante t es: Y(t) = (f1(a1(t)), f2(a2(t)),..., fi(ai(t)),..., fN(aN(t))) En algunos modelos, esta salida es igual al nivel de activación de la unidad, en cuyo caso la función fi es la función identidad, fi(ai(t)) = ai(t). A menudo fi es de tipo sigmoidal y suele ser, por lo general, la misma para todas las unidades. Existen cuatro funciones de transferencia típicas que determinan distintos tipos de neuronas: * Función escalón * Función lineal y mixta * Sigmoidal * Función Gaussiana. La función escalón o umbral únicamente se utiliza cuando las salidas de la red son II. Fundamentos de las redes neuronales 2.1 binarias (dos posibles valores). La salida de una neurona se activa sólo cuando el estado de activación es mayor o igual que un cierto valor umbral ( la función puede estar desplazada sobre los ejes.). La función lineal o identidad equivale a no aplicar función de salida. Se usa muy poco. Las funciones mixta y sigmoidal son las más apropiadas cuando queremos como salida información analógica. Veámos con más detalle las distintas funciones: 2.2.3.1.- Neurona de función escalón. La forma más fácil de definir la activación de una neurona es considerar que ésta es binaria. La función de transferencia escalón se asocia a neuronas binarias en las cuales cuando la suma de las entradas es mayor o igual que el umbral de la neurona, la activación es 1; si es menor, la activación es 0 (ó -1). Por otro lado, las redes formadas por este tipo de neuronas son fáciles de implementar en hardware, pero a menudo, sus capacidades son limitadas. Figura II.5 Función de transferencia escalón. 2.2.3.2.- Neuronas de función lineal y mixta. La función lineal o identidad responde a la expresión f(x) = x. En las neuronas con función mixta, si la suma de las señales de entrada es menor que un límite inferior, la activación se define como 0 (ó -1). Si dicha suma es mayor o igual que el límite superior, entonces la activación es 1. Si la suma de entrada está comprendida entre ambos límites superior e inferior, entonces la activación se define como una función lineal de la suma de las señales de entrada. Podemos representar las funciones de activación como indica la figura siguiente, en ella se toma el límite superior de la suma de todas las entradas de activación que afectan a la neurona durante el ciclo de operación (x) como c y el límite inferior como -c; y es la salida de activación de la neurona. II. Fundamentos de las redes neuronales 2.1 Figura II.6 Funciones de activación mixta. 2.2.3.3.- Neuronas de función contínua (sigmoidal). Cualquier función definida simplemente en un intervalo de posibles valores de entrada, con un incremento monotónico y que tenga ambos superiores e inferiores límites (por ejemplo, las funciones sigmoidal o arcotangente) podrá realizar la función de activación o de transferencia de forma satisfactoria. Figura II.7 Funciones de activación contínuas. Con la función sigmoidal, para la mayoría de los valores del estímulo de entrada (variable independiente), el valor dado por la función es cercano a uno de los valores asintóticos. Esto hace que en la mayoría de los casos, el valor de salida esté comprendido en la zona alta o baja del sigmoide. De hecho, cuando la pendiente es elevada, esta función tiende a la función escalón. Sin embargo, la importancia de la función sigmoidal (o cualquier otra función similar), es que su derivada es siempre positiva y cercana a cero para los valores grandes positivos o negativos, además toma su valor máximo cuando x es 0. Esto hace que se puedan utilizar las reglas de aprendizaje definidas para las funciones escalón con la ventaja, respecto a esta función, de que la derivada está definida en todo el intervalo. La función escalón no podía definir la derivada en el punto de transición y esto no ayuda a los métodos de aprendizaje en los cuales se usan derivadas. 2.2.3.4.- Función de transferencia gaussiana. II. Fundamentos de las redes neuronales 2.1 Los centros y anchura de estas funciones pueden ser adaptados, lo cual las hace más adaptativas que las funciones sigmoidales. Mapeos que suelen requerir dos niveles ocultos (neuronas en la red que se encuentran entre las de entrada y las de salida) utilizando neuronas con funciones de transferencia sigmoidales; algunas veces se pueden realizar con un sólo nivel en redes con neuronas de función gaussiana. Figura II.8 Función de transferencia Gaussiana. 2.2.4.- Conexiones entre neuronas. Las conexiones que unen a las neuronas que forman una RNA tienen asociado un peso, que es el que hace que la red adquiera conocimiento. Consideremos yi como el valor de salida de una neurona "i" en un instante dado. Una neurona recibe un conjunto de señales que le dan información del estado de activación de todas las neuronas con las que se encuentra conectada. Cada conexión (sinápsis) entre la neurona i y la neurona j está ponderada por un peso wji. Normalmente, como simplificación, se considera que el efecto de cada señal es aditivo, de tal forma que la entrada neta que recibe una neurona (potencial postsináptico) netj es la suma del producto de cada señal individual por el valor de la sinapsis que conecta ambas neuronas: Install Equation Editor and doubleclick here to view equation. Esta regla muestra el procedimiento a seguir para combinar los valores de entrada a una unidad con los pesos de las conexiones que llegan a esa unidad y es conocida como regla de propagación. Suele utilizarse una matriz W con todos los pesos wji que reflejan la influencia que sobre la neurona j tiene la neurona i. W es un conjunto de elementos positivos, negativos o nulos. Si wji es positivo, indica que la interacción entre las neuronas i y j es excitadora, es decir, siempre que la neurona i esté activada, la neurona j recibirá una señal de i que tenderá a activarla. Si wji es negativo, la sinápsis será inhibidora. En este caso, si i está activada, enviará una señal a j que tenderá a desactivar a ésta. Finalmente, si wji= 0 se supone que no hay conexión entre ambas. 2.2.5.- Función o regla de activación Así como es necesario una regla que combine las entradas a una neurona con los pesos de las conexiones, también se requiere una regla que combine las entradas con el estado actual de la neurona para producir un nuevo estado de activación. Esta función "F" produce un nuevo estado de activación en una neurona a partir del estado (ai) que existía y la combinación de las entradas con los pesos de las conexiones (neti ). Dado el estado de activación ai(t) de la unidad Ui y la entrada total que llega a ella, Neti , el estado de activación siguiente ai(t+1) se obtiene aplicando una función F llamada función de activación. II. Fundamentos de las redes neuronales 2.1 ai(t+1) = F(ai(t), Neti) En la mayoría de los casos F es la función identidad, por lo que el estado de activación de una neurona en t+1 coincidirá con el Net de la misma en t. En este caso, el parámetro que se le pasa a la función de salida, "f", de la neurona será directamente el Net. El estado de activación anterior no se tiene en cuenta. Según esto, la salida de una neurona "i" (yi ) quedará según la expresión: Figura II.9 Por tanto, y en lo sucesivo, consideraremos únicamente la función f que denominaremos indistintamente de transferencia o de activación. Además, normalmente la función de activación no suele estar centrada en el origen del eje que representa el valor de la entrada neta; sino que existe un cierto desplazamiento debido a las características internas de la propia neurona y que no es igual en todas ellas. Esta valor se denota como θi y representa el umbral de activación de la neurona i. Figura II.10 La salida que se obtiene en una neurona para las diferentes formas de la función f serán: II. Fundamentos de las redes neuronales a) función de activación escalón Si el conjunto de los estados de activación es E = {0,1} tenemos que: 1 si [Neti > θi] yi(t+1) = y(t) si Neti = θi 0 si [Neti < θi] Si el conjunto es E = {-1, 1} tendremos que: +1 si [Neti > θi] yi(t+1) = y(t) si Neti = θ -1 si [Neti < θi] Figura II.11 b) función de activación lineal o identidad El conjunto de estados E puede contener cualquier número real, el estado de activación coincide con la entrada total que ha llegado a la unidad. yi(t+1) = Neti - θi Figura II.12 c) función de activación lineal-mixta yi(t+1) = b Neti <= b + θi Neti - θi b + θi < Neti < B + θi B Neti >= B Figura II.13 2.1 II. Fundamentos de las redes neuronales 2.1 Con esta función el estado de activación de la unidad está obligado a permanecer dentro de un intervalo de valores reales prefijados. d) función de activación sigmoidal Es una función continua, por tanto, el espacio de los estados de activación es un intervalo del eje real. Install Equation Editor and doubleclick here to view equation. Figura II.14 Para simplificar la expresión de la salida de una neurona i, es habitual considerar la existencia de una neurona flicticia, con valor de salida unidad, asociada a la entrada de cada neurona i mediante una conexión con peso de valor -θi. De esta forma la expresión de salida quedará: Figura II.15 2.2.6.- Regla de aprendizaje. Existen muchas definiciones del concepto general de "aprendizaje", una de ellas podría ser: "la modificación del comportamiento inducido por la interacción con el entorno y como resultado de II. Fundamentos de las redes neuronales 2.1 experiencias conducente al establecimiento de nuevos modelos de respuesta a estímulos externos". Esta definición fue enunciada muchos años antes de que surgieran las redes neuronales, sin embargo puede ser aplicada también a los procesos de aprendizaje de estos sistemas. Biológicamente, se suele aceptar que la información memorizada en el cerebro está mas relacionada con los valores sinápticos de las conexiones entre las neuronas que con ellas mismas, es decir, el conocimiento se encuentra en las sinapsis. En el caso de las redes neuronales artificiales se puede considerar que el conocimiento se encuentra representado en los pesos de las conexiones entre neuronas. Todo proceso de aprendizaje implica un cierto número de cambios en estas conexiones. En realidad puede decirse que se "aprende" modificando los valores de los pesos de la red. Al igual que el funcionamiento de una red depende del número de neuronas de las que disponga y de cómo estén conectadas entre sí, cada modelo dispone de su o sus propias técnicas de aprendizaje. Se realizará un estudio más completo de las distintas reglas de aprendizaje en el siguiente capítulo, a igual que nos referiremos a ellas cuando se realize un estudio detallado del los tipos de redes neuronales más importantes. 2.2.7.- Representación vectorial. En ciertos modelos de redes neuronales se utiliza la forma vectorial como herramienta de representación de algunas magnitudes. Si consideramos una red formada por varias capas de neuronas idénticas, podemos considerar las salidas de una cierta capa de n unidades como Install Equation Editor and doubleun vector n-dimensional click here to view equation. 7.Si este vector n-dimensonal de salida representa los valores de entrada de todas las unidades de una capa m-dimensional, cada una de las unidades de esta capa poseerá n pesos asociados a las conexiones procedentes de la capa anterior. Por tanto, hay m vectores de pesos n-dimensionales asociados a la capa m. El vector de pesos Install Equation Editor and doubleclick here to view equation. 8. de la j-ésima unidad tendrá la forma: La entrada neta de la j-ésima unidad se puede escribir en forma de producto escalar del vector de entradas por el vector de pesos. Cuando los vectores tienen igual dimensión, este producto se define como la suma de los productos de los componentes correspondientes a ambos vectores: Install Equation Editor and click here to view equation. en donde n representa en número unidad. La ventaja de la notación de conexiones de la j-ésima vectorial es que la anterior Install Equation Editor and doubleclick here to view equation. ecuación se puede puede escribir de la forma: Según esta notación, utilizaremos vectores de entrada, vectores de salida y vectores de peso, aunque hay que tener presente que se reserva la notación vectorial para los casos en los que resulta especialmente adecuada. II. Fundamentos de las redes neuronales 2.1 2.3.- ESTRUCTURA DE UNA RED NEURONAL ARTIFICIAL. Una vez presentados en el apartado anterior los componentes más importantes de una red neuronal: * Unidades de procesamiento (la neurona artificial). * Estado de activación de cada neurona. * Patrón de conectividad entre neuronas. * Regla de propagación. * Función de trasferencia. * Regla de activación. * Regla de aprendizaje. centrados, sobre todo, en las características de cada nodo de la red (Micro-estructura), veamos ahora cómo está organizada dicha red (Meso-estructura) en función de: * Número de niveles o capas. * Número de neuronas por nivel. * Patrones de conexión. * Flujo de información. Figura II.16 Factores modificables de una red neuronal a nivel de meso-estructura. 2.3.1.- Niveles o capas de neuronas. La distribución de neuronas dentro de la red se realiza formando niveles o capas de un número determinado de neuronas cada una. En base a su situación dentro de la red, se pueden distinguir tres tipos de capas: - De entrada: Es la capa que recibe directamente la información proveniente de las fuentes externas a la red. - Ocultas: Son internas a la red y no tienen contacto directo con el entorno exterior. El número de niveles ocultos puede estar entre cero y un número elevado. Las neuronas de las II. Fundamentos de las redes neuronales 2.1 capas ocultas pueden estar interconectadas de distintas maneras, lo que determina, junto con su número, las distintas tipologías de redes neuronales. - De salida: Transfieren información de la red hacia el exterior. En la siguiente figura se muestra el esquema de la estructura de una posible red multicapa en la que cada nodo o neurona únicamente está conectada con neuronas de un nivel superior. Notar que hay muchas más conexiones que nodos. En este sentido, se dice que una red es "totalmente conectada" si todas las salidas desde un nivel llegan a todos y cada uno de los nodos del nivel siguiente. Figura II.17 Estructura de una red multinivel con todas las conexiones hacia adelante. 2.3.2.- Formas de conexión entre neuronas La conectividad entre los nodos de una red neuronal está relacionada con la forma en que las salidas de las neuronas están canalizadas para convertirse en entradas de otras neuronas. La señal de salida de un nodo puede ser una entrada de otro elemento de proceso o incluso ser una entrada de sí mismo (conexión auto-recurrente). Cuando ninguna salida de las neuronas es entrada de neuronas del mismo nivel o de niveles precedentes, la red se describe como de "propagación hacia adelante" (figura II.17). Cuando las salidas pueden ser conectadas como entradas de neuronas de niveles previos o del mismo nivel, incluyéndose ellas mismas, la red es de "propagación hacia atrás" (figura II.18). Las redes de propagación hacia atrás que tienen lazos cerrados son sistemas recurrentes. II. Fundamentos de las redes neuronales Figura II.18 Ejemplos de conexiones con "propagación hacia atrás". 2.1 III. Clasificación de las redes neuronales 3.1 III. CARACTERÍSTICAS DE LAS REDES NEURONALES Existen cuatro aspectos que caracterizan una red neuronal: su topología, el mecanismo de aprendizaje, tipo de asociación realizada entre la información de entrada y de salida y, por último, la forma de representación de estas informaciones. En este capítulo se describen estas características aplicadas a los modelos de redes neuronales más conocidos. 3.1.- TOPOLOGíA DE LAS REDES NEURONALES. Como se adelantó en el tema anterior, la topología o arquitectura de las redes neuronales consiste en la organización y disposición de las neuronas en la red formando "capas" o agrupaciones de neuronas más o menos alejadas de la entrada y salida de la red. En este sentido, los parámetros fundamentales de la red son: el número de capas, el número de neuronas por capa, el grado de conectividad y el tipo de conexiones entre neuronas. Cuando se realiza una clasificación de las redes en términos topológicos se suele distinguir entre las redes con una sola capa o nivel de neuronas y las redes con multiples capas (2, 3, etc..). En los siguientes apartados se analizarán ambos tipos de redes. 3.1.1.- Redes monocapa (1 capa). En las redes monocapa, como la red de HOPFIELD y la red BRAIN-STATE-IN-A-BOX, se establecen conexiones laterales entre las neuronas que pertenencen a la única capa que constituye la red. También pueden existir conexiones autorrecurrentes (salida de una neurona conectada a su propia entrada), aunque en algún modelo, como el de HOPFIELD, esta recurrencia no se utiliza. Una topología equivalente a la de las redes de 1 capa es la denominada topología crossbar (barras cruzadas). Una red de este tipo (p.ej. la red LEARNING MATRIX) consiste en una matriz de terminales (de entrada y salida) o barras que se cruzan en unos puntos a los que se les asocia un peso. Esta representación crossbar suele utilizarse como etapa de transición cuando se pretende implementar físicamente una red monocapa, puesto que es relativamente sencillo desarrollar como "hardware" una estructura como la indicada (p.ej. las barras cruzadas serían cables y los puntos de conexión resistencias cuyos valores representarían los pesos de la red). Finalmente, indicar que las redes monocapa se utilizan típicamente en tareas relacionadas con lo que se conoce como autoasociación; por ejemplo, para regenerar informaciones de entrada que se presentan a la red incompletas o distosionadas. En la tabla 3.1 se muestran las características tipológicas de los modelos de redes monocapa más conocidos. III. Clasificación de las redes neuronales TIPOS DE CONEXIONES CON CONEXIONES LATERALES EXPLICITAS CON CONEXIONES AUTORRECURRENTES 3.1 MODELO DE RED BRAIN-SATATE-IN-A-BOX ADDITIVE GROSSBERG (AG) SHUNTING GROSSBERG (SG) OPTIMAL LINEAR ASOC.MEMO. NO AUTORECURR. HOPFIELD BOLTZMANN MACHINE CAUCHY MACHINE CROSSBAR LEARNING MATRIX (LM) Tabla 3.1.- Redes neuronales monocapa 3.1.2.- Redes multicapa. Las redes multicapa son aquellas que disponen de conjuntos de neuronas agrupadas en varios (2,3,etc.) niveles o capas. En estos casos una forma para distinguir la capa a la que pertenece una neurona consistiría en fijarse en el origen de las señales que recibe a la entrada y el destino de la señal de salida. Normalmente todas las neuronas de una capa reciben señales de entrada de otra capa anterior, más cercana a las entrada de la red, y envían las señales de salida a una capa posterior, más cercana a la salida de la red. A estas conexiones se les denomina conexiones hacia delante o feedfoward. Sin embargo, en un gran número de éstas redes también exite la posibilidad de conectar las salidas de las neuronas de capas posteriones a las entradas de las capas anteriores, a estas conexiones se les denomina conexiones hacia atrás o feedback. Estas dos posibilidades permiten distinguir entre dos tipos de redes con múltiples capas: las redes con conexiones hacia delante o REDES FEEDFOWARD, y las redes que disponen de conexiones tanto hacia delante como hacia atrás o REDES FEEDFOWARD/FEEDBACK. 3.1.3.1.- Redes con conexiones hacia delante (feedfoward). En las redes feedfoward todas las señales neuronales se propagan hacia delante a III. Clasificación de las redes neuronales 3.1 través de las capas de la red. No existen conexiones hacia atrás (ninguna salida de neuronas de una capa i se aplica a la entrada de neuronas de capas i-1, i-2,...), y normalmente tampoco autorecurrentes (salida de una neurona aplicada a su propia entrada), ni laterales (salida de una neurona aplicada a la entrada de neuronas de la misma capa), excepto en el caso de los modelos de red propuestos por Kohonen denominados LEARNING VECTOR QUANTIZER (LVQ) y TOPOLOGY PRESERVING MAP (TPM), en las que existen unas conexiones implícitas muy particulares entre las neuronas de la capa de salida. Las redes feedfoward más conocidas son: PERCEPTRON, ADALINE, MADALINE, LINEAR ADAPTIVE MEMORY (LAM), DRIVE-REINFORCEMENT, BACK-PROPAGATION. Todas ellas son especialmente útiles en aplicaciones de reconocimiento o clasificación de patrones. 3.1.3.2.- Redes con conexiones hacia delante y hacia atrás (feedfoward/feedback). En este tipo de redes circula información tanto hacia delante (foward) como hacia atrás (backward) durante el funcionamiento de la red. Para que esto sea posible existen conexiones feedfoward y conexiones feedback entre las neuronas. En general, excepto el caso particular de las redes COGNITRON y NEOCOGNITRON, suelen ser bicapa (2 capas), existiendo por tanto dos conjuntos de pesos: los correspondientes a las conexiones feedfoward de la primera capa (capa de entrada) hacia la segunda (capa de salida) y los de las conexiones feedback de la segunda a la primera. Los valores de los pesos de estos dos tipos de conexiones no tienen por que coincidir, siendo diferentes en la mayor parte de los casos. Este tipo de estructura (bicapa) es particularmente adecuada para realizar una asociación de una información o patrón de entrada (en la primera capa) con otra información o patrón de salida en la segunda capa (lo cual se conoce como heteroasociación), aunque también pueden ser utilizadas para la clasificación de patrones. Algunas redes de este tipo tienen un funcionamiento basado en lo que se conoce como "resonancia", de tal forma que las informaciones en la primera y segunda capas interactúan entre sí hasta que alcanzan un estado estable. Este funcionamiento permite un mejor acceso a las informaciones almacenadas en la red. Los dos modelos de red feedfoward/feedback de dos capas más conocidas son la red ART (Adaptive Resonance Theory) y la red BAM (Bidirectional Associative Memory). También en este grupo de redes existen algunas que tienen conexiones laterales entre neuronas de la misma capa. Estas conexiones se diseñan como conexiones excitadoras (con peso positivo) permitiendo la cooperación entre neuronas o como inhibidoras (con peso negativo) estableciéndose una competiciónentre las neuronas correspondientes. Una red de este tipo que además dispone de conexiones auto-recurrentes es la denominada CABAM (Competitive Adaptive Bidirectional Associative Memory). Finalmente comentar la existencia de un tipo de red feedfoward/feedback multicapa muy particular, denominada NEOCOGNITRON, en la que las neuronas se disponen en planos superpuestos (capas bidimensionales), lo cual permite que puedan eliminarse las variaciones geométricas (tamaños, giros, desplazamientos) o distorsiones que presenten las informaciones o patrones de entrada a la red. III. Clasificación de las redes neuronales 3.1 En la tabla 3.2 se muestran las características topológicas de las redes multicapa con conexiones hacia delante y hacia delante/atrás. III. Clasificación de las redes neuronales Nº DE CAPAS TIPO DE CONEXIONES 3.1 MODELO DE RED ADALINE/MADALINE 2 C A P A S CONEXIONES HACIA DELANTE FEEDFORWARD PERCEPTRON LINEAR/ASSOC REWAR.PENALTY LINEAR ASSOCIATIVE MEMORY OPTIMAL LINEAR ASSOC. MEM. DRIVE-REINFORCEMENT (DR) CONEXIONES LATERALES IMPLÍTITAS Y AUTORREC. LEARNING VECTOR QUANTIZER TOPOLOGY PRESERVING MAP (TPM) CONEX. DELANTE /ATRAS (FEEDFOWARD/FEEDBACK) SIN CONEX. LATERALES BIDIRECTIONAL ASSOC. MEM. (BAM) ADAPTIVE BAM. TEMPORAL ASSOC. MEMORY (TAM) FUZZY ASSOCIATIVE MEMORY (FAM) CON CONEXIONES LATERALES Y COMPETITIVE ADAPTIVE BAM III. Clasificación de las redes neuronales 3.1 AUTOREC. ADAPTIVE RESONANCE THEORY (ART) 3 CONEXIONES HACIA DELANTE SIN CONEXIONES LATERALES ADAPTIVE HEURISTIC CRITIC (AHC) (FEEDFOWARD) BOLTZMANN/CAUCHY MACHINE CON CONEXIONES LATERALES COUNTERPROPAGATION BOLTZMANN/CAUCHY MACHINE CONEXIONES ADELANTE/ATRÁS Y LATERALES BOLTZMANN/CAUCHY MACHINE CONEXIONES HACIA DELANTE BACK-PROPAGATION (BPN) FEEDFOWARD-FEEDBACK (JERARQUIA DE NIVELES DE CAPAS BIDIMENSIONALES) COGNITRON/NEOCOGNITRON N Tabla 3.2.- Redes neuronales multicapa más conocidas. 3.2.- MECANISMO DE APRENDIZAJE. El aprendizaje es el proceso por el cual una red neuronal modifica sus pesos en respuesta a una información de entrada. Los cambios que se producen durante el proceso de aprendizaje se reducen a la destrucción, modificación y creación de conexiones entre las neuronas. En los sistemas biológicos existe una contínua creación y destrucción de conexiones. En los modelos de redes neuronales artificiales la creación de una nueva conexión implica que el peso de la misma pasa a tener un valor distinto de cero. De la misma forma, una conexión se destruye cuando su peso pasa a ser cero. Durante el proceso de aprendizaje los pesos de las conexiones de la red sufren modificaciones, por tanto se puede afirmar que este proceso ha terminado (la red ha "aprendido") cuando los valores de los pesos permanecen estables (dwij/dt=0). Un aspecto importante respecto al aprendizaje en las redes neuronales es el conocer cómo se modifican los valores de los pesos, es decir, cuáles son los criterios que se siguen para cambiar el valor asignado a las conexiones cuando se pretende que la red "aprenda" una nueva información. III. Clasificación de las redes neuronales 3.1 Estos criterios determinan lo que se conoce como la regla de aprendizaje de la red. De forma general se suelen considerar dos tipos de reglas: las que responden a lo que habitualmente se conoce como aprendizaje supervisado y las correspondientes a un aprendizaje no supervisado. Es por ello por lo que una de las clasificaciones que se realizan de las redes neuronales obedece al tipo de aprendizaje utilizado por dichas redes. Así se pueden distinguir: - Redes Neuronales con aprendizaje supervisado. - Redes Neuronales con aprendizaje no supervisado. La diferencia fundamental entre ambos tipos estriba en la existencia o no de un agente externo ("supervisor") que controle el proceso de aprendizaje de la red. Otro criterio que se puede utilizar para diferenciar las reglas de aprendizaje se basa en considerar si la red puede "aprender" durante su funcionamiento habitual o si el aprendizaje supone la "desconexión" de la red, es decir su inhabilitación hasta que el proceso termine. En el primer caso se trataría de un aprendizaje ON LINE, mientras que el segundo es lo que se conoce como aprendizaje OFF LINE. Cuando el aprendizaje es OFF LINE se distingue entre una fase de aprendizaje o entrenamiento y una fase de operación o funcionamiento, existiendo un conjunto de datos de entrenamiento y un conjunto de datos de test o prueba que serán utilizados en la correspondiente fase. En las redes con aprendizaje OFF LINE los pesos de las conexiones permanecen fijos después que termina la etapa de entrenamiento de la red. Debido precisamente a su carácter estático, estos sistemas no presentan problemas de estabilidad en su funcionamiento. En las redes con aprendizaje ON LINE no se distingue entre fase de entrenamiento y de operación, de tal forma que los pesos varían dinámicamente siempre que se presente una nueva información al sistema. En este tipo de redes, debido al caracter dinámico de las mismas, el estudio de la estabilidad suele ser un aspecto fundamental de estudio. 3.2.1.- Redes con aprendizaje supervisado. El aprendizaje supervisado se caracteriza porque el proceso de aprendizaje se realiza mediante un entrenamiento controlado por un agente externo (supervisor, maestro, profesor) que determina la respuesta que debería generar la red a partir de una entrada determinada. El supervisor comprueba la salida de la red y en el caso de que ésta no coincida con la deseada se procederá a modificar los pesos de las conexiones con el fin de conseguir que la salida obtenida se aproxime a la deseada. En este tipo de aprendizaje se suelen considerar a su vez tres formas de llevarlo a cabo que dan lugar a los siguientes de aprendizajes supervisados: - Aprendizaje por corrección de error. - Aprendizaje por refuerzo. - Aprendizaje estocástico. 3.2.2.1.- Aprendizaje por corrección de error. III. Clasificación de las redes neuronales 3.1 Consiste en ajustar los pesos de las conexiones de la red en función de la diferencia entre los valores deseados y los obtenidos en la salida de la red, es decir, en función del error cometido en la salida. Una regla o algoritmo simple de aprendizaje por corrección de error podría consistir en el siguiente: Install Equation Editor and doubleclick here to view equation. Siendo: Δwji: Variación en el peso de la conexión entre las neuronas i y j (Δwji = wjiactual wjianterior). yi: Valor de salida de la neurona i. dj: Valor de salida deseado para la neurona j. yj: Valor de salida obtenido en la neurona j. α : Factor de aprendizaje (0 < α <= 1) que regula la velocidad del aprendizaje. Un ejemplo de este tipo de algoritmo lo constituye la regla de aprendizaje del PERCEPTRON, utilizada en el entrenamiento de la red del mismo nombre que desarrolló Rosenblatt en 1958 [Rosenblatt 58]. Sin embargo, existen otros algoritmos mas evolucionados que éste, que presenta algunas limitaciones como el no considerar la magnitud del error global cometido durante el proceso completo de aprendizaje de la red, considerando únicamente los errores individuales (locales) correpondientes al aprendizaje de cada información por separado. Un algoritmo muy conocido que mejora el del Perceptron y permite un aprendizaje más rápido y un campo de aplicación más amplio es el propuesto por Widrow y Hoff en 1960 [Widrow 60], denominado regla delta o regla del mínimo error cuadrado ("LMS Error": LeastMean-Squared Error), también conocida como regla de de Widrow-Hoff, que se aplicó en las redes desarrolladas por los mismos autores conocidas como ADALINE (Adaptative Linear Element) con una única neurona de salida, y MADALINE (Multiple ADALINE) con varias neuronas de salida. Widrow y Hoff definieron una función que permitía cuantificar el error global cometido en cualquier momento durante el proceso de entrenamiento de la red, lo cual es III. Clasificación de las redes neuronales 3.1 importante ya que cuanta mas información se tenga sobre el error cometido, mas rápido se puede aprender. Este error medio se expresa de la siguiente forma: Install Equation Editor and doubleclick here to view equation. Siendo: N: Número de neuronas de salida (en el caso de ADALINE N=1). P: Número de informaciones que debe "aprender" la red. Install Equation Editor and doubleclick here to view equation. 3 información k-ésima. : Error cometido en el aprendizaje de la Por tanto, de lo que se trata es de encontrar unos pesos para las conexiones de la red que minimicen esta función de error. Para ello, el ajuste de los pesos de las conexiones de la red se puede hacer de forma proporcional a la variación relativa del error que se obtiene al variar el peso correspondiente: Install Equation Editor and doubleclick here to view equation. Mediante este procedimiento se llegan a obtener un conjunto de pesos con los que se consigue minimizar el error medio. Otro algoritmo de aprendizaje por corrección de error lo constituye el denominado regla delta generalizada o algoritmo de retropropagación del error ("error backpropagation"), también conocido como regla LMS (Least-Mean-Square Error) multicapa. Se trata de una generalización de la regla delta para poder aplicarla a redes con conexiones hacia delante (feedfoward) con capas o niveles internos u ocultos de neuronas que no tienen relación con el exterior. Son redes con capa de entrada, capas ocultas y capa de salida. Estas redes multicapa pueden utilizarse en muchas más aplicaciones que las ya conocidas Perceptron, ADALINE y MADALINE, pero su proceso de aprendizaje es mucho mas lento debido a que durante el mismo se debe explorar el espacio de posibles formas de utilización de las neuronas de las capas ocultas, es decir, se debe establecer cual va a ser su papel en el funcionamiento de la red. Las bases de este nuevo método de aprendizaje (al que Rumelhart, Hinton y Williams llamaron back-propagation) fueron sentadas por diferentes investigadores [Werbos 74], [Parker 82], [Le Cun 85], [Rumelhart 86] que propusieron soluciones al problema del entrenamiento de redes multicapa, de forma independiente y sin conocimiento de la existencia de otros trabajos paralelos. Existe también una version recurrente del algoritmo back-propagation que se suele utilizar en redes multicapa que presentan conexiones recurrentes con el fin de que estas redes "aprendan" la naturaleza temporal de algunos datos ([Pineda 87], [Almeida 87], [Rohwer 87]). Para concluir con los algoritmos por corrección de error, mencionar que también se utilizan en algunas redes monocapa con conexiones laterales y autorrecurrentes, como es el caso de la red BRAIN-STATE-IN-A-BOX (BSB), introducida por Anderson, Silverstein Ritz y Jones en 1977 [Anderson 77]. Aunque en una primera fase el aprendizaje de esta red es sin supervisión, se suelen refinar los valores de los pesos de las conexiones mediante un aprendizaje por corrección de error basado en una adaptación de la regla delta de Widrow- III. Clasificación de las redes neuronales 3.1 Hoff. 3.2.1.2.- Aprendizaje por refuerzo. Se trata de un aprendizaje supervisado, más lento que el anterior, que se basa en la idea de no disponer de un ejemplo completo del comportamiento deseado, es decir de no indicar durante el entrenamiento exactamente la salida que se desea proporcione la red ante una determinada entrada. En el aprendizaje por refuerzo la función del supervisor se reduce a indicar mediante una "señal de refuerzo" si la salida obtenida en la red se ajusta a la deseada ("exito"=+1 o "fracaso"=-1), y en función de ello se ajustan los pesos basandose en un mecanismo de probabilidades. Se podría decir que en este tipo de aprendizaje la fución del supervisor se asemeja mas a la de un crítico (que "opina" sobre la respuesta de la red) que a la de un maestro (que "indica" a la red la respuesta concreta que debe generar) como ocurría en el caso de supervisión por corrección de error. Un ejemplo de algoritmo por refuerzo lo constituye el denominado Linear RewardPenalty o LR-P (algoritmo lineal con recompesa y penalización) presentado por Narendra y Thathacher en 1974 [Narendra 74]. Este algoritmo ha sido ampliado por Barto y Anandan, quienes en 1985 [Barto 85] desarrollaron el denominado Associative Reward-Penalty o AR-P (algoritmo asociativo con recompensa y penalización) que se aplica en redes con conexiones hacia delante de dos capas cuyas neuronas de salida presentan una función de activación estocástica. Otro algoritmo por refuerzo es el conocido como Adaptive Heuristic Critic introducido por Barto, Sutton y Anderson en 1983 [Barto 83] que se utiliza en redes feedfoward de tres capas especialmente diseñadas para que una parte de la red sea capaz de generar un valor interno de refuerzo que es aplicado a las neuronas de salida de la red. 3.2.1.3.- Aprendizaje estocástico. Este tipo de aprendizaje consiste básicamente en realizar cambios aleatorios en los valores de los pesos de las conexiones de la red y evaluar su efecto en términos del objetivo deseado y de distribuciones de probabilidad. En el aprendizaje estocástico se suele hacer una analogía en términos termodinámicos asociando la red neuronal con un solido físico que tiene un cierto estado energético. En el caso de la red la energía de la misma representaría el grado de estabilidad de la red, de tal forma que el estado de mínima energía correspondería a una situación en la que los pesos de las conexiones consiguen que su funcionamiento sea el que mas se ajusta al objetivo deseado. Según lo anterior, el aprendizaje consistiría en realizar un cambio aleatorio de los valores de los pesos y determinar la energía de la red (habitualmente la función energía es una función denominada de Lyapunov). Si la energía es menor despues del cambio, es decir si el comportamiento de la red se acerca al deseado, se acepta el cambio. Si por el contrario la energía no es menor, se aceptaría el cambio en función de una determinada y preestablecida distribución de probabilidades. Una red que utiliza este tipo de aprendizaje es la conocida como BOLTZMANN III. Clasificación de las redes neuronales 3.1 MACHINE, ideada por Hinton, Ackley y Sejnowski en 1984 [Hinton 84] que lo combina con el aprendizaje Hebbiano (se describirá en el siguiente apartado) o con aprendizaje por corrección de error (como la regla delta). La red BOLTZMANN MACHINE es una red con diferentes topologías alternativas pero siempre con unas neuronas ocultas que permiten, mediante un ajuste probabilístico, introducir un ruido que va siendo decrecido durante el proceso de aprendizaje para escapar de los mínimos relativos (locales) de la función de energía favoreciendo la búsqueda del mínimo global. El procedimiento de utilizar ruido para escapar de mínimos locales suele denominarse "simulated annealing" (temple simulado) y su combinación con la asignación probabilística mediante la capa oculta es lo que se conoce como aprendizaje estocástico. El término simulated annealing proviene del símil termodinámico antes mencionado. La idea es asemejar la red con un sólido físico que inicialmente presenta una alta temperatura (ruido) y que se va enfriando gradualmente hasta alcanzar el equlibrio térmico (mínima energía). Existe otra red basada en este tipo de aprendizaje denominada CAUCHY MACHINE desarrollada por Szu en 1986 [Szu 86] que es un refinamiento de la anterior y que utiliza un procedimiento mas rápido de búsqueda del mínimo global y una función de probabilidad diferente (la distrubución de probabilidad de Cauchy frente a la de Boltzmann utilizada en la red anterior). TIPO DE APRENDIZAJE SUPERVISADO MODELO DE RED PERCEPTRON APRENDIZAJE POR CORRECCION DE ERROR OFF LINE ADALINE/MADALINE BACK-PROPAGATION BRAIN-STATE-IN-A-BOX COUNTERPROPAGATION LlNEAR REWARD PENALTY APRENDIZAJE POR REFUERZO ON LINE ASSOCIATIVE REW. PENALTY ADAPTIVE HEURISTIC CRITIC APRENDIZAJE ESTOCASTICO OFF LINE BOLTZMANN MACHINE CAUCHY MACHINE Tabla 3.3.- Tipos de redes con aprendizaje supervisado más conocidos. III. Clasificación de las redes neuronales 3.1 3.2.2.- Redes con aprendizaje no supervisado. Las redes con aprendizaje no supervisado (también conocido como auto-supervisado) no requieren influencia externa para ajustar los pesos de las conexiones entre sus neuronas. La red no recibe ninguna información por parte del entorno que le indique si la salida generada en respuesta a una determinada entrada es o no correcta; por ello suele decirse que estas redes son capaces de "auto-organizarse". Estas redes deben encontrar las características, regularidades, correlaciones o categorías que se puedan establecer entre los datos que se presenten en su entrada. Puesto que no hay un supervisor que indique a la red la respuesta que debe generar ante una entrada concreta, cabría preguntarse precisamente por lo que la red genera en estos casos. Existen varias posibilidades en cuanto a la interpretación de la salida de estas redes, que dependen de su estructura y del algoritmo de aprendizaje empleado. En algunos casos la salida representa el grado de familiaridad o similitud entre la información que se le está presentando en la entrada y las informaciones que se le han mostrado hasta entonces (en el pasado). En otro caso podría realizar una "clusterización" (clustering) o establecimiento de categorías, indicando la red a la salida a qué categoría pertenece la información presentada a la entrada, siendo la propia red quien debe encontrar las categorías apropiadas en base a correlaciones entre las informaciones presentadas. Una variación de esta categorización es el prototipado. En este caso la red obtiene ejemplares o prototipos representantes des las clases a las que pertenecen las informaciones de entrada. También el aprendizaje sin supervisión permite realizar una codificación de los datos de entrada, generando a la salida una versión codificada de la entrada, con menos bits pero manteniendo la información relevante de los datos. Finalmente, algunas redes con aprendizaje no supervisado lo que realizan es un mapeo de características (feature mapping), obteniendose en la neuronas de salida una disposición geométrica que representa un mapa topográfico de las características de los datos de entrada, de tal forma que si se presentan a la red informaciones similares, siempre sean afectadas neuronas de salida próximas entre sí, en la misma zona del mapa. En cuanto a los algoritmos de aprendizaje no supervisado, en general se suelen considerar dos tipos que dan lugar a los siguientes aprendizajes: - Aprendizaje Hebbiano. - Apendizaje Competitivo y Cooperativo. En el primer caso normalmente se pretende medir la familiaridad o extraer características de los datos de entrada, mientras que el segundo suele orientarse hacia la "clusterización" o clasificación de dichos datos. 3.2.2.1.- Aprendizaje Hebbiano. Este tipo de aprendizaje se basa en el siguiente postulado formulado por Donald O. Hebb en 1949 [Hebb 49]: "Cuando un axón de una celda A está suficientemente cerca como para conseguir excitar una celda B y repetida o persistentemente toma parte en su activación, algún proceso III. Clasificación de las redes neuronales 3.1 de crecimiento o cambio metabólico tiene lugar en una o ambas celdas de tal forma que la eficiencia de A, cuando la celda a activar es B, aumenta". Por celda Hebb entiende un conjunto de neuronas fuertemente conexionadas a través de una estructura compleja. La eficiencia podría identificarse con la intensidad o magnitud de la conexión, es decir con el peso. Se puede decir, por tanto, que el aprendizaje Hebbiano consiste básicamente en el ajuste de los pesos de las conexiones de acuerdo con la correlación (multiplicación en el caso de valores binarios +1 y -1) de los valores de activación (salidas) de las dos neuronas conectadas: Install Equation Editor and doubleclick here to view equation. Esta expresión responde a la idea de Hebb, puesto que si las dos unidades son activas (positivas) se produce un reforzamiento de la conexión. Por el contrario, cuando una es activa y la otra pasiva (negativa) se produce un debilitamiento de la conexión. Se trata de una regla de aprendizaje no supervisado, pues la modificación de los pesos se realiza en función de los estados (salidas) de las neuronas obtenidos tras la presentación de un cierto estímulo (información de entrada a la red), sin tener en cuenta si se deseaba obtener o no esos estados de activación. Este tipo de aprendizaje fue empleado por Hopfield en la conocida red que lleva su nombre (RED HOPFIELD), introducida en 1982 y muy extendida en la actualidad, debido principalmente a la relativa facilidad en su implementación en circuitos integrados VLSI. Grossberg lo utilizó en 1968 [Grossberg 68] en la red denominada "ADDITIVE GROSSBERG" y en 1973 [Grossberg 73] en la red "SHUNTING GROSSBERG". En ambos casos se trataba de redes de una capa con conexiones laterales y auto-recurrentes. La red feedfoward llamada LEARNING MATRIX (LM) desarrollada por Steinbuch en 1961 [Steinbuch 61] también "aprendía" mediante la correlación Hebbiana. En esta red las neuronas se conectaban en forma matricial, asignándose un peso a cada punto de conexión, peso que se obtenía mediante una regla tipo Hebbiana. Otras redes que utilizan el aprendizaje Hebbiano son: la red feedfoward/feedback de 2 capas denominada BIDIRECTIONAL ASSOCIATIVE MEMORY (BAM) desarrollada por Kosko en 1988 [Kosko 88]; la red desarrollada por Amari en 1972 [Amari 72] llamada "TEMPORAL ASSOCIATIVE MEMORY (TAM)", con la misma topología que la anterior pero ideada para "aprender" la naturaleza temporal de las informaciones que se le muestran (para recordar valores anteriores en en tiempo); la red feedfoward de 2 capas conocida como LINEAR ASSOCIATIVE MEMORY (LAM), introducida por Anderson en 1968 [Anderson 68] y refinada por Kohonen [Kohonen 77]; y la red OPTIMAL LINEAR ASSOCIATIVE MEMORY (OLAM), desarrollada de forma independiente por Wee en 1968 [Wee 68] y por Kohonen y Ruohonen en 1973 [Kohonen 73], que presenta dos variantes, una con topología feedback/feedfoward con una única capa y otra feedfoward de 2 capas, utilizando una versión optimizada del método de correlación Hebbiano usado en la red LAM, denominado "optimal least mean square correlation". Existen muchas variaciones del aprendizaje Hebbiano, por ejemplo Sejnowski en 1977 [Sejnowski 77] utilizó la correlación de la covarianza de los valores de activación de las neuronas. Sutton y Barto en 1981 [Sutton 81] utilizaron la correlación del valor medio de una neurona con la varianza de la otra. Klopf en 1986 [Klopf 86] propuso una correlación entre las variaciones de los valores de activación en dos instantes de tiempo sucesivos, aprendizaje al III. Clasificación de las redes neuronales 3.1 que denominó "DRIVE-REINFORCEMENT" y que utilizó en redes del mismo nombre con topología feedfoward de 2 capas. Otra versión de este aprendizaje es el denominado Hebbiano diferencial que utiliza la correlación de las derivadas en el tiempo de las funciones de activación de las neuronas. El aprendizaje Hebbiano diferencial es utilizado en la red feedfoward/feedback de dos capas denominada ABAM ("Adaptive Bidirectional Associative Memory") introducida por Kosko en 1987 [Kosko 87b]. También este autor en 1987 [Kosko 87a] presentó una red con la misma topología que la anterior, pero utilizando otra versión de este aprendizaje, el denominado aprendizaje Hebbiano difuso ("Fuzzy Hebbian learning"); esta red tenía por nombre "FUZZY ASSOCIATIVE MEMORY (FAM)" y se basaba en la representación de las informaciones que debía "aprender" la red en forma de conjuntos difusos. Finalmente, comentar la existencia de redes basadas en mecanismos de aprendizaje que resultan de la combinación de la correlación Hebbiano con algún otro método, como es el caso de las redes BOLTZMANN MACHINE y CAUCHY MACHINE (mencionadas en el apartado 2.1.3.) que lo combinan con el ya comentado "simulated annealing". También la red feedfoward de 3 capas llamada COUNTERPROPAGATION (CPN), desarrollada por HechtNielsen en 1987 [Hecht-Nielsen 87], utiliza un aprendizaje que es combinación del Hebbiano y de un tipo de aprendizaje competitivo introducido por Kohonen denominado learning vector quantization (LVQ). 3.2.2.2.- Aprendizaje Competitivo y Cooperativo. En las redes con aprendizaje competitivo (y cooperativo), suele decirse que las neuronas compiten (y cooperan) unas con otras con el fin de llevar a cabo una tarea dada. Con este tipo de aprendizaje se pretende que cuando se presente a la red una cierta información de entrada, sólo una de las neuronas de salida de la red, o una por un cierto grupo de neuronas, se active (alcance su valor de respuesta máximo). Por tanto, las neuronas compiten por activarse, quedando finalmente una, o una por grupo, como neurona "vencedora" (winner-takeall unit) quedando anuladas el resto, que son forzadas a sus valores de respuesta mínimos. La competición entre neuronas se realiza en todas las capas de la red, existiendo en estas neuronas conexiones recurrentes de auto-excitación y conexiones de inhibición (signo negativo) por parte de neuronas vecinas. Si el aprendizaje es cooperativo, estas conexiones con las vecinas serán de excitación (signo positivo). El objetivo de este aprendizaje es categorizar ("clusterizar") los datos que se introducen en la red. De esta forma, las informaciones similares son clasificadas formando parte de la misma categoría y por tanto deben activar la misma neurona de salida. La clases o categorías deben ser creadas por la propia red, puesto que se trata de un aprendizaje no supervisado, a través de las correlaciones entre los datos de entrada. Una forma de aplicar este tipo de aprendizaje fue propuesta por Rumelhart y Zisper en 1985 [Rumelhart 85], quienes utilizaban redes multicapa dividiendo cada capa en grupos de neuronas, de tal forma que éstas disponían de conexiones inhibitorias con otras neuronas de su mismo grupo y conexiones excitadoras con las neuronas de la siguiente capa. En una red de este tipo, después de recibir diferentes informaciones de entrada, cada neurona en cada grupo se especializa en la respuesta a determinadas características de los datos de entrada. En este tipo de redes, cada neurona tiene asignado un peso total, suma de todos los pesos de las conexiones que tiene a su entrada. El aprendizaje afecta sólo a las neuronas III. Clasificación de las redes neuronales 3.1 ganadoras (activas), redistribuyendo este peso total entre sus conexiones, sustrayendo una porción a los pesos de todas las conexiones que llegan a la neurona vencedora y repartiendo esta cantidad por igual entre todas las conexiones procedentes de unidades activas. Por tanto, la variación del peso de una conexión entre una unidad i y otra j será nula si la neurona j no recibe excitación por parte de la neurona i (no vence en presencia de un estímulo por parte de i), y se modificará (se reforzará) si es excitada por dicha neurona i. Un ejemplo de este tipo de aprendizaje es el desarrollado por Kohonen [Kohonen 88b] conocido como "LEARNING VECTOR QUANTIZATION (LVQ)", aplicado a redes feedfoward de dos capas. El LVQ puede aplicarse de forma diferente según se precise obtener una o varias unidades vencedoras en la capa de salida. Existe también una extensión supervisada del LVQ basada en un mecanismo por corrección de error [Kohonen 89]. Una variación del aprendizaje supervisado aplicado a redes multicapa consiste en imponer una inhibición mutua entre neuronas únicamente cuando están a una cierta distancia unas de otras (suponiendo que las neuronas se han dispuesto geométricamente, por ejemplo formando capas bidimensionales). Existe entonces un area o region de vencindad (vicinity area) alrededor de las neuronas que constituye su grupo local. Fukushima empleó esta idea en 1975 [Fukushima 75] en una red multicapa llamada COGNITRON, fuertemente inspirada en la anatomía y fisiología del sistema visual humano, y en 1980 [Fukushima 80] en una versión mejorada de la anterior denominada NEOCOGNITRON (también en 1983 [Fukushima 83] se presentó una variación de esta red, utilizando aprendizaje supervisado). El Neocognitron disponía de un gran numero de capas con una arquitectura muy específica de interconexiones entre ellas, y era capaz de aprender a diferenciar caracteres aunque éstos se presentasen a diferente escala, en difente posición o distorsionados. El aspecto geométrico de la disposición de las neuronas de una red también es la base de un caso particular de aprendizaje competitivo introducido por Kohonen en 1982 [Kohonen 82] conocido como feature mapping (mapeo de características), aplicado en redes con una disposición bidimensional de las neuronas de salida, que permiten obtener mapas topológicos o topográficos ("topology preserving maps", "topographic maps", "self-organizating maps") en los que, de algun modo, estarían representadas las caracterísitcas principales de las informaciones presentadas a la red. De esta forma, si la red recibe informaciones con características similares, se generarían mapas parecidos, puesto que serían afectadas neuronas de salida próximas entre sí. Para concluir este apartado, comentar la existencia de otro caso particular del aprendizaje competitivo denominado Teoría de la Resonancia Adaptativa ("Adaptive Resonance Theory"), desarrollado por Carpenter y Grossberg en 1986 [Carpenter 86] y utilizado en la red feeedfoward/feedback de dos capas conocida como ART (en sus dos variantes: ART1 que trabaja con información binaria y ART2 [Carpenter 87] que maneja información analógica). Esta red realiza un prototipado de las informaciones que reciben a la entrada, generando como salida un ejemplar o prototipo que representa a todas las informaciones que podrían considerarse pertenecientes a la misma clase o categoría. La teoría de la resonancia adaptativa se basa en la idea de hacer "resonar" la información de entrada con los prototipos de las categorías que reconoce la red, si entra en resonancia con alguno (es suficientemente similar), la red considera que pertenece a dicha categoría y únicamente realiza una pequeña adaptación del prototipo (para que se parezca algo más al dato presentado). Cuando no "resuena" con ningun prototipo, no se parece a III. Clasificación de las redes neuronales 3.1 ninguno de los existentes ("recordados por la red") hasta ese momento, la red se encarga de crear una nueva categoría con el dato de entrada como prototipo de la misma. En la tabla 3.4 se muestra una clasificación de las redes neuronales con aprendizaje supervisado más importantes: TIPO DE APRENDIZAJE NO SUPERVISADO MODELO DE RED HOPFIELD O F F APRENDIZAJE HEBBIANO L I N E LEARNING MATRIX TEMPORAL ASSOC. MEMORY LINEAR ASSOCIATIVE MEMORY (LAM) OPTIMAL LAM DRIVE-REINFORCEMENT FUZZY ASSOCIATIVE MEMORY O N ADDITIVE GROSSBERG L I N E SHUNTING GROSSBERG BIDIRECTIONAL ASSOCIATIVE MEMORY (BAM) ADAPTIVE BAM APRENDIZAJE COMPETITIVO /COOPERATIVO O F F LEARNING VECTOR QUANTIZER LI NE COGNITRON/NEOCOGNITRON TOPOLOGY PRESERVING MAP III. Clasificación de las redes neuronales ON ADAPTIVE RESONANCE THEORY Tabla 3.4.- Redes con aprendizaje no supervisado más conocidas. 3.1 III. Clasificación de las redes neuronales 3.1 3.3.- TIPO DE ASOCIACION ENTRE LAS INFORMACIONES DE ENTRADA Y SALIDA. Las redes neuronales son sistemas que almacenan una cierta información "aprendida"; esta información se registra de forma distribuida en los pesos asociados a las conexiones entre neuronas. Por tanto, puede imaginarse una red como un cierto tipo de memoria que almacena unos datos de forma estable, datos que se grabarán en dicha memoria como consecuencia del aprendizaje de la red y que podrán ser leidos a la salida como respuesta a una cierta información de entrada, comportándose entonces la red como lo que habitualmente se conoce por memoria asociativa; es decir, cuando se aplica un estímulo (dato de entrada) la red responde con una salida asociada a dicha información de entrada. Existen dos formas primarias de realizar esta asociación entre entrada/salida que se corresponden con la naturaleza de la infomación almacenada en la red. Una primera sería la denominada heteroasociación, que se refiere al caso en el que la red "aprende" parejas de datos (A1,B1), (A2,B2),..(AN,BN), de tal forma que cuando se presente una cierta información de entrada Ai deberá responder generando la correspondiente salida asociada Bi. La segunda se conoce como autoasociación, donde la red "aprende" unas ciertas informaciones A1, A2,..AN, de tal forma que cuando se le presenta una información de entrada realizará una autocorrelación, respondiendo con uno de los datos almacenados, el más parecido al de entrada. Estos dos mecanismos de asociación dan lugar a dos tipos de redes neuronales: las redes heteroasociativas y las autoasociativas. Una red heteroasociativa podría considerase como aquella que computa una cierta función, que en la mayoría de los casos no podrá expresarse analíticamente, entre un conjunto de entradas y un conjunto de salidas, correspondiendo a cada posible entrada una determinada salida. Por otra parte, una red autoasociativa es una red cuya principal misión es reconstruir una determinada información de entrada que se presenta incompleta o distorsionada (le asocia el dato almacenado más parecido). En realidad, estos dos tipos de modelos de redes no son diferentes en principio, porque una red heteroasociativa puede siempre ser reducida a una autoasociativa mediante la concatenación de una información de entrada y su salida (respuesta) asociada, para obtener la información de entrada de la red autoasociativa equivalente. También puede conseguirse que una red autoasociativa se comporte como una heteroasociativa, simplemente presentando, como entrada parcial de la autoasociativa, la información de entrada para la heteroasociativa y haciendo que la red complete la información para producir lo que sería la salida de la red heteroasociativa equivalente. 3.3.1.- Redes heteroasociativas. Las redes heteroasociativas, al asociar informaciones de entrada con diferentes informaciones de salida, precisan al menos de 2 capas, una para captar y retener la información de entrada y otra para mantener la salida con la información asociada. Si esto no fuese así se perdería la información inicial al obtenerse el dato asociado, lo cual no debe ocurrir ya que en el proceso de obtención de la salida se puede necesitar acceder varias veces a esta información que, por tanto, deberá permanecer en la capa de entrada. En cuanto a su conectividad, existen redes heteroasociativas con conexiones hacia III. Clasificación de las redes neuronales 3.1 delante o feedfoward (PERCEPTRON, BACK-PROPAGATION, etc.), redes con conexiones hacia atrás o feedfoward/feedback (ART, BAM, etc.) y redes con conexiones laterales (CABAM). También hay redes heteroasociativas con las neuronas dispuestas en capas multidimensionales (NEOCOGNITRON, TOPOLOGY PRESERVING MAP). El aprendizaje de este tipo de resdes puede ser con supervisión (PERCEPTRON, BACK-PROPAGATION, etc.) o sin supervisión (ART, BAM, etc.). Las redes heteroasociativas pueden también clasificarse en base al objetivo pretendido con su utilización. Así, en algunos casos el objetivo es computar una función general de su entrada. En otros casos el objetivo es realizar una clasificación, relacionando (mapeando) un gran número de informaciones de entrada con un pequeño número de informaciones de salida que representan los conjuntos en los que se pueden clasificar los datos de entrada. 3.3.3.- Redes autoasociativas. Una red autoasociativa asocia una información de entrada con el ejemplar más parecido de los almacenados "conocidos" por la red. Este tipo de redes pueden implementarse con una sola capa de neuronas. Esta capa comenzará reteniendo la información inicial presentada a la entrada y terminará representando la información autoasociada. Si se quiere mantener la información de entrada y salida se deberían añadir capas adicionales; sin embargo, la funcionalidad de la red puede conseguirse en una sola capa. En cuanto a la conectividad en este tipo de redes, existen conexiones laterales entre las neuronas (HOPFIELD, etc.) y. en algunos casos, conexiones autorrecurrentes (salida de una neurona como entrada de la misma), como ocurre con las redes BRAIN-STATE-IN-A-BOX, ADDITIVE GROSSBERG, etc.. En relación con el tipo de aprendizaje, habitualmente el utilizado por estas redes es no supervisado (HOPFIELD, ADDITIVE GROSSBERG, etc..), aunque existe alguna con aprendizaje supervisado (BRAIN-STATE-IN-A-BOX). Las redes autoasociativas suelen utilizarse en tareas de filtrado de información para la reconstrucción de datos eliminando distorsiones o ruido. También se utilizan para explorar relaciones entre informaciones similares, para facilitar la búsqueda por contenido en bases de datos y para resolver problemas de optimización. En la tabla 3.5 se muestra el tipo de asociación realizada por los modelos de redes neuronales mas conocidos. III. Clasificación de las redes neuronales REDES HETEROASOCIATIVAS REDES AUTOASOCIATIVAS PERCEPTRON BRAIN-STATE-IN-A-BOX ADALINE/MADALINE HOPFIELD BACK-PROPAGATION OPTIMAL LINEAR ASSOCIATIVE MEMORY LINEAR REWARD PENALTY ASSOCIATIVE REWARD PENALTY ADDITIVE GROSSBERG ADAPTIVE HEURISTIC CRITIC SHUNTING GROSSBERG BOLTZMANN MACHINE CAUCHY MACHINE LEARNING MATRIX TEMPORAL ASSOCIATIVE MEMORY LINEAR ASSOCIATIVE MEMORY OPTIMAL LINEAR ASSOCIATIVE MEMORY DRIVE-REINFORCEMENT FUZZY ASSOCIATIVE MEMORY COUNTERPROPAGATION BIDIRECTIONAL ASSOCIATIVE MEMORY ADAPTIVE BIDIRECTIONAL ASSOCIATIVE MEMORY COGNITRON/NEOCOGNITRON TOPOLOGY PRESERVING MAP LEARNING VECTOR QUANTIZER ADAPTIVE RESONANCE THEORY Tabla 3.5.-Clasificación de las redes neuronales en función del tipo de asociación. 3.1 III. Clasificación de las redes neuronales 3.1 3.4.- REPRESENTACION DE LA INFORMACION DE ENTRADA Y SALIDA. Las redes neuronales pueden también clasificarse en función de la forma en que se representan las informaciones de entrada y las respuestas o datos de salida (tabla 3.6). Así, en un gran número de redes tanto los datos de entrada como de salida son de naturaleza analógica, es decir son valores reales contínuos, normalmente estarán normalizados y su valor absoluto será menor que la unidad. Cuando esto ocurre, las funciones de activación de las neuronas serán también contínuas, del tipo lineal o sigmoidal. Otras redes, por el contrario, sólo admiten valores discretos o binarios {0,1} a su entrada, generando también unas respuestas en la salida de tipo binario. En este caso las funciones de activación de las neuronas serán del tipo escalón. Debido a su mayor sencillez, es habitual encontrar algunos modelos de redes reales que aunque inicialmente habían sido desarrollados como discretos por sus autores, posteriormente se haya realizado una versión contínua de los mismo, como es el caso del modelo de HOPFIELD (DISCRETE HOPFIELD, CONTINOUS HOPFIELD) y el denominado ADAPTIVE RESONANCE THEORY (ART1, ART2). Existen también un tipo de redes (que podrían denominarse híbridas) en las que las informaciones de entrada pueden ser valores contínuos, aunque las salidas de la red son discretas. III. Clasificación de las redes neuronales 3.1 REDES CONTINUAS -----------E: ANALOGICA S: ANALOGICA REDES HBIBRIDAS -----------E: ANALOGICA S:BINARIA REDES DISCRETAS ---------E: BINARIA S: BINARIA BACK-PROPAGATION PERCEPTRON DISCRETE HOPFIELD BRAIN-STATE-IN-BOX ADALINE/MADALINE LEARNING MATRIX CONTINOUS HOPFIELD LINEAR/ASSOCIATIVE REWARD PENALTY TEMPORAL ASSOCIATIVE MEMORY LINEAR ASSOCIATIVE MEMORY ADAPTIVE HEURISTIC CRITIC BIDIRECTIONAL ASSOCIATIVE MEMORY OPTIMAL LINEAR ASSOCIATIVE MEMORY COGNITRON/ NEOCOGNITRON DRIVE-REINFORCEMENT ADAPTIVE RESONANCE THEORY 1 COUNTERPROPAGATION BOLTZMANN MACHINE ADDITIVE GROSSBERG CAUCHY MACHINE SHUNTING GROSSBERG ADAPTIVE BAM LEARNING VECTOR QUANTIZER TOPOLOGY PRESERVING MAP ADAPTIVE RESONANCE THEORY 2 Tabla 3.6.-Clasificación de las redes neuronales en función del tipo de representación de las informaciones de entrada y salida. 3.5.- CARACTERISTICAS DE LOS MODELOS DE REDES NEURONALES MAS CONOCIDOS. En las siguiente tabla se muestra, por orden alfabético, los modelos de red neuronal más conocidos junto sus autores y las características más relevantes de cada uno según la clasificación que se ha desarrollado en este capítulo. * topología, * mecanismo de aprendizaje, * tipo de asociación de las informaciones de entrada y salida y la forma de representación de esta información. * Señales de Entrada/Salida * Autor(es) III. Clasificación de las redes neuronales MODELO DE RED TOPOLOGIA APRENDIZAJE ON/ SUPERVISA/NO OFF SUPERVISA 3.18 ASOCIACION INFORMAC. DE AUTOR(ES) HETEROASOC E:ANALOG WIDROW S:BINARI HOFF 1960 ANALOG. KOSKO REGLA LINE ADALINE/ 2 CAPAS MADALINE FEEDFOWARD ADAPTIVE 2 CAPAS BIDIRECTIONAL FEEDFOWARD ASSOCIATIVE /FEEDBACK OFF SUPERVIS. CORRECCION ERROR ("LEAST MEAN SQUARE") ON NO SUPERV HEBBIANO DIFERENCIAL HETEROASOC 1987 MEMORY. ABAM ADAPTIVE HEURISTIC 3 CAPAS CRITIC. AHC FEEDFOWARD ADAPTIVE RESONANCE 2 CAPAS THEORY 1.ART1 FEEDFOWARD ON SUPERVIS. REFUERZO POR AJUSTE HETEROASOC TEMPORAL ON NO SUPERV COMPETITIVO (RESONANCIA HETEROASOC E:ANALOG BARTO S:BINARI 1983 BINARIAS ADAPTATIVA) CARPENTER GROSSBERG /FEEDBACK 1986 CONEX. LAT. AUTO-RECU. ADAPTIVE RESONANCE 2 CAPAS THEORY 2.ART2 FEEDFOWARD ON NO SUPERV COMPETITIVO (RESONANCIA HETEROASOC ANALOG. ADAPTATIVA) CARPENTER GROSSBERG /FEEDBACK 1987 CONEX. LAT. AUTO-RECU. ADITIVE 1 CAPA GROSSBERG. AG CONEXIONES LATERALES AUTO-RECU. ON NO SUPERV HEBBIANO O COMPETITIVO AUTOASOC. ANALOG. GROSSBERG 1968 III. Clasificación de las redes neuronales MODELO DE RED TOPOLOGIA APRENDIZAJE ON/ SUPERVISA/NO OFF SUPERVISA 3.18 ASOCIACION INFORMAC. DE AUTOR(ES) HETEROASOC E:ANALOG BARTO 1985 REGLA LINE ASSOCIATIVE 2 CAPAS REWARD PENALTY. ARP FEEDFOWARD BACK-PROPAGATION N CAPAS ON SUPERVIS. S:BINARI OFF SUPERVIS. FEEDFOWARD RECURRENT N CAPAS BACKPROPAGAT. FF/F.BACK REFUERZO ESTOCASTICO CORRECCION ERROR (REGLA HETEROASOC ANALOG. DELTA GENERALIZADA) OFF SUPERVIS. CORRECCION ERROR RUMELHART etc. 1986 HETEROASOC ANALOG. (R.DELTA GENER.) PINEDA etc. 1987 BIDIRECTIONAL 2 CAPAS ASSOCIATIVE FEEDFOWARD MEMORY. BAM /FEEDBACK BOLTZMANN MACHINE. 1 CAPA CONEX.LAT. BM 3 CAPAS ANNEALING") FEEDFOWARD + HEBBIANO ó +CORRECCION SEJNOWSKI ERROR 1984 BRAIN-STATE 1 CAPA IN-A-BOX CONEX.LAT. ON NO SUPERV HEBBIANO HETEROASOC BINARIAS KOSKO 1988 OFF OFF SUPERVIS. SUPERVIS. ESTOCASTICO ("SIMULATED CORRECCION ERROR HETEROASOC HINTON BINARIAS AUTOASOC. ANALOG. (REGLA DELTA) ACKLEY ANDERSON 1977 AUTO-RECU. CAUCHY MACHINE. CM 1 CAPA CONEX.LAT. OFF NO SUPERV ESTOCASTICO 3 CAPAS ("FAST SIMULATED FEEDFOWARD ANNEALING") COGNITRON/ JERARQUIA DE NEOCOGNITRON NIVELES CON CAPAS BIDIMENS. FF/F.BACK OFF NO SUPERV COMPETITIVO HETEROASOC E:ANALOG SZU 1986 S:BINARI HETEROASOC BINARIAS FUKUSHIMA 1975/1980 III. Clasificación de las redes neuronales MODELO DE RED TOPOLOGIA APRENDIZAJE ON/ SUPERVISA/NO OFF SUPERVISA 3.18 ASOCIACION INFORMAC. DE AUTOR(ES) HETEROASOC ANALOG. KOSKO REGLA LINE COMPETITIVE ABAM. 2 CAPAS ON/ CABAM FF/F.BACK OFF NO SUPERV HEBBIANO + COMPETITIVO 1987 CONEX.LAT. AUTO-RECU. COUNTER- 3 CAPAS PROPAGATION FEEDFOWARD OFF SUPERVISADO CORRECCIÓN ERROR HETEROASOC ANALOG. HECHT-NIELSEN87 HETEROASOC ANALOG. KLOPF + COMPETITIVO CONEX.LAT. y AUTO-RECU. DRIVE- 2 CAPAS REINFORCEMENT FEEDFOWARD FUZZY ASSOCIATIVE 2 CAPAS MEMORY. FAM FF/ FEEDBACK CONTINOUS HOPFIELD 1 CAPA OFF NO SUPERV HEBBIANO (DRIVE REINFORCEMENT) OFF NO SUPERV HEBBIANO BORROSO 1986 HETEROASOC ANALOG. 1987 OFF NO SUPERV HEBBIANO AUTOASOC. ANALOG. CONEX. LATERALES HOPFIELD 1984 OFF NO SUPERV HEBBIANO AUTOASOC. BINARIAS HOPFIELD 1982 1 CAPA CROSSBAR OFF NO SUPERV HEBBIANO HETEROASOC BINARIAS STEINBUCH 1961 LEARNING VECTOR 2 CAPAS FF OFF NO SUPERV COMPETITIVO HETEROASOC. ANALOG. KOHONEN QUANTIZER. LVQ CONEX. LAT. IMPLIC. DISCRETE HOPFIELD 1 CAPA KOSKO CONEX. LAT. LEARN. MATRIX. LM 1981 AUTORREC. LINEAR ASSOCIATIVE 2 CAPAS MEMORY. LAM FEEDFOWARD OFF NO SUPERV HEBBIANO HETEROASOC ANALOG. ANDERSON 1968 KOHONEN77 III. Clasificación de las redes neuronales MODELO DE RED TOPOLOGIA APRENDIZAJE ON/ SUPERVISA/NO OFF SUPERVISA 3.18 ASOCIACION INFORMAC. DE AUTOR(ES) HETEROASOC E:ANALOG BARTO 1985 REGLA LINE LINEAR REWARD 2 CAPAS PENALTY. LRP FEEDFOWARD ON SUPERVIS. REFUERZO ESTOCASTICO OPTIMAL LINEAR 2CAPAS/FF. HEBBIANO HETEROASOC ASSOCIATIVE ---------- ("OPTIMAL LEAST MEAN ------- MEMORY. OLAM 1 CAPA CONEX.LAT. SQUARE CORRELATION") AUTOASOC. CORRECCION ERROR HETEROASOC S:BINARI OFF NO SUPERV ANALOG. WEE 1968 KOHONEN73 AUTO-RECU. PERCEPTRON 2 CAPAS OFF SUPERVIS. FEEDFOWARD SHUNTING GROSSBERG. 1 CAPA CONEX.LAT. SG AUTO-RECU. SPARSE DISTRIBUTED 3 CAPAS MEMORY. SDM FEEDFOWARD E:ANALOG ROSENBLAT S:BINARI 1958 ON NO SUPERV HEBBIANO O COMPETITIVO AUTOASOC. ANALOG. GROSSBERG 1973 OFF NO SUPERV HEBBIANO + RANDOM HETEROASOC BINARIAS KANERVA 1984 VECTOR (LVQ) PREPROCESSING TEMPORALASSOCIAT. 2 CAPAS MEMORY. TAM FF/FEEDBACK TOPOLOGY 2 CAPAS FF PRESERVING MAP. TPM CONEX. LAT. IMPLIC. AUTORREC. OFF NO SUPERV HEBBIANO HETEROASOC BINARIAS AMARI 1972 OFF NO SUPERV COMPETITIVO HETEROASOC ANALOG. KOHONEN 1982 IV Redes neuronales con conexiones hacia adelante. 4.1 IV REDES NEURONALES CON CONEXIONES HACIA ADELANTE En este capitulo examinaremos un grupo de redes neuronales que tienen una arquitectura similar. Este es el grupo de las redes con conexiones hacia adelante, las cuales se caracterizan por arquitecturas en niveles y conexiones estrictamente hacia delante entre las neuronas. Estas redes son todas buenos clasificadores de patrones y utilizan aprendizaje supervisado. Este grupo incluye el Perceptrón, las redes ADALINE y MADALINE y la red BackPropagation,. El Perceptrón y las redes ADALINE y MADALINE tienen un importante interés histórico y han abierto el camino para el desarrollo de otras redes neuronales. Por otro lado, la red Back-Propagation es probablemente una de las más utilizadas hoy en día. 4.1 EL PERCEPTRON. Este fue el primer modelo de red neuronal artificial desarrollado por Rosenblatt en 1958 [Rosenblatt 58]. Despertó un enorme interés en los años 60 debido a su capacidad para aprender a reconocer patrones sencillos: un perceptrón, formado por varias neuronas lineales para recibir las entradas a la red y una neurona de salida, es capaz de decidir cuando una entrada presentada a la red pertenece a una de las dos clases que es capaz de reconocer. Fig. 4.1 El perceptrón. La única neurona de salida del Perceptrón realiza la suma ponderada de las entradas, IV Redes neuronales con conexiones hacia adelante. 4.1 resta el umbral y pasa el resultado a una función de trasferencia de tipo escalón. La regla de decisión es responder +1 si el patrón presentado pertenece a la clase A o -1 si el patrón pertenece a la clase B (Fig. 4.1). La salida dependerá de la entrada neta (suma de las entradas xi ponderadas) y del valor umbral θ. Una técnica utilizada para analizar el comportamiento de redes como el perceptrón es representar en un mapa las regiones de decisión creadas en el espacio multidimensional de entradas a la red. En estas regiones se visualiza qué patrones pertenecen a una clase y cuáles a otra. El Perceptron separa las regiones por un hiperplano cuya ecuación queda determinada por los pesos de las conexiones y el valor umbral de la función de activación de la neurona. En este caso los valores de los pesos pueden fijarse o adaptarse utilizando diferentes algoritmos de entrenamiento de la red. Sin embargo, el Perceptrón al constar sólo de una capa de entrada y otra de salida con una única neurona, tiene una capacidad de representación bastante limitada. Este modelo sólo es capaz de discriminar patrones muy sencillos, linealmente separables. El caso más conocido es la imposibilidad del perceptrón de representar la función OR-EXCLUSIVA. La separabilidad lineal limita a las redes con un sólo dos capas a la resolución de problemas en los cuáles el conjunto de puntos (correspondientes a los valores de entrada) sean separables geométricamente. En el caso de dos entradas, la separación se lleva a cabo mediante una línea recta. Para tres entradas, la separación se realiza mediante un plano en el espacio tridimensional. Así sucesivamente hasta el caso de N entradas, en el cuál el espacio Ndimensional es dividido en un hiperplano. 4.1.1 Regla de aprendizaje del Perceptrón. El algoritmo de aprendizaje del Perceptrón es de tipo supervisado, lo cual requiere que sus resultados sean evaluados y se realicen las oportunas modificaciones del sistema si fuera necesario. Los valores de los pesos pueden determinan, como se ha dicho, el funcionamiento de la red; éstos valores se pueden fijar o adaptar utilizando diferentes algoritmos de entrenamiento de la red. El algoritmo original de convergencia del perceptrón fue desarrollado por Rosenblatt y lo veremos más adelante. Se pueden usar perceptrones como máquinas universales de aprendizaje. Desgraciadamente, no puede aprender a realizar todo tipo de clasificaciones: en realidad sólo se pueden aprender clasificaciones "fáciles" (problemas de "orden 1" en la terminología de Minsky y Papert [Minsky 69]). Esa limitación se debe a que un Perceptrón usa un separador lineal como célula de decisión, entonces no es posible realizar sino una sola separación lineal (por medio de un hiperplano). Como ejemplo de funcionamiento de una red neuronal de tipo Perceptrón veamos cómo resolver el problema de la función OR. Para esta función, la red debe ser capaz de devolver, a partir de los cuatro patrones de entrada, a qué clase pertenece cada uno. Es decir, para el patrón de entrada 00 debe devolver la clase 0 y para los restantes la clase 1. Para este caso las entradas serán dos valores binarios. La salida que produce, sin tener en cuenta el valor umbral, es la siguiente: Install Equation Editor and doubleclick here to view equation. donde IV Redes neuronales con conexiones hacia adelante. 4.1 x1 , x2 son las entradas a la neurona, (En las neuronas de la capa de entrada la salida es igual a su entrada.) w1 , w2 son los pesos entre las neuronas de la capa de entrada y la de la capa de salida f : Función de salida o transferencia (La función de activación es la función identidad) Si w1x1 + w2x2 es mayor que 0 la salida será 1 y en caso contrario será -1 (función de salida en escalón). Como puede observarse, el sumatorio que se le pasa como parámetro (entrada total) a la función f (función de salida o transferencia) es la expresión matemática de una recta donde w1 y w2 son variables y x1 y x2 son las constantes. En la etapa de aprendizaje, se irán variando los valores de los pesos obteniendo distintas rectas. Lo que se pretende al modificar los pesos de las conexiones es encontrar una recta que divida el plano en dos espacios de las dos clases de valores de entrada. Concretamente, para la función OR, se debe separar los valores 01, 10 y 11 del valor 00. En este caso, al no existir término independiente en la ecuación porque el umbral θ es cero, las posibles rectas pasarán por el origen de coordenadas, por lo que la entrada 00 quedará sobre la propia recta. Si se pretende resolver el problema de la función AND de la misma manera, se llega a la conclusión de que es imposible si el umbral es cero, ya que no existe ninguna recta que pase por el origen de coordenadas y que separe los valores 00, 01 y 10 de entrada del valor 11; por lo que es necesario introducir un término independiente para poder realizar esta tarea. Para ello, como se dijo en el capítulo 2, se considera una entrada de valor fijo "1" a través de una conexión con peso w0 que representa el umbral (w0=-θ) y cuyo valor deberá ser ajustado durante la etapa de aprendizaje. Así, el parámetro que se le pasa a la función de transferencia de la neurona queda: w1x1 + w2x2 + w01, donde w0 es el término independiente que permitirá desplazar la recta del origen de coordenadas. Si aplicamos esta solución para el caso de la red que calcula la función OR, aumentamos el número de soluciones ya que, además de las rectas sin término independiente (w0=0) que dan solución al problema, existirán otras Fig. 4.2 Ejemplo del perceptrón aplicado a la solución de la función OR. IV Redes neuronales con conexiones hacia adelante. 4.1 con término independiente que también lo harán. En el proceso de entrenamiento, el Perceptron se expone a un conjunto de patrones de entrada, y los pesos de la red son ajustados de forma que, al final del entrenamiento, se obtengan las salidas esperadas para cada uno de esos patrones de entrada. A continuación veremos el algoritmo de convergencia de ajuste de pesos para realizar el aprendizaje de un perceptrón (aprendizaje por corrección de error) con N elementos procesales de entrada y un único elemento procesal de salida: 1. Inicialización de los pesos y del umbral. Inicialmente se asignan valores aleatorios a cada uno de los pesos (wi) de las conexiones y al umbral (-w0=θ). 2. Presentación de un nuevo par (Entrada, Salida esperada). d(t). Presentar un nuevo patrón de entrada Xp = (x1,x2,...,xN) junto con la salida esperada 3. Calculo de la salida actual. Install Equation Editor and doubleclick here to view equation. Siendo f(x) la función de transferencia escalón. 4. Adaptación de los pesos. Install Equation Editor and doubleclick here to view equation. Install Equation Editor and doubleclick here to view equation. donde d(t) representa la salida deseada y será 1 si el patrón pertenece a la clase A y -1 si es de la clase B. En estas ecuaciones α es un factor de ganancia en el rango 0.0 a 1.0. Este factor debe ser ajustado de forma que satisfaga tanto los requerimientos de aprendizaje rápido como la estabilidad de las estimaciones de los pesos (en el ejemplo de la operación OR se considera α=1). Este proceso se repite hasta que el error que se produce para cada uno de los patrones (diferencia entre el valor de salida deseado y obtenido) es cero o bien menor que un valor preestablecido. Ver que los pesos no se cambian si la red ha tomado la decisión correcta. 5. Volver al paso 2. Este algoritmo es extensible al caso de múltiples neuronas en la capa de salida. El perceptrón será capaz de aprender a clasificar todas sus entradas, en un número finito de pasos, siempre y cuando el conjunto de patrones de entrada sean linealmente separables. En tal caso, puede demoestrarse que el aprendizaje de la red se realiza en un número finito de pasos. IV Redes neuronales con conexiones hacia adelante. 4.1 A continuación se muestra el ajuste de los pesos de las conexiones de una red que debe realizar la función OR utilizando el método expuesto. En este ejemplo se va a utilizar un umbral distinto de cero mediante la conocida conexión con entrada a 1 para aumentar el número de posibles soluciones del problema. a) Sean inicialmente los valores elegidos aleatoriamente: w0 = 1.5 w1 = 0.5 w2 = 1.5 b) Se van tomando uno a uno los cuatro patrones de entrada y se aplica el método explicado. b.1.) Se toma el patrón de entrada 00 Entradas: x1 = 0; x2 = 0; x0 = 1 Pesos: w1(t) = 0,5; w2(t) = 1,5; w0(t) = 1,5 Neti: 0(0,5) + 0(1,5) + 1(1,5) = 1,5 Salida que produce f: 1 (Neti >= 0) Salida que debe dar(Deseada): 0 Error que se comete: (Deseada - Obtenida) = 0 -1 = -1 Pesos modificados: w1(t+1) = 0,5 + (-1)0 = 0,5 w2(t+1) = 1,5 + (-1)0 = 1,5 w0(t+1) = 1,5 + (-1)1 = 0,5 Podemos realizar los mismos cálculos tomando una colocación en forma matricial: Entrada Pesos = net ----> Salida = f(net) Install Equation Editor and doubleclick here to view equation. Error = (Deseada - Obtenida) = -1 Pesos(t+1) = Pesos(t) + Error Entrada Install Equation Editor and doubleclick here to view equation. b.2.) Se toma el patrón de entrada 01 Entradas: x1 = 0; x2 = 1; x0 =1 Pesos: w1(t) = 0,5; w2(t) = 1,5; w0(t) = 0,5 Neti: 0(0,5) + 1(1,5) + 1 (0,5) = 2 Salida que produce f (Obtenida): 1 Salida que debe dar(Deseada): 1 Error que se produce: (Deseada - Obtenida) = 0 Los pesos no se modifican: wi(t+1) = wi(t) IV Redes neuronales con conexiones hacia adelante. b.3.) 4.1 Puede comprobarse que para las entradas 10 y 11 la salida obtenida es igual que la deseada, por lo que no se varían los pesos. En el caso de que no fuese así, se aplicaría el mismo método que se ha aplicado antes. Existe un patrón de entrada, 00, para la cual el error cometido no es cero, por tanto, se realiza de nuevo a partir del punto b). c) Se toman de nuevo los cuatro patrones de entrada: c.1.) Se toma de nuevo el patrón de entrada 00 Entradas: x1 = 0; x2 = 0; 1 Pesos: w1(t) = 0,5; w2(t) = 1,5; w0(t) = 0,5 Neti : 0(0,5) + 0(1,5) + 1(0,5) = 0,5 Salida que produce f (Obtenida): 1 Salida que debe dar(Deseado): 0 Error que se comete: -1 Pesos modificados: w1(t+1) = 0,5 + (-1)0 = 0,5 w2(t+1) = 1,5 + (-1)0 = 1,5 w0(t+1) = 0,5 + (-1)1 = -0,5 En forma matricial: Entrada Pesos = net -----> Salida = f(net) Install Equation Editor and doubleclick here to view equation. Error = (Deseada - Obtenida) = 0-1 = -1 Pesos(t+1) = Pesos(t) + Error Entrada Install Equation Editor and doubleclick here to view equation. c.2.) Se toma el patrón de entrada 01 Entradas: x1 = 0; x2 = 1; 1 Pesos: w1(t) = 0,5; w2(t) = 1,5; w0(t) = -0.5 Neti: 0(0,5) + 1(1,5) + 1(-0,5) = 1 Salida que produce f: 1 Deseada: 1 Error que se comete: 0 No se modifican los pesos c.3.) Puede comprobarse que para el resto de las entradas 10 y 11 los pesos no varían. IV Redes neuronales con conexiones hacia adelante. 4.1 Sigue habiendo una entrada cuyo error ha sido diferente de cero. d) Se toman de nuevo los cuatro patrones de entrada: . d.1.) Patrón 00 Entradas: x1 = 0; x2 = 0; 1 Pesos: w1(t) = 0,5; w2(t) = 1,5; w0(t) = -0,5 Neti: 0(0,5) + 0(1,5) + 1(-0,5) = -0,5 Salida que produce f: 0 deseado: 0 Error que se comete: 0 No se varían los pesos d.2.) Si no han variado los pesos entonces para el resto de las entradas el error cometido es cero (ver apartados c.2) y c.3.)) . Con estos nuevos pesos, al calcular la salida que se obtiene para cualquiera de los cuatro patrones de entrada, ya no se comete ningún error, por lo que la etapa de aprendizaje concluye. 4.1.2 Solución al problema de la separabilidad lineal. El ejemplo expuesto de ajuste de pesos de una red para solucionar el problema de la función OR no es aplicable, como se dijo anteriormente, a otro problema no trivial como es la función OR-EXCLUSIVA (XOR). En el caso de esta función se pretende que para los valores de entrada 00 y 11 se devuelva al clase 0 y para los patrones 01 y 10 la clase 1. Como puede comprobarse en la figura 4.3, el problema radica en que no existe ninguna recta que separe los patrones de una clase de los de la otra. Fig. 4.3 Función XOR. No es posible obtener una recta que separe las dos clases. La solución podría darse si descompusiéramos el espacio en tres regiones: una región pertenecería a una de las clases de salida y las otras dos pertenecerían a la segunda clase. Si en lugar de utilizar únicamente una neurona de salida, se utilizaran dos, se obtendrían dos rectas, por lo que podían delimitarse tres zonas. Para poder elegir entre una zona u otra de las tres, es necesario utilizar otra otra capa con una neurona cuyas entradas serán las salidas de las neuronas anteriores. Las dos zonas o regiones que contienen los puntos (0,0) y (1,1) se asocian IV Redes neuronales con conexiones hacia adelante. 4.1 a una salida nula de la red y la zona central se asocia a la salida con valor 1. De esta manera, es posible encontrar una solución al problema de la función XOR . Por tanto, se ha de utilizar una red de tres neuronas, distribuidas en dos capas, para solucionar el problema de la función XOR. Como ejemplo, el lector puede comprobar que se obtienen los resultados mostrados en la Fig. 4.4 tomando los siguientes valores: w11= 1 w21= 1 w31= 1 θ1 = 0.5 w12= 1 w22= 1 w32= -1.5 θ2 = 1.5 θ3 = 0.5 aplicando la expresión obtenida anteriormente para cada neurona: y1 = f( w11x1 + w12x2 - θ1) = f( x1 + x2 - 0.5) y2 = f( w21x1 + w22x2 - θ2) = f( x1 + x2 - 1.5) y3 = f( w31x1 + w32x2 - θ3) = f( y1 - 1.5y2 - 0.5) x1 x2 y1 y2 y3 = XOR 0 0 1 1 0 1 0 1 f (-0.5) = 0 f (0.5) = 1 f (0.5) = 1 f (1.5) = 1 f (-1.5) = 0 f (-0.5) = 0 f (-0.5) = 0 f (0.5) = 1 f (-0.5) = 0 f (0.5) = 1 f (0.5) = 1 f (1.5) = 1 IV Redes neuronales con conexiones hacia adelante. 4.1 Fig. 4.4 Solución del problema de la función XOR. Indicar que para el caso de la XOR se tienen que ajustar seis pesos (sin incluir las conexiones que representan los umbrales). En el caso de los pesos de las conexiones de la capa de salida (w31 y w32), el ajuste de los pesos se realiza de forma idéntica a la estudiada anteriormente pues conocemos la salida deseada. Sin embargo, no se tiene porqué conocer cuál debe ser la salida deseada de las células de la capa oculta, por lo que el método utilizado en la función OR no es aplicable en la función XOR. La solución para el aprendizaje en este tipo de redes, donde existen niveles ocultos, se estudia en los siguientes apartados. IV Redes neuronales con conexiones hacia adelante. 4.1 4.2.- EL PERCEPTRON MULTINIVEL. Un perceptrón multinivel o multicapa es una red de tipo feedforward compuesta de varias capas de neuronas entre la entrada y la salida de la misma. Esta red permite establecer regiones de decisión mucho más complejas que las de dos semiplanos como hacía Fig. 4.5 Perceptron multinivel (red feedfoward multicapa). el perceptrón de un solo nivel. Las capacidades del perceptrón con dos, tres y cuatro niveles o capas y con una única neurona en el nivel de salida, se muestra en la figura 4.6. En la segunda columna se muestra el tipo de región de decisión que se puede formar con cada una de las configuraciones. En la siguiente columna se indica el tipo de región de decisión que se formaría para el problema de la XOR. En las dos últimas columnas se muestran las regiones formadas para resolver el problema de clases con regiones mezcladas y las formas de regiones más generales para cada uno de los casos. El perceptron básico de dos capas ( la de entrada con neuronas lineales y la de salida con función de activación de tipo escalón) sólo puede establecer dos regiones separadas por una frontera lineal en el espacio de patrones de entrada. Un perceptrón con tres niveles de neuronas puede formar cualquier región convexa en este espacio. Las regiones convexas se forman mediante la intersección entre las regiones formadas por cada neurona de la segunda capa. Cada uno de estos elementos se comporta como un perceptrón simple activándose su salida para los patrones de un lado del hiperplano. Si el valor de los pesos de las conexiones entre las N2 neuronas de la segunda capa y una neurona del nivel de salida son todos "1" y el umbral de la de salida es (N2 - a) donde 0 < a < 1, entonces la salida de la red se activará sólo si las salidas de todos los nodos de la segunda capa están activos. Esto IV Redes neuronales con conexiones hacia adelante. 4.1 equivale a ejecutar la operación lógica AND en el nodo de salida, resultando una región de decisión intersección de todos los semiplanos formados en el nivel anterior. La región de decisión resultante de la intersección serán regiones convexas con un número de lados a lo sumo igual al número de neuronas de la segunda capa. Este análisis nos introduce en el problema de la selección del número de neuronas ocultas de un perceptrón de tres capas. En general este número deberá ser lo suficientemente grande como para que se forme una región lo suficientemente compleja para la resolución del problema. Sin embargo, tampoco es conveniente que el número de nodos sea tan grande que la estimación de los pesos no sea fiable para el conjunto de patrones de entrada disponibles. Un perceptrón con 4 capas puede formar regiones de decisión arbitrariamente complejas. El proceso de separación en clases que se lleva a cabo consiste en la partición de la región deseada en pequeños hipercubos (cuadrados para dos entradas de la red). Cada hipercubo requiere 2N neuronas en la segunda capa (siendo N el número de entradas a la red), una por cada lado del hipercubo y otra en la 3ª capa, que lleva a cabo el AND lógico de las salidas de los nodos del nivel anterior. Las salidas de los nodos de este tercer nivel se activarán sólo para las entradas de cada hipercubo. Los hipercubos se asignan a la región de decisión adecuada mediante la conexión de la salida de cada nodo del tercer nivel sólo con la neurona de salida (cuarta capa) correspondiente a la región de decisión en la que está comprendida el hipercubo, llevándose a cabo una operación lógica OR en cada nodo de salida. La operación lógica OR se llevará a cabo sólo si el valor de los pesos de las conexiones de los nodos del tercer nivel vale uno, y además el valor de los umbrales de los nodos de salida es 0.5. Este procedimiento se puede generalizar de manera que la forma de las Fig. 4.6 Distintas formas de las regiones generadas por un perceptron multinivel [Lippman 87]. IV Redes neuronales con conexiones hacia adelante. 4.1 regiones convexas sea arbitraria en lugar de hipercubos. El análisis anterior demuestra que no se requieren más de 4 capas en una red de tipo perceptrón, pues como se ha visto una red con 4 niveles puede generar regiones de decisión arbitrariamente complejas. Solo en ciertos problemas se puede simplificar el aprendizaje mediante el aumento del número de neuronas ocultas. Sin embargo, la tendencia es el aumento de la extensión de la función de activación en lugar del aumento de la complejidad de la red. Esto de nuevo nos lleva al problema del número de neuronas que debemos seleccionar para un perceptrón con 4 capas. El número de nodos de la 3ª capa (N3) debe ser mayor que uno cuando las regiones de decisión están desconectadas o "endentadas" y no se pueden formar con una región convexa. Este número, en el peor de los casos, es igual al número de regiones desconectadas en las distribuciones de entrada. El número de neuronas en la 2ª capa (N2) normalmente debe ser suficiente para proveer tres o más ángulos por cada área convexa generada por cada neurona de la 3ª capa. Así, deberá de haber más de tres veces el nº de neuronas de la 3ª capa (N2>3N3). En la práctica un número de neuronas excesivo en cualquier capa puede generar ruido. Por otro lado, si existe un número de neuronas redundantes se obtiene mayor tolerancia a fallos. IV Redes neuronales con conexiones hacia adelante. 4.1 4.3 LAS REDES ADALINE Y MADALINE. Las redes ADALINE (ADAptive LINear Element) y MADALINE (Multiple ADALINE) fueron desarrolladas por Bernie Widrow [Widrow 60] en la universidad de Stanford poco después de que Rosenblatt desarrollara el Perceptron. Las arquitecturas de ADALINE y MADALINE son esencialmente las mismas que las del Perceptrón. Ambas estructuras usan neuronas con funciones de transferencia escalón. La red ADALINE está limitada a una única neurona de salida, mientras que MADALINE puede tener varias. La diferencia fundamental respecto al Perceptron se refiere al mecanismo de aprendizaje. ADALINE y MADALINE utilizan la denominada "regla Delta" de Hidrow-Hoff o regla del mínimo error cuadrado medio (LMS) basada en la búsqueda del mínimo de una expresión del error entre la salida deseada y la salida lineal obtenida antes de aplicarle la función de activación escalón (frente a la salida binaria utilizada en el caso del Perceptron). Debido a esta nueva forma de evaluar el error, estas redes pueden procesar información analógica, tanto de entrada como de salida, utilizando una función de activación lineal o sigmoidal En cuanto a la estructura de la red ADALINE, que es casi idéntica a la del Perceptron elemental, sus autores la consideran formada por un elemento denominado Combinador Adaptativo Lineal (ALC), que obtiene una salida lineal (s) que puede ser aplicada a otro elemento de conmutación bipolar de forma que si la salida del ALC es positiva, la salida de la red ADALINE es +1; si la salida del ALC es negativa, entonces la salida de la red Fig. 4.7 Estructura de la red ADALINE, compuesta por un "Combinador Adaptativo Lineal" y una función de salida bipolar. ADALINE es -1 (Fig. 4.7). El ALC realiza el cálculo de la suma ponderada de las entradas: IV Redes neuronales con conexiones hacia adelante. 4.1 Install Equation Editor and doubleclick here to view equation. Como en el caso del Perceptron, el umbral de la función de transferencia se representa a través de una conexión flicticia de peso w0. Si tenemos en cuenta que para esta entrada se toma el valor de x0 = 1, se puede escribir la anterior ecuación de la forma: Install Equation Editor and doubleclick here to view equation. Esta es la salida lineal que genera el ALC. La salida binaria correspondiente de la red ADALINE es, por tanto: Install Equation Editor and doubleclick here to view equation. La red ADALINE se puede utilizar para generar una salida analógica utilizando un conmutador sigmoidal en lugar de binario; en tal caso la salida y se obtendrá aplicando una función de tipo sigmoidal, como la tangente hiperbólica (tanh (s)) o la exponencial (1/1+e-s) 4.3.1 Aprendizaje de la red ADALINE. Las redes ADALINE y MADALINE utilizan un aprendizaje OFF LINE con supervisión denominado LMS (Least Mean Squared) o regla del mínimo error cuadrado medio. También se conoce como regla delta porque trata de minimizar una delta o diferencia entre el valor observado y el deseado en la salida de la red; como ocurre con el Percertron, sólo que ahora la salida considerada es el valor previo a la aplicación de la función de activación de la neurona o, si se prefiere, la salida obtenida al aplicar una función de activación lineal. La regla de aprendizaje de mínimos cuadrados ("Least Mean Square") es un método para hallar el vector de pesos W deseado, el cuál deberá ser único y asociar con éxito cada Install Equation Editor and doublevector del conjunto de vectores o patrones de entrada click here to view equation. 12con su correspondiente valor de salida correcto ( o deseado) dk , k=1, ..., L. Notar que el problema de hallar un conjunto de pesos W que para un único vector de entrada X dé lugar a un valor de salida correcto resulta sencillo, lo que no ocurre cuando se dispone de un conjunto de vectores de entrada, cada uno con su propio valor de salida asociado. El entrenamiento de la red consiste en adaptar los pesos a medida que se vayan presentando las patrones de entrenamiento y salidas deseadas para cada uno de ellos. Para cada combinación entradasalida se realiza un proceso automático de pequeños ajustes en los valores de los pesos hasta que se obtienen las salidas correctas. La primera cuestión que debemos resolver es la de definir qué significa obtener el "mejor" vector de pesos obtenido a partir unas parejas de valores Install Equation Editor and double"ejemplo" click here to view equation. 13de forma que, una vez encontrado, desearemos que al aplicar todos los vectores de entrada se obtenga como resultado el valor de salida correcto. Como vimos en apartados anteriores, se trata de eliminar o, por lo menos, minimizar la diferencia entre salida deseada y salida real para todos los vectores de entrada. IV Redes neuronales con conexiones hacia adelante. 4.1 Concretamente la regla de regla de aprendizaje LMS minimiza el error cuadrado medio, definido como: Install Equation Editor and doubleclick here to view equation. donde L es el número de vectores de entrada (patrones) que forman el conjunto de entrenamiento y εk la diferencia entre la salida deseada y la obtenida cuando se introduce el patrón k-ésimo que, en el caso de la red ADALINE, se expresa como εk = (dk- sk) siendo sk la Install Equation Editor and double- salida del ALC, es decir: click here to view equation. 15 La función de error es una función matemática definida en el espacio de pesos multidimensional para un conjunto de patrones dados. Es una superficie que tendrá muchos mínimos (global y locales), y la regla de aprendizaje va a buscar el punto en el espacio de pesos donde se encuentra el mínimo global de esta superficie. Aunque la superficie de error es desconocida, el método de gradiente decreciente, consigue obtener información local de dicha superficie, a través del gradiente. Con esta información se decide que dirección tomar para llegar hasta el mínimo global de dicha superficie. Basándose en el método del gradiente decreciente se obtiene una regla (regla delta o regla LMS) para modificar los pesos de tal manera que hallamos un nuevo punto en el espacio de pesos más próximo al punto mínimo. Es decir, las modificaciones en los pesos son proporcionales al gradiente decreciente de la función error Δwj = -α(εk/wj). Por tanto, se deriva la función error respecto a los pesos para ver como varía el error con el cambio de los pesos. Aplicamos la regla de la cadena para el cálculo de dicha derivada. Install Equation Editor and doubleclick here to view equation. Se calcula la primera derivada: Install Equation Editor and doubleclick here to view equation. por tanto, queda Install Equation Editor and doubleclick here to view equation. Teniendo en cuenta que sk es la salida lineal: Install Equation Editor and doubleclick here to view equation. calculamos la segunda derivada de la expresión de Δwi: Install Equation Editor and doubleclick here to view equation. IV Redes neuronales con conexiones hacia adelante. 4.1 Así pues, el valor del gradiente del error producido por un patrón dado (k) es: Install Equation Editor and doubleclick here to view equation. Las modificaciones en los pesos son proporcionales al gradiente descendente de la función error: Install Equation Editor and doubleclick here to view equation. Install Equation Editor and doubleclick here to view equation. siendo α la cte. de proporcionalidad o tasa de aprendizaje. En notación matricial quedaría: Install Equation Editor and doubleclick here to view equation. Esta expresión representa la modificación de pesos obtenida al aplicar el algoritmo LMS y es parecida a la obtenida anteriormente para el caso del perceptrón. α es el parámetro que determina la estabilidad y la velocidad de convergencia del vector de pesos hacia el valor de error mínimo. Los cambios en dicho vector deben hacerse relativamente pequeños en cada iteración, sino, podría ocurrir que no se encontrase nunca un mínimo o se encontrase sólo por accidente, en lugar de ser el resultado de una convergencia sostenida hacia él. IV Redes neuronales con conexiones hacia adelante. 4.1 La diferencia entre esta expresión y la del Perceptron está el en valor del error εk, que en el caso del Perceptron se refería a la diferencia entre el valor deseado y la salida binaria yk, no la salida lineal sk de la red ADALINE. En la figura 4.8 se representa gráficamente el mecanismo de aprendizaje de ambas redes. Fig. 4.8 Ajuste de los pesos durante el aprendizaje en las redes ADALINE (a) y Perceptron (b) cuando, ante un patrón de aprendizaje xk se desea una salida dk [Widrow 90]. Aunque a simple vista no parece que exista gran diferencia entre ambos tipos de mecanismos de aprendizaje, el caso de la red ADALINE mejora al del Perceptron, ya que va a ser más sencillo alcanzar el mínimo de error, facilitando la convergencia del proceso de entrenamiento. Esto se demuestra a través de la forma de la función de error cuadrado Install Equation Editor and doublemedio click here to view equation. 24, que en el caso de calcularse a partir de la salida lineal (sk) tiene una forma semejante a la indicada en la figura 4.9 (a), mientras que en el caso de utilizar la salida binaria (Perceptron) existen una gran cantida de mínimos locales (Fig. 4.9 (b)). IV Redes neuronales con conexiones hacia adelante. 4.1 Existe una situación intermedia que consistiría en utilizar lo que se conoce como salida sigmoidal, en lugar de la salida lineal de ADALINE o la binaria del Perceptron. En tal caso la función de activación sería del tipo sigmoidal (Fig. 4.10 (a)) y la superficie de error tendría la forma indicada en la Fig. 4.10 (b) con un gran mínimo global (como en el caso de ADAINE) y varios mínimos locales (aunque en menor medida que el Perceptron). La aplicación del proceso iterativo de aprendizaje (Algoritmo de aprendizaje de una red ADALINE) consta de los siguientes pasos: 1. Se aplica un vector o patrón de entrada , Xk, en las entradas del ADALINE. Install Equation Editor and double25y se calcula la diferencia 2. Se obtiene la salida lineal click here to view equation. Fig. 4.10 Ajuste de los pesos utilizando la salida sigmoidal (a) y su efecto sobre la función de error cuadrado medio<ε2k> (b)[Widrow 90]. Fig. 4.9 Ejemplo de función de error cuadrado medio <ε2k> cuando se utiliza para su evaluación la salida lineal sk (a) o la salida binaria (b) [Widrow 90]. IV Redes neuronales con conexiones hacia adelante. 4.1 Install Equation Editor and doublerecpecto a la deseada click here to view equation. 26 3. Se actualizan los pesos Install Equation Editor and doubleclick here to view equation. 4. Se repiten los pasos del 1 al 3 con todos los vectores de entrada (L). 5. Si el error cuadrado medio: Install Equation Editor and doubleclick here to view equation. es un valor reducido aceptable, termina el proceso de aprendizaje; sino se repite otra vez desde el paso 1 con todos los patrones. Cuando se utiliza una red ADALINE para resolver un problema concreto, es necesario determinar una serie de aspectos prácticos como el número de vectores de entrenamiento necesarios, hallar la forma de generar la salida "deseada" para cada vector de entrenamiento, o la dimensión óptima del vector de pesos, o cuáles deberían ser los valores iniciales de los pesos así como si es necesario o no un valor umbral θ, o cuál debe ser el valor de α o cuándo se debe finalizar el entrenamiento, etc. En general, la solución de estas cuestiones depende del problema concreto que se pretenda resolver, por lo que no se pueden dar respuestas genéricas concretas. Respecto al número de componentes del vector de pesos, si el número de entradas está bien definido, entonces habrá un peso por cada entrada con la opción de añadir o no un peso para la entrada del umbral. Incluir este término puede ayudar a la convergencia de los pesos proporcionando un grado de libertad adicional. La solución es diferente cuando sólo se dispone de una señal de entrada. En estos casos, la aplicación más común es la de filtro adaptativo para, por ejemplo, eliminar el ruido de la señal de entrada; la cual se muestrea en varios instantes de tiempo de forma que cada muestra representa un grado de libertad que se utiliza para ajustar la señal de entrada a la salida deseada (Fig. 4.11). La idea consiste en utilizar el menor número de muestras (así obtenemos una convergencia más rápida) siempre que se obtengan resultados satisfactorios. IV Redes neuronales con conexiones hacia adelante. 4.1 Fig. 4.11 Red ADALINE utilizada como filtro digital adaptativo. La dimensión del vector de pesos tiene una influencia directa en el tiempo necesario de entrenamiento (sobre todo, cuando se realiza una simulación por ordenador) por lo que, generalmente, se debe tomar un compromiso entre este aspecto y la aceptabilidad de la solución (normalmente, se mejora el error aumentando el número de pesos). El valor del parámetro α tiene una gran influencia sobre el entrenamiento. Si α es demasiado grande, la convergencia es posible que no se produzca debido a que se "dará saltos" en torno al mínimo sin alcanzarlo. Si α es demasiado pequeño, alcanzaremos la convergencia pero a costa de una etapa de aprendizaje más larga. En cuanto al momento en el que debemos detener el entrenamiento, éste depende, sobre todo, de los requisitos de salida del sistema: se detiene el entrenamiento cuando el error observado es menor que el valor admisible en la señal de salida de forma sostenida. Se suele tomar el error cuadrático medio como la magnitud que determina el instante en el que un sistema ha convergido. 4.3.2 Aplicaciones de la red ADALINE. Sin duda la principal aplicación de las redes Adaline está en el campo del procesamiento de señales, en concreto, como ya se ha comentado, para el diseño y realización de filtros que eliminen el ruido en señales portadoras de información. Como filtros adaptativos, se han utilizado redes tipo ADALINE en numerosas aplicaciones. Destaca su uso como filtros de ecualización adaptativos en modems de alta velocidad y canceladores adaptativos del eco para el filtrado de señales en comunicaciones telefónicas de larga distancia y comunicaciones vía satélite. También se han utilizado para la eliminación de ruido y predicción de la señal; por ejemplo, cancelación del ruido materno de las grabaciones electrocardiográficas (ECG) del latido del corazón del feto humano (Figuras 4.12 y 4.13). IV Redes neuronales con conexiones hacia adelante. 4.1 Fig. 4.12 Cancelación del ruido del corazón materno en el ECG de un feto humano. (a) Vectores de campo eléctrico de madre y feto. (b) Localización de los vectores utilizados [Widrow 88]. Fig. 4.13 Filtrado con un ancho de banda 3-35 Hz y una frec. de muestreo de 256 HZ. (a) Señal de referencia materna (salida deseada). (b) Señal fetal (entrada del filtro). (c) Salida del filtro [Widrow 88]. Una de las aplicaciones de redes neuronales que más pronto se pudo implantar en el campo industrial fue el ADALINE para la eliminación de ecos en circuitos telefónicos. Este fenómeno es especialmente apreciable en comunicaciones a larga distancia y se elimina utilizando circuitos híbridos para aislar las señales de entrada de las de salida. Debido, por ejemplo, a los desacoplos de impedancias, el rendimiento de estos circuitos no siempre es el idóneo por lo que se produce un eco que, aunque esté atenuado, puede ser audible y, por tanto, perturba la comunicación. Concretamente, de forma simplificada, la red neuronal se utiliza para implementar un filtro adaptativo que pueda reproducir y compensar las pérdidas que se producen en el circuito híbrido. Como dicho filtro posee una sola entrada, se configura IV Redes neuronales con conexiones hacia adelante. 4.1 como filtro transversal el cuál, según sugieren Widrow y Stearns [Widrow 85], puede muestrear la señal de entrada a 8 kHz y utilizar 128 valores de pesos. Por otro lado, los filtros adaptativos también se pueden utilizar para predecir el valor futuro de una señal a partir su valor actual basándose en un aprendizaje en el que se emplea como entrada el valor retardado de la señal actual (la señal en algún momento anterior) y como salida esperada el valor actual de la señal. El filtro intentará minimizar el error entre su salida y la señal actual, basándose en una entrada que es el valor de la señal en algún instante anterior. Una vez que el filtro predice correctamente la señal actual, basándose en la señal anterior, se puede utilizar directamente la actual como entrada sin el retardo. El filtro realizará una predicción del valor futuro de la señal. Otro ejemplo es el del filtro adaptativo utilizado para modelar las respuestas de un sistema basándose en las señales de entrada. En este caso las entradas del filtro son las mismas que las del sistema, ajustando los pesos durante el aprendizaje en función de la diferencia entre su salida y la salida del sistema (Fig. 4.14). Esta configuración tiene muchas aplicaciones como sistema adaptativo de control. Si el "sistema" representa a un operador humano, este dispositivo podría servir como dispositivo "inteligente" de control automatizado. Fig. 4.14 Ejemplo de red ADALINE utilizada como filtro adaptativo para modelar la salida de un sistema. IV Redes neuronales con conexiones hacia adelante. 4.1 4.3.3 La red MADALIDE. Con una idea semejante a la que se expuso del perceptrón multinivel respecto del elemental compuesto por una sola neurona, surge la red MADALINE ("Multiple ADALINEs") como una combinación de módulos ADALINE básicos en una estructura de capas que supera algunas de las limitaciones de la red ADALINE original (Fig. 4.15). Fig. 4.15 Forma general de una red neuronal tipo Madaline. El entrenamiento de estas redes no puede ser el mismo que el de la red Adaline. El algoritmo LMS podría aplicarse a la capa de salida puesto que conocemos el vector de salida deseado para cada una de las tramas de entrada de entrenamiento. Sin embargo, lo que se desconoce es la salida deseada para los nodos de cada una de las capas ocultas. Además, el algoritmo LMS funciona para las salidas lineales (analógicas) del combinador adaptativo y no para las digitales de ADALINE. La forma de aplicar las ideas del algoritmo LMS para entrenar una estructura tipo Madaline pasa por sustituir la función de salida por una función contínua derivable (la función umbral es discontinua en 0 y, por tanto, no derivable en ese punto) que estudiaremos en los apartados siguientes. Existe otro método conocido como regla II de MADALINE (MRII) parecido a un procedimiento de acierto y error con una inteligencia adicional basada en un principio de mínima perturbación [Widrow 88]. El entrenamiento equivale a hacer una reducción del número de neuronas de salida incorrectos para cada una de las tramas de entrenamiento que se den como entrada (notar que la salida de la red es una serie de unidades bipolares). Este método se puede aplicar mediante el siguiente algoritmo [Freeman 91]: 1. Se aplica un vector a las entradas de MADALINE y se hace que se propague hasta las unidades de salida. 2. Se cuenta el número de valores incorrectos que hay en la capa de salida, denominándose error a dicho número. IV Redes neuronales con conexiones hacia adelante. 4.1 3. Para las unidades de la capa de salida: - Se selecciona la primera neurona que no haya sido seleccionado antes y cuya salida lineal esté más próxima a cero. Ésta es la neurona que puede cambiar su salida binaria con el menor cambio de sus pesos y, según el principio de mínima perturbación, debe tener prioridad en el proceso de aprendizaje. - Se cambian los pesos de la neurona seleccionada de tal modo que cambie su salida binaria. - Se hace que se propague el vector de entrada hacia adelante, partiendo de las entradas y en dirección a las salidas, una vez más. - Se admite el cambio de pesos si ha dado lugar a una reducción del error, en caso contrario, se restauran los pesos originales. 4. Se repite el paso 3 para todas las capas, salvo la de salida. 5. Para todas las unidades de la capa de salida: - Se selecciona el par de neuronas que no hayan sido seleccionadas anteriormente y cuyas salidas lineales estén más próximas a cero. - Se aplica una corrección de pesos a ambas neuronas para modificar el valor de su salida. - Se hace que se propague hacia adelante el vector de entradas, desde las entradas hasta las salidas. - Se admite el cambio de pesos si ha dado lugar a una reducción del error, en caso contrario, se restauran los pesos originales. 6. Se repite el paso 5 para todas las capas salvo la de entrada. Los pasos 5 y 6 se pueden repetir con grupos de tres, cuatro o mayor número de neuronas hasta obtener resultados satisfactorios. Se considera que las parejas son apropiadas para redes que tengan un máximo de 25 neuronas por capa aproximadamente. IV Redes neuronales con conexiones hacia adelante. 4.1 4.4. LA RED BACK-PROPAGATION. En 1986 Rumelhart, Hinton y Williams [Rummelhart 86], basándose en los trabajos de otros investigadores [Werbos 74][Parker 82] formalizaron un método para que una red neuronal "aprendiera" la asociación que existe entre los patrones de entrada a la misma y las clases correspondientes, utilizando más niveles de neuronas que los que utilizó Rosenblatt para desarrollar el Perceptrón. Este método, conocido en general como backpropagation (propagación del error hacia atrás) está basado en la generalización de la regla delta y, a pesar de sus propias limitaciones, ha ampliado de forma considerable el rango de aplicaciones de las redes neuronales. El algoritmo de propagación hacia atrás o retropropagación es una regla de aprendizaje que se puede aplicar en modelos de redes con más de dos capas de células. Una característica importante de este algoritmo es la representación interna del conocimiento que es capaz de organizar en la capa intermedia de las células para conseguir cualquier correspondencia entre la entrada y la salida de la red. Ya se ha mostrado en este capítulo que en muchos, como la resolución del problema de la OR exclusiva, es imposible encontrar los pesos adecuados para establecer la correspondencia entre la entrada y la salida mediante una red sin capas intermedias. Con una capa de neuronas ocultas sí es posible establecer dicha correspondencia. De forma simplificada, el funcionamiento de una red backprpagation (backpropagation net, BPN) consiste en un aprendizaje de un conjunto predefinido de pares de entradas-salidas dados como ejemplo, empleando un ciclo propagación-adaptación de dos fases: primero se aplica un patrón de entrada como estímulo para la primera capa de las neuronas de la red, se va propagando a través de todas las capas superiores hasta generar una salida, se compara el resultado obtenido en las neuronas de salida con la salida que se desea obtener y se calcula un valor del error para cada neurona de salida. A continuación, estos errores se transmiten hacia atrás, partiendo de la capa de salida, hacia todas las neuronas de la capa intermedia que contribuyan directamente a la salida, recibiendo el porcentaje de error aproximado a la participación de la neurona intermedia en la salida original. Este proceso se repite, capa por capa, hasta que todas las neuronas de la red hayan recibido un error que describa su aportación relativa al error total. Basándose en el valor del error recibido, se reajustan los pesos de conexión de cada neurona de manera que en la siguiente vez que se presente el mismo patrón, la salida esté más cercana a la deseada, es decir, el error disminuya. La importancia de la red backpropagation consiste en su capacidad de autoadaptar los pesos de las neuronas de las capas intermedias para "aprender" la relación que existe entre un conjunto de patrones dados como ejemplo y sus salidas correspondientes. Para poder aplicar esa misma relación, después del entrenamiento, a nuevos vectores de entrada con ruido o incompletas, dando una salida activa si la nueva entrada es parecida a las presentadas durante el aprendizaje. Esta característica importante, que se exige a los sistemas de aprendizaje, es la capacidad de generalización, entendida como la facilidad de dar salidas satisfactorias a entradas que el sistema no ha visto nunca en su fase de entrenamiento. La red debe encontrar una "representación interna" que le permita generar las salidas deseadas cuando se le dan las entradas de entrenamiento, y que puede aplicar, además, a entradas no presentadas durante la etapa de aprendizaje, para clasificarlas según las características que compartan con los ejemplos de entrenamiento. 4.4.1 La regla delta generalizada. IV Redes neuronales con conexiones hacia adelante. 4.1 La regla propuesta por Widrow en 1960 (regla delta) ha sido extendida a redes con capas intermedias (regla delta generalizada) con conexiones hacia adelante (feedforward) y cuyas células tienen funciones de activación continuas (lineales o sigmoidales), dando lugar al algoritmo de retropropagación (backprpagation). Estas funciones contínuas son no decrecientes y derivables. La función sigmoidal pertenece a este tipo de funciones, a diferencia de la función escalón que se utiliza en el perceptron, ya que ésta última no es derivable en el punto en el que se encuentra la discontinuidad. Este algoritmo utiliza también una función o superficie de error asociada a la red, buscando el estado estable de mínima energía o de mínimo error a través del camino descendente de la superficie del error. Por ello, realimenta el error del sistema para realizar la modificación de los pesos en un valor proporcional al gradiente decreciente de dicha función de error. 4.4.1.1 Funcionamiento del algoritmo El método que sigue la regla delta generalizada para ajustar los pesos es exactamente el mismo que el de la regla delta utilizada en el Perceptron y ADALINE; es decir, los pesos se Fig. 4.16 Conexión entre una neurona de una capa oculta con una neurona de salida. actualizan de forma proporcional a la delta o diferencia entre la salida deseada y la obtenida (δ = sal. deseada - sal. obtenida). Dada una neurona (unidad Ui) y la salida que produce yi (Fig. 4.16), el cambio que se produce en el peso de la conexión que une la salida de dicha neurona con la unidad Uj (wji) para un patrón de aprendizaje "p" determinado es: En donde el subíndice p se refiere al patrón de aprendizaje concreto y α es la constante o tasa de aprendizaje. El punto en el que difieren la regla delta generalizada de la regla delta es en el valor concreto de δpj. Por otro lado, en las redes multinivel, a diferencia de las redes sin neuronas ocultas, en principio no se puede conocer la salida deseada de las neuronas de las capas ocultas para poder determinar los pesos en función del error cometido. Sin embargo, inicialmente sí podemos conocer la salida deseada de las neuronas de salida. Según esto, si consideramos la unidad Uj de salida (Fig. 4.16), entonces definimos : Install Equation Editor and doubleclick here to view equation. IV Redes neuronales con conexiones hacia adelante. 4.1 donde dpj es la salida deseada de la neurona j para el patrón p y netj es la entrada neta que recibe la neurona j. Esta fórmula es como la de la regla delta excepto en término de la derivada de la función de transferencia. Este término representa la modificación que hay que realizar en la entrada que recibe la neurona j. En el caso de que dicha neurona no sea de salida, el error que se produce estará en función del error que se cometa en las neuronas que reciban como entrada la salida de dicha neurona. Esto es lo que se denomina procedimiento de propagación del error hacia atrás. Fig. 4.17 Conexiones entre neuronas de la capa oculta con la capa de salida. Según esto, en el caso de que Uj no sea una neurona de salida (Ver figura 4.17), el error que se produce está en función del error que se comete en las neuronas que reciben como entrada la salida de Uj. Install Equation Editor and doubleclick here to view equation. donde el rango de k cubre todas aquellas neuronas a las que está conectada la salida de Uj. De esta forma, el error que se produce en una neurona oculta es la suma de los errores que se producen en las neuronas a las que está conectada la salida de ésta, multiplicando cada uno de ellos por el peso de la conexión. 4.4.1.2. Adicción de un momento en la regla delta generalizada El método de retropropagación del error, también conocido como del gradiente descendente, requiere un importante número de cálculos para lograr el ajuste de los pesos de la red. En la implementación del algoritmo se toma una amplitud de paso que viene dada por la tasa de aprendizaje α. A mayor tasa de aprendizaje, mayor es la modificación de los pesos en cada iteración, con lo que el aprendizaje será más rápido pero, por otro lado, puede dar lugar a oscilaciones. Rumelhart, Hinton y Williams (1986) [Rumelhart 86] sugirieron que para IV Redes neuronales con conexiones hacia adelante. 4.1 filtrar estas oscilaciones se añada en la expresión del incremento de los pesos un término (momento), β, de manera que dicha expresión quede: Install Equation Editor and doubleclick here to view equation. donde β es una constante (momento) que determina el efecto en t+1 del cambio de los pesos en el instante t. Con este momento se consigue la convergencia de la red en menor número de iteraciones, ya que si en t el incremento de un peso era positivo y en t+1 también, entonces el descenso por la superficie de error en t+1 es mayor. Sin embargo, si en t el incremento era positivo y en t+1 es negativo, es paso que se da en t+1 es más pequeño, lo cual es adecuado ya que, eso significa que se ha pasado por un mínimo y que los pasos deben ser menores para poder alcanzarlo. Resumiendo, el algoritmo backpropagation queda finalmente: donde si Uj es una neurona de salida y si Uj no es una neurona de salida. IV Redes neuronales con conexiones hacia adelante. 4.1 4.4.2 Estructura y fase de aprendizaje de la red backpropagation. En una red backpropagation existe una capa de entrada con n neuronas y una capa de salida con m neuronas y al menos una capa oculta de neuronas internas. Cada neurona de una capa (excepto las de entrada) recibe entradas de todas las neuronas de la capa anterior y envía su salida a todas las neuronas de la capa posterior (excepto las de salida). No hay conexiones hacia atrás "feedback" ni laterales entre neuronas de la misma capa. Como se comentó anteriormente, la aplicación del algoritmo backpropagation tiene dos Fig. 4.18 Modelo de arquitectura de una red backpropagation. Pueden existir neuronas ficticias con salida 1 y pesos umbral θ de entrada al resto de las neuronas de cada capa. fases, una hacia adelante y otra hacia atrás. Durante la primera fase el patrón de entrada es presentado a la red y propagado a través de las capas hasta llegar a la capa de salida. Obtenidos los valores de salida de la red, se inicia la segunda fase, comparándose estos valores con la salida esperada, para obtener el error. Se ajustan los pesos de la última capa proporcionalmente al error. Se pasa a la capa anterior con una retropropagación del error (backpropagation), ajustando convenientemente los pesos y continuando con este proceso hasta llegar a la primera capa. De esta manera se han modificado los pesos de las conexiones de la red para cada ejemplo o patrón de aprendizaje del problema, del que conocíamos su valor de entrada y la salida deseada que debería generar la red ante dicho patrón. A diferencia de la regla delta en el caso del Perceptron, la técnica backpropagation o IV Redes neuronales con conexiones hacia adelante. 4.1 generalización de la regla delta, requiere el uso de neuronas cuya función de activación sea contínua y, por tanto, diferenciable. Generalmente, la función utilizada será del tipo sigmoidal (Fig. 4.19). A continuación se presenta, a modo de síntesis, los pasos y fórmulas a utilizar para Fig. 4.19 Función de activación sigmoidal: y = 1/1+e-x. aplicar el algoritmo de entrenamiento, cuya demostración se realizará en el apartado 4.4.4: Paso 1 Paso 2 Inicializar los pesos de la red con valores pequeños aleatorios. Presentar un patrón de entrada, Xp: xp1,xp2,...,xpN y especificar la salida deseada que debe generar la red: d1,d2,...,dM. (Si la red se utiliza como un clasificador, todas las salidas deseadas serán cero salvo una que será la de la clase a la que pertenece el patrón de entrada). Paso 3 Calcular la salida actual de la red. Para ello presentamos las entradas a la red y vamos calculando la salida que presenta cada capa hasta llegar a la capa de salida, esta será al salida de la red y1,y2,...,yM. Los pasos a seguir son los siguientes: - Se calculan las entradas netas para las neuronas ocultas procedentes de las neuronas de entrada. Para una neurona j oculta : Install Equation Editor and doubleclick here to view equation. en donde el índice "h" se refiere a magnitudes de la capa oculta (hidden), el subíndice "p" al p-ésimo vector de entrenamiento y "j" a la j-ésima neurona oculta. El término θ puede ser opcional pues actúa como una entrada más. - Se calculan las salidas de las neuronas ocultas: IV Redes neuronales con conexiones hacia adelante. 4.1 Install Equation Editor and doubleclick here to view equation. Install Equation Editor and doubleclick here to view equation. ) - Se realizan los mismos cálculos para obtener las salidas de las neuronas de salida (capa "o": output) Install Equation Editor and doubleclick here to view equation. Paso 4 Calcular los términos de error para todas las neuronas. Si la neurona k es una neurona de la capa de salida, el valor de la "delta" es: Install Equation Editor and doubleclick here to view equation. La función "f", como se citó anteriormente, debe cumplir el requisito de ser derivable, lo que implica la imposibilidad de utilizar una función escalón. En general, disponemos de dos formas de función de salida que nos pueden servir: la función lineal de salida (fk(netjk) = netjk) y la función sigmoidal representada en la figura 4.19 y definida por la expresión: Install Equation Editor and doubleclick here to view equation. La selección de la función de salida depende de la forma en que se decida representar los datos de salida: si se desea que las neuronas de salida sean binarias, se utiliza la función sigmoidal puesto que esta función es casi biestable y, además, derivable. En otros casos es tan aplicable una función como otra. Install Equation Editor and doublePara la función lineal tenemos: click here to view equation. 44, mientras que la derivada de una función "f" sigmoidal es: Install Equation Editor and doubleclick here to view equation. por lo que los términos de error para las neuronas de salida quedan: Install Equation Editor and doubleclick here to view equation. IV Redes neuronales con conexiones hacia adelante. 4.1 para la salida lineal y Install Equation Editor and doubleclick here to view equation. para la salida sigmoidal. Si la neurona "j" no es de salida, entonces la derivada parcial del error no puede ser evaluada directamente. Por tanto se obtiene el desarrollo en términos de valores que son conocidos y otros que pueden ser evaluados. La expresión obtenida en este caso es: Install Equation Editor and doubleclick here to view equation. donde observamos que el error en las capas ocultas depende de todos los términos de error de la capa de salida. De aquí surge el término de "propagación hacia atrás". En particular, para la función sigmoidal: Install Equation Editor and doubleclick here to view equation. donde k se refiere a todas las neuronas de la capa superior a la de la neurona j. Así, el error que se produce en una neurona oculta es proporcional a la suma de los errores "conocidos" que se producen en las neuronas a las que está conectada la salida de ésta, multiplicado cada uno de ellos por el peso de la conexión. Los umbrales de las neuronas internos se adaptan de forma similar considerando que están conectados con pesos desde entradas auxiliares de valor constante. Paso 5 Actualización de los pesos. Para ello utilizamos el algoritmo recursivo comenzando por las neuronas de salida y trabajando hacia atrás hasta llegar a la capa de entrada, ajustando los pesos de la forma siguiente: Para los pesos de las neuronas de la capa de salida: Install Equation Editor and doubleclick here to view equation. y para los pesos de las neuronas de la capa oculta: Install Equation Editor and doubleclick here to view equation. IV Redes neuronales con conexiones hacia adelante. 4.1 En ambos casos, para acelerar el proceso de aprendizaje, se puede añadir un Install Equation Editor and double52en el caso término "momento" (apdo. 4.4.1.2) de valor: click here to view equation. Install Equation Editor and double53cuando se trata de una de la neurona de salida y click here to view equation. neurona oculta. Paso 6 El proceso se repite hasta que el término de error Install Equation Editor and doubleclick here to view equation. resulta aceptablemente pequeño para cada uno de los patrones aprendidos. 4.4.3 Consideraciones sobre el algoritmo El algoritmo backpropagation encuentra un valor mínimo de error (local o global) mediante la aplicación de pasos descendentes (gradiente descendente). Cada punto de la superficie de la funciín de error corresponde a un conjunto de valores de los pesos de la red. Con el gradiente descendente siempre que se realiza un cambio en todos los pesos de la red, se asegura el descenso por la superficie del error hasta encontrar el valle más cercano, lo que puede hacer que el proceso de aprendizaje se detenga en un mínimo local de error. Por tanto, de uno de los problemas que presenta este algoritmo de entrenamiento de redes multicapa es que busca minimizar la función de error pudiendo caer en un mínimo local o en algún punto estacionario y de esta manera no se llega a encontrar el mínimo global de la función del error. Sin embargo, ha de tenerse en cuenta que no tiene por qué alcanzarse el mínimo global en todas las aplicaciones, sino que puede ser suficiente con un error mínimo preestablecido. 4.4.3.1 Control de la convergencia En las técnicas de gradiente decreciente es conveniente avanzar por la superficie de error con incrementos pequeños de los pesos. Esto se debe a que tenemos una información local de la superficie y no se sabe lo lejos o lo cerca que se está del punto mínimo. Con incrementos grandes, se corre el riesgo de pasar por encima del punto mínimo sin conseguir estacionar en él. Con incrementos pequeños aunque se tarde más en llegar, se evita que ocurra esto. IV Redes neuronales con conexiones hacia adelante. 4.1 Fig. 4.20 Ejemplo representativo de una forma de la superficie de error donde w representa los posibles valores de la matriz de pesos de la red. El elegir un incremento paso adecuado influye en la velocidad con la que converge el algoritmo. Esta velocidad se controla a través de la constante de proporcionalidad o tasa de aprendizaje α. Normalmente, α debe ser un número pequeño (del orden de 0,05 a 0,25) para asegurar que la red llegue a asentarse en una solución. Un valor pequeño de α significa que la red tendrá que hacer un gran número de iteraciones. Si esa constante es muy grande, los cambios de pesos son muy grandes avanzando muy rápidamente por la superficie de error, con el riesgo de saltar el mínimo y estar oscilando alrededor de él pero sin poder alcanzarlo. Lo habitual es aumentar el valor de α a medida que disminuye el error de la red durante la fase de aprendizaje. Así, aceleramos la convergencia aunque sin llegar nunca a valores de α demasiado grandes, que hicieran que la red oscilase alejándose demasiado del valor mínimo. Otra forma de incrementar la velocidad de convergencia consiste en añadir, como se ha comentado en apartadops anteriores, un término momento consistente en sumar una fracción del anterior cambio cuando se calcula el valor del cambio de peso actual. Este término adicional tiende a mantener los cambios de peso en la misma dirección. Un último aspecto a tener en cuenta es la posibilidad de convergencia hacia alguno de los mínimos locales que pueden existir en la superficie de error del espacio de pesos (fig. 4.20). En el desarrollo matemático que se ha realizado para llegar al algoritmo de retropropagación, no se asegura en ningún momento que el mínimo que se encuentre sea global. Una vez que la red se asienta en un mínimo, sea local o global, cesa el aprendizaje, aunque el error siga siendo demasiado alto si se ha alcanzado un mínimo local. En todo caso, si la solución es admisible desde el punto de vista del error, no importa si el mínimo es local o global o si se ha detenido en algún momento previo a alcanzar un verdadero mínimo. En la práctica, si una red deja de aprender antes de llegar a una solución aceptable, se realiza un cambio en el número de neuronas ocultas o en los parámetros de aprendizaje o, simplemente, se vuelve a empezar con un conjunto distinto de pesos originales y se suele resolver el problema. IV Redes neuronales con conexiones hacia adelante. 4.1 4.4.3.2 Dimensionamiento de la red. Número de neuronas ocultas. No se pueden dar reglas concretas para determinar el número de neuronas o el número de capas de una red para resolver un problema concreto. Lo mismo ocurre a la hora de seleccionar el conjunto de vectores de entrenamiento. En todos estos casos, lo único que se puede dar son unas cuantas ideas generales deducidas de la experiencia de numerosos autores [Freeman 91]. Respecto al número de capas de la red, en general, tres capas son suficientes (entradaoculta-salida). Sin embargo, hay veces en que un problema es más fácil de resolver (la red aprende más deprisa) con más de una capa oculta. El tamaño de la capas tanto de entrada como de salida suele venir determinado por la naturaleza de la aplicación. En cambio, decidir cuántas neuronas debe tener la capa oculta no suele ser tan evidente. El número de neuronas ocultas interviene en la eficacia de aprendizaje y de generalización de la red. No hay ninguna regla que indique el número óptimo, en cada problema se debe ensayar con distintos números de neuronas para organizar la representación interna y escoger el mejor. La idea más utilizada, sobre todo en los sistemas simulados, consiste en tener el menor número posible de neuronas en la capa oculta, porque cada una de ellas supone una mayor carga de procesamiento en el caso de una simulación software. En un sistema implementado en hardware, este problema no es crucial, sin embargo, sí habrá que tener presente el problema de comunicación entre los distintos elementos de proceso. Es posible eliminar neuronas ocultas si la red converge sin problemas, determinando el número final en función del rendimiento global del sistema. Si la red no converge, es posible que sea necesario aumentar este número. Por otro lado, examinando los valores de los pesos de las neuronas ocultas periódicamente en la fase de aprendizaje, se pueden detectar aquellas cuyos pesos cambian muy poco durante el aprendizaje respecto a sus valores iniciales y reducir, por tanto, el nº de neuronas que apenas participan en el proceso de aprendizaje. 4.4.3.3 Inicialización y cambio de pesos. Sería ideal, para una rápida adaptación del sistema, inicializar los pesos con una combinación de valores (W) muy cercano al punto de mínimo error buscado. Pero es imposible porque no se conoce, a priori, donde está el punto mínimo. Así, se parte de un punto cualquiera del espacio, inicializando los pesos con valores pequeños y aleatorios cualesquiera (por ejemplo, entre ±0,5), al igual que los términos umbral θi, que aparecen en las ecuaciones de entrada neta a cada neurona. Este valor umbral se suele tratar como un peso más, que está conectado a una neurona ficticia de salida siempre 1. La utilización de los términos umbral es opcional pues, en caso de utilizarse, es tratado exactamente igual que un peso más y participa como tal en el proceso de aprendizaje. La expresión de la entrada neta a cada neurona se podrá escribir de la forma: Install Equation Editor and doubleclick here to view equation. Install Equation Editor and doublepara una neurona de salida (k). Si consideramos click here to view equation. 56, se puede escribir la siguiente expresión: IV Redes neuronales con conexiones hacia adelante. 4.1 Install Equation Editor and doubleclick here to view equation. Install Equation Editor and doubleo, lo que es lo mismo, si consideramos click here to view equation. 58podemos tomarla como: Install Equation Editor and doubleclick here to view equation. La modificación de los pesos puede realizarse cada vez que un patrón ha sido presentado, o bien después de haber acumulado los cambios de los pesos en un número de iteraciones. El momento adecuado para cambiar los pesos depende de cada problema concreto. IV Redes neuronales con conexiones hacia adelante. 4.37 4.4.4 Deducción de la regla backpropagation En este apartado se muestra la deducción de las expresiones necesarias para poder utilizar el algoritmo de retropropagación de gradiente o backpropagation. Veamos una breve descripción antes de desarrollar el algoritmo: En un espacio de N+1 dimensiones (donde N es el número de pesos de la red) se representa una superficie que indica el error que se produce en la red neuronal para un determinado valor de los pesos de la misma. Al asignar inicialmente unos determinados valores para los pesos de la red el error se sitúa en un punto de la superficie de error. La variación de error respecto a cada peso de la red representa el vector de máxima pendiente en un punto determinado de la superficie de error. El cambio que se realiza en cada peso para ajustar la red es proporcional a ese vector por un constante negativa. De esta manera, el algoritmo de retropropagación hace que se vaya bajando por la superficie de error hasta alcanzar un mínimo. Por lo tanto, se determina que el incremento de un peso wji de la red en un iteración, al procesar un patrón pi, es proporcional al cambio del error ep respecto a ese peso por una constante negativa, es decir, proporcional al gradiente descendente: Δwji = - α( ep/wji) Sea la neurona j: Fig. 4.21 Cada célula j de la red cambia su salida yj según la ecuación Install Equation Editor and doubleclick here to view equation. (1) Install Equation Editor and doubleclick here to view equation. (2) donde siendo wji el peso de la conexión de la célula i en la célula j e yi la salida que se produce en la célula i. IV Redes neuronales con conexiones hacia adelante. 4.37 En la fase de entrenamiento, se presenta a la red parejas de valores (Xp ---> Dp) para que realice las asociaciones internas necesarias. Donde p representa cada p-ésimo ejemplo (muestra o patrón) distinto de un mismo problema y se sabe que para una entrada Xp= (xp1, ..., xpN) a la red, la salida deseada será Dp= (dp1, ..., dpM). Al recibir la red una entrada Xp ésta se va a propagar a través de la red obteniendo en la última capa una salida Yp= (yp1, ..., ypM) asociada a la entrada Xp. Se compara la salida obtenida Yp con la salida deseada Dp, calculando el error con la ecuación Install Equation Editor and doubleclick here to view equation. (3) siendo k el índice de las células de la última capa. El error total vendrá dado por: Install Equation Editor and doubleclick here to view equation. (4) teniendo en cuenta que p es el índice de los ejemplos introducidos y P es el número de ellos. Como ya adelantábamos, igual que ocurria en la regla LMS de Widrow-Hoff, el incremento a realizar a los pesos es proporcional al gradiente decreciente: Install Equation Editor and doubleclick here to view equation. (5) Aplicando la regla de la cadena Install Equation Editor and doubleclick here to view equation. (6) donde la derivada del error respecto a Netj indica como varía el error al variar la entrada a la neurona j, y, la derivada de Netj respecto a un peso indica como varía la entrada a la neurona j al variar el peso de la conexión que va de la neurona i a la neurona j. (Fig. 4.16). IV Redes neuronales con conexiones hacia adelante. Fig. 4.22 4.37 IV Redes neuronales con conexiones hacia adelante. 4.37 El segundo término de la expresión (6) se calcula a partir de la ecuación (2) Install Equation Editor and doubleclick here to view equation. (7) Si al primer término de la expresión (6) lo denotamos como : Install Equation Editor and doubleclick here to view equation. (8) la ecuación (6) resultante es: Install Equation Editor and doubleclick here to view equation. (9) y por tanto la ecuación (5) queda Install Equation Editor and doubleclick here to view equation. donde α es la constante de proporcionalidad. (10) IV Redes neuronales con conexiones hacia adelante. 4.37 Para calcular el valor de delta se vuelve a aplicar la regla de la cadena (Fig. 4.23) Install Equation Editor and doubleclick here to view equation. (11) Fig. 4.23 El segundo término de la ecuación (11) se obtiene a partir de (1) Install Equation Editor and doubleclick here to view equation. (12) Para calcular el primer término se deben distinguir dos casos: 1) Si j es una célula de la capa de salida: En este caso podemos aplicar directamente la ecuación (3) pues j sería igual a k. Por tanto quedaría: Install Equation Editor and doubleclick here to view equation. (13) De esta manera, la variación del peso de una conexión que va de una capa de la red a la capa externa se calcula como: IV Redes neuronales con conexiones hacia adelante. Install Equation Editor and doubleclick here to view equation. 4.37 (14) 2) Si la neurona j no pertenece a la capa externa. En este caso hay que aplicar de nuevo la regla de la cadena. Install Equation Editor and doubleclick here to view equation. (15) donde k denota a las neuronas de la capa siguiente a la que pertenece la neurona j (Fig. 4.24). Fig. 4.24 El desarrollo de la ecuación (15) se realiza utilizando (2): IV Redes neuronales con conexiones hacia adelante. Install Equation Editor and doubleclick here to view equation. 4.37 (16) (17) De esta manera, la variación del peso de una conexión que va de una capa de la red a otra que no sea la externa se calcula como: Install Equation Editor and doubleclick here to view equation. (18) Únicamente queda por definir la función f y su derivada. Por lo general en las redes tipo multicapa generalizado la función de activación suele ser sigmoidal: (19) donde x = Netj, es decir: Install Equation Editor and doubleclick here to view equation. (20) Este tipo de función se caracteriza porque su derivada se puede expresar en función de ella misma: (21) y, por tanto: Install Equation Editor and doubleclick here to view equation. (22) En definitiva, para calcular el incremento ha realizar en los pesos existentes entre una capa y la siguiente que no sea la capa externa usamos: Install Equation Editor and doubleclick here to view equation. (23) donde (δpkwkj) representa la retropropagación del error. Para calcular el incremento a realizar a los pesos existentes entre una capa y la capa siguiente (capa externa) usamos: Install Equation Editor and doubleclick here to view equation. (24) donde (dpj - ypj) es el error que se produce en las neuronas de la capa externa siendo dpj el valor deseado para el patrón p e ypj el valor realmente obtenido al procesar el patrón p. IV Redes neuronales con conexiones hacia adelante. 4.37 4.4.5 Aplicaciones de las redes Back-Propagation. Actualmente, este tipo de redes se están aplicando sistemáticamente a distintas clases de problemas y por ello es difícil hacer una selección de las aplicaciones más relevantes. Esta versatilidad se debe, en gran medida, a la natulaleza general de su proceso de aprendizaje ya que, como se comprobó anteriormente, sólamente se necesitan dos ecuaciones para propagar las señales de error hacia atrás. La utilización de una u otra ecuación sólo depende de si la unidad de proceso es o no de salida. En este apartado citaremos, en primer lugar, alguno de los campos generales de aplicación más representativos para, posteriormente, describir algunas aplicaciones concretas que sirven para ilustrar la diversidad de aplicaciones de la arquitectura de la red backpropagation. - Codificación de información La arquitectura de la red juega un papel fundamental en este tipo de aplicación. La idea principal consiste en que la información de entrada se recupere en la salida a través de un código interno. Si esto se consigue, en la fase de funcionamiento sólo habría que proporcionar a la red la información codificada, compuesta por los estados de activación de las neuronas ocultas y los pesos correspondientes obtnidos durante la etapa de aprendizaje para generar correctamente la salida deseada. - Traducción de texto en lenguaje hablado Aplicación desarrollada por Sejnowski y Rosenberg [Sejnowski 87]. En la capa de entrada se codifica convenientemente cada una de las posibles letras así como el contexto local, que consiste en las tres letras precedentes y posteriores, a través de una ventana que se va moviendo por el texto secuencialmente. En la capa de salida se codifica la información correspondiente a la pronunciación de una serie de fonemas más ciertas características que dan idea de sus vecinos. Con un número adecuado de unidades ocultas, la red establece la correspondencia texto-fonemas que permitirá, durante la fase de funcionamiento, generar automáticamente los fonemas correspondientes a un determinado texto. - Reconocimiento de lenguaje hablado Este es un tipo de aplicación difícil de atacar, por lo que su estudio es de máxima actualidad. La dificultad reside en saber tratar correctamente información temporal. Una de las alternativas que se han propuesto es introducir retardos que muestren explícitamente la existencia de una ventana temporal en la captura de información. Cada unidad oculta se encuentra conectada a cada unidad de la capa de entrada a través de diferentes conexiones que dan cada una de ellas idea de diferentes retardos. De esta forma se pretende generar respuestas similares a patrones de entrada similares pero que están desplazados en el tiempo. Para tratar correctamente este problema, el algoritmo backpropagation convencional ha de ser modificado correctamente. El error no sólo hay que propagarlo espacialmente por todas las capas sino temporarmente, lo cual introduce un mayor nivel de complejidad en la resolución del problema. - Reconocimiento óptico de caracteres (OCR). Se trata de una aplicación típica de reconocimineto de patrones, siendo en este caso los caracteres de un texto los patrones que hay que reconocer. Se puede utilizar una red IV Redes neuronales con conexiones hacia adelante. 4.37 backpropagation par "aprender" las diferentes formas de los caracteres que se representarán como imágenes compuestas por un cierto nº de pixels, generando la red como salida el código, por ejemplo ASCII, correspondiente al carácter de entrada. El objetivo es que la red tenga capacidad para generalizar, es decir, que reconozca formas de caracteres no utilizadas en la fase de aprendizaje, siempre que no difieran excesivamente de los patrones de entrenamiento. También se puede utilizar una segunda red backpropagation como memoria autoasociativa (o diccionario) que "aprenda" palabras completas y permita depurar posibles errores en el reconocimiento de caracteres aislados llevado a cabo por la primera red. Se han obtenido buenos resultados con caracteres impresos de diferentes tamaños, aunque es motivo de investigación actual su aplicación al caso de texto manuscrito. 4.4.5.1 Aplicaciones en Cardiología. En este apartado se comentan algunas aplicaciones médicas existentes de redes neuronales tipo backpropagation en el ámbito de la cardiología. Clasificación de señales Electrocardiográficas (ECG) En [Bortolan 90] se presentan los resultados de una investigación sobre la posible utilización de redes neuronales en la clasificación de electrocardiogramas con 12 derivaciones. Las señales ECG se obtenían de una Base de Datos de arritmias creada en la Universidad de Leuven. Las 3.266 señales utilizadas de esta Base de Datos correpondían a 7 tipos diferentes: normales, con hipertrofia ventricular izquierda (LVH), hipertrofia ventricular derecha (RVH), hipertrofia bi-ventricular (BVH), infarto de miocardio anterior (AMI), infarto de miocardio inferior (IMI) e infarto de miorcardio combinado (MIX). De este conjunto de señales, una parte de ellas (2.446) elegidas de forma aleatoria, se utilizaron para el aprendizaje de la red, y el resto (820) para comprobar posteriormaente su funcionamiento, analizando el grado de acierto ante Fig. 4.25 Forma general de onda de la señal electrocardiográfica. Señalar que el complejo QRS es la parte que proprociona mayor información. unas señales que no se le habían "enseñado". IV Redes neuronales con conexiones hacia adelante. 4.37 En esta experiencia, las red neuronal utilizada no trabajaba directamente con las señales, sino que previamente se realizaba un preprocesamiento de éstas, parametrizando cada señal mediante un conjunto de 39 valores obtenidos por un programa comercial de análisis de ECG; 37 valores se obtienen principalmente de los complejos QRS y de las ondas T (parámetros característicos de la forma de onda de la señal. Ver la Fig. 4.25) en diferentes derivaciones (formas de obtener distintos registros de señal ECG) y se refieren a la amplitud y duración del QRS, eje del QRS, elevación o depresión del segmento ST, área bajo el QRS y bajo las ondas T. A este conjunto de 37 valores estándar, se le añadían como valores adicionales, el sexo y la edad del paciente. Después de obtener los parámetros de las señales, se presentan éstos a la entrada de la red para proceder a su "aprendizaje", es por ello por lo que la red utilizada tendrá 39 neuronas de entrada, para introducir los 39 valores que representan una señal . Fig. 4.26 Diagrama de bloques de las fases de una sistema de clasificación de señales de ECG. El número de salidas de la red es de 7, una por tipo de señal que se le va a enseñar. De esta forma, cuando la red esté funcionando y se le presente un nuevo ECG, ya parametrizado, deberá ser capaz de activar la salida correspondiente al tipo de ECG que se trate (Normal,LVH,RVH,..). La red utilizada en esta aplicación es una red del tipo backpropagation de 3 capas (Fig. 4.27), con el número de neuronas de entrada y salida ya indicado. En cuanto a la capa oculta, los autores indican que probaron con diferente número de neuronas, obteniendo los mejores resultados con 7 neuronas ocultas. En cuanto a los resultados, de las 3266 señales que componían la Base de Datos, se utilizaron 2446 en la fase de aprendizaje y las 820 restantes para comprobar el funcionamiento de la red. Los resultados al hacer esta comprobación, expresados en porcentaje de aciertos de cada tipo de ECG, estuvieron entre el 87.9% para el caso de ECG normales y el 96.1% para ECG´s con infarto de miocardio anterior (AMI). IV Redes neuronales con conexiones hacia adelante. Fig. 4.27 Red neuronal utilizada para clasificar señales electrocardiográficas. 4.37 IV Redes neuronales con conexiones hacia adelante. 4.37 Detección de taquicardias ventriculares y supraventriculares. Otra experiencia [Dassen 90], consiste en el desarrollo de una red que aprenda a diferenciar entre ECG correspondientes a taquicardias ventriculares (TV) y supra ventriculares (TSV). Se trata de una red de 3 capas del tipo backpropagation, con 4 neuronas de entrada y dos de salida (fig. 4.28). Las señales ECG que se presentan a la red se parametrizan previamente obteniendo 10 valores que son suficientes para poder diferenciar entre ambos tipos de taquicardias; aunque finalmente los autores deciden utilizar sólo 4 de ellos en cada señal: El intervalo R-S mayor de la señal, la presencia de disociación AV y dos parámetros morfológicos referidos a las derivaciones V1 y V6 del ECG (los electrocardiogramas disponibles representaban 12 derivaciones). Fig. 4.28 Red neuronal backpropagation de 3 capas utilizada para diferenciar entre taquicardias ventriculares o supraventriculares. Paralelamente a la utilización de la red, los autores también desarrollaron un sistema experto para determinar también el tipo de taquicardia utilizando reglas de clasificación basadas en los valores de los parámetros extraidos de los ECG. En esta investigación se utilizaron 240 electrocardiogramas. En el caso de la red neuronal, 120 fueron usados durante la fase de entrenamiento de la red, probándose posteriormente el funcionaiento de la misma con los restantes 120. Los resultados fueron los siguientes: La red determinaba correctamente que una taquicardia era del tipo supraventricular en el 87% de los casos y ventricular en el 95%. En el caso del sistema experto, los 240 ECGs se utilizaban para evaluar su funcionamiento, al no requerirse fase de entrenamiento. Usando las reglas de clasificación se obtenían unos resultados del 93% para SVT y del 84% para VT. Detección de complejos QRS anómalos. Se trata ésta de una utilización peculiar de una red neuronal [Casaleggio 90]. En este caso, la red no se entrena, como parecería más lógico, para que sea capaz de discriminar entre complejos QRS normales y anómalos (latidos con Complejos Ventriculares Prematuros), informando a su salida del tipo al que pertenece el QRS que se presenta a la entrada. En lugar de esto, los autores utilizan la red como memoria asociativa, almacenando en ella los complejos QRS que componen un ECG. IV Redes neuronales con conexiones hacia adelante. 4.37 La red utilizada (fig. 4.29) es de 3 capas de tipo backpropagation con 62 neuronas de entrada, puesto que cada complejo QRS se representa mediante 62 muestras en el dominio del tiempo, 1 neurona oculta y 62 neuronas de salida, para obtener en ellas la señal almacenada que más se parezca a la de entrada. Fig. 4.29 Red neuronal utilizada para la detección de complejos QRS anómalos. Debido a que en un ECG la mayoría de los QRS serán normales, en la red se almacenan complejos muy parecidos entre sí, excepto los anómalos, que serán unos pocos. Durante la fase de funcionamiento, al presentarle un complejo QRS, si éste es uno de los normales se reconstruye con poco error a la salida, debido a que es similar a la mayor parte de los almacenados. Sin embargo, cuando se presenta uno anómalo, en su reconstrucción a la salida se suele cometer un mayor error, lo cual permite, valorando dicho error, decidir que no se trata de un complejo QRS normal. Los autores utilizaron señales ECG de la base de datos de arritmias del MIT-BHI. Se analizaron 23022 complejos QRS, de los cuales 275 eran anómalos , con los siguientes resultados: De los 275 se reconocieron como normales 3 ó 4, cometiéndose, por tanto, un error de aproximadamente el 1%. En cuando a los QRS normales, se reconocieron como anómalos 200 sobre 22747, con un error de aprox. el 1% también. Por tanto, de forma global la clasificacion de los complejos se realizó correctamente en el 98% de los casos. Reconocimiento de formas anormales en señales ECG. En [Shu 91] se analiza la implementación de varias arquitecturas de redes neuronales para la detección de segmentos ST con elevación o depresión y detección de retardo en las ondas, sobre señales ECG estándar con 4 derivaciones. En esta aplicación, los autores suponen que la señal ECG que debe ser reconocida ha sido primero extraida de una serie de ondas. Esta onda aislada es también previamente centrada, para que su posición relativa coincida con la de las ondas utilizadas en la fase de aprendizaje de la red. Finalmente, lo que se presenta a la red es un conjunto de 40 muestras de la señal ECG. IV Redes neuronales con conexiones hacia adelante. 4.37 Todos los modelos de red utilizados tienen el mismo número de neuronas de entrada (40, una por muestra de señal) y el mismo número de neuronas de salida (3, una por cada anomalía que debe ser detectada); siendo variable el número de capas ocultas y la cantidad de neuronas en estas capas. Se probaron redes con una sóla capa oculta con 2, 5, 10 y 20 neuronas. También redes con dos capas ocultas con 3-2 y 5-5 (fig. 4.30) neuronas en estas capas ("n-m" indica "n" neuronas en la capa oculta mas próxima a la capa de entrada y "m" neuronas en la más próxima a la capa de salida). Todas estas redes fueron "entrenadas" con el mismo conjunto de patrones (señales de ECG) de entrada. Fig. 4.30 Forma de la red neuronal con dos capas ocultas y 5-5 neuronas en ambas capas. Los autores de esta aplicación comentan que se encontraron con grandes problemas durante la etapa de "aprendizaje" de las redes. Problemas de no convergencia del proceso de entrenamiento de las redes con una capa oculta debido, en gran medida, a que el conjunto de patrones de entrenamiento excedía la capacidad de aprendizaje de las redes y también a causa de la aparición de grandes mínimos locales en la función de error de la red, que dificultaba la posibilidad de alcanzar el mínimo global durante el entrenamiento. Por estos motivos decidieron utilizar redes con dos capas ocultas. Sin embargo, también en la fase de aprendizaje de estas redes surgieron algunos problemas relacionados con los mínimos locales. Problemas de saturación de algunas neuronas de las capas ocultas, que se reducían si se añadían más neuronas en dichas capas, llegando a la conclusión de que la arquitectura mas óptima consistía en la utilización de 5 neuronas en cada una de las capas ocultas. La convergencia en esta red durante el aprendizaje se alcanzaba en menos de 5000 iteraciones. También se comprobó que con una red de una sóla capa oculta compuesta por 5 neuronas se conseguía un mejor aprendizaje que, por ejemplo, con otra de dos capas ocultas de 3-2 neuronas, debido a los problemas de saturación y mínimos locales que introducía la capa oculta (de 2 neuronas) mas próxima a la salida de la red. Emulación hardware de una red neuronal para el procesado de ecg. En [Tsai 91] se presenta un sistema electrónico de emulación basado en una configuración de 9 Transputers que operan en parlelo, con los que se simula una red de 3 capas de tipo backpropagation para el reconocimiento de señales ECG. El hecho de utiilizar Transputers permite reducir tiempo durante la fase de "aprendizaje" de la red, puesto que el algoritmo de "retropropagación del error" utilizado en esta etapa para el cálculo de los pesos IV Redes neuronales con conexiones hacia adelante. 4.37 de las conexiones entre neuronas, puede paralelizarse, obteniendo cada procesador resultados parciales de forma simultánea, lo que acelera el proceso de entrenamiento. El diagrama de bloques del sistema es el que se muestra en la fig. 4.31. Se compone básicamente de 3 partes: Fig. 4.31 Diagrama de bloques del emulador de red neuronal. - Un computador personal, con procesador 80386 y 2 MBytes de Memoria, que es utilizado como procesador de Entrada/Salida para acceder a un monitor y a la base de datos de señales ECG. - Un conjunto de 9 Transputers del tipo T800-25. Se trata de procesadores de 32 bits que incorporan una memoria de 2MB, excepto el que se conecta al PC/386, que incluye 6MB de memoria. Los Transputers de interconectan entre sí. - La "MIT-BIH arrhythmia database", almacenada en un disco al que se accede a través del computador personal. Este sistema se utiliza para simular el comportamiento de una red neuronal de 3 capas con 64, 32 y 6 neuronas cada capa (fig. 4.32). Durante la fase de aprendizaje de esta red cada uno de los Transputers tiene una función determinada, por ejemplo, el conectado al computador tiene como misión leer los patrones de ECG de la base de datos y hacerlos llegar a otros transputers para que realicen el procesamiento matemático, también enviará a otro procesador el valor de la salida deseada para que se encargue posteriormente de determinar el error cometido respecto a la salida obtenida que recibirá de otros transputers. Este error es enviado finalmente al primero de los transputers (el conectado al PC) para que decida si se debe repetir el proceso de aprendizaje para minimizar dicha diferencia. IV Redes neuronales con conexiones hacia adelante. 4.37 Fig. 4.32 Red neuronal backpropagation 64-32-6 emulada. Aunque para ello se basaron en el reconocimiento de ECG, en realidad, lo que pretendían los autores con el sistema utilizado era comprobar la ventaja que supone el utilizar varios procesadores trabajando en paralelo durante el aprendizaje en una red neuronal, probando diferentes formas de conectar los Transputers y de paralelización de los cálculos. Después de la experiencia, se concluía que utilizando los 9 procesadores, la velocidad de aprendizaje se llegaba a multiplicar por 6. IV Redes neuronales con conexiones hacia adelante. 4.37 Cancelación de ruido en señales ECG. Para cancelar el posible ruido incluido en señales de ECG también se han utilizado redes neuronales. El método consiste en entrenar una red para que "aprenda" a relacionar señales a las que intencionadamente se les añade un ruido aleatorio, con la versión original de dichas señales. En el caso de ECG existen experiencias desarrolladas por algunos autores a este respecto [Hecht-Nielsen 88b], para eliminar el ruido de alta frecuencia que generalmente incluyen estas señales, con resultados bastante aceptables utilizando redes de tres capas del tipo backpropagation. También, como se comentó en el apartado 4.3.2, en 1.988 los autores Widrow y Winter [Widrow 88] utilizaron una red neuronal del tipo MADALINE como filtro adaptativo para cancelar las interferencias maternas en el ECG de un feto. 4.4.5.2 Compresión/descompresión de datos. En este texto ya se ha comentado que una de las posibles aplicaciones de las redes neuronales es la compresión de información, es decir, la reducción del espacio físico (memoria, disco, cinta) ocupado por grandes cantidades de datos. A continuación se va a presentar un sencillo ejemplo, desarrollado por los autores de este libro [Hilera 94] en el que la información a comprimir consiste en señales eléctricas almacenadas en ficheros en forma de muestras en el dominio del tiempo. Aunque la experiencia realizada se puede aplicar a cualquier señal, para poder comprobar su funcionamiento se han utilizado señales electrocardiográficas (ECG) reales procedentes de la Base de Datos de Arritmias de la American Heart Association (A.H.A.), que contiene una gama de diferentes registros de ECG de 20 minutos de duración muestreados a una frecuencia de 250 Hz y clasificados en función de la anomalía que puede distinguirse en cada uno que también ha sido usada en el ejemplo de aplicación de clasificación de arritmias descrito anteriormente. Las señales ECG suelen tener una gran duración, del orden de minutos y horas y, si tenemeos en cuenta que por lo general suelen tener del orden de algunos miles de muestras por segundo (en el caso de las señales AHA, 4000 muestras por segundo, con un total de 4.8 millones de muestras por cada registro de ECG de 20 minutos), parece evidente la necesidad de reducir su tamaño si se pretende almacenar dicha señal en algún soporte (disco, cinta) o enviarla a través de un sistema de comunicación. En este sentido se ha utilizado una red neuronal backpropagation para comprimir señales ECG, que podrán ser reconstruidas mediante otra red complementaria. Se han probado diferentes arquitecturas obteniéndose unos resultados aceptables con redes con una única capa oculta. a) Descripción de las redes neuronales utilizadas. La red neuronal utilizada para comprimir tiene 3 capas con 100 neuronas en las capas de entrada y salida, un pequeño número arbitrario de neuronas en la capa oculta y algoritmo de aprendizaje backpropagation (fig. 4.33). Para proceder a la compresión, en primer lugar se divide la señal original xe en N tramos o vectores (correspondientes a los diferentes ciclos cardiacos) con un número de muestras cada uno igual al de neuronas de entrada de la red (l). A continuación se entrena la IV Redes neuronales con conexiones hacia adelante. 4.37 Install Equation Editor and doublered presentando secuencialemente los N vectores click here to view equation. 25a la entrada, procediendo al ajuste los pesos de las conexiones entre neuronas hasta que para Install Equation Editor and doublecada click here to view equation. 26de entrada se obtenga a la salida exactamente un Install Equation Editor and double27con los mismos vector click here to view equation. Install Equation Editor and double28). Esto, en general, no va a ser posible, por lo que se valores( click here to view equation. aplica el algoritmo backpropagation hasta obtener una mínima diferencia entre entradas y salidas. Fig. 4.33 Red Neuronal utilizada para la compresión. Cuando esta etapa de entrenamiento ha concluido podemos afirmar que la compresión ha sido realizada en las neuronas ocultas de la red. Si se desea entonces almacenar la señal comprimida (xc), se guardarán los vectores obtenidos en las salidas de las neuronas ocultas Install Equation Editor and double29) ( click here to view equation. para cada vector de la señal original Install Equation Editor and doubleInstall Equation Editor and doubleclick here to view equation. 30) junto con un vector ( click here to view equation. 31) con ( los valores de los pesos entre estas neuronas y las de la capa de salida de la red. Si llamamos r al número de neuronas ocultas, l al número de neuronas de las capas de entrada y salida, que representa el número de muestras por vector de señal (en nuestro caso Install Equation Editor and doublehemos trabajado con l=100), entonces el vector click here to view equation. 32 tiene una dimensión de (r+1)l ya que, como es habitual, se considera una neurona oculta flicticia para representar en los pesos de sus conexiones con las neuronas de salida los umbrales o desplazamientos de las funciones de activación sigmoidales de estas neuronas. Si además N es el número de vectores de l muestras "aprendidos" por la red, entonces el vector de datos a IV Redes neuronales con conexiones hacia adelante. almacenar Install Equation Editor and doubleclick here to view equation. 33 se obtiene como concatenación Install Equation Editor and doubleInstall Equation Editor and doubleclick here to view equation. 34 y de los N vectores click here to view equation. 35: 4.37 de Install Equation Editor and doubleclick here to view equation. 36 Para proceder a la descompresión de la señal bastará con implementar una red de dos Install Equation Editor and doublecapas con unos pesos iguales a los almacenados en el vector click here to view equation. 37 y Install Equation Editor and double38obteniendo suministrar a la entrada los valores de los vectores click here to view equation. a la salida la señal original reconstruida (Fig. 4.34) con el correspondiente error debido a que no es posible conseguir durante el entrenamiento de la red que el error de aprendizaje sea nulo. Fig. 4.34 Red neuronal utilizada para descomprimir. b) Valoración de resultados. Para valorar los resultados se han calculado, para cada una de las redes probadas, dos medidas a tener en cuenta en todo proceso de compresión: el Factor de Compresión y el Error de reconstrucción. El Factor de Compresión (FC) es la relación entre el tamaño de la señal original (Nl muestras) y los datos que se almacenan después de la compresión (señal comprimida más pesos): Install Equation Editor and doubleclick here to view equation. Siendo: Install Equation Editor and doubleclick here to view equation. 40 N: Número de vectores de la señal original. IV Redes neuronales con conexiones hacia adelante. 4.37 l: Muestras por vector (en nuestro caso=100). r: Neuronas ocultas. Es evidente que en el factor de compresión influye tanto el número de neuronas en la capa oculta de la red (a menor número de neuronas, mayor compresión) como el número de fragmentos de señal que ha "aprendido" la red (a mayor número de fragmentos, mayor compresión). Según esto, parece evidente que interesa trabajar con valores pequeños de r y grandes de N para obtener factores de compresión tan altos como se desee. Sin embargo, este factor de compresión no puede hacerse todo lo pequeño que se quiera, porque va a influir también el error cometido en la reconstrucción de la señal, que también depende del número de fragmentos a comprimir y del número de neuronas ocultas, debido a que cuantas menos neuronas tengamos (valores pequeños de r), más le cuesta a la red alcanzar el error que se quiera fijar para conseguir una reconstrucción de calidad. Lo mismo ocurre cuando se aumenta mucho el número de fragmentos de señal (N); cuantos más fragmentos tenga que "aprender" la red, más le costará hacerlo porque tiene mas probabilidad de confundir unos fragmentos con otros. Para cuantificar el error cometido al recomponer la señal (error de recontrucción) utilizamos el tanto por ciento de la raiz cuadrada de la diferencia cuadrática media, conocido también como error PRD [Reddy 86], cuya expresión matemática es la siguiente: Install Equation Editor and doubleclick here to view equation. Install Equation Editor and doubleSiendo click here to view equation. 42el valor de la muestra i-ésima del vector de Install Equation Editor and double43el de la correspondiente muestra de la señal señal original y click here to view equation. reconstruida. Este es el error cometido al reconstruir un vector de 100 muestras de señal (un latido o ciclo cardiaco). El error total correspondiente a la reconstrucción de una señal completa se obtiene como la media aritmética de los errores para cada uno de los N vectores comprimidos. Puede considerarse como aceptable para posterior diagnóstico clínico un error total entre 3.5% y 4.5%. Install Equation Editor and doubleclick here to view equation. Se han realizado numerosas pruebas para averiguar como influye la tasa de aprendizaje (α), la tasa de momento (β), el número de neuronas ocultas (r), el número de iteraciones de aprendizaje, la cantidad de ciclos o vectores a comprimir (N) y el tipo de señal en el Factor de Compresión y en el error cometido al recomponer la señal. Para ello hemos utilizado todos los tipos de señales de la base de datos AHA. Como muestra, en la tabla 4.1 se presentan algunos de los resultados obtenidos para una señal ECG con ritmos ventriculares. N r Iteraciones C.F. Error IV Redes neuronales con conexiones hacia adelante. 50 50 50 50 50 50 200 200 200 200 200 200 1 2 3 4 5 8 1 2 3 4 5 8 1000 1000 1000 1000 1000 1000 500 500 500 500 500 500 20.0 12.5 9.1 7.1 5.9 3.8 50.0 28.6 20.0 15.4 12.5 8.0 4.37 3.50 3.02 3.06 3.16 2.65 2.33 6.36 4.98 4.35 3.41 2.86 2.45 Tabla 4.1. Resultados obtenidos al comprimir/descomprimir una señal ECG con ritmos ventriculares, en función del número de ciclos cardiacos (N) y el número de neuronas ocultas (r) En la Fig. 4.35 se muestra la evolución del error en función del número de iteraciones alcanzadas durante el proceso de compresión de 200 ciclos cardiacos de una señal ECG sin anomalías utilizando tres redes con diferente número de neuronas ocultas: 1, 4 y 8. Fig. 4.35 Evolución del error de reconstrucción de una señal ECG sin anomalías al comprimir 200 ciclos cardiacos con redes de 1, 4 u 8 neuronas ocultas. c) Conclusiones Ya se ha comentado que el objetivo de las pruebas realizadas en esta aplicación ha sido tratar de encontrar los parámetros óptimos de una red neuronal que consigan reducir al IV Redes neuronales con conexiones hacia adelante. 4.37 máximo el error en el menor número de iteraciones posibles. Sin embargo, no siempre es posible alcanzar un error mínimo sólo a base de iteraciones, ya que normalmente se comprueba qu a partir de las 300 iteraciones el error decrece muy lentamente, debiendo aumentarse el número de neuronas de la capa oculta para conseguir disminuciones significativas del error, pero sacrificando entonces el factor de compresión, que se reducirá al aumentar las neuronas ocultas. En la velocidad de aprendizaje influyen directamente la tasa de aprendizaje y de momento utilizadas, debiéndose obtener un equilibrio entre ambas. Si modificando estos parámetros no se reduce el tiempo de aprendizaje lo suficiente, habría que aumentar el número de neuronas de la capa oculta para hacer decrecer el error. Hay que destacar que en las pruebas realizadas influye directamente el tipo de señal y el número de ciclos cardiacos (latidos) que se comprimen. Si las formas de los ciclos son muy semejantes entre sí, el error disminuye muy rápidamente consiguiéndose un valor pequeño. Sin embargo, si estos ciclos son muy diferentes la velocidad de disminución del error es lenta y a veces ocurre que oscila bruscamente. Se puede decir que a la red "le cuesta" aprender informaciones diferentes y "le es fácil" aprender informaciones semejantes. De hecho, en algunos casos, cuando la mayoría de los ciclos son muy parecidos entre sí excepto alguno diferente, es posible que la red ignore estos últimos si no se emplea un número suficiente de neuronas ocultas. Otra forma de reducir el error es estos casos consiste en la utilización de menos ciclos, de esta forma la "mayoría" antes mencionada se reduce y también su efecto en el aprendizaje de los "menos parecidos". Sin embargo, esta solución implica también una redución del Factor de Compresión, puesto que al dividir la señal se deben utilizar varias redes para comprimir cada parte por separado. En las pruebas realizadas con las señales ECG se ha alcanzado un factor de compresión de hasta 50, lo que significa que el tamaño del fichero que contiene la señal se reduce en 50 veces, de esta forma si ocupaba 500Kbytes se podría reducir a 10kbytes. También se ha considerado, comprobando resultados, que en la reconstrucción de la señal puede considerarse como aceptable para posterior diagnóstico clínico un error entre el 3.5% y el 4.5%. En cuanto al número de neuronas en la capa oculta óptimo, para señales con ciclos cardiacos similares es suficiente con 1 ó 2 neuronas, consiguiendo así un reducido valor del error y un factor de compresión alto, que dependerá del número de ciclos que se compriman con una misma red. Sin los ciclos difieren bastante entre sí, habrá que aumentar el número de neuronas ocultas, obteniendo un error no muy alto y un factor de compresión considerable utilizando entre 5 y 8 neuronas ocultas. Para comprobar gráficamente como influye el número de neuronas ocultas de la red en la reconstrucción de una señal con ciclos no periódicos, se representa en la Fig. 4.36 como sería la recostrucción de un ECG con ritmos ventriculares (a) utilizando una red con una sóla neurona oculta (b) y una red con 8 neuronas (c). Puede observarse que la red con 1 neurona no es capaz de reconstruir los ritmos ventriculares que rompen la periodicidad de la señal. La tasa de aprendizaje utilizada en el entrenamiento de la red influye directamente en la velocidad de aprendizaje; así, con valores altos se podría alcanzar rápidamente un pequeño error, yaque esta tasa afecta a la cuantía de los incrementos y decrementos de los pesos de las conexiones entre las neuronas durante en aprendizaje. Sin embargo, puede ocurrir que con valore altos se pruzcan oscilaciones entre los pesos óptimos de la red pero sin llegar a alcanzar un valor estable, no lógrándose así reducir el error lo suficiente, manteniéndose éste casi IV Redes neuronales con conexiones hacia adelante. 4.37 constante. Con valores bajos de la tasa de aprendizaje se alcanza mas lentamente el error mínimo, ya que las variaciones de los pesos son menores. También en estos casos, se ha observado en algunas pruebas que en determinados momentos durante el proceso de aprendizaje se producen unos picos de error bastante considerables. Por otro lado, la tasa de momento también influye en el entrenamiento, compensando a la tasa de aprendizaje. En ambos casos sus valores deben oscilar entre 0 y 1. Despúés de un gran número de pruebas puede concluirse que en la aplicación que nos ocupa los mejores resultados se han obtenido con valores entre 0.5 y 0.8 para la tasa de aprendizaje y entre 0.4 y Fig. 4.36 Reconstrucción de un ECG con ritmos ventriculares. (a) Original. (b) Comprimido con 1 neurona oculta. (c) Con 8 neuronas ocultas. 0.8 para la tasa de momento. Para finalizar, se puede afirmar a partir de las experiencias realizadas y coincidiendo con la opinión de otros autores que han tratado el tema [Iwata 89], que la utilización de redes neuronales para compresión de señales es una técnica que puede resultar de gran utilidad consiguiendo buenos resultados si las señales en cuestión son del tipo cuasi-periódicas, ya que el principal problema que presenta este método es la dificultad de las redes para "aprender" fragmentos de señal muy diferentes entre sí. 4.4.5.3 Reconocimiento de patrones. Como ya comentamos en el capítulo 1, una de las aplicaciones más extendida de las redes neuronales, y para la que, desde el principio, se comprobó que podía ser un campo apropiado, es el reconocimiento o clasificación de patrones aprovechando la capacidad de generalización de las redes, las cuales pueden "aprender" una serie de modelos originales de diferentes clase para, posteriormente, ser capaces de determinar la clase a la que pertenecen otras entradas distintas de los patrones "aprendidos". En este sentido, a continuación se muestran los trabajos y conclusiones que hemos obtenido en la investigación de la aplicación de redes neuronales tipo backpropagation para clasificar diferentes tipos de señales electrocardiográficas (ECG) [Hilera 94]. Como ocurría en el apartado anterior, para realizar las IV Redes neuronales con conexiones hacia adelante. 4.37 pruebas con las distintas redes, se han utilizado como patrones las señales ECG de la base de datos de la American Heart Association (AHA). Los pasos seguidos para llegar al objetivo de conseguir una Red Neuronal capaz de reconocer ciertos tipos de señales ECG han sido los siguientes: a) Caracterización de la señal. En primer lugar, como ocurre en cualquier problema de reconocimiento de patrones y como fase previa a la clasificación, se hace necesario, para limitar el número de entradas de la red neuronal, caracterizar la señal extrayendo algunos parámetros significativos que sean suficientes para diferenciar un tipo de señal de otro. En este sentido, como alternativa a otros intentos de clasificación con redes llevadas a cabo por otros autores [Bortolan 90], hemos decidido caracterizar cada señal por las amplitudes de las componentes de su espectro en el dominio de la frecuencia. Se tratará, por tanto, de comprobar si una red neuronal es capaz de diferenciar los espectros de los distintos tipos de ECG. Para ello, se ha utilizado el método de descomposición en series de Fourier. A pesar de sus inconvenientes, esta técnica presenta una gran ventaja: existen algoritmos rápidos para su obtención (Fast Fourier Transform: FFT) y, por tanto, será más adecuada para una posible implementación en sistemas que trabajen en tiempo real. Para el caso de que la señal venga definida por un conjunto de valores discretos, es decir, sea el resultado de muestrear un señal contínua en intervalos iguales de tiempo n, como ocurre en nuestro caso, la representación de x(n) en el dominio de la frecuencia se puede realizar mediante la transformada discreta de Fourier (D.F.T.): Install Equation Editor and doubleclick here to view equation. Donde X(k) es el valor del espectro a la frecuencia 2πk/NT, n el índice de tiempos, N el número total de muestras y T el período de muestreo. Esta expresión permite calcular cada una de las N componentes de frecuencia del espectro a partir de N puntos de x(t) ponderados Install Equation Editor and doublepor la función click here to view equation. 46. Se puede recuperar la señal original a partir de su espectro en frecuencia aplicando la transformada discreta inversa de Fourier (IDFT): Install Equation Editor and double click here to view equation. Se obseva que la DFT y su inversa, la IDFT, son muy similares, la única diferencia es el factor 1/N y el exponente negativo de la DFT. Esta similitud tiene un significado práctico importane, ya que permite que el desarrollo de un algoritmo o de un hardware para la DFT sea utilizado para la IDFT con pequeñas modificaciones. Aprovechando las propiedades de simetría que aparecen en el exponente de la D.F.T. se han formulado diferentes algoritmos de computación denominados Transformada Rápida de IV Redes neuronales con conexiones hacia adelante. 4.37 Fourier (F.F.T.), que hacen posible un ahorro sustancial de tiempo de computación frente a los algoritmos convencionales al reducir considerablemente el número de operaciones algebraicas a realizar. La aplicación directa de la DFT según su definición requiere la ejecución de N multiplicaciones y N-1 adiciones para cada muestra. Para una transformación de N muestras el número de operaciones es del orden de magnitud de N2. Se hace necesario, por tanto, idear un procedimiento que permita disminuir éste. El procedimiento se basa en dividir el cómputo de la DFT en varias DFT de dimensiones sucesivamente más pequeñas, aprovechando la proporcionalidad del número de operaciones con N2 y cambiar después los resultados de forma adecuada. Si N es par, se puede componer primero una DFT de N/2 puntos sobre todas las muestras de numeración par y después sobre todas las de numeración impar. A continuación, la DFT requerida de N puntos se puede calcular a partir de los resultados de estas dos DFT más pequeñas. Si N/2 también es un número par, se puede repetir este procedimiento. La máxima optimización del proceso se da cuando N es una potencia de dos, ya que entonces se puede llegar a DFT de dos puntos, de forma que el número total de operaciones es del orden de Nlog2N, que es una reducción según un factor de N/M, donde M=log2N. Los algoritmos en los que N es igual a 2k, donde k es un entero, también conocidos como algoritmos "potencia de dos", son más correctos y relativamente más rápidos en la ejecución que los algoritmos más generales. Con frecuencia estos algoritmos FFT están basados en los algoritmos de Cooley-Tukey o de Sande-Tukey [Brigham 74], los cuales difieren fundamentalmente en la organización de los resultados. Concretamente, el algoritmo de FFT de Sande-Tukey se ha aplicado para la caracterización de las señales de ECG a clasificar. Se han tomado intervalos de 1024 puntos (4096 mseg) de los que, una vez realizada la FFT, se han elegido los 100 primeros armónicos (componentes de la parte baja del espectro). Estos valores serán los datos de entrada a la red neuronal (y, por tanto, determinará el número de neuronas de la capa de entrada) tanto en la fase de aprendizaje como en la de valoración de resultados. Este número de armónicos a utilizar se ha decidido buscando un compromiso entre un valor suficiente para caracterizar la señal y no demasiado elevado para poder utilizar una red neuronal lo más sencilla posible. Fig. 4.37 Forma del espectro de la señal para 1024 muestras. IV Redes neuronales con conexiones hacia adelante. 4.37 En las figuras 4.37 y 4.38 se presenta un ejemplo de transformada de Fourier de un intervalo de señal ECG, así como la forma de la señal reconstruida, realizando la transformada inversa tomando 100 armónicos. Fig. 4.38 Forma del espectro de la señal para 1024 muestras. b) Entrenamiento de la red y análisis comparativo de diferentes arquitecturas. La red será del tipo backpropagation con una única capa oculta. El número de neuronas de la capa de entrada será 100 debido a los 100 armónicos que se utilizan al realizar la FFT. El número de neuronas ocultas será un parámetro modificable durante la fase de entrenamiento, en la búsqueda de la arquitectura más idónea para la clasificación de arritmias. Por último, la capa de salida tendrá cuatro neuronas debido a que la red se emplea para clasificar cuatro tipos de arritmias. Los grupos de señales utilizadas para realizar la red neuronal capaz de clasificarlas han sido los siguientes: - Señales normales (SN). - Señales con Bigeminismo (BIG). - Señales con Ritmos Ventriculares (RN). - Señales con Fibrilación Ventricular (FV). IV Redes neuronales con conexiones hacia adelante. 4.37 Fig. 4.39 Red para clasificar ECGs. De cada grupo de señales se han elegido 100 intervalos para la etapa de aprendizaje y 50 distintos para la fase de valoración de resultados. A cada intervalo se le ha aplicado la FFT y escogido 100 armónicos. Una vez normalizados los armónicos se realiza la fase de aprendizaje de la Red Neuronal. En esta fase se muestra a la red diferentes ejemplos de un mismo tipo de ECG para que realice una representación interna, en los pesos de las conexiones internas, de la asociación entre valores de entrada y valores deseados de salida. Cuando ya está formada la función de asociación anterior en la estructura interna de pesos de la red neuronal, ya podemos pasar a la siguiente fase, generación de salida. En esta fase presentamos a la red un conjunto de ejemplos de ECG diferentes de los que se han utilizado en la etapa anterior. El objetivo es observar que porcentaje de acierto es capaz de alcanzar la red, con una estructura determinada. Mediante la variación de los parámetros α, β y nº de neuronas de la capa oculta, realizamos una serie de pruebas hasta detectar las estructuras que cometen menor error en la clasificación. Asímismo, se realiza un seguimiento de la variación del error cometido en función del nº de iteraciones llevadas a cabo. En la tabla 4.2 se muestran los resultados obtenidos en las etapas de aprendizaje y valoración. En ambos casos se indican los porcentajes de acierto de la red neuronal para cada tipo de ECG en relación con el número de neuronas ocultas (N) utilizando los valores 0.7 y 0.6 como tasas de aprendizaje (α) y momento (β) respectivamente y 1000 iteraciones en el proceso de aprendizaje. Neuronas TOT SN APRENDIZAJE BIG RV FV TOT EVALUACION SN BIG RV FV 5 86.5 98 98 98.75 86 94 100 99 70 96 IV Redes neuronales con conexiones hacia adelante. 6 87.5 7 85.5 8 89.5 9 89.0 10 91.0 11 88.5 12 89.5 20 89.5 4.37 100 95 98 100 98.25 86 76 98 90 99 98 100 100 99.25 84 74 94 90 100 99 100 100 99.75 86 76 100 96 100 99 99 100 99.50 90 76 96 94 100 99 100 100 99.75 90 84 94 90 100 99 100 100 99.75 86 80 96 92 100 99 100 100 99.75 90 84 94 90 100 99 100 100 99.75 92 76 94 96 Tabla 4.2. Porcentaje de señales ECG Normales (SN), con Bigeminismo (BIG), con Ritmos Ventriculares (RV) y con Fibrilación Ventricular (FV) aprendidas y clasificadas correctamente. La red neuronal utilizada debe ser capaz de clasificar 4 diferentes tipos de ECGs, pero no es habitual, si se observa la tabla de porcentajes, que acierte en el 100 % de los casos. Por esta razón, puede ser intersante considerar, en estos casos, cuál de las 4 salidas de la red es activada al presentar ECGs de un determinado tipo para comprobar, cuando la red "se equivoca" al activar una salida, los tipos de señales que "confunden" a la red. Como ejemplo, en la tabla 4.3 se muestra, para el caso de las 50 señales de ECG de tipo NORMAL utilizadas en la fase de valoración, cuantas veces se ha activado la salida correcta (señañ normal: SN) y los casos en los que se ha activado otra salida, lo cual quiere decir que la red se ha "equivocado" considerando que el ECGs es de un tipo incorrecto. También se indica el número de veces que ninguna salida se activa, y los casos en que se activan varias. N SALIDA SN ACTIVA SALIDA BIG ACTIVA SALIDA RV ACTIVA SALID. FV ACTIV. NINGUNA SALIDA ACTIVA VARIAS SALIDAS ACTIVAS 5 43 2 1 0 4 0 6 43 3 0 0 3 1 7 42 3 1 0 1 3 8 43 2 2 0 1 2 9 45 2 2 0 0 1 10 45 2 1 0 1 1 11 43 5 1 0 1 0 12 45 3 1 0 0 1 20 46 2 2 0 0 0 9 43 2 1 0 2 2 IV Redes neuronales con conexiones hacia adelante. 4.37 N SALIDA SN ACTIVA SALIDA BIG ACTIVA SALIDA RV ACTIVA SALID. FV ACTIV. NINGUNA SALIDA ACTIVA VARIAS SALIDAS ACTIVAS 5 43 2 1 0 4 0 6 43 3 0 0 3 1 10 44 3 1 0 1 1 10 44 3 3 0 0 0 Tabla 4.3. Activación de salidas en la valoración del funcionamiento de la red para señales ECG nomales. c) Conclusiones Indicar que durante el aprendizaje nunca se consigue un porcentaje total del 100% en las redes probadas. También en la valoración los porcentajes de acierto son mas pequeños. El mayor porcentaje de acierto total conseguido ha sido del 91% con una red de 10 neuronas ocultas. El mejor porcentaje individual ha sido del 100% para ECGs con Ritmos Ventriculares. Se ha alcanzado en algún caso un 92% de acierto en ECGs normales, un 96% en ECGs con Fibrilación Ventricular y un 84% en ECGs con Bigeminismo. Respecto al número de neuronas ocultas, los mejores resultados se han obtenido con redes de 8, 10, 12 y 20 neuronas en la capa oculta, empleando tasas de aprendizaje y momento de 0.7 y 0.6 respectivamente. En relación con el tiempo de aprendizaje, puede afirmarse, según las pruebas realizadas, que a partir de unas 1000 iteraciones el error puede considerarse prácticamente constante. Si tenemos en cuenta que las comprobaciones de esta segunda fase de la aplicación se han realizado en un computador con CPU i80486 (33MHz) y Coprocesador, y que una iteración se lleva a cabo en aproximadamente 8 segundos, puede concluirse que el tiempo de aprendizaje de las redes para obtener los resultados indicados es del orden de 3 horas. A la vista de los resultados, el método presentado podría ser una primera etapa de clasificación de señales que debería ser complementada con otros métodos que aseguren el correcto diagnóstico clínico. Asimismo, podrían mejorarse los resultados, por ejemplo, aumentando el número de patrones presentados a la red en la fase de aprendizaje; también se podrían utilizar otros métodos de caracterización de la señal ECG diferentes de la FFT, como por ejemplo los valores obtenidos mediante la comprensión con otra red neuronal u otros tipos de redes y algoritmos de aprendizaje . V. El Modelo de Hopfield 5.1 V EL MODELO DE HOPFIELD Sin duda, uno de los principales responsables del desarrollo que ha experimentado el campo de la computación neuronal ha sido J. Hopfield, quien construyó un modelo de red [Hopfield 82] con el número suficiente de simplificaciones como para poder extraer analíticamente información sobre las características relevantes del sistema, conservando las ideas fundamentales de las redes construidas en el pasado y presentando una serie de funciones básicas de sistemas neuronales reales. Además, Hopfield supo establecer un paralelismo entre su modelo y ciertos sistemas extensamente estudiados en física estadística, lo cual ha permitido aplicar todo un conjunto de técnicas bien conocidas en este campo y, con ello, producir un avance en la comprensión del funcionamiento de las redes neuronales. Con su aportación, Hopfield redescubrió el mundo casi olvidado de las redes autoasociativas, caracterizadas por una nueva arquitectura y un nuevo funcionamiento, a las que se tuvo que añadir otro tipo de reglas de aprendizaje. Las consecuencias fueron redes con un comportamiento diferente a las diseñadas con estructura "feed-foward" (ADALINE/MADALINE, PERCEPTRON,..), analizadas en el capítulo anterior. 5.1.- ARQUITECTURA. El modelo de Hopfield (Fig. 5.1) consiste en una red monocapa con N neuronas cuyos valores de salida son binarios: 0/1 ó -1/+1. En la versión original del modelo ("DH: DISCRETE HOPFIELD") las funciones de activación de las neuronas eran del tipo escalón. Se trataba, por tanto, de una red discreta discreta, con entradas y salidas binarias; sin embargo, posteriormente Hopfield desarrolló una versión contínua con entradas y salidas analógicas [HOPF84], utilizando neuronas con funciones de activación tipo sigmoidal ("CH: CONTINOUS HOPFIELD"). Cada neurona de la red se encuentra conectada a todas las demás (conexiones laterales), pero no consigo misma (no existen conexiones auto-recurrentes). Además, los pesos asociados a las conexiones entre pares de neuronas son simétricos. Esto significa que el peso de la conexión de una neurona "i" con otra neurona "j" es de igual valor que el de la conexión de la neurona "j" con la "i" (wij = wji). V. El Modelo de Hopfield 5.1 Fig. 5.1 Red Hopfield. La versión discreta de esta red fue ideada para trabajar con valores binarios -1 y +1 (aunque mediante un ajuste en los pesos pueden utilizarse en su lugar los valores 1 y 0). Por tanto, la función de activación de cada neurona (i) de la red (f(x)) es de tipo escalón: Install Equation Editor and doubleclick here to view equation. 1 Fig. 5.2 Cuando el valor de x coincide exactamente con θi la salida de la neurona i permanece con su valor anterior. θi es el umbral de disparo de la neurona i, que representa el desplazamiento de la función de transferencia a lo largo del eje de ordenadas (x). En el modelo de Hopfield discreto suele adoptarse un valor proporcional a la suma de los pesos de las conexiones de cada neurona con el resto: Install Equation Editor and doubleclick here to view equation. Si se trabaja con los valores binarios -1 y +1, suele considerarse el valor nulo para θi. Si los valores binarios son 0 y 1, se toma un valor de 1/2 para k. En el caso de las redes de Hopfield contínuas, se trabaja con valores reales en los rangos [-1,+1] ó [0,1]. En ambos casos la función de activación de las neuronas es de tipo sigmoidal. Si se trabaja con valores entre -1 y +1 la función que se utiliza es la tangente hiperbólica: V. El Modelo de Hopfield 5.1 Install Equation Editor and doubleclick here to view equation. Fig. 5.3 Si el rango es [0,1] se utiliza la misma función que para la red back-propagation: Install Equation Editor and doubleclick here to view equation. 4 Fig. 5.4 En ambos casos α es un parámetro que determina la pendiente de la función sigmoidal. 5.2.- FUNCIONAMIENTO. Una de las características del modelo de Hopfield es que se trata de una red auto-asociativa. Así, varias informaciones (patrones) diferentes pueden ser almacenadas en la red, como si de una memoria se tratase, durante la etapa de aprendizaje. Posteriormente, si se presenta a la entrada alguna de las informaciones almacenadas, la red evoluciona hasta estabilizarse, ofreciendo entonces en la salida la información almacenada que coincide con la presentada en la entrada. Si, por el contrario, la información de entrada no coincide con ninguna de las almacenadas, por estar distorsionada o incompleta, la red evoluciona generando como salida la más parecida. La información que recibe esta red debe haber sido previamente codificada y representada en forma de vector (como una configuracíón binaria si la red es discreta y como conjunto de valores reales si es contínua) con tantas componentes como neuronas (N) tenga la red. Esa información es aplicada directamente a la única capa de que consta la red, siendo recibida por las neuronas de dicha capa (cada neurona recibe una parte de la información, un elemento del vector que representa dicha información). Si consideramos, en principio, el caso de una neurona concreta de la red, esta neurona recibiría como entrada las salidas de cada una de las otras neuronas, valores que inicialmente coincidirán con los de entrada, multiplicadas por los pesos de las conexiones V. El Modelo de Hopfield 5.1 correspondientes. La suma de todos estos valores constituirá el valor de entrada neta de la neurona, al que le será aplicado la función de transferencia, obteniéndose el valor de salida correspondiente, 0/1 ó 1/+1 si la red es discreta y un número real en el rango [0,1] ó [-1,+1] si es contínua. La descripción anterior correspondería a un primer paso en el procesamiento realizado por la red. Este proceso continúa hasta que las salidas de las neuronas se estabilizan, lo cual ocurrirá cuando dejen de cambiar de valor. Entonces, el conjunto de estos (N) valores de salida de todas las neuronas constituye la información de salida que ha generado la red, que se corresponderá con alguna de las informaciones que durante la etapa de aprendizaje fueron almacenadas en la misma. Este funcionamiento puede expresarse matemáticamente de la siguiente forma: 1º: En el instante inicial (t=0) se aplica la información de entrada (valores e1,e2,..,eN). Install Equation Editor and doubleclick here to view equation. Inicialmente la salida de las neuronas coincide con la información aplicada a la entrada. 2º: La red realiza iteraciones hasta alcanzar la convergencia (hasta que si(t+1) sea igual a si(t)). Install Equation Editor and doubleclick here to view equation. Donde "f" es la función de transferencia (activación) de las neuronas de la red. En el caso del modelo discreto, si se trabaja con valores binarios -1 y +1, la salida se obtendría según la función escalón: Install Equation Editor and doubleclick here to view equation. El proceso se repite hasta que las salidas de las neuronas permanecen sin cambios durante algunas iteraciones. En ese instante la salida (s1, s2,..,sN) representa la información "almacenada" por la red que más se parece a la información presentada en la entrada (e1, e2,..,eN). El funcionamiento descrito corresponde a una red Hopfield Discreta clásica, ya que trabaja con informaciones binarias. Sin embargo, como se comentó en el apartado 5.2, existe una variación del modelo desarrollada también por Hopfield [Hopfield 84] que pretende parecerse un poco más al funcionamiento de las neuronas reales, se trata de la Red Hopfield Contínua, con funciones de activación de las neuronas de tipo sigmoidal, que ofrece más posibilidades que la anterior, ya que permite almacenar patrones formados por componentes no binarios, sino valores reales (por ejemplo imágenes en color o en blanco y negro con diferentes tonalidades de grises) y además permitirá resolver determinados problemas generales de optimización que se analizarán en el apartado 5.6. Tanto en este caso como en el de la red discreta, se pueden distinguir diferentes versiones del modelo en función de la forma temporal en que se lleva a cabo la generación o actualización de las salidas de las neuronas de la red. Si esta actualización se realiza de forma simultánea en todas las V. El Modelo de Hopfield 5.1 neuronas se trata de una Red Hopfield con funcionamiento paralelo o síncrono, ya que supone que todas las neuronas son capaces de operar sincronizadas y que, por tanto, la salida es generada al mismo tiempo por todas ellas en cada iteración, de tal forma que en la próxima iteración (t+1) todas van a utilizar como entradas las salidas generadas por las otras en el instante anterior (t). Si, por el contrario, las neuronas trabajan de forma secuencial, actualizándose sólo la salida de una neurona en cada iteración, se tratará de una Red Hopfield con funcionamiento secuencial o asíncrono. En este caso, ocurre que la salida a la que converge la red puede ser diferente en función del orden de la secuencia de activación de las neuronas [Kung 93]. También existe la posibilidad, sólo utilizada en las redes Hopfield Contínuas, que trabajan con valores no binarios, de que la generación de la salida de todas las neruonas se realice de forma simultánea (síncrona) y continuada en el tiempo. En este caso, el funcionamiento de la red tendría que ser representado en forma de una ecuación diferencial [Hertz 91]: Install Equation Editor and doubleclick here to view equation. Donde f es la función de activación de las neuronas, que será de tipo sigmoidal, como las indicadas en el apartado 5.2, y τi es un parámetro, denominado tasa de retardo, que pretende representar una característica biológica de las neuronas como es el retraso que se produce en la recepción, por parte de una neurona i, de los valores de las salidas generados por las otras neuronas a las que está conectada. Fig. 5.5 Implementación física de una red Hopfield Contínua [Hopfield 84]. Si se pretende simular una red Hopfield Contínua como la anterior, puede hacerse resolviendo la ecuación diferencial utilizando métodos numéricos, aunque también, y sobre todo, puede implementarse V. El Modelo de Hopfield 5.1 físicamente de forma directa mediante un ciruito analógico que tenga un compotamiento gobernado por una ecuación similar (Fig. 5.5). En estos circuitos los pesos entre neuronas se implementan como resistencias, las funciónes de activación mediante amplificadores operacionales y la tasa de retardo de cada neurona se consigue colocando, en paralelo, una resistencia y un condensador a la entrada del amplificador correspondiente [Hopfield 84]. V. El Modelo de Hopfield 5.1 5.3.- APRENDIZAJE. La red Hopfield tiene un mecanismo de aprendizaje OFF LINE. Por tanto, existe una etapa de aprendizaje y otra de funcionamiento de la red. En la etapa de aprendizaje se fijan los valores de los pesos en función de las informaciones que se pretende "memorice" o almacene la red. Una vez establecidos, la red entra en funcionamiento tal y como se describió en el apartado anterior. Esta red utiliza un aprendizaje no supervisado de tipo Hebbiano, de tal forma que el peso de una conexión entre una neurona "i" y otra "j" se obtiene mediante el producto de los componentes iésimo y j-ésimo del vector que representa la información o patrón que debe almacenar. Si el número de patrones a "aprender" es M, el valor definitivo de cada uno de los pesos se obtiene mediante la suma de los M productos obtenidos por el procedimiento anterior, un producto por información a almacenar. En el caso de la Red Hopfield Discreta que trabaja con valores -1/+1, este algoritmo de aprendizaje puede expresarse de la siguiente forma: Install Equation Editor and doubleclick here to view equation. Siendo: wij: Peso asociado a la conexión entre la neurona i y la neurona j, que coincide con wji. ei(k): Valor de la componente i-ésima del vector correspondiente a la información k-ésima que debe "aprender" la red. N: Número de neuronas de la red y, por tanto, tamaño de los vectores de aprendizaje. M: Número de informaciones que debe "aprender" la red. Si la Red trabajase con valores discretos 0/1 en lugar de -1/+1, entonces los pesos se calculan según la expresión: Install Equation Editor and doubleclick here to view equation. El algoritmo de aprendizaje también se suele expresar utilizando una notación matricial. En tal caso se podría considerar una matriz W de dimensiones NxN que representase todos los pesos de la red: Esta matriz es simétrica, al cumplirse que wij = wji, y tiene una diagonal principal con valores nulos debido a la no existencia de conexiones auto-recurrentes (wii=0). V. El Modelo de Hopfield 5.1 También se tendría el conjunto de los M vectores que representan las informaciones que ha de "aprender" la red: Install Equation Editor and doubleclick here to view equation. Utilizando esta notación, el aprendizaje consistiría en la creación de la matriz de pesos W a partir de los M vectores o informaciones de entrada (E1,..,EM) que se "enseñan" a la red. Matemáticamente se expresaría: Install Equation Editor and doubleclick here to view equation. Donde la matriz EkT es la traspuesta de la matriz Ek, e I es la matriz identidad de dimensiones NxN que anula los pesos de las conexiones auto-recurrentes (wii). Un ejemplo de cómo se obtienen los pesos podría consistir en el entrenamiento de una red para que "aprenda" dos informaciones (patrones) correspondientes a sendas figuras representadas mediante un cierto número de "pixels": Figura a: Figura b: 1 2 ┌───┬───┐ │███│███│ ├───┼───┤ │ │ │ └───┴───┘ 3 4 1 2 ┌───┬───┐ │ │ │ ├───┼───┤ │███│███│ └───┴───┘ 3 4 Los pixels negros podrían representarse mediante el valor binario +1 y los blancos con el valor -1. En este caso las informaciones seían dos vectores (M=2) de 4 elementos (N=4) que contienen los valores de los pixels. La red, por tanto, tendría 4 neuronas para que cada una reciba el valor de un pixel. Los valores de los vectores de entrada que representan a las figuras a y b respectivamente son: E1 = [1,1,-1,-1] E2 = [-1,-1,1,1] El aprendizaje de estas dos informaciones consistiría en la obtención de los pesos de la red (matriz W): V. El Modelo de Hopfield 5.1 Install Equation Editor and doubleclick here to view equation. Install Equation Editor and doubleclick here to view equation. Install Equation Editor and doubleclick here to view equation. Una vez finalizada la fase de aprendizaje, la red podría ser utilizada como memoria asociativa de acceso por contenido, de tal forma que al presentarle una información a la entrada iteraría hasta generar como salida la información más parecida de las almacenada durante el aprendizaje. Por ejemplo, se podría comprobar lo que ocurre con la figura: 1 2 ┌───┬───┐ │███│ │ ├───┼───┤ │ │ │ └───┴───┘ 3 4 E = [ 1 -1 -1 -1 ] Inicialmente la salida corresponde a la propia información de entrada. Entonces se produce la primera iteración obteniéndose las siguientes nuevas entradas netas en cada neurona: Install Equation Editor and doubleclick here to view equation. Si suponemos una función de activación de cada neurona de tipo escalón centrada en el origen (desplazamiento θi=0), la salida de la red después de esta primera iteración será : Install Equation Editor and doubleclick here to view equation. Si se repite el proceso, en la segunda iteración las entradas netas serán: Install Equation Editor and doubleclick here to view equation. salida: Entonces, después de esta segunda iteración, se obtienen los siguientes valores a la V. El Modelo de Hopfield 5.1 Install Equation Editor and doubleclick here to view equation. Puede observarse que se repite la salida de la primera iteración, se ha llegado a una situación de estabilidad, en la que la red ha generado como salida el patrón más "parecido" al presentado como entrada: Entrada: 1 2 ┌───┬───┐ │███│ │ ├───┼───┤ │ │ │ └───┴───┘ 3 4 Salida Generada: 1 2 ┌───┬───┐ │███│███│ ├───┼───┤ │ │ │ └───┴───┘ 3 4 Aunque en la descripción del aprendizaje de una Red Hopfield se ha utilizado el modelo discreto, la forma de calcular los pesos para el caso contínuo es similar si se utiliza la red como memoria asociativa. Si la red se utiliza para resolver problemas de optimización, el cálculo de los pesos dependerá de problema concreto (apartado 5.6). Además, en el modelo contínuo se suele considerar la exisrtencias de conexiones auto-recurrentes, con lo que no siempre wii=0. 5.3.1.- La función energía. Como ya se ha comentado, el aprendizaje de la red Hopfield es de tipo Hebbiano. La elección de esta regla de aprendizaje por Hopfield fue, entre otras razones, debido a que asegura la estabilidad de la red, es decir, la convergencia hacia una respuesta estable cuando se presenta una información de entrada. Muchas de las investigaciones acerca de la estabilidad de las redes se basan en el establecimiento de una función, denominada Función Energía de la Red, para representar los posibles estados (puntos de equilibrio) de la red. De hecho, una de las causas por la que se considera a Hopfield responsable de impulsar el desarrollo en el campo de las redes neuronales es precisamente el haber aplicado modelos matemáticos como éste, lo cual constituyó la base de posteriores trabajos sobre redes neuronales. La función energía de una red Hopfield Discreta tiene la siguiente forma: Install Equation Editor and doubleclick here to view equation. Siendo: wij: Peso de la conexión entre las neuronas i y j. si : Valor de salida de la neurona i. sj : Valor de salida de la neurona j. θi : Umbral de la función de activación de la neurona i. V. El Modelo de Hopfield 5.1 Esta expresión guarda una profunda similitud formal con la energía mecánica clásica. Trata de representar la evolución del sistema, considerando cada configuración (vector) de las salidas de las neuronas de la red como puntos en un espacio de dimensión N y relacionando el estado de la red en cada momento con un punto de ese espacio. La función energía puede imaginarse entonces como una superficie que presenta determinados valores mínimos, algo semejante a un paisaje montañoso donde los mínimos serían los valles (Fig. 5.6). Cuando en la red se han almacenado M informaciones o patrones, los posibles estados estables de la red serán también M (durante su funcionamiento podrá responder ante una entrada con una salida que represente alguno de esos M patrones registrados). Estos M estados corresponden precisamente a los mínimos de la función energía. Cuando se presenta a la entrada de la red una nueva información, ésta evoluciona hasta alcanzar un mínimo de la función energía, generando una salida estable. Fig. 5.6 Función Energía de una red Hopfield [Hertz 91]. Cuando la Red Hopfield se utiliza como memoria asociativa, el objetivo es conseguir que los patrones que debe memorizar se sitúen en los mínimos de la función y, consecuentemente, sean los estados estacionarios (estables) de la red. Puede demostrarse [Hopfield 82] que esto se consigue si se verifica que los pesos de las conexiones autorecurrentes son nulos (wii=0) y si el resto cumple la regla de Hebb (wij=sisj), de ahí que Hopfield eligiera dicho aprendizaje. En cuanto a las redes de Hopfield Contínuas, su autor [Hopfield 84] considera que una posible expresión de su función de energía es la siguiente: Install Equation Editor and doubleclick here to view equation. Donde f-1 es la inversa de la función de activación sigmoidal (f) de una neurona. Si la V. El Modelo de Hopfield 5.1 función f fuese, por ejemplo, f(x)=1/(1+e-α(x-θi)), entonces la inversa sería f-1(s)=-(½ln(-1+1/s)) + θi, con lo que la función energía quedaría de la siguiente forma: Install Equation Editor and doubleclick here to view equation. Puede observarse que coincidiría con la función energía de la Red Hopfield Discreta si no existiera el último término, cuyo valor depende del parámetro α de la función de activación de las neuronas, que representa la ganancia o ea pendiente de esta función sigmoidal. Por ello, habrá que tener especial cuidado en la elección de su valor, ya que influye directamente en los mínimos de la función energía. Si α tiene un valor (función de activación de tipo escalón), este término se hace cero y la red se convierte en una red Hopfield Discreta. Si el valor de α es finito pero muy grande (α>>1) el término puede despreciarse y los mínimos de la función de energía siguen siendo los mismos. Pero si α tiene valores pequeños, disminuye el número de mínimos de esta función y, como consecuencia, el número de posibles estados estables de la red, reduciéndose a un solo mínimo cuando α=0. 5.4.- LIMITACIONES DEL MODELO DE HOPFIELD. Existen varios problemas asociados a la red Hopfield que ha sido descritos por diferentes autores [Maren 90]. En este apartado se mostrarán los dos más importantes, los que se refieren a la cantidad limitada de datos que se pueden almacenar y a la necesidad de que estos datos sean ortogonales entre sí. En una red de Hopfield el número de informaciones que puede ser "aprendido" (almacenado) está severamente limitado. Si se almacenan demasiadas informaciones, durante su funcionamiento la red puede converger a valores de salida diferentes de los "aprendidos" durante la etapa de entrenamiento, con lo que la tarea de asociación entre la información presentada y alguna de las almacenadas se realiza incorrectamente, pues se está asociando dicha información de entrada a otra desconocida. Puede demostrarse [McEliece 87] que esta situación no se produce nunca si el número de informaciones almacenadas es menor o igual que N/4lnN, siendo N el número de neuronas de la red. Sin embargo, este límite puede suavizarse [Hertz 91] si se permite la posibilidad de un mínimo error en la recuperación de las informaciones almacenadas, suficientemente pequeño para poder identificar dicha información sin ningún problema, en tal caso el número de informaciones que se pueden almacenar debe ser menor que el 13.8% del número de neuronas de la red (0.138N). Por tanto, la capacidad o cantidad de informaciones de que puede almacenar una red Hopfield de N neuronas es: Install Equation Editor and doubleclick here to view equation. Esta es una seria limitación de la Red Hopfield, puesto que para almacenar unas pocas informaciones se precisará una gran cantidad de neuronas y, por tanto, un número muy elevado de conexiones. Por ejemplo, tomando la limitación del 13.8%, en una red de 100 V. El Modelo de Hopfield 5.1 neuronas, que tendría 100x99=9900 conexiones, sólo se podrían almacenar 13 informaciones. Una segunda limitación del modelo es que, a pesar de cumplirse el requisito anterior, no siempre se puede garantizar que la red realice una asociación correcta entre una entrada y una de las informaciones almacenadas. Si éstas últimas no son suficientemente diferentes entre sí, es decir, si no son ortogonales, puede ocurrir que cada una de ellas no represente un mínimo de la función energía, con la probabilidad de que se generen salidas diferentes a todas ellas. También puede ocurrir que ante una entrada que coincida con una de las informaciones "aprendidas" la red converja hacia una salida correspondiente a otra de las informaciones almacenadas que fuese muy parecida. Este problema puede ser minimizado mediante determinados procedimientos de ortogonalización que garanticen una diferencia suficiente entre las informaciones que debe "aprender" la red [Grant 86]. En definitiva, lo que se debe pretender siempre es que estas informaciones sean ortogonales, lo cual ocurre si se cumple que cada par de patrones de entrada difieren en, al menos N/2 componentes, siendo N el número total de componentes por patrón. Esta condición puede expresarse como: Install Equation Editor and doubleclick here to view equation. Donde ei(m) y ei(k) son los valores binarios (+1 ó -1) de los componentes i-ésimos de dos vectores (patrones) diferentes (m y k) a almacenar en la red. Esta condición de ortogonalidad que establece el numero de componentes diferentes (también llamado distancia Hamming) de dos patrones sea al menos de la mitad del total (0.5N) puede ser relajada, estableciendo una distancia mínima del 30% del total para que sean "casi" ortogonales, garantizándose todavía un funcionamiento aceptable. En este caso, considerando valores binarios de -1 y +1, la expresión sería ei(m)ei(k) 0.7N-0.3N = 0.4N, ya que se permite un 70% de componentes diferentes y un 30% de iguales. Siguiendo con el ejemplo del apartado 5.4, se podría comprobar si los vectores allí utilizados son ortogonales: E1 = [1,1,-1,-1] E2 = [-1,-1,1,1] Install Equation Editor and doubleclick here to view equation. Por lo que E1 y E2 son perfectamente ortogonales. En este caso, el número de componentes diferentes es el máximo posible, el 100% del total (4). Algunos autores han propuesto modelos de redes autoasociativas que podrían ser mas eficientes que el modelo de Hopfield. Por ejemplo, J. Anderson desarrolló la red conocida como Brain-State-In-A-Box [Anderson 77]. Se trata de una red con la misma topología que la anterior, pero con conexiones autorrecurrentes en todas las neuronas. En la red BSB también las informaciones que se almacenan deben ser ortogonales. Sin embargo, esta red tiene una mayor capacidad de almacenamiento ya que puede "aprender" un número de informaciones igual al número de neuronas que componen la red. Por ejemplo, una red BSB de 100 neuronas V. El Modelo de Hopfield 5.1 puede almacenar un máximo de 100 informaciones para que funcione correctamente (frente a las 13 de la Red Hopfield). 5.5.- APLICACIONES. A pesar de las limitaciones comentadas en el apartado anterior, el modelo de Hopfield ha sido uno de los más utilizados, como se ha descrito o con algunas modificaciones, siendo ésto debido principalmente a la relativa facilidad de implementación física de esta red utilizando tecnología VLSI (muy alta escala de integración). En cuanto a las aplicaciones más conocidas del modelo [Simpson 90], destacan las relacionadas con el reconocimiento de imágenes y de voz, el control de motores y, sobre todo, la resolución de problemas de optimización. En este último ámbito se ha aplicado para la resolución de ecuaciones y del problema del viajante, manipulación de grafos, procesado de señales (p.ej. el diseño de conversores Analógico-Digitales) y de imágenes, reconocimiento de patrones y control de motores. 5.5.1.- Reconocimiento de imágenes. En este tipo de aplicaciones [Koch 86] la Red Hopfield puede reconstruir versiones distorsionadas o parciales de imágenes almacenadas durante la fase de aprendizaje. Una limitación que presenta el modelo es la no posibilidad de recuperar correctamente la imagen si la información de entrada ha sufrido algún tipo de traslación o rotación. Para ello sería necesario introducir nuevas reglas de aprendizaje, diferentes de la de Hebb, que tengan implícitas las invarianzas necesarias como para que se pueda llevar a cabo el reconocimiento deseado. Fig. 5.7 Estructura de una imagen en blanco y negro de 7x6=42 pixels. La utilidad de la Red Hopfield en el reconocimiento puede comprobarse con un ejemplo. Se trata de diseñar una red que sea capaz de reconocer cuatro imágenes en blanco y negro representadas como matrices de 7x6=42 pixels (Fig. 5.7). Esta red estará compuesta por 42 neuronas (una por pixel) con 42x41=1722 conexiones entre ellas. Se trabajará con valores binarios (pixel negro = +1 / pixel blanco = -1). Durante la fase de entrenamiento se almacenan en la red 4 imágenes correspondientes a las primeras letras del alfabeto: V. El Modelo de Hopfield ████ █ █ █ █ ██████ █ █ █ █ █ █ █████ █ █ █ █ █████ █ █ █ █ █████ 5.1 █████ █ ████ █ █ █ █ █ █████ ████ █ █ █ █ █ █ █ █ █ Se calculan los 1722 pesos de la red a partir de los vectores de 42 valores binarios que representan las cuatro imágenes anteriores: EA= +1] EB= 1] EC= +1] ED= 1] [-1 +1 +1 +1 +1 -1 [+1 +1 +1 +1 +1 -1 [-1 +1 +1 +1 +1 +1 [+1 +1 +1 +1 -1 -1 +1 -1 -1 -1 -1 +1 +1 -1 -1 -1 -1 +1 +1 -1 -1 -1 -1 -1 +1 -1 -1 -1 +1 -1 ... +1 -1 -1 -1 -1 ... +1 +1 +1 +1 +1 ... -1 +1 +1 +1 +1 ... +1 +1 +1 +1 -1 - Install Equation Editor and doubleclick here to view equation. Después se pasa a la fase de funcionamiento para comprobar si es capaz de reconocer una imagen de entrada distorsionada. Después de dos iteraciones, la red genera como salida la imagen de la "B" que es la que más se parece a la imagen distorsionada de la entrada: ██ █ █ ██ █ █ ████ █ ███ █ █ █ █ █ █████ █ █ █ █ ██████ █ █ █ █ ███ Entrada 1ª iteración █████ █ █ █ █ █████ █ █ █ █ █████ 2ª iteración Un ejemplo más completo se puede encontrar en [Hertz 91], donde se reconocen imágenes de 130x180=23.400 pixels. Se trabaja con una red de 23.400 neuronas y 23.400x23.399 conexiones. Durante el entrenamiento la red "aprende" 7 imágenes diferentes. Para comprobar su funcionamiento se presentan imágenes distorsionadas e imágenes incompletas, obteniéndose el resultado que puede observarse en la Fig. 5.8 para el caso de tres imágenes. En la columna de la izquierda se representan las entradas distorsionadas e incompletas utilizadas en cada caso. La columna central muestra la salida de la red despues de un cierto número de iteraciones pero antes de obtener una salida estable, la cual se representa en la columna de la derecha. V. El Modelo de Hopfield 5.1 5.5.2.- Resolución de problemas de optimización. Una de las aplicaciones de las redes neuronales en general y del modelo de Hopfield en particular es la resolución de problemas de optimización complejos, aquellos cuyo tiempo de resolución mediante algoritmos convencionales crece exponencialmente (kN) o factorialmente (N!) con el aumento del tamaño (N) del problema (p. ej. el problema clásico de colocar N reinas en un tablero de ajedrez de NxN cuadros sin que se den jaque, que trataría de encontrar una posición de las piezas de entre las N2!(N2-N)!/N! combinaciones diferentes, que en caso de un Fig. 5.8 Ejemplo de reconocimiento de imágenes con una red Hopfield [Hertz 91]. tablero real de N=8 serían más de cuatro mil millones de combinacions, para este problema pueden encontrarse algoritmos convencionales con tiempo de resolución proporcionales a N!). En realidad, cuando las redes se aplican para tal función, lo que se está haciendo es intentar resolver el problema mediante un algoritmo paralelo formulado en términos de una red neuronal, que no es sino un sistema de computación paralela, al estar trabajando multitud de diferentes elementos de proceso (neuronas) simultáneamente. La utilización del modelo de Hopfield para la resolución de problemas de optimización se basa en la idea de intentar fijar el objetivo del problema mediante una expresión matemática, denominada función de coste o función objetivo, que haya que minimizar. A continuación se compara con la expresión general de la función de energía de una Red Hopfield, determinándose los valores de los pesos (wij) y de los umbrales (θi) en términos de parámetros de la función de objetivo para que ambas expresiones sean equivalentes. De esta forma, cuando se pone en funcionamiento una Red Hopfield Contínua con los valores calculados, ésta itera hasta lacanzar un mínimo de la función energía que, en este caso, coincidirá con un mínimo de la función objetivo, encontrando así una posible solución de mínimo coste del problema de optimización. Generalmente no es fácil encontrar el mínimo global debido a presencia de mínimos locales de los que habrá que escapar realizando un complicado ajuste de parámetros constantes de la función de coste y de las ganancias V. El Modelo de Hopfield 5.1 (pendientes) de las funciones de activación de las neuronas de la red. En este apartado se analizarán algunos de los problemas típicos de optimización y su posible solución usando este tipo de redes. Se trata de los problemas del viajante, de la bipartición de grafos y del empajeramiento ponderado. 5.5.2.1.- El problema del vendedor viajero ("TSP: Travelling Salesman Problem"). Este problema consiste en, dadas N ciudades que tiene que visitar un vendedor, encontrar el camino mas corto para, partiendo de una de ellas, visitarlas toda sin pasar más de una vez por cada una y volviendo finalmente a la ciudad de partida. La complejidad reside en la enorme cantidad de posibles caminos, muchos de ellos de longitud similar. Para N ciudades el número de rutas alternativas es de N!/2N. De esta forma, para 5 ciudades existen 12 caminos posibles, para 10 el número de rutas es de 181.440 y para 50 del orden de 3x1062. Por ejemplo, podría considerarse el caso particular de 5 ciudades situadas como se indica en la Fig. 5.9, con unas distancias entre ellas (en kms) como las indicadas en la tabla 5.1. 1 2 3 4 Fig. 5.9 Situación de las 5 ciudades del ejemplo. 5 1 2 3 4 5 ┌──┬──┬──┬──┬──┐ │ 0│20│30│40│35│ ├──┼──┼──┼──┼──┤ │20│ 0│25│30│15│ ├──┼──┼──┼──┼──┤ │30│25│ 0│50│35│ ├──┼──┼──┼──┼──┤ │40│30│50│ 0│20│ ├──┼──┼──┼──┼──┤ │35│15│35│20│ 0│ └──┴──┴──┴──┴──┘ Tabla 5.1 Distancia (en kms) entre las 5 ciudades del ejemplo. En este ejemplo existirían 5!/2x5=12 rutas cerradas diferentes, cuya longitud dependerá del orden en que se visiten las ciudades. Así, en la figura 5.10 se indican tres de esas 12 posibles rutas. V. El Modelo de Hopfield 5.1 Fig. 5.10 Tres de las 12 posibles rutas alternativas con 5 ciudades. Fig. 5.11 Red Hopfield para resolver el problema del vendedor viajero. Este problema puede abordarse, en términos de la función energía, utilizando una red Hopfield de N2 neuronas, siendo N el número de ciudades [Hopfield 85]. Aunque la red usada en de tipo cointínuo con valores en el margen [0,1], cuando se alcance una situación de estabilidad las salidas de las neuronas de la red tendrán valores binários 0 (neurona activa) ó 1 (neurona inactiva), para lo cual se deberán tomar valores grandes para las ganancias o pendientes de las funciones de activación sigmoidales (tangentes hiperbólicas) de las neuronas. Entonces, cada neurona activa de la red (salida a 1) informaría del orden de una ciudad determinada en el recorrido del viajero. Para ello, hay que imaginarse las neuronas de la red como si estuvieran dispuestas en forma de matriz de N filas y N columnas (Fig. 5.11), de tal forma que cada fila se asocia con una ciudad del recorrido y las columnas con la posición de cada ciudad dentro de la ruta. Así, si la neurona de la fila i y columna j está activada (sij=1) querrá decir que la ciudad i será la parada número j de la ruta que debería seguir el viajante. Para poder resolver el problema, primero es necesario buscar una expresión de la función objetivo que se pretende minimizar, que puede tener el siguiente aspecto : Install Equation Editor and doubleclick here to view equation. V. El Modelo de Hopfield 5.1 Donde i y k representan ciudades (filas de la matriz de neuronas), j y l representan paradas dentro de la ruta (columnas), dij representa la distancia entre las ciudades i y j, y A, B, C y D son constantes de proporcionalidad que sirven para cuantificar la importancia relativa de cada componente de la función objetivo. Esta función se construye mediante términos que representan diferentes restricciones que deben satisfacerse para conseguir un resultado óptimo del problema, lo cual ocurrirá cuando el valor de estos términos sea mínimo. El primer término (en el que aparece la constante A) representa la restricción de que una ciudad i sólo puede aparecer en una parada de la ruta, es decir, hay que evitar que se activen dos neuronas de la misma fila. Si ello se cumple, se anula por completo este término, puesto que, al multiplicar dos salidas de neuronas de la misma fila, el resultado será cero por no poder estar dos activas (salidas con valor "1") al mismo tiempo. El segundo término (en el que aparece B) representa la restricción de que una parada l de la ruta sólo puede corresponder a una ciudad. El tercero (C) obliga a que haya exactamente N ciudades en la ruta. Y el último (D) recoge la condición de que la distancia total del recorrido sea mínima. Una vez establecida la función objetivo habrá que relacionarla con la expresión general de la función Energía de una red Hopfield: Install Equation Editor and doubleclick here to view equation. Al enfrentar ambas funciones se obtiene que, para que sean equivalentes, los valores de los pesos de las conexiones entre dos neuronas, situadas una en la fila i y columna j, y otra en fila k y columna l, han de ser: Install Equation Editor and doubleclick here to view equation. Donde δxy es la función delta de Kronecker cuyo valor es "1" si x=y y "0" en caso contrario. La expresión para los umbrales de las funciones de activación de cada neurona en fila i y columna j será: Install Equation Editor and doubleclick here to view equation. Por tanto, si se implementa una Red Hopfield Contínua de NxN neuronas con unos umbrales y unos pesos con los valores anteriones y se hace iterar dicha red, se llegará a una situación de estabilidad en en la que sólo habrá activas (salidas a "1") N neuronas, una por fila y columna, que representarán el camino óptimo a seguir por el viajante. El principal problema de este método es el encontrar unos valores adecuados de las constantes A,B,C y D y de las ganacias de las funciones de activación sigmoidales de las neuronas para que la red converja hacia una solución óptima. En el caso de la ganancia, es posible que deba variar a lo largo del funcionamiento de la red, comenzando con valores bajos que se irán incrementando hasta alcanzar un valor alto que consiga salidas "0" y "1" en todas las neuronas. En el ejemplo con 5 ciudades presentado en la figura 5.10, si se implementa una Red Hopfield de 5x5=25 neuronas con los valores adecuados para los pesos y los umbrales y se pone en funcionamiento, se llega a una situación de estabilidad en la que sólo permanecen activadas las neuronas indicadas en la figura 5.12, con lo que la ruta óptima es la señalada en la figura 5.13, cuya longitud total es de 130 kms. V. El Modelo de Hopfield Fig. 5.12 Situación final de la red del ejemplo. En negro las neuronas activadas (salida "1"). 5.1 Fig. 5.13 Ruta óptima. 5.5.2.2.- Bipartición de grafos. Gráficamente, un grafo puede considerarse como un conjunto de puntos (nodos) interconectados mediante líneas (arcos). Esta representación suele utilizarse en muchos ámbitos científicos y técnicos, especialmente para plantear problemas de optimización. En ocasiones, cuando se trabaja con grafos, es necesario partir el grafo en dos obteniendo dos subgrafos, con la restricción de que el número de líneas entre ambos sea el mínimo posible. La utilidad de este planteamiento puede entenderse enseguida si se piensa en un grafo como la representación de un circuito electrónico que hay que integrar en un chip o implantar en una V. El Modelo de Hopfield 5.1 placa de circuito impreso, pero que, por motivos de espacio, es imposible hacerlo en una sola pastilla o placa, con lo que hay que repartir los componentes en dos soportes. Se trataría, entonces, de buscar por donde partir el circuito de tal forma que el número de conexiones (cables) entre ambos sea mínima (Fig. 5.14). Fig. 5.14 Posibles biparticiones de un grafo. (a) No óptima. (b) Optima. La solución a este problema de dividir un grafo de N nodos en dos grafos de N/2 nodos cada uno, de tal forma que el número de arcos (conexiones) entre ambos sea mínimo, puede plantearse en términos de la función energía de una Red Hopfield [Fu 86]. En este caso, la función objetivo que habría que minimizar representaría el número de conexiones entre los dos grafos: Install Equation Editor and doubleclick here to view equation. Donde cij representa la existencia de conexión (arco) entre los nodos i y j del grafo. Si existe conexión cij=1 y si no existe cij=0. Los valores si y sj indican la situación de dos nodos i y j en los subgrafos en que se divide el grafo original. Si un nodo i queda en uno de los subgrafos (p.ej. el de la izquierda) el valor de si es +1, y si queda en el otro (el de la derecha) su valor sería -1. Se ha añadido un término μ(si)2 para penalizar toda bipartición que no deje el mismo número de nodos en cada subgrafo, ya que se trata de obtener dos grafos de N/2 nodos cada V. El Modelo de Hopfield 5.1 uno. La importancia de esta condición se puede reflejar en el valor de la constante μ. Una vez fijada la función objetivo, habrá que relacionarla con la de energía de una hipotética Red Hopfield que pudiera resolver el problema. Esta red podría estar compuesta por N neuronas que representen los nodos del grafo, de tal forma que si una neurona está activa (+1) indicaría que ese nodo está en uno de los subgrafos y si está inactiva (-1) en el otro: Install Equation Editor and doubleclick here to view equation. Enfrentando ambas expresiones se llega a la conclusión de que los valores de los pesos de las conexiones y los umbrales de las funciones de activación de las neuronas de la red que resuelve el problema han de ser: Install Equation Editor and doubleclick here to view equation. 5.5.2.3.- Problema del emparejamiento ponderado. En ocasiones se plantea el problema de emparejar entidades en función de determinado criterio ponderable buscando su combinación óptima. Por ejemplo, si una empresa contrata a cuatro empleados para cuatro de sus sucursales, de tal forma que la empresa se hace cargo de los gastos de desplazamiento de los empleados, trataría de realizar la asignación sucursal-empleado que consiga que la suma de distancias entre el domicilio de cada empleado y su sucursal sea la menor posible (Fig. 5.15). No siempre el criterio utilizado en los problemas de emparejamiento es el de la distancia entre entidades; en general, se determinará algún aspecto que pueda ser cuantificado y que permita valorar los costes de cada Fig. 5.15 Ejemplo de emparejamiento ponderado. (a) No óptimo. (b) Optimo. V. El Modelo de Hopfield 5.1 opción. Es evidente que se trata de un claro ejemplo de problema de optimización. Por tanto, puede resolverse usando una Red Hopfield [Hertz 91]. Se podría utilizar una red con N(N-1)/2 neuronas dispuestas en forma de matriz triangular (Fig. 5.16), siendo N el número de entidades a emparejar, donde la salida de cada neurona representaría si existe emparejamiento entre dos puntos i y j. Si sij=1, entonces existe emparejamiento entre i y j, mientras que si sij=0, no existe. Se utilizan valores binarios 0 y 1 para simplificar los cálculos ya que, entonces, para cada valor de i se cumple que sij=1 en lugar de depender de los valores de i y de N. Fig. 5.16 Red Hopfield para resolver el problema del emparejamiento ponderado entre N entidades. Pera resolver este problema se podría plantear una función objetivo que exprese el coste (en el caso de distancias, la longitud) total de los emparejamientos establecidos: Install Equation Editor and doubleclick here to view equation. Siendo cij el coste (p.ej. distancia) del emparejamiento de las entidades i y j. Esta función objetivo debería ser completada añadiendo términos que reflejen las restricciones del problema: cada entidad sólo puede aparecer en un emparejamiento, es decir, en la red dispuesta en forma de triángulo nunca podrá haber más de una neurona activada en una misma fila o columna (términos multiplicados por las constantes B y C respectivamente) y el número de emparejamientos ha de ser N/2 (término multiplicado por la constante D). De esta forma la función objetivo completa quedaría: V. El Modelo de Hopfield 5.1 Install Equation Editor and doubleclick here to view equation. Si se compara con la expresión general de la función Energía de una red Hopfield: Install Equation Editor and doubleclick here to view equation. Se obtiene que, para que sean equivalentes, los valores de los pesos de las conexiones entre dos neuronas situadas una en la fila i y columna j, y otra en fila k y columna l, han de ser: Install Equation Editor and doubleclick here to view equation. Donde ux es la función escalón, cuyo valor es "1" si x>0 y "0" en otro caso. La función δxy es la función delta de Kronecker cuyo valor es "1" si x=y y "0" en caso contrario. La expresión para los umbrales de las funciones de activación de cada neurona de fila i y columna j será: Install Equation Editor and doubleclick here to view equation. Por tanto, si se implementa una Red Hopfield Contínua de N(N-1)/2 neuronas con unos umbrales y unos pesos con los valores anteriones y se hace iterar dicha red, se llegará a una situación de estabilidad en en la que sólo habrá activas (salidas "1") N/2 neuronas, que representarán las parejas óptimas. Como en todas las aplicacionres de optimización, el principal problema es encontrar unos valores adecuados de las constantes A,B,C y D y de las ganacias de las funciones de activación para que la red converja hacia una solución óptima. 5.5.3.- Diseño de circuitos conversores Analógico-Digitales. En 1986, J. Hopfield y D. Tank [Tank 86] presentaron una nueva forma de desarrollar conversores Analógico-Digitales basada en plantear el diseño como la solución de un problema de optimización en términos de la función energía de una Red Hopfield. Los conversores Analógico-Digitales son unos circuitos electrónicos que reciben a la entrada una señal analógica (p. ej. la señal de audio recogida en un micrófono) y son capaces de generar a la salida una serie de configuraciones binarias (palabras) de un cierto número de bits (cuantos más bits mayor precisión en la conversión) que representan valores de la señal (muestras) tomados a intervalos constantes de tiempo (Fig. 5.17). La utilidad de los conversores A/D radica en la posibilidad de realizar posteriormente un procesamiento numérico (p.ej. con un computador) de la señal digitalizada, que puede consistir en el simple almacenamiento de la misma en un soporte digital (disco óptico, disco magnético, cinta,..) o en la aplicación de técnicas de filtrado, ecualización, etc. Después de este procesamiento, se puede volver a general la señal mediante la utilización de un circuito conversor Digital-Analógico. Un conversor A/D se caracteriza por el número de dígitos binarios (bits) que componen cada configuración binaria (palabra) generada. Como cada bit sólo puede tener dos valores posibles (0/1), la cantidad de palabras diferentes que podrá generar el conversor será V. El Modelo de Hopfield 5.1 de 2N, siendo N el número de bits de cada palabra. También hay que tener en cuenta el margen de voltios establecido en el que va a poder oscilar la señal analógica, pués el conversor considera dividido dicho margen en 2N intervalos, de tal forma que su función consiste en asociar una palabra binaria diferente a cada intervalo. Por ejemplo, si la señal oscila entre 0 y 15 voltios y el conversor utilizado es de 4 bits, se podría dividir el margen en 24=16 intervalos de 1 voltio alrededor de los valores 0v, 1v, 2v,..,15v. Estos intervalos serían: [-0.5v,0.5v][0.5v,1.5v..[14.5v,15.5v], de tal forma que a los valores de la señal que se encuentren en el primer intervalo (valores de tensión cercanos a 0 voltios), el conversor les asociaría la palabra 0000, al segundo intervalo (1 voltio) la 0001, y al último (15 voltios) la 1111. Fig. 5.17 Circuito conversor Analógico-Digital. Si hubiera que reconstruir la señal analógica de nuevo a partir de los valores de las muestras, se podría hacer, obteniendo una señal semejante a la original pero no exactamente igual (Fig. 5.18), ya que en la reconstrucción de cada muestra, al asignar el valor central del intervalo que representa, se puede producir un cierto error (menor de 0.5 voltios en el ejemplo de 4 bits para 15 voltios, en el cual a una muestra de señal original de, p.ej, 9.3 voltios le correspondería un valor de 9 voltios en la señal reconstruida). Por este motivo, para que los intervalos sean lo mas pequeño posible, se suelen utilizar conversores de un gran número de bits (16, 32, etc.). El diseño de un conversor A/D de este tipo puede abordarse como un problema de optimización a resolver utilizando el modelo de Hopfield. Para ello habrá que plantear, en primer lugar, la función objetivo que se pretende minimizar. En este caso, parece evidente que lo que se quiere es que coincidan el valor analógico de la muestra de señal y el de la configuración binaria que se le asocia. Por tanto, la función objetivo podría ser: Install Equation Editor and doubleclick here to view equation. Donde x representa el valor original de la muestra (p. ej. 14.2 voltios) y si2i el valor de la palabra de n bits, siendo si el valor del bit (0 ó 1) de la posición i-ésima en la palabra binaria V. El Modelo de Hopfield 5.1 (p.ej. el valor de 1110 sería 0x20+1x21+1x22+1x23=14). Fig. 5.18 Conversión Analógica-Digital y Digital-Analógica de una señal. Hopfield y Tank recomiendan ajustar esta función mediante un término asdicional que garantice la estabilidad, para conseguir que los mínimos de la función se alcancen cuando los valores de si sean binarios (0/1): Install Equation Editor and doubleclick here to view equation. Desarrollando esta expresión y comparándola con la función de energía de una Red Hopfield Contínua de N neuronas se obtienen los siguientes valores para los pesos y umbrales: Install Equation Editor and doubleclick here to view equation. Como puede observarse, en este caso, el umbral de las neuronas no es fijo sino que ha V. El Modelo de Hopfield 5.1 de ajustarse dinámicamente durante el funcionamiento de la red según el valor de la muestra de la señal analógica (x) a digitalizar en cada momento. También la forma de la función energía dependerá de este valor x, ya que el mínimo de la función es diferente según el valor de la muestra a digitalizar. En la figura 5.19(a) puede verse el aspecto de la función Energía para N=4 cuando la entrada analógica tienen un valor de 7 voltios (x=7). En este caso el mínimo global se alcanza cunado la salida de la red es 0111, que corresponde a la palabra binaria que se asocia a ese valor analógico. Cuando la entrada es de 8 voltios (Fig. 5.19(b)), el mínimo se alcanza cuando la salida es 1000. Fig. 5.19 Representación esquemática de la función Energía del conversor A/D [Tank 86]. Después de obtener los parámetros de la Red Hopfield que resuelve el problema, el siguiente paso sería su implementación física para conseguir el circuito conversor A/D deseado. En la figura 5.20 se muestra un conversor A/D como implementación de una red de 4 neuronas. Las funciones de activación de las neuronas son amplificadores inversores, los pesos de las conexiones entre neuronas son resistencias de 2(i+j) Ω (ohmios), los umbrales se implementan físicamente mediante dos filas de resistencias, una de ellas conectada a un voltaje de referencia de -1v y la otra a la entrada analógica (x) del conversor. V. El Modelo de Hopfield 5.1 Fig. 5.20 Implementación de una Red Hopfield equivalente a un conversor A/D de 4 bits [Tank 86]. VI. El Modelo de Resonancia Adaptativa (ART) 6.1 VI. EL MODELO DE RESONANCIA ADAPTATIVA (ART) Una de las características de la memoria humana consiste en su habilidad para aprender nuevos conceptos sin necesitar para ello olvidar otros aprendidos en el pasado. Sería deseable que esta misma capacidad se pudiera conseguir en las Redes Neuronales. Sin embargo, muchas de estas redes tienden a "olvidar" informaciones pasadas al tratar de "enseñarles" otras nuevas. Cuando se desarrolla una red para realizar una tarea de clasificación de patrones se suele proceder reuniendo un conjunto de ejemplares que serán utilizados durante en la fase de aprendizaje o entrenamiento de la red. Durante esta etapa la información es registrada en el sistema mediante el ajuste de los valores de los pesos de las conexiones entre las neuronas. Una vez concluido el aprendizaje, la red está lista para funcionar y no se permite ningún cambio adicional de los pesos. Este procedimiento es factible si el problema que se pretende resolver por la red está bien limitado y puede definirse un adecuado conjunto de informaciones de entrada que permitan entrenar la red para resolver el problema. Sin embargo, en muchas situaciones reales los problemas a resolver no tienen unos límites claros. Como ejemplo, imaginemos que se pretende entrenar una red (p.ej Backpropagation) para reconocer las siluetas de un cierto tipo de avión. Se podrían reunir las imágenes correspondientes y utilizarlas para entrenar la red. Después la red entraría en funcionamiento y no se permitiría ninguna modificación de los pesos. Si en un futuro se diseña otro avión del mismo tipo y se desea que la red reconozca su silueta, se debería reentrenar dicha red utilizando la nueva silueta pero también todas las que se usaron en el aprendizaje anterior. Si se entrenase la red sólo con la nueva silueta podría ocurrir que la red aprendiese esta información, pero olvidando las aprendidas previamente. Lo que se ha intentado mostrar en esta descripción es lo que S. Grossberg denomina el "dilema de la estabilidad y plasticidad del aprendizaje" [Grossberg 80]. Este dilema plantea los siguientes interrogantes: - Cómo una red podría aprender nuevos patrones (plasticidad del aprendizaje). - Cómo una red podría retener los patrones previamente aprendidos (estabilidad del aprendizaje). Conseguir una red que pueda dar respuesta a uno de estos interrogantes es sencillo. Sin embargo no lo es si se pretende diseñarla para que solucione ambos. En respuesta a este dilema, Grossberg, Carpenter y otros colaboradores [Carpenter 86] desarrollaron la denominada Teoría de la Resonancia Adaptativa ("Adaptive Resonance Theory": ART). Esta teoría se aplica a sistemas competitivos (redes con aprendizaje competitivo) en los cuales cuando se presenta una cierta información de entrada sólo una de las neuronas de salida de la red (o una por un cierto grupo de neuronas) se activa alcanzando su valor de respuesta máximo después de competir las otras. Esta neurona recibe el nombre de "vencedora" (winner-take-all unit). Lo que se pretende es categorizar ("clusterizar") los datos que se introducen en la red. Las informaciones similares son clasificadas formando parte de la misma categoría y, por tanto, deben activar VI. El Modelo de Resonancia Adaptativa (ART) 6.1 la misma neurona de salida, la neurona vencedora. La clases o categorías deben ser creadas por la propia red, puesto que se trata de un aprendizaje no supervisado, a través de las correlaciones entre los datos de entrada. Para solucionar el dilema de la plasticidad y estabilidad, el modelo ART propone añadir a las redes un mecanismo de realimentación entre las neuronas competitivas de la capa de salida de la red y la capa de entrada. Este mecanismo facilita el aprendizaje de nueva información sin destruir la ya almacenada. La teoría de la resonancia adaptativa se basa en la idea de hacer "resonar" la información de entrada con los representantes o prototipos de las categorías que reconoce la red. Si entra en resonancia con alguno, es suficientemente similar, la red considera que pertenece a dicha categoría y únicamente realiza una pequeña adaptación del prototipo almacenado representante de la categoría para que incorpore algunas características de dato presentado. Cuando no "resuena" con ninguno, no se parece a ninguno de los existentes, "recordados por la red", hasta ese momento, la red se encarga de crear una nueva categoría con el dato de entrada como prototipo de la misma. Como resultado de este enfoque, los autores mencionados presentaron dos redes neuronales especialmente adecuadas para tareas de clasificación de patrones. Estas redes suelen denominarse ART1 (o ART) y ART2. Ambas difieren en la naturaleza de la información que se presenta a la entrada. La red ART1 trabaja con vectores de entrada binarios, mientras que ART2 es capaz de procesar informaciones contínuas o analógicas. 6.1.- ARQUITECTURA DE UNA RED ART. Una red ART básicamente consta de dos capas entre las que se establecen conexiones hacia delante y hacia atrás (feedfoward/feedback). Las neuronas de la capa de salida tienen conexiones autorrecurrentes (con peso +1) y se encuentran completamente conectadas entre sí a través de conexiones laterales de inhibición (con peso negativo) que permiten estableder la competición entre ellas (Fig. 6.1). Los pesos de esta capa de salida son fijos y sus valores son: +1 : En las conexiones autorrecurrentes. -ε : En las conexiones laterales. Este valor suele ser menor que 1/M, siendo M el número de neuronas de salida, para garantizar la convergencia de la red. VI. El Modelo de Resonancia Adaptativa (ART) 6.1 Fig. 6.1 Arquitectura simplificada de la red ART [Simpson 90]. Los pesos de las conexiones feedfoward (wji) y feedback (vij) se inicializan con los siguientes valores: Install Equation Editor and doubleclick here to view equation. Aunque la topología es la indicada, la representación anterior no refleja totalmente la funcionalidad de la red, por lo que suele utilizarse una representación alternativa que la considera como un sistema compuesto de dos subsistemas: subsistema de atención (attentional subsystem) y subsistema de orientación (orienting subsystem) (Fig. 6.2). VI. El Modelo de Resonancia Adaptativa (ART) 6.1 Figura 6.2 Representación funcional de la red ART. El subsistema de atención consiste básicamente en la red tal y como se indicaba en la figura 6.1. Su función es el reconocimiento y clasificación de las informaciones aprendidas. En este subsistema se localiza la "memoria a largo plazo de la red (LTM)" (Long Term Memory), compuesta por los pesos wji y vij de las conexiones entre las neuronas de las capas de entrada y salida, que confieren a la red su característica de estabilidad en el sentido de retener las informaciones aprendidas. Como complemento a la anterior, existe también una "memoria a corto plazo (STM)" (Short Term Memory), localizada en la entrada y en la salida de la red, que se refiere a la capacidad de "recordar" aspectos más inmediatos mediante la retención temporal de los valores de entrada en las neuronas que componen las capas de entrada y salida. Otra parte del subsistema de atención, no contemplado en la primera figura (Fig. 6.1) es el denominado "control de ganancia de atención", que actúa sobre las neuronas de entrada (STM(ne)) para estabilizar el funcionamiento de la red, aumentando la sensibilidad o grado de atención de estas neuronas, evitando una posible anticipación respecto a la llegada de la información del siguiente patrón a través de las conexiones feedback (vij). Aunque no la consideramos, puede existir otro control de ganancia que, en función de las salidas de las neuronas de la capa de entrada, actúe sobre las de salida para mejorar su reacción ante los patrones de entrada. El subsistema de orientación se utiliza para detectar si la información de entrada pertenece o no a una determinada categoría conocida por la red, para lo cual se calcula el porcentaje de semejanza entre dicha información y el representante (prototipo) de cada categoría almacenado en los pesos vij (LTM), que deberá ser superior al valor de un parámetro ρ denominado "parámetro de vigilancia". Si no es así, este subsistema "resetea" la neurona vencedora de la capa de salida y prueba con otra categoría. Si VI. El Modelo de Resonancia Adaptativa (ART) 6.1 ninguna es suficientemente parecida, se crea una nueva clase de la que será prototipo la información de entrada. Por tanto, el susbsitema de atención realiza la tarea de reconocimiento (búsqueda de la categoría a la que pertenece la entrada) mientras que el subsistema de orientación actúa sobre el primero permitiéndole responder a entradas no pertenecientes a ninguna categoría, creando para ellas nuevas clases. Por tanto, la arquitectura simplificada de la figura 6.1 debería ser completada añadiendo dos neuronas que permitan implementar las funciones de control de ganacia y del subsistema de atención. La estructura completa de la red sería la indicada en la figura 6.3, donde el nodo de reset (R) tiene un funcionamiento especial: su misión es recibir las salidas de las neuronas de entrada a través de conexiones con peso "-1" junto con los valores del patrón de entrada a la red a través de conexiones con pesos iguales al parámetro de vigilancia de la red, para compararlas y si no son suficientemente parecidos activar la salida correspondiente para, a través de una conexión de inhibición con peso negativo de gran valor (-), conseguir anular el efecto de la neurona que se ha comprobado que no representa la categoría adecuada para el patrón de entrada. Figura 6.3 Arquitectura completa de la red ART. La neurona G es la que permite realizar el control de ganancia de atención. Para ello recibe como entrada los valores de las neuronas de la capa de salida a través de conexiones con pesos "-N" y los del patrón de entrada mediante conexiones con peso igual a la unidad, generando, mediante una función de activación escalón, una salida que se aplicará a las neuronas de la capa de entrada de la red para ayudar a la activación de las neuronas de esta capa en función de la cantidad de neuronas de salida activadas. De esta forma, se puede aplicar la regla de activación denominada "Regla 2/3" que indica que una neurona de la capa de entrada se activará (salida "1") cuando dos de las tres entradas que recibe (patrones de entrada, neurona G y conexiones vij) esté activa, tenga valor "1". VI. El Modelo de Resonancia Adaptativa (ART) 6.1 La salida generada por la neurona G, que va a tener un umbral de valor 1/2, es la siguiente: Install Equation Editor and doubleclick here to view equation. 2 La entrada neta de cada neurona de la capa de entrada es: Install Equation Editor and doubleclick here to view equation. Por tanto, la salida generada por cada neurona de entrada, considerando un umbral de 1.5, es: Install Equation Editor and doubleclick here to view equation. Estos cálculos pueden simplificarse, ya que puede demostrarse que, al trabajar con valores binarios 0/1 y con los umbrales indicados, esta salida también cumple la siguiente expresión, que será la utilizada en adelante por su mayor simplicidad: Install Equation Editor and doubleclick here to view equation. En cuanto al nodo de reset (R), éste va a tener M salidas, una por neurona de la capa de salida de la red, de las cuales sólo se podrá activar una cada vez, la correspondiente a la neurona que hay que resetear. Su función de activación debería ser: Siendo ρ el parámetro de vigilancia. De esta forma, se produce el "reset" de la neurona Install Equation Editor and doubleclick here to view equation. vencedora cuando: VI. El Modelo de Resonancia Adaptativa (ART) 6.1 Install Equation Editor and doubleclick here to view equation. Este nodo R se podría implementar como un conjunto de M neuronas (R1,..,RM) que recibiesen las mismas entradas todas ellas, las indicadas anteriormente. La salida de cada una de estas neuronas (Rj) se conectaría a la entrada de la correspondiente neurona de la capa de salida de la red (nsj) a través de conexiones con un peso negativo de un gran valor (-), con una función de transferencia de tipo escalón, pero con un umbral dependiente del valor de salida de la neurona de la red a la que está conectada. De tal forma que, si se trata de la conectada a la vencedora, se podrá producir producir el "reset", lo que se consigue mediante la activación de la neurona Rj que, a través de la conexión de peso -, conseguirá inhibir a nsj. El resto de neuronas de R generarán una salida de valor "0". Puede comprobarse que todo esto se podría conseguir si el umbral de la función de activación de cada una de estas neuronas Rj fuese θj=N(1-snsj). 6.2.- FUNCIONAMIENTO. El funcionamiento de una red ART puede describirse de forma simplificada a través de la siguiente secuencia de pasos: 1º) Se presenta una información (vector) de entrada Ek=(e1(k),...,eN(k)) a la red. 2º) Cada neurona (nei) de la capa de entrada recibe el valor del componente correspondiente (ei(k) del vector y lo envía a todas las neuronas de la capa de salida a través de las conexiones correspondientes (wji). 3º) Cada neurona (nsj) de la capa de salida compite con las demás de esta capa hasta que sólo una permanece activa. Las conexiones laterales son las que permiten realizar esta competición y tienen un peso con un valor fijo -ε que debe ser menor que 1/M, siendo M el número de neuronas de la capa de salida, para que la competición funcione correctamente. Install Equation Editor and doubleclick here to view equation. Siendo "f" la función de transferencia de tipo escalón de las neuronas de salida. Después de un cierto número de iteraciones se llega a una situación de estabilidad en la que una de las neuronas resulta vencedora, generando una salida de valor "1", mientras que en las demás neuronas la salida es "0". Como los pesos de las conexiones laterares de inhibición tienen el mismo valor (-ε), así como las autorrecurrentes (+1), es evidente que el factor a tener en cuenta para saber cuál es la neurona vencedora será la entrada que recibe cada neurona a través de las conexiones feed-foward con pesos wji provenientes de la capa de entrada. Así, los valores de salida al final de la competición se pueden obtener más facilmente mediante la siguiente expresión: VI. El Modelo de Resonancia Adaptativa (ART) 6.1 Install Equation Editor and doubleclick here to view equation. 4º) La neurona vencedora (nsj*) envía su salida ("1") a través de las conexiones hacia atrás (vij*). Cada neurona i-ésima de la capa de entrada recibe el valor: Install Equation Editor and doubleclick here to view equation. Por tanto, al no influir el resto de las neuronas de salida por estar inactivas ("0"), en la capa de entrada se reciben los valores de los pesos de las conexiones correspondientes. 5º) Se compara la información de entrada Ek=(e1(k),...,eN(k)) con la información X=(x1,...,xN)=(v1j*,...,vNj*)=Vj* recibida en la capa de entrada desde la de salida a través de las conexiones hacia atrás. Hay que resaltar que el vector X (y por tanto Vj*) es en realidad el representante o prototipo de la clase o categoría j*-ésima si la neurona que se ha activado, la vencedora, ha sido la neurona de salida nsj*. Esta comparación se hace valorando la siguiente relación de semejanza: Install Equation Editor and doubleclick here to view equation. Install Equation Editor and doubleclick here to view equation. Install Equation Ed click here to view e Al trabajar con valores binarios (0/1), el producto aritmético equivale al lógico (operación AND) y, por tanto, lo que representa EkX es el número de componentes binarios (bits) con valor "1" que coinciden en los vectores Ek y X. En el caso de que fueran exactamente iguales, este valor coincidiría con Ek y la relación de semejanza sería la unidad (el parecido es del 100%). Si Ek y X no coinciden en ningún bit, entonces EkX=0 y el parecido sería del 0%. 6º) Se compara la relación de semeajanza entre ambas informaciones con un "parámetro de vigilancia" (ρ), cuyo valor será fijado por el usuario en un rango de 0 a 1 y que influirá en el número de clases que establecerá la red, ya que cuanto mayor sea su valor, se está pidiendo al sistema que discrimine con mayor precisión, de tal forma que si ρ=1 se estará indicando que a una clase sólo pueden pertenecer patrones que sean exactamente iguales. Si se cumple que: Install Equation Ed click here to view entonces la neurona vencedora nsj* no representa la apropiada categoría a la que pertenece la información de entrada Ek y es desestimada, se "resetea" o elimina del conjunto de posibles VI. El Modelo de Resonancia Adaptativa (ART) 6.1 neuronas vencedoras. Esto puede hacerse, como se indicó en el apartado anterior, mediante un nodo adicional (R) que actúe sobre nsj* a través de una conexión de fuerte inhibición con peso negativo de gran valor absoluto. En este punto se pueden dar dos situaciones: a) Si todavía quedan neuronas de salida que no hayan sido desestimadas, se repite el proceso de búsqueda de la categoría a la que pertenece la entrada (paso 2º) anulando ("reseteando") temporalmente la neurona vencedora para que no influya en la repetición del proceso de competición. b) Si no queda ninguna neurona candidata porque ya se ha repetido el proceso considerando como vencedoras cada una de las neuronas de salida, entonces se produce una situación de saturación de la red, ya que no se puede crear una nueva categoría para el patrón al no existir ninguna neurona de salida que pueda ssociarse a la nueva clase. Podría solucionarse el problema ampliando el número de neuronas de salida de la red de forma dinámica, ya que los nuevos pesos no afectarían a representantes ya almacenados en el resto de conexiones (wji, vij) que componen la memoria a largo plazo de la red. En este caso, si se amplia en una unidad se inicializan los pesos de las nuevas conexiones, y se repite el proceso desde el paso 4º. Como inicialmente los pesos tienen el valor 1, la relación de semejanza será del 100%, con lo que se estaría en la situación prevista en el paso 7º que se describe a continuación. 7º) Si la semejanza evaluada es igual o mayor que el "parametro de vigilancia", entonces se asume que la neurona que se ha activado a la salida es la que representa la categoría mas apropiada para la información de entrada Ek procediéndose a ajustar los pesos vij* y wj*i de la red ("memoria a largo plazo") para que el nuevo prototipo almacenado para representar dicha categoría incorpore algunas características del dato de entrada. Como la red descrita trabaja con valores binarios, esto consiste en una operación lógica AND entre los bits del prototipo (vij*) y los del patrón de entrada (ei(k)). Por este motivo, inicialmente los pesos vij se inicializan a "1", para que cuando se almacene el primer representante de cada clase, el prototipo coincida exactamante con el patrón de entrada. En realidad, la secuencia de pasos descrita viene a decir que cuando entra en funcionamiento una red ART se produce una búsqueda a través de los prototipos almacenados y asociados a cada clase o categoría, con la pretensión de encontrar uno lo suficiéntemente parecido a la información presentada a la entrada de la red. Si esta categoría no existe, se crea una nueva de la cual es prototipo dicha información. La red ART, por tanto, permite establecer clases de datos. Recibiendo datos en la entrada y activando la salida que indique la categoría o clase a la que pertenece. Si en la capa de salida hay N neuronas, el número de categorias que se establecen es N. Los prototipos o representantes de las clases son los pesos vij de las conexiones. Para extraerlos de la red se puede añadir una nueva capa de neuronas a la salida (Fig. 6.4) con un número de neuronas igual al de la capa de entrada y con unos pesos iguales a los anteriores (vij). VI. El Modelo de Resonancia Adaptativa (ART) 6.1 Figura 6.4 Ampliación de la red ART para la extracción de prototipos. 6.3.- APRENDIZAJE. El aprendizaje en el modelo ART es de tipo ON LINE, por lo que no se distingue entre etapa de entrenamiento y de funcionamiento. Los pesos varían durante el funcionamiento de la red cuando se aplica una información de entrada a la misma. La red ART utiliza un aprendizaje no supervisado de tipo competitivo. Las neuronas de la capa de salida compiten por activarse y sólo una de ellas permanece activa ante una determinada entrada a la red. Los pesos de las conexiones se ajustan en función de la neurona que haya resultado vencedora. En este tipo de redes se pueden dar dos tipos de aprendizaje denominados aprendizaje lento y aprendizaje rápido. El aprendizaje lento ocurre cuando una información de entrada es asociada a una de las categorías existentes. Entonces se debe proceder a ajustar los pesos para que el representante de dicha clase se adapte a las características del dato de entrada. El aprendizaje rápido se da cuando se establece una nueva categoría y consiste en representar de forma inmediata la información de entrada, que será el prototipo de dicha nueva clase, en los pesos de la red. Inicialmente, cuando la red todavía no ha "aprendido" ninguna información, se asigna el valor "1" a los pesos de las conexiones hacia atrás (vij). En estos pesos se distribuyen los M prototipos de las M diferentes clases que es capaz de diferenciar la red. Los pesos de las conexiones hacia delante (wji) tienen el mismo valor que los vij pero normalizado: Install Equation Editor and doubleclick here to view equation. VI. El Modelo de Resonancia Adaptativa (ART) 6.1 γ es un valor pequeño, normalmente se utiliza 0.5, aunque en la inicialización de los pesos se recomienda como valor la unidad [Lippman 87a]. Por tanto, inicialmente el valor de estos pesos es: Install Equation Editor and doubleclick here to view equation. Después, cada vez que se presente una información Ek=(e1(k),...,eN(k)) a la red, se realiza el "aprendizaje" o ajuste de los pesos de las conexiones vij* de la neurona vencedora con cada una de las N de la capa de entrada, en función de de la diferencia entre esta información y la del representante o prototipo de la clase a la que se ha asociado. En general, la variación de los pesos vij se realiza según la siguiente ecuación diferencial: Install Equation Editor and doubleclick here to view equation. Si la neurona de salida nsj no es la vencedora, el valor de su salida es cero (snsj=0), con lo que no debe producirse variación en el peso correspondiente (dvij/dt=0). Por el contrario, si la neurona es la vencedora, su salida es "1" (snsj*=1), con lo que la variación del peso vij* sería: dvij*/dt=(vij*ei(k)-vij*). Según esta expresión, el nuevo valor del peso se obtendría como: Install Equation Editor and doubleclick here to view equation. Siendo ei(k) el valor del componente i-ésimo de la información de entrada. Los pesos wj*i se obtienen normalizando los anteriores: Install Equation Editor and doubleclick here to view equation. Donde γ suele tener el valor 0.5. Para comprender mejor el mecanismo de aprendizaje y funcionamiento de una red ART se va a describir a continuación un ejemplo utilizando una red con 4 neuronas en la capa de entrada (N=4) y 2 en la de salida (M=2). Se manejarán, por tanto, patrones compuestos por cuatro valores binarios que podrán pertenecer a una de dos clases posibles. Se utilizarán los siguientes patrones representados en forma de figuras: Figura 1: 1 2 ┌───┬───┐ │███│███│ ├───┼───┤ │ │ │ └───┴───┘ 3 4 Figura 2: 1 2 ┌───┬───┐ │ │ │ ├───┼───┤ │███│███│ └───┴───┘ 3 4 Figura 3: 1 2 ┌───┬───┐ │███│███│ ├───┼───┤ │███│ │ └───┴───┘ 3 4 VI. El Modelo de Resonancia Adaptativa (ART) 6.1 Los pixels negros se representarían mediante el valor binario "1" y los blancos con el valor "0". En este caso las informaciones serían vectores de 4 elementos (N=4) que contienen los valores de los pixels. La red tendría 4 neuronas en la capa de entrada para que cada una reciba el valor de un pixel. Los valores de los vectores de entrada que representan a las figuras 1, 2 y 3 respectivamente son: E1 = (1,1,0,0) E2 = (0,0,1,1) E3 = (1,1,1,0) Se inicializan los pesos vij con valores "1" y los wji con 1/(1+N)=1/5=0.2. Las matrices que representan estos pesos iniciales serían: Install Equation Editor and doubleclick here to view equation. En esta situación, se aplica la primera de las informaciones de entrada, la cual se propaga a través de las conexiones feed-foward (con pesos wji) llegando a la capa de salida donde se produce la competición. Como ésta es la primera información de entrada y los pesos wji son todos iguales, no hay ninguna neurona vencedora se almacena directamente el patrón E1 en los pesos de, por ejemplo, la primera de las dos neuronas de salida. Así, los nuevos valores de los pesos serán: Install Equation Editor and doubleclick here to view equation. Si a continuación se introduce el vector E2, se producirá la competición en las neuronas de salida con los siguientes resultados: Install Equation Editor and doubleclick here to view equation. Por tanto resulta vencedora la neurona segunda de la capa de salida, que será la que represente entonces la categoría a la que pertenece este segundo patrón. El prototipo de esta nueva clase será la propia información de entrada ya que no exisitía ningún otro. Esto además es así porque se realiza la operación AND entre el patrón E2 y los valores de los pesos v2i que se habían inicializado a "1", por lo que el resultado coincide con E2: Install Equation Editor and doubleclick here to view equation. VI. El Modelo de Resonancia Adaptativa (ART) 6.1 Por último, se presenta a la entrada el vector E3=(1110), produciéndose la competición con los siguientes resultados: Install Equation Editor and doubleclick here to view equation. La vencedora es la neurona ns1 que representa a la clase 1 de la que era prototipo el patrón (1100). A continuación se produce el retorno a través de la conexiones feed-back (V1) comparándose el patrón E3 con el prototipo de esta clase (1100), obteniéndose la siguiente relación de semejanza: Install Equation Editor and doubleclick here to view equation. En este punto se deberá determinar si es suficiente la semejanza como para considerar que E3=(1110) es de la misma clase que E1=(1100), para lo cual habrá que tener en consideración el parámetro de vigilancia. Si este parámetro fuese ρ=0.5, entonces 0.66 > 0.5, por lo que se consideraría de la misma clase, produciciéndose el ajuste de los pesos V1 para que sean una combinación de ambos patrones, en realidad se realiza la operación AND, con lo que los nuevos pesos serían iguales a los ya existentes, pues al realizar (1100) AND (1110) el resultado sigue siendo (1100). Si el parámetro de vigilancia fuese mayor, por ejemplo ρ=0.8, entonces la relación de semejanza no es suficiente y se consideraría que E3 no es de ninguna de las clase anteriores, con lo que se debería crear una nueva para él. Como el número de neuronas de salida era 2, se produciría una saturación de la red y esta nueva clase no se podría clasificar, a no ser que se añadiera una nueva neurona de salida. Si ésto se hiciera así, se ajustarían los pesos vi3 y w3i de esta tercera neurona de salida para que registrasen el prototipo de la nueva clase: Install Equation Editor and doubleclick here to view equation. 6.4.- LIMITACIONES DE LA RED ART. Aunque la red ART es una de los más potentes modelos con capacidad autoorganizativa, sin supervisión, existen algunas limitaciones importantes a tener en cuenta que dificultan la tarea de clasificación realizada por la red. Estas limitaciones se refieren, sobre todo, a su dependencia del respecto del tipo y orden de las informaciones aprendidas y a la influencia del parámetro de vigilancia (ρ) en el número de categorías creadas por la red, ya que pequeños cambios de este parámetro puden originar un gran número de categorías. Se trata de una red con una gran sensibilidad ante el ruido o distorsión, también ante el desplazamiento de los datos de entrada, que puede dar lugar a una gradual degradación de los prototipos correspondientes, debido al carácter destructivo (operación AND de dato de entrada y prototipo) de la regla de aprendizaje que realiza la adapatación de los pesos. Sin embargo, si estos datos de entrada son sometidos a un adecuado pre-procesamiento, la red VI. El Modelo de Resonancia Adaptativa (ART) 6.1 ART puede ser útil para realizar una posterior tarea de clasificación o categorización. También este modelo presenta el problema de la ineficiencia en cuanto a las necesidades requeridas para el almacenamiento de los pesos de las conexiones entre neuronas. Hay que tener en cuenta que se precisan 2*N para representar cada categoría de N bits, además de las conexiones laterales y autorrecurrentes de la capa de salida y las de las neuronas especiales de orientación (R) y control de ganancia (G). Además, otra evidente limitación del modelo original es su carácter discreto, obligando a trabajar con informaciones binarias. Este problema fue rápidamente solventado por sus creadores a través de una extensión contínua del modelo al que denominaron ART2 para diferenciarlo del original que suele ser referido como ART1. En el siguiente apartado se analiza esta nueva versión. 6.4.1.- Una mejora del modelo. La red ART2. En 1987 Carpenter y Grossberg [Carpenter 87] propusieron una versión contínua del modelo de Resonancia Adaptativa, al que denominaron ART2, que era capaz de trabajar con valores de entrada reales en lugar de binarios. Esta nueva red tiene la misma arquitectura que la original pero en este caso los pesos de las conexiones feed-foward y feed-back son iguales (wji=vij). También su funcionamiento es diferente en algunos aspectos. El algoritmo de funcionamiento de esta red ART2 es el siguiente: 1º) Se presenta una información de entrada Ek=(e1(k),...,eN(k)) a la red. En este caso los componentes ei(k) son valores reales. 2º) Cada neurona (nei) de la capa de entrada recibe el valor del componente correspondiente real del vector Ek y lo envía a todas las neuronas de la capa de salida a través de las conexiones correspondientes (wji). 3º) Cada neurona (nsj) de la capa de salida compite con las demás de esta capa hasta que sólo una permanece activa. Aquí se plantea otra diferencia con respecto al modelo discreto, ya que en este caso se supone que la neurona vencedora es aquella j* que verifica una mínima diferencia (distancia Euclidea) entre el patrón de entrada y los pesos de las conexiones entre esta neurona y las de la capa de entrada: Install Equation Editor and doubleclick here to view equation. 4º) La neurona vencedora (nsj*) envía su salida ("1") a través de las conexiones hacia atrás (vij*). Cada neurona i-ésima de la capa de entrada recibe el valor: Install Equation Editor and doubleclick here to view equation. 5º) Se compara la información de entrada Ek=(e1(k),...,eN(k)) con la información X=(x1,...,xN)=(wj*1,...,wj*N)=Wj*=Vj* recibida, es decir, con el representante o prototipo de la clase o categoría j*-ésima. En el modelo ART2 la relación de semejanza utilizada es: VI. El Modelo de Resonancia Adaptativa (ART) 6.1 Install Equation Editor and doubleclick here to view equation. 6º) Se compara la relación de semejanza entre ambas informaciones con el "parámetro de vigilancia" ρ establecido por el usuario, que en este nuevo modelo tendrá un valor en el rango [0..máximo valor de las componentes de Ek]. Por ejemplo, si los componentes tienen valores entre 0 y 2, la mínima diferencia será 0, cuando coincidan, y la máxima 2, cuando la entrada sea (0,0,..0) y los pesos (2,2,..2). Como en el modelo original, si se cumple que: Install Equation Ed click here to view entonces la neurona vencedora no representa la apropiada categoría a la que pertenece la información de entrada Ek y es desestimada, se "resetea" o elimina del conjunto de posibles neuronas vencedoras y se prueba otra vez (paso 2º). Si ya se han desestimado todas las salidas, se añade una nueva neurona a la capa de salida (nsM+1) con pesos iguales a los componentes del patrón de entrada (viM+1=wM+1i=ei(k)). 7º) Si la semejanza evaluada es igual o mayor que el "parametro de vigilancia", entonces se asume que la neurona que se ha activado a la salida es la que representa la categoría mas apropiada para la información de entrada Ek, procediéndose al ajuste de los pesos vij* y wj*i para que el nuevo prototipo almacenado que representa dicha categoría incorpore algunas características del dato de entrada, según la siguiente expresión: Install Equation Editor and doubleclick here to view equation. Siendo Numj*(t) el número de vectores de entrada que han sido considerados hasta el instante t como de la clase j*. La utilidad y funcionamiento de la red ART2 puede entenderse mejor con el siguiente ejemplo adaptado de [Kung 93]. Se trata de utilizar una red ART2 para clasificar puntos del plano, de tal forma que la red establezca categorías ("clusters") en función de la vecindad entre los puntos. Como el aprendizaje es sin supervisión, las clases no se conocen a priori y es la propia red quien las crea, generando los prototipos representantes de cada una de ellas. En este ejemplo los prototipos representarán los centros de gravedad del conjunto de puntos incluidos en cada clase creada por la red. Se utilizan 10 puntos que se representan mediante sus dos coordenadas (x,y) de valor real en el rango [0..2]. Se procede a presentar en la entrada de la red las coordenadas de los 10 puntos, obteniendo los resultados que se muestran en la tabla 6.1. VI. El Modelo de Resonancia Adaptativa (ART) PTO (x,y) Neurona Vencedor a Relación Semejanz a CLASE 1 prototipo CLASE 2 prototipo 6.1 CLASE 3 prototipo p1 (1.0, 0.1) - - (1.0, 0.1) p2 (1.3, 0.8) 1 1.0 p3 (1.4, 1.8) 1 1.6 p4 (1.5, 0.5) 1 0.4 p5 (0.0, 1.4) 2 1.8 (0.0, 1.4) p6 (0.6, 1.2) 3 0.8 (0.3, 1.3) p7 (1.5, 1.9) 2 0.2 p8 (0.7, 0.4) 1 0.63 p9 (1.9, 1.4) 2 0.9 (1.6, 1.7) p10 (1.5, 1.3) 2 0.5 (1.58, 1.6) (1.15, 0.45) (1.4, 1.8) (1.27, 0.47) (1.45, 1.85) (1.13, 0.45) Tabla 6.1.- Resultados obtenidos en al clasificación de 10 puntos del plano con una red ART2 [Kung 93]. En esta tabla, por cada punto (pk)que se introduce, se representa sus coordenadas (x,y), la relación de semejanza con respecto al prototipo de la clase a la que la red ha determinado que pertenece según la neurona que ha resultado vencedora, y el nuevo valor de este prototipo cuando se hace el ajuste de los pesos para incorporar también las coordenadas del punto introducido. En este ejemplo se ha establecido un valor para el parámetro de vigilancia de ρ=1.5, siendo 2 el máximo posible ya que se trabaja con puntos con coordenadas en el margen [0,2]. Puede observarse que además del punto p1, por ser el primero, los puntos p3 y p5 no superan la relación de semejanza y por tanto se establece una nueva clase en cada caso, siendo estos puntos sus correspondienters prototipos. El resto de puntos, cuando se introducen, sí superan la relación de semejanza, con lo que pertenecen a clases ya establecidas y se incorporan al prototipo representante según la ecuación de ajuste: Install Equation Editor and doubleclick here to view equation. Install Equation Editor and doubleclick here to view equation. Por ejemplo, en el caso del punto p4=(1.5, 0.5), primero se compara con el prototipo de la clase 1, que es la única que existe cuando se introduce este punto: Install Equation Editor and doubleclick here to view equation. Como la diferencia es menor que el parámetro de vigilancia, fijado a 1.5, estonces se decide que el punto p4 pertenence a la categoría 1, con lo que se adapta el prototipo de esta categoría para combinarlo con el valor de p4: VI. El Modelo de Resonancia Adaptativa (ART) 6.1 Install Equation Editor and doubleclick here to view equation. En la figura 6.5(a) se muestra la distribución de los 10 puntos en el plano cuando se han introducido en la red en el orden p1..p10. Se indica la posición final del punto prototipo de cada categoría o "cluster", que no es otro que el centro de gravedad de la clase correspondiente. En la figura 6.5(b) se representa la distribución en el caso de introducir los puntos en orden inverso p10..p1. En este caso, puede demostrarse facilmente que el número de categorías o clusters creadas por la red es de dos. Por tanto, parece evidente que la red ART2, como ocurria con el modelo discreto, es sensible al orden en el que se presenten los patrones de entrada, ya que la comparación se hace con los nuevos prototipos de las clases y porque la actualización de éstos siempre se realiza eliminando información no común, con lo que se pierden valores que no se pueden volver a recuperar. Figura 6.5 Distribución de los puntos del ejemplo en el plano y categorías ("clusters") establecidas por la red ART2 [Kung 93]. VI. El Modelo de Resonancia Adaptativa (ART) 6.1 6.5.- APLICACIONES DEL MODELO ART. La utilización de la red ART suele estar relaciona con tareas de reconocimiento de patrones, ya que se trata de una red especialmente útil en aquellas aplicaciones que requieran del establecimiento automático de categorías para la clasificación de datos binarios (ART1) y contínuos (ART2). También se ha utilizado para el diseño de sistemas de control y diagnóstico adaptativos. Debido al carácter de funcionamiento autónomo, sin supervisor, esta red ha sido también utilizada para modelar procesos biológicos y así poder estudiar y predecir su comportamiento. En [Carpenter 88] se describe un sistema autónomo para percibir y producir voz de forma parecida a como lo haría un humano. El subsistema de percepción recibe la voz en forma de sonido, estableciendo, con la ayuda de una red ART2, diferentes códigos o categorías fonéticas. El subsistema de producción, mediante un proceso de imitación, transforma los códigos de voz oída en códigos de control de un motor para la generación de la voz. En este apartado se presentarán algunos ejemplos de aplicaciones del modelo ART para el reconocimiento de patrones discretos y contínuos. 6.5.1.- Reconocimiento de imágenes. En el apartado 6.3, cuando se presentó el mecanismo de aprendizaje de la red ART discreta, se utilizó un ejemplo muy simple de clasificación de figuras compuestas por 4 puntos (pixels). En este apartado se analizará un ejemplo similar, pero de mayor complejidad. También se analizará la posibilidad de utilizar el modelo contínuo (ART2) para el reconocimiento invariante de imágenes que han sufrido algún tipo de deformación, rotación, ampliación o desplazamiento. En [Carpenter 88], los autores del modelo presentan un ejemplo de aprendizaje de las letras del alfabeto por parte de una red ART discreta. El ejemplo que se presenta a continuación es similar, aunque en este caso se va a trabajar con números en lugar de letras, y servirá para comprobar el efecto del parámetro de vigilancia en el establecimiento de categorías. Se va a diseñar una red para clasificar figuras de dígitos representados mediante 7x6= 42 pixels. Esta red consta de 42 neuronas de entrada a través de las cuales se recibe la figura que debe clasificar. La red debe responder indicando a qué clase, de las establecidas hasta ese momento, pertenece la letra. Si no pertenece a ninguna deberá crear una nueva. Se fija un valor de 0.9 para el "parámetro de vigilancia" (ρ), es decir, se exije una semejanza mayor del 90% para considerar que dos figuras son de la misma clase. El primer dígito que se aplica a la red es el "2". Como se trata de la primera información, se realiza el aprendizaje completo de la misma, actualizándose los pesos de las conexiones para almacenar este primer ejemplar, que será el representante o prototipo de la primera categoría establecida por la red (Fig. 6.6(a)). Después se presenta el dígito "3". En este caso la red comprobaría el grado de semejanza con respecto al único prototipo almacenado en la red (el "2"). Al ser informaciones VI. El Modelo de Resonancia Adaptativa (ART) 6.1 binarias y suponiendo que un pixel negro se representa mediante un bit "1" en el vector de entrada (Ek) y uno blanco con un bit "0". Se puede comprobar el grado de semejanza aplicando la fórmula ║EkX║/║Ek║. En el denominador se indica en número de pixels negros, en este caso es de 17. En el numerador se indica el número de pixels negros coincidentes al superponer el dígito de entrada con el prototipo con el que se compara (operación AND entre ambas figuras). En este caso puede comprobarse que hay 11 pixels coincidentes, por tanto la relación de semejanza es 11/17=0.65, menor que el "parámetro de vigilancia" que se había fijado a 0.9, por tanto la red determinaría que el dígito "3" no pertenece a la categoría del "2", por lo que crearía en los pesos un nuevo prototipo (exactamente igual a la figura del "3") para esta nueva categoría (Fig. 6.6(b)). Cuando se introduce el dígito "8" se compara con los dos prototipos almacenados ("2" y "3") obteniéndose una relación de semejanza respecto a "2" de 11/20=0.55 < 0.9 y respecto a "3" de 17/20=0.85 < 0.9. Por tanto, se considera como prototipo de una nueva categoría (Fig. 6.6(c)). Cuando se presenta la cuarta figura, un "8" distorsionado, al comparar con el prototipo "8" se obtiene una relación=19/20=0.95, por lo que se integra en la categoría del "8", ajustando entonces la red los pesos para adaptar el prototipo de esa categoría, incorporando alguna de las características de la nueva figura. En realidad, el nuevo prototipo se obtiene aplicando una operación AND entre las dos números. (Fig. 6.6(d)). Finalmente, cuando se presenta el "8" con otra distorsión (Fig. 6.6(e)), la semejanza respecto al prototipo anterior es de 17/19=0.89 < 0.9, con lo que no se considera de la misma categoría, creándose una nueva de la que esta figura pasa a ser su representante. VI. El Modelo de Resonancia Adaptativa (ART) 6.1 │ EJEMPLARES (PROTOTIPOS) ALMACENADOS EN LA RED │ ─────────────┼───────────────────────────────────────────── │ ████ │ ████ █ █ │ █ █ █ │ █ (a) █ │ █ █ │ █ █ │ █ ██████ │ ██████ │ │ ████ │ ████ ████ █ █ │ █ █ █ █ █ │ █ █ (b) ███ │ █ ███ █ │ █ █ █ █ │ █ █ █ ████ │ ██████ ████ │ │ ████ │ ████ ████ ████ █ █ │ █ █ █ █ █ █ █ █ │ █ █ █ █ (c) ████ │ █ ███ ████ █ █ │ █ █ █ █ █ █ │ █ █ █ █ █ ████ │ ██████ ████ ████ │ │ ████ │ ████ ████ ████ █ █ │ █ █ █ █ █ █ █ █ │ █ █ █ █ (d) ███ │ █ ███ ███ █ █ │ █ █ █ █ █ █ █ │ █ █ █ █ █ ████ │ ██████ ████ ████ │ │ ████ │ ████ ████ ████ ████ █ │ █ █ █ █ █ █ █ █ █ │ █ █ █ █ █ █ (e) █ ██ │ █ ███ ███ █ ██ █ █ │ █ █ █ █ █ █ █ █ █ │ █ █ █ █ █ █ █ █ ████ │ ██████ ████ ████ ████ ENTRADA Figura 6.6 Categorías establecidas por la red cuando ρ=0.9. Para comprobar el efecto del parámetro de vigilancia, puede analizarse lo que ocurriría si su valor fuese menor. En ese caso, se estaría relajando la condición de vigilancia, de tal forma que formarán parte de la misma categoría figuras que difieran en una mayor proporción que en el caso anterior. Si por ejemplo ρ=0.8, cuando se presenta la imagen del "8", la relación de VI. El Modelo de Resonancia Adaptativa (ART) 6.1 semejanza con el "3" es 17/20=0.85 que es mayor que ρ, con lo que se consideran de la misma clase, perdiéndose, por tanto, el dígito "8" al establecer el nuevo prototipo con la operación AND entre ambos patrones (Fig. 6.7(e)). Lo que ocurre al presentar el resto de imágenes puede observarse en la misma figura 6.7. ENTRADA │ EJEMPLARES (PROTOTIPOS) ALMACENADOS EN LA RED ─────────────┼───────────────────────────────────────────── ████ │ ████ █ █ │ █ █ █ │ █ (a) █ │ █ █ │ █ █ │ █ ██████ │ ██████ │ ████ │ ████ ████ █ █ │ █ █ █ █ █ │ █ █ (b) ███ │ █ ███ █ │ █ █ █ █ │ █ █ █ ████ │ ██████ ████ │ ████ │ ████ ████ █ █ │ █ █ █ █ █ █ │ █ █ (c) ████ │ █ ███ █ █ │ █ █ █ █ │ █ █ █ ████ │ ██████ ████ │ ████ │ ████ ████ ████ █ █ │ █ █ █ █ █ █ █ █ │ █ █ █ █ (d) ███ │ █ ███ ███ █ █ │ █ █ █ █ █ █ █ │ █ █ █ █ █ █ ████ │ ██████ ████ ████ │ ████ │ ████ ████ ████ █ │ █ █ █ █ █ █ █ │ █ █ █ █ (e) █ ██ │ █ ███ █ █ █ █ │ █ █ █ █ │ █ █ █ █ █ █ █ █ ████ │ ██████ ████ ████ Figura 6.7 Categorías establecidas por la red cuando ρ=0.8. Un ejemplo mas complejo que el anterior se puede encontrar en [Carpenter 87], donde VI. El Modelo de Resonancia Adaptativa (ART) 6.1 se muestra como aplicación un sistema de reconocimiento invariante de imágenes obtenidas mediante sensores de radar láser. El sistema consta de una red ART2 y una etapa de preprocesamiento. En esta etapa previa se realizan tres funciones: a) recepción de la imagen radar, b) detección, marcado y completado del contorno de la imágenes mediante una red neuronal denominada Boundary Contour System [Grossberg 85], c) filtrado de la imagen aplicando la transformada de Fourier-Mellin, que obtiene una representación (espectro) de la imagen independiente de su posición, rotación o tamaño. La red ART2 recibe la imagen transformada y establece la categoría a la que pertenece. En la figura 6.8 se muestra la correcta clasificación de 24 imágenes de 4 tipos de vehículos en cuatro categorías. En este ejemplo se trabaja con un ruido en las imágenes de un 10%. Figura 6.8 Clasificación, de 24 imágenes en 4 categorías, realizada por una red ART2 [Carpenter 87]. Se pueden realizar modificaciones espaciales de las figuras (rotación, traslación y cambio de tamaño) y repetir el proceso anterior con las nuevas imágenes. En la figura 6.9 se muestra el resultado de la clasificación de 32 figuras, con un 5% de ruido, en 5 categorías. Se ha producido una división en 2 clases (3,5) de las imágenes que originariamente eran del tipo 3. Este problema puede solucionarse mediante una etapa de post-procesamiento basada en otra red ART [Carpenter 87]. VI. El Modelo de Resonancia Adaptativa (ART) 6.1 Figura 6.9 Clasificación invariante de 32 imágenes con una red ART2 [Carpenter 87]. VI. El Modelo de Resonancia Adaptativa (ART) 6.1 6.5.2.- Reconocimiento de señales analógicas. Igual que en el caso de informaciones binarias, una red ART2 puede utilizarse para establecer categorías de patrones analógicos, como pueden ser señales en el tiempo o en el dominio de la frecuencia, que podrían corresponder, por ejemplo, a señales de voz, de un transductor médico, etc. En la figura 6.10 se muestra un ejemplo de como una red ART2 de N neuronas de entrada establece 34 categorías a partir de 50 patrones (señales) analógicos compuestos de N muestras de valores reales. En este caso de utiliza un valor grande para el parámetro de vigilancia. Figura 6.10 Clasificación de patrones analógicos con una red ART2 (con un valor grande de ρ)Carpenter 87]. Si el valor del parámetro ρ se reduce, el número de categorías también disminuye, ya que se relaja la condición de pertenencia a una clase u otra. Con las 50 señales del ejemplo anterior se obtienen entonces 20 grupos en lugar de 32 (Fig. 6.11). Lo que ha ocurrido es que las categorías 1 y 2 de la figura 6.10 se han fundido en una nueva categoría 1; las categorias 14, 15 y 32 en la 10; y las categorías 19, 20, 21 y 22 en la 13. VI. El Modelo de Resonancia Adaptativa (ART) 6.1 Figura 6.11 Variación del número de categorías al reducir el valor de ρ [Carpenter 87]. Otro ejemplo del modelo ART2 en tareas de clasificación de informaciones analógicas, lo constituye la siguiente aplicación médica. Se trata de reconocer la forma de los complejos QRS (Fig. 6.12) de los latidos (ciclos) cardiacos en señales electrocardigráficas (ECG) para ayudar en un posterior diagnóstico clínico [Arai 91]. Figura 6.12 Puntos representativos de una ciclo cardiaco. VI. El Modelo de Resonancia Adaptativa (ART) 6.1 El sistema propuesto (Fig. 6.13) consiste en: un preprocesador, para dividir la señal ECG en ciclos cardiacos; dos redes neuronales ART2, que reciben como entrada un ciclo cardiaco e indican las localizaciones aproximadas de los puntos significativos para reconocer el complejo QRS; y un reconocedor, para buscar las localizaciones exactas de los puntos significativos alrededor de la posición indicada por las redes. Tramo ┌────────────┐ P-R ┌───────────┐ Pto.Q ┌────────────┐ ECG │ ├─────>│ RED ART2 ├──────>│ │ Q ───>│ PRE│ └───────────┘ │ RECONOCEDOR├──> │ PROCESADOR │Tramo ┌───────────┐ Pto.S │ │ S │ ├─────>│ RED ART2 ├──────>│ │ └────────────┘ R-T └───────────┘ └────────────┘ Figura 6.13 Sistema de reconocimiento de complejos QRS. El preprocesador detecta los puntos R en el ECG y divide esta señal en ciclos cardiacos. Un ciclo a su vez se considera formado por dos tramos. Un tramo del ciclo , 100ms desde el punto R hacia la onda T, se introduce en una red neuronal para reconocer el punto S. De forma similar, una porción de ECG desde el punto R hacia la onda P anterior se introduce en la otra red para reconocer el punto Q. Las redes ART2 utilizadas son capaces de indicar las posiciones aproximadas de los puntos significativos de la señal. Esto se hace de la siguiente forma (Fig. 6.14): - Localización del punto S: Se asume previamente la aproximación de que los puntos R y S están unidos mediante una línea recta, formando junto con la base de tiempos un triángulo rectángulo. Inicialmente se presentan a la red tríangulos de este tipo que se irán almacenando en su "memoria a largo plazo" (LTM: "Long Term Memory"). Cuando a la red se le presenta un nuevo tramo de ECG, internamente buscará el triángulo (patrón) almacenado que más se parece al framento de ECG de entrada. El punto inferior derecho del patrón localizado indicará la posición aproximada del punto S. La red se diseña para que genere a la salida esta posición. Figura 6.14 Triángulos "aprendidos" por las redes. - Localización del punto Q: Se procede de la misma manera que con el punto S, utilizando otra red ART2. VI. El Modelo de Resonancia Adaptativa (ART) 6.1 Cada vez que se presenta a las redes un ciclo cardiaco para reconocer el complejo QRS, modificarán los pesos de las conexiones entre neuronas para adaptar los prototipos (triángulos) almacenados a las particulares características de la señal ECG de entrada, que puede corresponder a pacientes diferentes. Por último, el reconocedor del sistema realiza un ajuste fino, encontrando las posiciones exactas de los puntos S y Q en base a las suministradas por las redes. Según los autores, procesando un total de 300 ciclos cardiacos con ECG de tres personas diferentes, el sistema reconocía el complejo QRS en el 97% de los casos. VII. El modelo de Kohonen. 7.1 VII EL MODELO DE KOHONEN. Existen evidencias que demuestran que en el cerebro hay neuronas que se organizan en muchas zonas de forma que las informaciones captadas del entorno a través de los órganos sensoriales se representan internamente en forma de "mapas bidimensionales". Por ejemplo, en el sistema visual se han detectado "mapas" del espacio visual en zonas del córtex (capa externa del cerebro). También en el sistema auditivo se detecta una organización en base a la frecuencia a la que cada neurona alcanza la mayor respuesta (organización "tonotópica"). Aunque en gran medida esta organización neuronal está predeterminada genéticamente, es probable que parte de ella se origine mediante el aprendizaje. Esto sugiere, por tanto, que el cerebro podría poseer la capacidad inherente de formar "mapas topológicos" de las informaciones recibidas del exterior. De hecho, esta teoría podría explicar su poder de operar con elementos semánticos: algunas áreas del cerebro simplemente podrían crear y ordenar neuronas especializadas o grupos con características de alto nivel y sus combinaciones. Se trataría, en definitiva, de construir mapas espaciales para atributos y caracterísiticas. En base a estas ideas, T. Kohonen presentó en 1.982 [Kohonen 82] un sistema con un comportamiento semejante. Se trataba de un modelo de red neuronal con capacidad para formar "mapas de características" de manera similar a como ocurre en el cerebro. El objetivo de Kohonen era "demostrar que un estímulo externo (información de entrada) por sí solo, suponiendo una estructura propia y una descripción funcional del comportamiento de la red, era suficiente para forzar la formación de los mapas". Este modelo tiene dos variantes denominadas LVQ (Learning Vector Quantization) y TPM (Topology-Preserving Map) o SOM (Self-Organizing Map). Ambas se basan en el principio de formación de mapas topológicos para establecer características comunes entre laa informaciones (vectores) de entrada a la red, aunque difieren en las dimensiones de éstos, siendo de una sóla dimensión en el caso de LVQ y bidimensional, e incluso tridimensional, en la red TPM. 7.1.- ARQUITECTURA. VII. El modelo de Kohonen. 7.1 Figura 7.1 Arquitectura de la red LVQ (Learning Vector Quantization) de Kohonen [Simpson 90]. La arquitectura de la versión original (LVQ) del modelo de Kohonen es parecida a la de la red ART, aunque en este caso no existen conexiones feedback (Fig. 7.1). Se trata de una red de dos capas con N neuronas de entrada y M de salida. Cada una de las N neuronas de entrada se conecta a las M de salida a través de conexiones hacia delante (feedfoward). Entre las neuronas de la capa de salida puede decirse que existen conexiones laterales de inhibición (peso negativo) implícitas; pues aunque no estén conectadas, cada una de estas neuronas va a tener una cierta influencia sobre sus vecinas. El valor que se asigne a los pesos de las conexiones feedfoward entre las capas de entrada y salida (wji) durante el proceso de aprendizaje de la red va a depender precisamente de esta interacción lateral. La influencia que una neurona ejerce sobre las demás es función de la distancia entre ellas, siendo muy pequeña cuando están muy alejadas. Es frecuente que dicha influencia tenga la forma de un "sombrero mejicano", como se ilustra en la figura 7.2. Esta afirmación tiene una base biológica, ya que existen evidencias fisiológicas de interconexiones laterales de este tipo entre las neuronas del sistema nervioso central de los animales. Así, se ha podido comprobar que en determinados primates se producen interacciones laterales de tipo excitatorio entre neuronas próximas en un radio de 50 a 100 micras, de tipo inhibitorio en una corona circular de 150 a 400 micras de anchura alrededor del círculo anterior, y de tipo excitatorio muy debil, prácticamente nulo, desde ese punto hasta una distancia de varios centímetros. Figura 7.2 Interacción entre neuronas de la capa de salida. VII. El modelo de Kohonen. 7.1 Por otra parte, la versión del modelo denominada TPM (Topology Preserving Map) trata de de establecer una correspondencia entre los datos de entrada y un espacio bidimensional de salida, creando "mapas topológicos" de dos dimensiones, de tal forma que ante datos de entrada con características comunes se deben activar neuronas situadas en zonas próximas de la capa de salida. Por esta razón, la representación habitual de esta red suele ser la mostrada en la figura 7.3, donde las M neuronas de salida se disponen de forma bidimensional para representar precisamente los mapas de caracterísiticas. Figura 7.3 Arquitectura de la red TPM (Topology-Preserving Map) de Kohonen. Figura 7.4 Interacción entre neuronas de la capa de salida con zona de interacción circular. La interacción lateral entre las neuronas de la capa de salida sigue existiendo, aunque hay que entender la distancia ahora como una zona bidimensional que existe alrededor de cada neurona. Esta zona puede ser circular (Fig. 7.4), cuadrada, hexagonal, o cualquier otro poligono regular centrado en dicha neurona. 7.2.- FUNCIONAMIENTO. El funcionamiento de esta red es relativamente simple. Cuando se presenta a la entrada una información Ek=(e1(k),..,eN(k)), cada una de las M neuronas de la capa de salida la recibe a través de las conexiones feedfoward con pesos wji. También estas neuronas reciben las correspondientes entradas debidas a las conexiones laterales con el resto de neuronas de salida y cuya influencia dependerá de la distancia a la que se encuentren. Así, la salida generada por una neurona de salida j ante un vector de entrada Ek sería: VII. El modelo de Kohonen. 7.1 Install Equation Editor and doubleclick here to view equation. Donde Intpj es una función del tipo "sombrero mejicano" (Figs. 7.2 y 7.4) que representa la influencia lateral de la neurona p sobre la neurona j. La función de activación de las neuronas de salida (f) será del tipo contínuo, lineal o sigmoidal, ya que esta red trabaja con valores reales. Es evidente que se trata de una red de tipo competitivo, ya que, al presentar una entrada Ek la red evoluciona hasta una situación estable en la que se activa una neurona de salida, la vencedora. Por ello, la formulación matemática de su funcionamiento puede simplificarse mediante la siguiente expresión, que representa cuál de las M neruonas se activaría al introducir dicha información Ek: Install Equation Editor and doubleclick here to view equation. Donde Ek-Wj es una medida (p. ej. distancia euclídea) de la diferencia entre el vector de entrada Ek=(e1(k),..,eN(k)) y el vector de los pesos Wj=(wj1,..,wjN) de las conexiones entre cada una de las neuronas de entrada y la neurona de salida j. En estos pesos se registran los datos almacenados en la red durante el proceso de aprendizaje. En la fase de funcionamiento lo que se pretende es encontrar el dato "aprendido" más parecido al de entrada para, en consecuencia, averiguar qué neurona se activará y, sobre todo, en qué zona del espacio bidimensional de salida se encuentra. Lo que hace la red de Kohonen, en definitiva, es realizar una tarea de clasificación, ya que la neurona de salida activada ante una entrada representa la clase a la que pertenence dicha información de entrada. Además, como ante otra entrada parecida se activa la misma neurona de salida, u otra cercana a la anterior, debido a la semejanza entre las clases, se garantiza que las neuronas topológicamente próximas sean sensibles a entradas físicamente similares. Por esta causa, la red es especialmente útil para establecer relaciones, desconocidas previamente, entre conjuntos de datos. 7.3.- APRENDIZAJE. El aprendizaje en el modelo de Kohonen es de tipo OFF LINE, por lo que se distingue una etapa de aprendizaje y otra de funcionamiento. En la etapa de aprendizaje se fijan los valores de los pesos de las conexiones (feedfoward) entre la capa de entrada y la de salida. Esta red utiliza un aprendizaje no supervisado de tipo competitivo. Las neuronas de la capa de salida compiten por activarse y sólo una de ellas permanece activa ante una determinada información de entrada a la red. Los pesos de las conexiones se ajustan en función de la neurona que haya resultado vencedora. VII. El modelo de Kohonen. 7.1 Durante la etapa de entrenamiento se presenta a la red un conjunto de informaciones de entrada ("vectores de entrenamiento") para que ésta establezca, en función de la semejanza entre los datos, las diferentes categorías (una por neurona de salida) que servirán durante la fase de funcionamiento para realizar clasificaciones de nuevos datos que se presenten a la red. Los valores finales de los pesos de las conexiones entre cada neurona de la capa de salida con las de entrada se corresponderán con los valores de los componentes del vector de aprendizaje que consigue activar la neurona correspondiente. En el caso de existir más patrones de entrenamiento que neuronas de salida, más de uno deberá asociarse con la misma neurona, es decir, pertenecerán a la misma clase. En tal caso los pesos se obtienen como un promedio de dichos patrones. En este modelo, el aprendizaje no concluye después de presentarle una vez todos los patrones de entrada, sino que habrá que repetir el proceso varias veces para refinar el mapa topológico de salida, de tal forma que cuantas más veces se presenten los datos, tanto más se reducirán las zonas de neuronas que se deben activar ante entradas parecidas, consiguiendo que la red pueda realizar una clasificación más selectiva. El algoritmo de aprendizaje utilizado para establecer los valores de los pesos de las conexiones entre las N neuronas de entrada y las M de salida es el siguiente: 1º) En primer lugar se inicializan los pesos (wji) con valores aleatorios pequeños y se fija la zona inicial de vecindad entre las neuronas de salida. 2º) A continuación se presenta a la red una información de entrada (la que debe "aprender") en forma de vector Ek=(e1(k),..,eN(k)) cuyas componentes ei(k) serán valores contínuos. 3º) Puesto que se trata de un aprendizaje competitivo, se determina la neurona vencedora de la capa de salida. Esta será aquella j cuyo vector de pesos Wj (vector cuyas componentes son los valores de los pesos de las conexiones entre esa neurona y cada una de las neuronas de la capa de entrada) sea el más parecido a la información de entrada Ek (patrón o vector de entrada). Para ello se calculan las distancias o diferencias entre ambos vectores considerando una por una todas las neuronas de salida. Suele utilizarse la distancia euclídea o la siguiente expresión, que es similar a aquella pero eliminando la raiz cuadrada: Install Equation Editor and doubleclick here to view equation. Siendo: ei(k): Componente i-ésimo del vector k-ésimo de entrada. wji: Peso de la conexión entre la neurona i de la capa de entrada y la neurona j de la capa de salida. 4º) Una vez localizada la neurona vencedora (j*) se actualizan los pesos de las conexiones entre las neuronas de entrada y dicha neurona, así como los de las conexiones entre las de entrada y las neuronas vecinas de la vencedora. En realidad, lo que se consigue con esto es asociar la información de entrada con una cierta zona de la capa de salida. Install Equation Editor and doubleclick here to view equation. VII. El modelo de Kohonen. 7.1 Zonaj*(t) es la zona de vecindad alrededor de la neurona vencedora j* en la que se encuentran las neuronas cuyos pesos son actualizados. El tamaño de esta zona se puede reducir en cada iteración del proceso de ajuste de los pesos, con lo que el conjunto de neuronas que pueden considerarse vecinas cada vez es menor (Fig 7.5). Sin embargo, en la práctica es habitual considerar una zona fija en todo el proceso de entrenamiento de la red. Figura 7.5 Posible evolución de la zona de vecindad. El término α(t) es un parámetro de ganancia o coeficiente de aprendizaje, con un valor entre 0 y 1, decrece con el número de iteraciones (t) del proceso de entrenamiento. De tal forma que cuando se ha presentado un gran número de veces todo el juego de patrones de Install Equation Editor and doubleaprendizaje click here to view equation. 5 su valor es prácticamente nulo, con lo que la modificación de los pesos es insignificante. Suele utilizarse alguna de las siguientes expresiones: Install Equation Editor and doubleclick here to view equation. Siendo α1 un valor de 0.1 ó 0.2 y α2 un valor próximo al número total de iteraciones del aprendizaje. Suele tomarse un valor α2=10000. 5º) El proceso se debe repetir, volviendo a presentar todo el juego de patrones de aprendizaje Install Equation Editor and doubleE1,E2,.., un mínimo de 500 veces click here to view equation. 7. El siguiente ejemplo servirá para entender el funcionamiento y aprendizaje de este tipo de redes. Se trata de utilizar una red como la de la figura 7.6, para establecer clases de puntos distribuidos en un espacio bidimensional. VII. El modelo de Kohonen. 7.1 Figura 7.6 Red para clasificar puntos en el plano X-Y. La red consta de 2 neuronas de entrada a través de la cuales recibe las coordenadas X e Y de los puntos a clasificar. El número de neuronas de salida es de 4, por lo que la red establecerá cuatro categorías de puntos en función de su situación en el plano. Se va a trabajar con coordenadas con valores entre 0 y 1, y se no se va a establecer ninguna zona de vecindad alrededor de las neuronas de salida debido al mínimo número de éstas. En esta red existirán 2x4=8 conexiones entre capa de entrada y de salida con sus correspondientes pesos asociados. Para entender el significado espacial de los valores de los pesos, se agruparán éstos por parejas en vectores de pesos que en realidad representan los prototipos o representates de cada una de las cuatro clases de puntos establecidos por la red. Estos vectores son: W1=[w1x,w1y], W2=[w2x,w2y], W3=[w3x,w3y], W4=[w4x,w4y]. Inicialmente se asignan unos valores aleatorios, en la zona central del plano X-Y, para los pesos, por ejemplo: W1=[0.4,0.5], W2=[0.4,0.6], W3=[0.5,0.6], W4=[0.5,0.5]. Se utilizará un conjunto de patrones de entrenamiento formado por 20 puntos con las coordenadas X-Y siguientes: P1=[0.5, 0.1] P2=[0.7, 0.4] P3=[0.7, 0.9] P4=[0.8, 0.3] P5=[0.0, 0.7] P6= [0.3, 0.6] P7= [0.8, 1.0] P8= [0.3, 0.2] P9= [0.9, 0.7] P10= [0.7, 0.6] P11=[0.4, 0.7] P12=[0.1, 0.4] P13=[0.5, 0.4] P14=[0.9, 0.1] P15=[0.1, 0.2] P16=[0.3, 1.0] P17=[0.2, 0.8] P18=[0.7, 0.1] P19=[0.5, 0.9] P20=[0.3, 0.4] En la figura 7.7(a) se muestra la distribución de estos 20 puntos en el plano y la posición inicial (t=0) de los pesos W1..W4. Se aplica el algoritmo de aprendizaje para obtener los valores de los pesos según la expresión: Install Equation Editor and doubleclick here to view equation. Siendo j* la neurona vencedora al aplicar a la entrada el punto Pk=[px(k), py(k)]. Sólo hay que VII. El modelo de Kohonen. 7.1 ajustar el pesos de la vencedora, al haber fijado una zona de vecindad nula. Se ha tomado un coeficiente de aprendizaje α(t)=1/t. La evolución de los pesos durante la fase de aprendizaje de los 20 puntos es la que se muestra en la tabla 7.1. En la figura 7.7 se representa la situación en el plano de estos pesos en los instantes mas representativos del aprendizaje y la clase a la que la red estima que pertenece cada punto en cada iteración, es decir, la neurona de salida (1..4) que resulta vencedora al presentar el punto correspondiente. Wj t=0 t=1 t=2 t=5 t=10 ..... t=126 t=10.000 W1 [0.4,0.5] [0.5,0.9] [0.75,0.71] [0.77,0.73] [0.78,0.78] [0.78,0.80] [0.78,0.80] W2 [0.4,0.6] [0.3,0.4] [0.38,0.85] [0.32,0.82] [0.30,0.80] [0.28,0.78] [0.28,0.78] W3 [0.5,0.6] [0.7,0.1] [0.73,0.16] [0.71,0.21] [0.70,0.22] [0.68,0.23] [0.68,0.23] W4 [0.5,0.5] [0.1,0.2] [0.21,0.32] [0.20,0.31] [0.20,0.31] [0.20,0.30] [0.20,0.30] Tabla 7.1 Evolución de los pesos Wj=[wjx,wjy] durante el aprendizaje de los 20 puntos. Puede comprobarse que después de la iteración número 126, los valores de los pesos permanecen estables. Estos valores finales no representan sino los centroides o centros de gravedad (media aritmética de las coordenadas X e Y) de los puntos que la red ha considerado pertenecientes a cada una de las 4 clases que ha establecido. Además, puede demostrarse que las líneas que establecen las fronteras entre las regiones de decisión que contienen los puntos de la misma clase son perpendiculares a las líneas que unen los centroides Wj. Esta división del espacio en regiones con fronteras de este tipo es los que se suele denominar división de Voronoi (Voronoi tessellation) o de Dirichlet (Dirichlet tessellation). Después del aprendizaje se pasaría a la fase de funcionamiento de la red, durante la cual se pueden presentar nuevos puntos para que la red los relacione con alguna de las cuatro clases establecidas. Esto se hará en función de su distancia al representante o prototipo de cada clase, almacenado en el peso Wj correspondiente. Así, si por ejemplo se quieren clasificar los puntos: PA=[0.5,0.5] PB=[0.6,0.9] PC=[0.2,0.5] PD=[0.9,0.5] PE=[0.4,0.3] La red calcularía la distancia dj=(px-wjx)2+(py-wjy)2 a cada vector de peso Wj que es el representante de cada clase, deteminando la siguiente clasificación: PA: Clase 3 PB: Clase 1 PC: Clase 4 PD: Clase 1 PE: Clase 4 VII. El modelo de Kohonen. 7.1 Figura 7.7 Evolución de los pesos de la red durante el aprendizaje. Es habitual, en la bibliografía especializada, utilizar distribuciones espaciales de puntos según una determinada distribución aleatoria para observar la evolución de los valores de los pesos de la red ante distribuciones diferentes. Además, se suelen unir mediante líneas los puntos que representan los vectores de pesos de las neuronas de salida adyacentes, lo cual da una cierta idea del mapa topológico generado por la red. En las figuras 7.8 y 7.9 se muestran algunos ejemplos tomados de [Isasi 93], donde se utilizan 2000 puntos de entrada (P1,..,P2000). La red utilizada en ambos casos tiene 2 neuronas de entrada (X e Y) y 10x10=100 neuronas de salida. Según esto, la cantidad de pesos a determinar es de 2x100=200. En la figura 7.8 se muestra la evolución de los pesos después de la primera iteración y cuando se ha reptido el proceso 18, 24 y 88 veces. La forma de rejilla se debe a que se han dibujado las líneas entre los pesos de las neuronas de salida adyacentes, cada intersección de la rejilla representa un vector de pesos. Puede observarse que, a medida que avanza el proceso de VII. El modelo de Kohonen. 7.1 aprendizaje, los pesos se van adaptando a la distribución de los puntos de entrada a la red. Por ello, en este ejemplo, la rejilla final tiene un aspecto uniforme. Si hubiera el mismo número de patrones que de vectores de pesos, al final del aprendizaje éstos coincidirían. Al ser mayor el número de patrones, los pesos representan los prototipos de las clases creadas por la red, en este caso los centroides (centros de gravedad) de los grupos de patrones considerados por la red como pertencientes a la misma clase. (a) (b) (d) (c) Figura 7.8 Evolución de los pesos de una red cuando los patrones de entrada E1,..,E2000 siguen una distribución uniforme en el plano. (a) t=1 (b) t=18. (c) t=24. (d) t=88 [Isasi 93]. VII. El modelo de Kohonen. 7.1 En la figura 7.9 se representa la evolución de los pesos de la misma red, pero cuando se utiliza un juego de puntos de entrenamiento con una distribución toroidal en el plano. (a) (b) (c) (d) Figura 7.9 Evolución de los pesos de una red cuando los patrones de entrada E1,..,E2000 siguen una distribución toroidal en el plano. (a) t=1 (b) t=11. (c) t=20. (d) t=88 [Isasi 93]. VII. El modelo de Kohonen. 7.1 7.4.- APLICACIONES. El modelo de Kohonen es uno de los más útiles en computación neuronal, a pesar de sus limitaciones en cuanto a la duración del proceso de aprendizaje y a la imposibilidad de aprender nuevos datos sin tener que volver a repetir completamente el procesos de aprendizje con todos los patrones. Esta utilidad se debe a su capacidad para establecer clases o categorías de datos sin supervisión. Como aplicaciones destacan las relacionadas con el reconocimiento de patrones (voz, texto, imágenes, señales, etc.), codificación de datos, compresión de imágenes y resolución de problemas de optimización, como el del Viajante. También se ha utilizado este modelo en robótica, comprobándose su utilidad en el diseño de sistemas para controlar el movimiento de un brazo mecánico en un espacio tridimensional [Martínez 89]. En dichos sistemas, se utiliza una red de Kohonen para aprender las magnitudes tensoriales necesarias para moverse en un entorno real, considerando los efectos del desgaste que pueden alterar la dinámica del brazo con el transcurso del tiempo. En los siguientes apartados se describen algunas de estas aplicaciones, concluyendo con la presentación de un nuevo tipo de red neuronal denominada Counter-propagation, que puede considerarse también como una aplicación del modelo de Kohonen para combinar aprendizaje no supervisado y no supervisado en un misma red del tipo PERCEPTRON multicapa que pueda servir de alternativa al conocido algoritmo supervisado Back-propagation. 7.4.1.- Reconocimiento de voz. Una aplicación de este modelo es el conocido "Mecanógrafo fonético" (Phonetic typewriter). Se trata de un prototipo ideado por el propio Kohonen [Kohonen 88a] para convertir, en tiempo real, el habla en texto escrito a partir de un vocabulario limitado con una precisión del 92% y de forma independiente de la persona que hable y del ruido ambiente; con el inconveniente de requerir un proceso de aprendizaje relativamente largo. La red utilizada tiene 15 neuronas de entrada a través de las cuales recibe las componentes en frecuencia que caracterizan a los diferentes fonemas que componen las palabras, obtenidos mediante un micrófono y un pre-procesador analógico y digital. Se entrena la red para que ante fonemas parecidos active neuronas de salida próximas, creando finalmente lo que el autor denomina un mapa fonotópico. En la figura 7.10 se muestra un ejemplo de mapa para el idioma finés (el de Kohonen, su autor), donde se indican los fonemas ante los cuales han aprendido a responder cada una de las neuronas de salida. Después del aprendizaje, durante la fase de funcionamiento, cuando se pronuncia una palabra, ésta se divide en fonemas que se presentan secuencialmente a la red, la cual responde activando en orden las adecuadas neuronas de la capa de salida, recorriendo un camino en el mapa que se corresponde con la secuencia de entrada, dando lugar a una transcripción fonética de la palabra. VII. El modelo de Kohonen. 7.1 Figura 7.10 Ejemplo de mapa fonotópico [Kohonen 88a]. 7.4.2.- Reconocimiento de texto manuscrito. En [Morasso 88] se analiza una aplicación semejante a la anterior pero considerando mapas grafotópicos en lugar de fonotópicos, para convertir un texto manuscrito en texto estándar con caracteres codificados en ASCII. En este caso, la red utilizada recibe como entrada la representación paramétrica de un stroke o porción de trazo limitado entre dos puntos sucesivos de escritura manuscrita, algo semejante a los fonemas en el habla. Esta representación puede consistir en las coordenadas cartesianas de puntos equidistantes a lo largo del trazo de una palabra. La red de Kohonen se entrena con diferentes strokes generando un mapa grafotópico como el indicado en la figura 7.11, correspodiente al entrenamiento de una red con 15x15=225 neuronas de salida y 10 de entrada (10 valores por stroke), utilizando un conjunto de patrones de aprendizaje de 200 palabras. En la figura se muestran los diferentes strokes asociados a las 225 neuronas de salida. El círculo pequeño en el interior de una neurona indica el punto inicial de el stroke y la cruz identifica los ejes cartesianos. VII. El modelo de Kohonen. 7.1 Figura 7.11 Ejemplo de mapa grafotópico [Morasso 88]. Después del aprendizaje, durante la fase de funcionamiento, cuando se analiza una palabra manuscrita, ésta se divide previamente en strokes que se presentan secuencialmente a la red, la cual responde activando en orden las adecuadas neuronas de la capa de salida, recorriendo un camino en el mapa que se correponde con la secuencia de entrada, dando lugar a una transcripción grafológica de la palabra. También existe la posibilidad de adaptar el sistema al idioma concreto con el que se trabaje. Para ello se puede añadir una segunda red a la salida de la anterior que detecte largas secuencias de strokes de una longitud dada, de esta forma se pueden detectar caracteres completos e incluso palabras frecuentes del lenguaje, como artículos o terminaciones de palabras ("..mente", "..ísimo", etc.). 7.4.3.- Codificación de datos. El modelo de Kohonen se ha utilizado en aplicaciones relacionadas con la codificiación de la información como mecanismo para diseñar códigos que compriman o reduzcan el tamaño de los datos (Data Quantization) a almacener o a transmitir por un sistema de comunicación. En este sentido cabe destacar su utilidad en la compresión de imágenes en color. En [Kennedy 9?] se analiza una utiliza en la conversión de imágenes originales con pixels de 224=16.777.216 posibles colores diferentes (el color de un pixel se codifica con 24 bits) a imágenes para monitores VGA con pixels de 28=256 colores posibles (8 bits por pixel). En esta aplicación se utiliza la red de Kohonen para stablecer los 256 colores más frecuentes presentes en las imágenes originales. Para ello, previamente se divide cada imagen en otras tres de tipo monocolor que representen las versiones en rojo, verde y azul que combinadas dan lugar a la imagen original. Cada pixel de estas versiones se codifica con 24/3=8 bits, lo que existen 256 posibles grados de intensidad de rojo, verde y azul. VII. El modelo de Kohonen. 7.1 Se utiliza una red con 3 neuronas de entrada que reciben los valores correspondientes al grado de intesidad de cada color básico (rojo, verde, azul) de cada uno de los pixels de la imagen. En la capa de salida se disponen 256 neuronas en representación de los 256 colores más frecuentes que debe averiguar la red. Después del entrenamiento, en los pesos de las tres conexiones de cada neurona de salida con las tres de entrada se ha obtenido la combinación de rojo, verde y azul para cada uno de los 256 colores más frecuentes. En realidad, puede decirse que se ha obtenido un mapa comatotópico de la imagen "aprendida" por la red. Los autores utilizan en el entrenamiento una imágen como la de la parte superior izquierda de la figura 7.12. En esta figura también se muestran las versiones monocolor en rojo (parte superior derecha), verde (parte inferior izquierda) y azul (parte inferior derecha). Utilizando esta imagen se obtiene un mapa cromatotópico como el indicado en la figura 7.13, donde se representan, para cada neurona de la capa de salida, la combinación (conjunto de 3 círculos) de tonos rojo, verde y azúl registrada en los pesos de las tres conexiones de dicha neurona con las tres de entrada, que da lugar a cada uno de los 256 colores. En definitiva, lo que se hace es utilizar una red de Kohonen para averiguar, al reducir una imagen a 256 colores, qué pixels de la imagen original deberían representarse con el mismo color, lo cual no es sino una nueva forma de codificar la información utilizando un menor número de bits por pixel (8 en lugar de 24 en este ejemplo), y para conocer la combinación de rojo, verde y azul para ese color. Figura 7.12 Imagen original (sup. izda) y sus versiones monocolor en rojo (sup. dcha), verde (inf. izda) y azul (inf. dcha) [Kennedy 9 ]. VII. El modelo de Kohonen. Figura 7.13 Mapa cromatotópico de imágen de la figura 7.12. 7.1 VII. El modelo de Kohonen. 7.1 7.4.4.- Resolución de problemas de optimización. El modelo de Kohonen se ha utilizado también para intentar resolver el problema de optimización conocido como problema del viajante o del vendedor viajero, ya presentado en el capítulo 5, estableciendo el camino más corto entre una serie de ciudades sin pasar dos veces por la misma [Angeniol 88]. La red que puede solucionar este problema tiene tantas neuronas de salida como ciudades del recorrido y dos neuronas de entrada para las coordenadas en el plano (x,y) de cada ciudad (Fig. 7.14). La ditribución de las neuronas de salida es circular, estableciendo para cada neurona (j) una zona de vencindad que incluye las neuronas anterior (j-1) y posterior Figura 7.14 Red de Kohonen para resolver el problema del viajante. (j+1). El proceso a seguir para resolver el problema consiste en entrenar la red para que "aprenda" la situación geográfica de las N ciudades del recorrido, adaptando los pesos mediante el algoritmo de Kohonen (apartado 7.4). Cuando el entrenamiento ha concluido, al existir tantas neuronas de salida como ciudades, deberán coincidir los vectores de pesos de la red Wj=[wjx,wjy] con las coordenadas de las N ciudades (C1=[cx(1),cy(1)],..,CN=[cx(N),cy(N)]). Entonces el problema ha sido resuelto, siendo la solución el recorrido resultante de unir los puntos (ciudades) correspondientes a los pesos de las neuronas adyacentes de la capa de salida. La solución que se obtiene es buena, aunque no puede garantizarse que sea la óptima, ya que el criterio seguido por la red, al fijar la zona de vecindad indicada, ha sido el buscar siempre como siguiente ciudad la mas próxima. Este mecanismo puede entenderse mejor a través de un ejemplo semejante al mostrado en el capítulo 5 (Hopfield), con 5 ciudades distribuidas de forma similar (Fig. 7.15). En este caso, en lugar de distancias, se trabajará con las coordenadas de las ciudades en el plano X-Y, cuyos valores son: C1=[1,9] C2=[6,5] C3=[9,7] C4=[2,1] C5=[7,2] VII. El modelo de Kohonen. 7.1 Figura 7.15 Situación de las 5 ciudades del ejemplo. A partir de las coordenadas, es directo el cálculo de las distancias entre las ciudades. Suponiendo que se está tabajando con valores expresados en kilómetros, las distancias serían las las indicadas en la tabla 7.2. C1 C2 C3 C4 C5 C1 0.00 6.40 8.25 8.06 9.22 C2 6.40 0.00 3.60 5.66 3.16 C3 8.25 3.60 0.00 9.22 5.38 C4 8.06 5.66 9.22 0.00 5.10 C5 9.22 3.16 5.38 5.10 0.00 Tabla 7.2 Distancia (en kms) entre las 5 ciudades del ejemplo. Puede comprobarse que el recorrido más corto, como en el ejemplo del capítulo 5, corresponde con la secuencia C1-C3-C2-C5-C4-C1, con un distancia de valor: Distancia mínima= d13+d32+d25+d54+d41 = 8.25+3.60+3.16+5.10+8.06 = 28.17 kms Se puede utilizar una red de Kohonen para obtener una solución del problema. En este caso se trataría de una red con 2 neuronas de entrada para las coordenas X e Y de cada ciudad y 5 neuronas de salida para disponer de 5 vectores (W1,..,W5) de pesos Wj=[wjx,wjy], uno por ciudad, ya que cuando la red "aprenda" las posiciones de las ciudades, el valor de los pesos coincidirá con dichas posiciones, siendo el orden del recorrido el de los pesos: primero se pasará por la ciudad almacenada en W1, después por la que indique W2 y VII. El modelo de Kohonen. 7.1 finalmente por la de W5. Por tanto, la solución del problema consiste en averiguar el reparto de ciudades por pesos para conocer la secuencia del recorrido. El algoritmo de aprendizaje es el ya conocido: Install Equation Editor and doubleclick here to view equation. Siendo j* la neurona vencedora al aplicar a la entrada las coordenadas de la ciudad k: cy(k)]. En este caso, la zona de vecindad alrededor de la neurona vencedora j* contiene únicamente a las neuronas anterior y posterior a aquella; por tanto, se realiza el ajuste de los pesos Wj*-1, Wj*, y Wj*+1. En este ejemplo se ha tomado un coeficiente de aprendizaje proporcional a 1/t (α(t)=0.5/t). Ck=[cx(k), Inicialmente (t=0) se deben establecer unos valores aleatorios para los pesos. En nuesto caso, los valores elegidos son puntos de una hipotética circunferencia de radio 2km (Fig. 7.16). Estos valores aleatorios influirán en la solución final del problema. Ya se ha comentado que este método ofrece una solución buena, buscando siempre la siguiente ciudad más cercana a la anterior, pero no siempre óptima. En este ejemplo, con los valores iniciales asignados a los pesos se llega precisamente a la solución óptima. Aplicando el algoritmo anterior se obtiene la adaptación de pesos indicada en la tabla 7.3. Wj t=0 t=1 t=2 t=5 t=260 t=2000 W1 [3.5,6.32] [2.25,7.66] [1.94,7.99] [1.62,8.34] [1.09,8.91] [1.03,8.97] W2 [6.0,6.73] [7.50,6.86] [7.88,6.90] [8.26,6.93] [8.90,6.99] [8.96,7.00] W3 [7.0,5.00] [6.50,5.00] [6.38,5.00] [6.25,5.00] [6.03,5.00] [6.01,5.00] W4 [6.0,3.27] [6.50,2.63] [6.62,2.48] [6.75,2.31] [6.97,2.04] [6.99,2.02] W5 [3.5,3.68] [2.75,2.34] [2.56,2.01] [2.37,1.66] [2.05,1.09] [2.02,1.03] Tabla 7.3 Evolución de los pesos Wj=[wjx,wjy] durante el aprendizaje de las posiciones de las 5 ciudades. VII. El modelo de Kohonen. 7.1 Después de las primeras iteraciones ya puede observarse hacia que ciudad tiende cada vector de pesos (Fig.7.16). Cuando se repite el proceso algunos cientos de veces, se llega a unos valores que prácticamente coinciden con las posiciones de las ciudades. En este ejemplo, después de 200 iteraciones coinciden los valores de las posiciones con una diferencia menor de una décima de kilómetro. Figura 7.16 Adaptación de los pesos de una red de Kohonen que soluciona el problema del viajante con 5 ciudades. Aunque no ocurre en este caso, cuando se resuelve el problema del viajante con una red de Kohonen puede suceder que más de una neurona pueda ser atraida por la misma ciudad, lo que originaría que algunas ciudades quedasen aisladas sin aparecer en el recorrido final. Esta situación puede evitarse utilizando un mayor número de neuronas que de ciudades. VII. El modelo de Kohonen. 7.1 7.4.5.- Combinación con un PERCEPTRON: Red Counter-propagation. En algunos problemas puede ser útil combinar aprendizaje supervisado y no supervisado en la misma red. Por ejemplo en el caso de una red de tres capas, utilizando un aprendizaje no supervisado para la obtención de los pesos de las conexiones entre las neuronas de la capa de entrada y de la oculta, y aprendizaje supervisado para los de las conexiones entre esta capa y la de salida. El efecto global es el de una red con aprendizaje supervisado, ya que previamente se debe conocer la salida que se desea para cada información de entrada, pues ésta será necesaria en el entrenamiento de la parte supervisada de la red. Sin embargo, si se utiliza una combinación de los dos tipos de aprendizaje, puede conseguirse reducir el tiempo total de aprendizaje, especialmente en redes con más de una capa oculta. La única limitación va a consistir en la necesidad de que, cuando se entrena la red para que "aprenda" a relacionar cada información de entrada con una información de salida, el conjunto de vectores de entrenamiento debe cumplir la condición de que parecidos vectores de entrada deben producir parecidas informaciones de salida. Si esto no se cumple, será necesario aumentar el número de neuronas de la capa oculta para obtener unos resultados aceptables. Un ejemplo de red neuronal que responde a este funcionamiento, que utiliza el modelo de Kohonen para acelerar el proceso de aprendizaje, es la denominada Counterpropagatioj [Hecht-Nielsen 87], también denominada Clasificador jerárquico de mapas de características. La arquitectura de esta red es la indicada en la figura 7.17. Está constituida por una red de Kohonen (capas de entrada y oculta), a la salida de la cual se añade una nueva capa de neuronas sin conexiones laterales. En definitiva, lo que se está haciendo es diseñar una red compuesta de dos subredes, una de Kohonen, constituida por las capas de entrada y oculta, y otra Perceptron, formada por la capa oculta y la de salida. Por tanto, para la primera se utiliza aprendizaje no supervisado (competitivo) y para la segunda supervisado (la regla delta descrita en el capítulo 4). El aprendizaje de la red Counter-propagation es OFFLINE y las informaciones utilizadas son valores numéricos reales. VII. El modelo de Kohonen. 7.1 Figura 7.17 Arquitectura de la red Counter-propagation [Simpson 90]. La determinación de los valores de los pesos (wji) de las conexiones entre las neuronas de la capa de entrada (i) y las de la capa oculta (j) es igual que en el caso del modelo de Kohonen, es decir se aplican una a una las informaciones (E1, E2,..) que debe "aprender" la red, Ek=[e1(k),..,eN(k)], y se produce la competición, obteniendo una neurona vencedora en la capa oculta (j*), ajustándose entonces los pesos de las conexiones entre las neuronas de entrada y la neurona vencedora (sólo la vencedora porque aquí no se utiliza zona de vecindad) según la conocida expresión: Install Equation Editor and doubleclick here to view equation. Se vuelve a repetir el proceso presentando todo el conjunto de patrones de aprendizaje hasta que se obtengan unos valores de pesos wji estables. En ese momento, lo que almacenan estos pesos son los prototipos (centros de gravedad si los datos de entrada fuesen puntos en el plano) de cada una de las P (siendo P el número de neuronas de la capa oculta) categorías o clases que ha establecido, sin supervisión, el modelo de Kohonen (en el caso de puntos del plano, serían las regiones de Voronoi ya comentadas en el apartado 7.4). A continuación, se procede a calcular los pesos de las conexiones entre las P neuronas de la capa oculta y las M de la capa de salida. En este caso, el mecanismo de aprendizaje es supervisado. Se trata de la conocida regla de corrección de error utilizada por el Perceptron: VII. El modelo de Kohonen. 7.1 Install Equation Editor and doubleclick here to view equation. Siendo α la tasa de aprendizaje, dh(k) el valor deseado para el componente h-ésimo de la información de salida ante el vector de entrada Ek, sh(k)(t) la salida obtenida en el instante t, oj la salida de la neurona j de la capa oculta. Como al presentar a la entrada de la red el vector Ek sólo se activará una neurona de la capa oculta, la vencedora j*, y además, suponiendo que la función de activación de las neuronas de salida es lineal, la expresión anterior quedaría como: Install Equation Editor and doubleclick here to view equation. Puede demostrarse [Caudill 89] que si el número de neuronas de la capa oculta (P) es igual o mayor que el número de informaciones que debe "aprender" la red, el valor de vhj que se obtiene al iterar según la expresión anterior coincide precisamente con el valor deseado dh(k) si j es la vencedora en la capa oculta al presentar a la entrada de la red el vector Ek: Install Equation Editor and doubleclick here to view equation. Si el número de neuronas ocultas es menor, no podrá asocirase una neurona oculta con cada información "aprendida". Entonces, el valor final de los pesos [v1j, v2j, vMj] de las conexiones de una neurona oculta j con las de la capa de salida será un promedio (media aritmética) de los valores de salida deseados para aquellas entradas que consiguen activar como vencedora la misma neurona oculta j. VII. El modelo de Kohonen. 7.1 Figura 7.18 Ejemplo de Red Counter-propagation con arquitectura 2-3-4 (2 neuronas de entrada, 3 ocultas y 4 de salida). En definitiva, el Perceptron que constituye la subred de salida de Counter-propagation sirve para almacenar los P vectores que se asocian a cada una de las P categorías establecidas por la subred de Kohonen de la entrada, cuyos prototipos o representantes se almacenan, a su vez, en los pesos wij. En realidad, la red global puede imaginarse como una clásica Tabla de Búsqueda, de las utilizadas con frecuencia en Informática para facilitar el acceso a la información almacenada en la memoria de un computador, compuesta por registros con dos campos, un campo clave que coincidiría con los vectores de pesos de entrada W y otro campo valor con los vectores de pesos de salida V. Por ejemplo, en el caso de una red (Fig. 7.18) con 2 neuronas de entrada (N=2), 3 ocultas (P=3) y 4 de salida (M=4), que se entrena con 3 informaciones de entrada E1=[e1(1),e2(1)], E2=[e1(2),e2(2)], E3=[e1(3),e2(3)], y con unas salidas deseadas para cada uno de esas entradas: D1=[d1(1),d2(1)], D2=[d1(2),d2(2)], D3=[d1(3),d2(3)], después de la fase de aprendizaje, la red haría las veces de una tabla que se puede utilizar para que, durante la fase de funcionamiento, ante una entrada nueva, busque en su interior el valor (salida) del registro de la tabla cuya clave es la más parecida a dicha entrada. Esa tabla tendría el siguiente aspecto: TABLA DE BUSQUEDA CLAVE Wj = [w1j, w2j] VALOR Vj = [vj1, vj2, vj3, vj4] W1 = E1 = [e1(1), e2(1)] V1 = D1 = [d1(1), d2(1), d3(1), d4(1)] W2 = E2 = [e1(2), e2(2)] V1 = D2 = [d1(2), d2(2), d3(2), d4(2)] VII. El modelo de Kohonen. W3 = E3 = [e1(3), e2(3)] 7.1 V1 = D3 = [d1(3), d2(3), d3(3), d4(3)] Tabla 7.4 Tabla de búsqueda eqivalente a una red Counter-propagation con arquitectura 2-3-4, entrenada para realizar las asociaciones (E1,D1), (E2,D2), (E3,D3). En este caso, el funcionamiento de la red Counter-propagation sería equivalente al de una tabla de búsqueda convencional. Sin embargo, la diferencia y utilidad de la red aparecen cuando el número de vectores de entrenamiento (E1, E2,..) y, por tanto, el número de asociaciones entre vectores de entrada y salida (E1,D1), (E2,D2), ... es mayor que el número de registros de la tabla, en el caso de la red, mayor que el número de neuronas de la capa oculta (P). En tal situación, lo que hace la red es, mediante la subred de Kohonen, establecer tantas categorías como número de neuronas ocultas (registros de la tabla) y crear otros tantos prototipos como representantes (claves de la tabla) de dichas categorías; éstos se calculan como la media aritmética de los vectores de entrada que la red ha decidido, midiendo la distancia (p. ej. euclídea) entre ellos, que son de la misma clase. Con los vectores deseados de salida (D1, D2,..) se hace lo mismo, se realiza un promedio de los vectores asociados a entradas (E1, E2, ..) consideradas de la misma clase. Así, si por ejemplo, los vectores de entrada y salida deseados fuesen: E1=[1,1] E2=[9,1] E3=[5,9] E4=[4,8] E5=[1,3] E6=[6,7] D1=[0,0,0,1] D2=[0,0,1,0] D3=[0,0,1,1] D4=[0,1,0,0] D5=[0,1,0,1] D6=[0,1,1,0] La subred de Kohonen de la entrada establecería, después de calcular las distancias entre ellos, que E1 y E5 son de la misma clase, E2 de otra, y E3, E4 y E6 de otra. Por tanto, los prototipos o pesos Wj, se calculan como las medias aritméticas: W1 = [(1+1)/2, (1+3)/2] = [1, 2] W2 = [9, 1] W3 = [(5+4+6)/3, (9+8+7)/3] = [5, 8] VII. El modelo de Kohonen. 7.1 Si se representan los pesos como puntos del plano X-Y, estos valores coincidirán con los centroides o centros de gravedad de los grupos de puntos Ek considerados de la misma clase (Fig. 7.19). Figura 7.19 Representación de las informaciones de entrada (E1...E6) y de los pesos (W1...W3) de las conexiones entre las 2 neuronas de entrada y las 3 ocultas. Los promedios de las salidas deseadas se almacenarían en los pesos del Perceptrón de salida: V1 = [(0+0)/2, (0+1)/2, (0+0)/2, (1+1)/2] = [0, 0.5, 0, 1] V2 = [0, 0, 1, 0] V3 = [(0+0+0)/3, (0+1+1)/3, (1+0+1)/3, (1+0+0)/3] = [0, 0.7, 0.7, 0.3] Con lo que la tabla de búsqueda que representa lo que almacena la red sería: TABLA DE BUSQUEDA CLAVE (W) VALOR (V) W1 = [1, 2] V1 = [0, 0.5, 0, 1] W2 = [9, 1] V2 = [0, 0, 1, 0] W3 = [5, 8] V3 = [0, 0.7, 0.7, 0.3] Tabla 7.5 Tabla de búsqueda del ejemplo. En definitiva, el modelo Counter-propagation puede considerarse como una red neuronal que permite acelerar del orden de 10 a 100 veces el proceso de aprendizaje respecto al algoritmo Back-propagation en redes feed-foward multicapa. Sin embargo, no se trata de un VII. El modelo de Kohonen. 7.1 algorítmo óptimo como en el caso de Back-propagation y, por tanto, sólo se deberá utilizar cuando se trabaje con pocos patrones de entrenamiento, menor o igual número que el de neuronas ocultas o con un número mayor si los más parecidos generan salidas también parecidas. Las aplicaciones mas comunes de esta red se refieren al procesado de imágenes [Glover 88], clasificación de patrones, reconocimiento de voz, codificación y compresión de datos y aproximación de funciones matemáticas y análisis estadístico [Hecht-Nielsen 88] [Lippman 89]. VIII. Redes estocásticas. 8.1 VIII REDES ESTOCÁSTICAS. Una alternativa a los modelos neuronales descritos en los capítulos anteriores son las redes estocásticas, con neuronas que tienen función de activación no determinista, cuya salida se obtiene de forma probabilística y con mecanismos de aprendizaje también estocásticos, basados en la idea de seleccionar de forma aleatoria valores para los pesos de las conexiones y comprobar su efecto en la salida de la red. Como ocurre con las redes con aprendizaje supervisado, como Back-Propagation, y en redes con aprendizaje no supervisado de tipo Hebbiano, como el modelo de Hopfield, las estocásticas también pretenden conseguir alcanzar el mínimo de la correspondiente función de error o de energía asociada. Aunque, en este caso, para conseguir evitar los mínimos locales, se recurre a un símil termodinámico de la mecánica estadística considerando la red como si de un cuerpo o material real se tratara, compuesto por un elevado número de partículas elementales (átomos, moléculas, etc.) con estado energético individual estocástico; de tal forma que la adopción de un estado de alta o de baja energía por parte de cada partícula dependerá de cierta distribución de probabilidad. La energía libre global del material es una combinación de estas energías individuales, de la entropía (grado de desorden entre las partículas) y de la temperatura del material; el cual siempre permanece en equilibrio, a pesar de la actividad individual de sus partículas, buscando un estado de mínima energía. En el caso de las redes neuronales, las neuronas podrían asociarse a las partículas individuales con un comportamiento individual estocástico (inestable), y la energía global del material tendría relación directa con la función de energía de la red, en el caso de redes con aprendizaje Hebbiano, o con la función de error, para buscar la situación mas estable, de mínima energía, ante diferentes valores de entrada a la red. Para ello se utiliza, tanto durante la fase de aprendizaje como durante la de funcionamiento, una técnica conocida como enfriamiento o temple simulado (simulated annealing) de la red que, partiendo de un estado inicial de alta temperatura y gran desorden interno, simule un "enfriamiento" progresivo de la misma que ayude a encontrar un estado estable en el mínimo global de la función de Energía. La red más conocida que responde a este funcionamiento estocástico es la denominada máquina de Boltzmann, ideada por Hinton, Ackley y Sejnowski [Hinton 84], que es capaz de realizar tareas de auto y heteroasociación de patrones utilizando, en unos casos, una combinación del aprendizaje Hebbiano y el temple simulado y, en otros, su combinación con un aprendizaje de tipo supervisado. 8.1.- MÁQUINA DE BOLTZMANN. VIII. Redes estocásticas. 8.1 Las máquinas de Boltzmann son redes neuronales estocásticas con un aprendizaje y funcionamiento basado en la técnica del temple simulado (simulated annealing). Existen varias arquitecturas propuestas por diferentes autores con la característica común del mecanismo de aprendizaje estocástico utilizado. Así, como se muestra en la figura 8.1, se puede tener una máquina de Boltzman con arquitectura similar a la del modelo de Hopfield, conocida como Boltzmann Completion Network (Fig. 8.1(a)), en la que, a diferencia de lo que ocurría en el modelo de Hopfield, se distinguen entre neuronas visibles y ocultas, éstas últimas con salida no accesible desde el exterior [Hinton 84]. Las conexiones entre neuronas en esta red se establecen en ambos sentidos, siendo sus pesos simétricos, cumpliéndose que wij=wji. Figura 8.1 Arquitecturas alternativas para la Máquina de Boltzmann. Otra arquitectura (Fig. 8.1(b)), denominada Boltzmann Input-Output Network [Freeman 91], considera las neuronas visibles estructuradas en dos capas, una de entrada y otra de salida, con las neuronas ocultas en una capa intermedia; existiendo conexiones hacia delante (feed-oward) entre la capa de entrada y la oculta, y entre la de entrada y la de salida; conexiones laterales entre las neuronas ocultas y las de salida; y conexiones en los dos sentidos (feedfoward-feedback) entre la oculta y la de salida. VIII. Redes estocásticas. 8.1 Otros autores [Simpson 90][Maren 90] utilizan una arquitectura sólo con conexiones hacia delante (Boltzmann Feedfoward Network) (Fig. 8.1(c)), similar a un Perceptrón de tres capas. Estas son algunas de las más comunes, pero también existe la posibilidad de utilizar cualquier otra estructura obtenida a partir de las anteriores; por ejemplo. en la arquitectura (b) de la figura 8.1 se podrían anular las conexiones directas entre la capa de entrada y de salida. Excepto en el caso particular de la versión con arquitectura Feedfoward (Fig. 8.1(c)), cuyo funcionamiento es determinista e idéntico al de un Perceptrón multicapa, la Máquina de Boltzmann es una red con funcionamiento y aprendizaje estocásticos. Sus neuronas son binarias con dos valores de salida posibles (0 ó 1). A diferencia de las utilizadas en las redes tratadas en capítulos anteriores, que tenían una función de activación determinista, en éstas la salida es función estocástica de su entrada neta. Es decir, a partir de la entrada neta, sólo se puede estimar la probabilidad de activación de la salida (probabilidad de que valga "1" o de que sea "0"), por ejemplo, según las siguientes expresiones: Install Equation Editor and doubleclick here to view equation. Donde β es un factor de ganancia que establece la forma de la pendiente de la función de probabilidad. En termodinámica se utilizan funciones como las anteriores para determinar la probabilidad de que una partícula elemental de un material tenga un estado de alta energía (1) o de baja energía (0), siendo β=1/(kT), donde k es la constante de Boltzmann (con valor 1.380621023 Jul/K, aunque se puede suprimir si se hace un adecuado cambio de unidades) y T la temperatura a la que se mantiene el material (en grados Kelvin). Las anteriores expresiones no son sino consecuencia de la distribución originariamente propuesta por el físico austriaco L. Bolztmann (de ahí el nombre de la red), enunciada como P(E)=Ae-E/kT, que permite estimar la probabilidad de que un material mantenido a una temperatura T esté en un estado de energía E (en julios). Si se normaliza la temperatura, se puede suprimir la constante de Boltzmann, con lo que β=1/T y la expresión final de la probabilidad de activación de una neurona tendría la forma que se indica en la figura 8.2, representándola para diferentes valores de T. Install Equation Editor and doubleclick here to view equation. 2 Figura 8.2 Probabilidad de activación de una neurona i, con entrada neti y temperatura T. Al tener un comportamiento estocástico según la distribución de probabilidad anterior, la salida generada por una neurona ante un mismo valor de entrada no es siempre igual. Entonces, cuando se trabaja con este tipo de VIII. Redes estocásticas. 8.1 redes, existe el problema de determinar exactamente el valor de salida en cada momento. Esto puede solucionarse aplicando una técnica de simulación consistente en generar un número aleatorio en el rango [0,1] con una distribución de probabilidad uniforme en dicho intervalo y considerar que la neurona está activada (salida con valor 1) si la probabilidad, para los valores de temperatura y entrada neta en ese instante, es mayor o igual que dicho número aleatorio. En caso contrario la neurona permanecería inactiva (salida "0"). Install Equation Editor and doubleclick here to view equation. Suponiendo calculados los pesos de las conexiones entre neuronas, cuyo método se describe con detalle en el siguiente apartado, se podrían utilizar la máquina de Boltzmann como memoria asociativa (auto o hetereoasociativa) para, dado un patrón de entrada, generar el patrón correspondiente de salida que será, de los almacenados en la red, el más parecido al de entrada, en el caso de funcionar como autoasociativa (Fig. 8.1(a)); o para determinar la salida más parecida a la deseada para el patrón de entrada, en el caso de funcionar como heteroasociativa (Fig. 8.1(b)). En cualquier caso, de lo que se trata con la red es de obtener una salida con un error mínimo. Si se hace, como ocurría con la red Hopfield, una equivalencia entre la función de error y una función de Energía de la red (mediante un operador de Lapunov), habrá que de conseguir que la red se estabilice en un mínimo de dicha función,es decir, en un estado de mínima energía. Para facilitar el acceso a este mínimo global, se utiliza el símil termodinámico ya comentado al principio de este capítulo, considerando la red como un material compuesto de gran cantidad de partículas (neuronas) en un estado de alta (salida neurona=1) o baja energía (salida neurona =0), que inicialmente tiene una temperatura elevada y, por tanto, un gran desorden interno, o entropía (que se pone de manifiesto por el hecho de que los estados de activación (0/1) son equiprobables e independientes de la entrada neta de la neurona (Fig. 8.2 cuando T tiende a )); y que se va enfriando progresivamente (temple simulado) hasta alcanzar una situación estable de mínima energía con una baja temperatura. La razón de esta disminución de la temperatura es debido a su influencia en la forma de la función de energía de la red. En la figura 8.3 se representa esta influencia. Puede observarse que cuando la temperatura es alta, la función que relaciona la energía con los diferentes posibles estados de la red (posibles combinaciones de valores de salida de las neuronas, dada por la expresión 2N si la red tiene N neuronas que pueden adoptar dos posibles estados "0" ó "1") tiene una forma suave, sin mínimos ni máximos pronunciados (en el límite, cuando la temperatura es infinita, la función en totalmente horizontal); a medida que disminuye la temperatura, la función se hace más abrupta, VIII. Redes estocásticas. 8.1 Figura 8.3 Efecto de la temperatura en la forma de la función de energía de la red. De esta forma, y a diferencia del modelo de Hopfield en el cual la red, en un estado determinado, tendía a situarse en el mínimo local de la función de energía más próximo; en este caso, lo que se pretende es evitar estos mínimos. Para ello se comienza con una temperatura alta, con lo que la función energía es muy suave, lo que permite escapar del mínimo local más próximo al estado inicial (en la figura 8.3 el círculo representa la evolución del estado de la red durante su funcionamiento). A medida que disminuye la temperatura, según un determinado plan de templado o enfriamiento de la red, es más difícil escapar del mínimo en el que se encuentre la red, existiendo una gran probabilidad de que finalmente quede atrapada en el mínimo global. La elección de un plan de templado o enfriamiento de la red es muy importante para garantizar el éxito del proceso anterior y alcanzar, finalmente, el mínimo global de energía. Para reducir el tiempo de funcionamiento de la red, podría considerarse la posibilidad de realizar un rápido enfriamiento, sin embargo, en este caso, existiría el peligro de "congelar" la red en un mínimo local. Una posible forma de la función de templado es la que se muestra en la figura 8.4(a), donde se establece, ad hoc, un intervalo de tiempo para cada valor de temperatura considerado. Normalmente, la máquina de Boltzman utiliza una disminución logarítmica de la temperatura (Fig. 8.4(b)). Como alternativa, y para alcanzar el mínimo global más rapidamente, otros autores [Szu 86] han propuesto disminuir de forma inversa al aumento de temperatura (Fig. 8.4(c)). Install Equation Editor and doubleclick here to view equation. 4 Install Equation Editor and doubleclick here to view equation. 6 Install Equation Editor and doubleclick here to view equation. 5 Una vez establecido el funcionamiento de las neuronas estocásticas y el plan de templado, se Figura 8.4 Diferentes formas de la función de templado o enfriamiento de la red. VIII. Redes estocásticas. 8.1 puede describir el funcionamiento de una máquina de Boltzmann como la siguiente secuencia de pasos: 1) Se ajusta el valor de la temperatura. Para ello se aplica alguna de las funciones de templado indicadas. Inicialmente t=0, con lo que la temperatura inicial es T0. 2) Se inicializan las salidas de todas las neuronas de la red. Las neuronas ocultas con valores aleatorios pertenecientes al conjunto {0,1} y el resto de neuronas según el siguiente criterio: a) Si es una red de una sola capa (Fig. 8.1(a)), las neuronas visibles se inicializan con los valores de los componentes del vector de entrada a la red. b) Si es de entrada-salida (Fig. 8.1(b)), al utilizarse como memoria heteroasociativa, la salida se desconoce inicialmente, con lo que se inicializan las neuronas de esta capa con valores aleatorios {0,1} y las de la capa de entrada con los valores del vector de entrada a la red. 3) Se selecciona aleatoriamente una neurona y se determina su salida. Para esta selección se descartan, en el caso de existir, las neuronas de la capa de entrada. La salida de la neurona se establece mediante el proceso de simulación descrito anteriormente, generando un valor aleatorio x con probabilidad uniforme y comparándolo con la probabilidad (distribución de Boltzmann) de que la salida de la neurona sea activa ("1"). Si la probabilidad es mayor, la salida será "1" y en caso contrario "0". 4) Se repite el paso 3 tantas veces como neuronas tenga la red. Descartando las de la capa de entrada cuya única misión es la de mantener estables (bloqueados) los valores del vector de entrada. Hay que destacar en este punto que, debido al carácter aleatorio de la elección de neuronas, no puede asegurarse que todas sean seleccionadas, ya que una puede serlo varias veces. 6) Se incrementa el tiempo y se repite todo el proceso. El tiempo se refiere a las iteraciones del proceso, inicialmente t=0 y cada vez que se repite se incrementa en una unidad: t=t+1. VIII. Redes estocásticas. 8.1 8.2.- MÁQUINA DE CAUCHY. La Máquina de Cauchy [Szu 86] es una versión mejorada de la Máquina de Boltzann, con una arquitectura y funcionamiento idénticos, excepto en lo que concierne a la función de probabilidad y a la función de temperatura que establece el plan de templado o enfriamiento de la red. Como su nombre indica, la probabilidad de activación de las neuronas tiene, en este caso, la forma de la distribución de Cauchy. Install Equation Editor and doubleclick here to view equation. 7 Figura 8.5 Probabilidad de activación de una neurona i, con entrada neti y temperatura T. En cuanto al templado de la red, la función propuesta por los autores de esta red es: Install Equation Editor and doubleclick here to view equation. 8 Figura 8.6 Función de temperatura utilizada por la Máquina de Cauchy. Con estas modificaciones respecto al modelo original de la Máquina de Boltzmann se consigue, en el caso de la distribución de probabilidad, que las neuronas se activen (salida "1") con mayor frecuencia y, en el caso de la temperatura, un templado más rápido (denominado Fast Simulated Anneaning). Además, sus autores han demostrado [Szu 86] que combinando estas dos funciones de probabilidad y temperatura se alcanza siempre el mínimo global de energía. 8.3.- APRENDIZAJE ESTOCÁSTICO. Como se indicó en el capítulo 3, el aprendizaje estocástico básicamente consiste en realizar VIII. Redes estocásticas. 8.1 cambios aleatorios de los valores de los pesos de las conexiones entre neuronas y comprobar su efecto sobre la energía (función de error) de la red, aceptando siempre los cambios que supongan su disminución y, en ocasiones, en función de una predeterminada distribución de probabilidad, aquellos que la aumenten. De esta forma se permite que la red pueda escapar de los mínimos locales de la función de energía para conseguir situarla en el mínimo global. Para conseguir unos valores estables de los pesos, a medida que avanza el proceso de aprendizaje, decrece lentamente la probabilidad de aceptación de sus variaciones. Esto puede realizarse mediante el símil termodinámico descrito en el apartado anterior denominado temple o enfriamiento simulado. Las redes que utilizan este tipo de aprendizaje son la Máquinas de Boltzmann y de Cauchy. En ambos sistemas normalmente se aplica una versión estocástica del aprendizaje Hebbiano, aunque también puede utilizarse, en el caso de la red feedfoward una versión estocástica de la regla de aprendizaje del Perceptrón. Se distingue, además, entre fase de entrenamiento y de funcionamiento (también estocástico y descrito en el apartado anterior), con lo que se trata de un aprendizaje OFF-LINE, que puede considerarse no supervisado en el caso de la versión monocapa y supervisado en el caso de la multicapa. En estas dos redes el mecanismo de aprendizaje sólo difiere en las funciones de templado y distribución de probabilidad. Para que la siguiente descripción sea válida en ambos casos, se evitará trabajar con expresiones concretas de probabilidad y temperatura. En la tabla 8.1 se muestran las diferencias en cuanto a las funciones de probabilidad y temperatura. En este último caso, aunque la función que se indica es la habitual, también es posible utilizar, sobre todo en la Máquina de Boltzmann, un templado ad hoc, fijando directamente períodos de tiempo durante los que permanecen constantes unos valores concretos de temperatura (Fig. 8.4(a)). PROBABILIDAD DE ACTIVACIÓN DE UNA NEURONA MAQUINA DE BOLTZMANN MAQUINA DE CAUCHY Install Equation Editor and doubleclick here to view equation. 9 FUNCIÓN DE TEMPERATURA Install Equation Editor a click here to view equati 10 Install Equation Editor and doubleclick here to view equation. 11 Install Equation Editor a click here to view equati 12 Tabla 8.1 Diferencia entre las redes estocásticas de Boltzmann y de Cauchy. En cualquier caso, el mecanismo de aprendizaje estocástico aplicado en estas redes es idéntico y, de forma general, puede decirse que consiste en partir de una situación inicial de elevada temperatura, con una gran entropía o desorden interno de la red e igual probabilidad de que las neuronas se encuentren en un estado activo ("1") o no activo ("0"), y ajustar los pesos en función de la diferencia entre las probabilidades observadas y deseadas; repitiendo el proceso a medida que decrece la temperatura de la red. 8.3.1.- Redes con arquitectura monocapa. El algoritmo de aprendizaje estocástico de estas redes depende de la topología de red utilizada. VIII. Redes estocásticas. 8.1 En el caso de una estructura monocapa con conexiones laterales (Figura 8.7), la red funcionará como memoria auto-asociativa; por lo que durante la fase de entrenamiento se deberán ajustar los pesos para que la red almacene en ellos los diferentes patrones E1,E2,..,Ek,..,EK que se le presentan. El aprendizaje es una versión estocástica del aprendizaje Hebbiano que se basa en el principio de ajustar los pesos de las conexiones entre dos neuronas de forma proporcional a la correlación de los valores de salida de ambas (capítulo 3). Figura 8.7 Red estocástica monocapa con conexiones laterales. En este caso la expresión matemática de este ajuste es la siguiente: Install Equation Editor and doubleclick here to view equation. Siendo η la cte de proporcionalidad y pij la probabilidad de que estén activadas al mismo tiempo las neuronas i y j de la red cuando se presentan como entrada los K patrones de entrenamiento, dejando, cuando se presenta un patrón, evolucionar la red (como se describió en los apartados anteriores) un cierto número de iteraciones (tmax) hasta que se alcanza el equilibrio térmico de acuerdo con una función de temperatura como las indicadas en la tabla 8.1. Esta probabilidad se calcula como la frecuencia de ocurrencia de salida activa ("1") en ambas neuronas: Install Equation Editor and doubleclick here to view equation. La diferencia entre pij+ y pij- consiste en que para calcular la primera se deja evolucionar la red bloqueando las salidas de las neuronas visibles de la misma, forzando que durante las tmax iteraciones que se procesa un vector (patrón) de entrada Ek, los valores de los componentes de este vector permanezcan invariables en la salida de las neuronas, pudiendo variar sólo las salidas de las ocultas. Por otro lado, para obtener el valor del término pij- se deja evolucionar libremente la red ante los patrones de entrada anteriores, permitiendo la variación de los valores de salida de las neuronas visibles. VIII. Redes estocásticas. 8.1 La justificación del proceso anterior se basa en pretender igualar ambas probabilidades, ya que no variarán los pesos de la red cuando sean suficientemente parecidas. Lo que se intenta es conseguir unos valores de pesos tales que cuando la red evolucione con total libertad, tienda hacia una situación de estabilidad en la que las salidas de las neuronas visibles coincidan con el vector que se presente como entrada (red autoasociativa). En definitiva, el algoritmo de aprendizaje detallado sería el compuesto por las siguientes pasos: 1) Se asignan valores aleatorios a todos los pesos en el rango [-1,+1] y a las salidas de las neuronas ocultas en el conjunto {0,1}. Se introduce el primer (k=1) vector de entrenamiento E1=(e1(1),..,eN(1)), situándolo en las salidas de las neuronas visibles. 2) Se calcula pij+: 2.1) Comenzando en la primera iteración del proceso de aprendizaje (t=1) y para cada vector de entrenamiento Ek, desde k=1 hasta K, se hace lo siguiente: 2.1.1) Se transfiere el vector Ek a la salida de las neuronas visibles de la red (si=ei(k)). 2.1.2) Se ajusta el valor de la temperatura aplicando la función correspondiente a la red utilizada (Tabla 8.1). 2.1.3) Se selecciona aleatoriamente una neurona oculta. La salida de la neurona se establece mediante el proceso de simulación descrito en apartados 8.1 y 8.2, generando un valor aleatorio x con probabilidad uniforme y comparándolo con la probabilidad (distribución de Boltzmann o de Cauchy) de que la salida de la neurona sea activa ("1"). Si la probabilidad es mayor, la salida será "1" y en caso contrario "0". 2.1.4) Se repite el paso 2.1.3 tantas veces como neuronas ocultas (P) tenga la red. En las visibles se mantienen estables (bloqueados) los valores del vector de entrada Ek. 2.1.5) Se incrementa el tiempo (t=t+1) y se repite todo el proceso desde el paso 2.1.2 si no se ha llegado a la última iteración establecida. Un criterio para decidir cuando finaliza el proceso consiste en suponer que el sistema alcanza el equilibrio cuando no hay variación en la energía de la red a causa de ninguna neurona de la misma (ΔEi) en dos o más iteraciones consecutivas. Este incremento de energía, como se demostrará en el apartado 8.4, coincide con la entrada neta a la neurona 15. 2.1.6) Se registran datos estadísticos, para el cálculo de pij+. Estos valores son las salidas en equilibrio de todas las neuronas (s1(k),..,sN(k),sN+1(k),..,sN+P(k)). 2.2) El resultado es : Install Equation Editor and doubleclick here to view equation. 3) Se calcula pij-: 3.1) Comenzando en la primera iteración del proceso de aprendizaje (t=1) y para cada vector de entrenamiento Ek, desde k=1 hasta K, se hace lo mismo que en caso anterior, pero desbloqueando las neuronas visibles, que ahora podrán ser seleccionadas también junto con las VIII. Redes estocásticas. 8.1 ocultas para determinar su valor de salida. 4) Se ajustan los pesos, simétricos, de la red según la expresión: Install Equation Editor and doubleclick here to view equation. 5) Se repiten los pasos 1 a 4 hasta que Δwij sea cero o suficientemente pequeño, para i=1..N+P, j=1..N+P. El algoritmo anterior es válido tanto para la Máquina de Boltzmann como la de Cauchy en sus versiones monocapa. La única diferencia se refiere a la forma de las funciones de distribución de probabilidad y de temple o enfriamiento de la red a medida que avanza el proceso de aprendizaje. En la tabla 8.1 se reflejan dichas diferencias. Algunos autores [Peterson 87] han sugerido las posibilidad de acelerar el proceso de aprendizaje mediante la utilización de Máquinas de Boltzmann (o de Cauchy) deterministas que evitarían la necesidad de aplicar técnicas de simulación, como la indicada en la descripción del algoritmo, para generar los valores de salida de las neuronas en cada instante del proceso de aprendizaje. En lugar de esto se propone considerar que las salidas generadas en las neuronas, ante una determinada entrada neta, son valores reales deterministas iguales al valor medio esperado, con lo que se simplifica el cálculo de las probabilidades pij+ y pij- y, en consecuencia, el ajuste de los pesos de las conexiones de la red. Este nuevo mecanismo suele conocerse como temple o aproximación de campo medio (Mean Field Annealing). La expresión matemática de la salida real determinista esperada de una neurona genérica i de la red con entrada neta neti es la siguiente: Install Equation Editor and doubleclick here to view equation. El valor concreto dependerá del tipo de red utilizada (Boltzmann o Cauchy) pues las distribuciones de probabilidad son diferentes: Install Equation Editor and doubleclick here to view equation. 8.3.2.- Redes con arquitectura multicapa y conexiones hacia atrás. En el apartado 8.1 se indicó la posibilidad de utilizar redes estocásticas para realizar tareas de heteroasociación de patrones, que "aprendieran" a relacionar vectores de entrada con vectores de salida de forma parecida a como lo hace, por ejemplo, un perceptrón multicapa. Para ello, sólo hay que considerar, en la arquitectura monocapa original, las neuronas visibles divididas en dos tipos, las de entrada y las de salida, y disponerlas en dos capas diferentes, dejando las neuronas ocultas en otra capa intermedia (Fig. 8.8). VIII. Redes estocásticas. 8.1 Figura 8.8 Red estocástica multicapa con conexiones hacia delante y hacia atrás. La capa de entrada, como es habitual, sólo se utiliza para mantener estables los valores de entrada a la red, por lo que en esta red la salida de las neuronas de esta capa permanecen bloqueadas siempre con valores iguales a los del patrón de entrada de cada momento. Por lo demás, el algoritmo de aprendizaje es exactamente igual que en el caso de la red monocapa, sólo que ahora las neuronas que se bloquean y desbloquean durante el proceso son exclusivamente las de salida, ya que las de entrada siempre lo estarán. Así, cuando se calcula pij+, se bloquean las neuronas de salida, mientras que permanecen libres cuando se trata de obtener pij-. 8.3.3.- Redes con arquitectura multicapa y conexiones hacia delante. En este tipo de redes (Fig. 8.9), en las que todas las conexiones entre neuronas son hacia delante (feedfoward), el algoritmo de aprendizaje puede ser semejante al descrito para las arquitecturas anteriores [Simpson 90] basado en una versión estocástica del aprendizaje Hebbiano, aunque otros autores [Maren 90] proponen como alternativa más simple una versión estocástica de la regla utilizada por el Perceptrón. VIII. Redes estocásticas. 8.1 Figura 8.9 Red estocástica multicapa con conexiones hacia delante. En ambos casos, el funcionamiento de la red es determinístico, exactamente igual que en el caso de un Perceptrón multicapa, con funciones de activación de las neuronas de tipo escalón (Fig. 8.10), aunque con aprendizaje de tipo estocástico para facilitar la convergencia, durante el aprendizaje, hacia el mínimo global de la función de error (energía) que relaciona la salida generada por la red y la deseada. Install Equation Editor and doubleclick here to view equation. 20 Figura 8.10 Función de activación determinista. En el caso de la versión estocástica de la regla por corrección de error, la idea es realizar modificaciones aleatorias en los pesos de las conexiones y valorar su efecto en el error o diferencia entre salida deseada y obtenida con esos pesos, aceptando los cambios si disminuye el error pero también, para poder escapar de mínimos locales de la función de error, aceptando, en función de una distribución de probabilidad, algunos cambios que supongan un aumento del error, si bien a medida que avanza el proceso de aprendizaje será menos probable aceptar estos cambios, lo cual está asegurado por el temple simulado de la red. El algoritmo de aprendizaje, en este caso, sería el siguiente: 1) Se asignan valores aleatorios a todos los pesos. 2) Comenzando en la primera iteración del proceso de aprendizaje (t=1) y para cada vector de entrenamiento Ek, desde k=1 hasta K, se hace lo siguiente. VIII. Redes estocásticas. 8.1 2.1) Se ajusta el valor de la temperatura aplicando la función correspondiente a la red utilizada: Máquina de Boltzmann o Cauchy (Tabla 8.1). 2.2) Se presenta a la entrada un patrón Ek y se hace funcionar la red para generar una salida S=(s1,..,sM). 2.3) Se calcula el error cometido como la diferencia entre la salida obtenida (S) y la deseada (Sk) asociada al patrón de entrada Ek. Puede utilizarse, por ejemplo, la medida de error LMS (como en las redes ADALINE o Backpropagation) dada por las expresión: Install Equation Editor and doubleclick here to view equation. siendo sh la salida obtenida en la neurona h y shk la deseada para el patrón k-ésimo. 2.4) Se selecciona aleatoriamente cada uno de los pesos de la red, tanto de tipo V como W. Para cada peso seleccionado: 2.4.1) Se modifica levemente su valor y se vuelve a presentar el patrón de entrada Ek obteniendo otra nueva salida. Se evalúa de nuevo el error, obteniendo un valor Error2. 2.4.2) Se evalúa la diferencia entre los errores obtenidos: ΔE=Error2-Error1. 2.4.3) Si ΔE<0, entonces se acepta el cambio del valor del peso seleccionado. Si ΔE>0, entonces, aunque en principio parece que habría que rechazar el valor del peso al suponer un aumento en el error, no siempre será así, ya que puede interesar admitirlo para poder escapar de un mínimo local de la función de error. Para decidirlo se tiene en cuenta que se está enfriando la red y que la temperatura actual de la misma es T. Si T todavía es grande, existirá una gran probabilidad de aceptación del cambio del peso. A medida que se enfríe será menos probable la aceptación de cambios que supongan un incremento del error. Para decidirlo se evalúa la probabilidad de modificación del error (o energía de la red), para lo cual se utiliza la expresión de la función de densidad de probabilidad de Bolzmann o de Cauchy (obtenidas mediante la derivada de la correspondiente función de distribución de probabilidad): Install Equation Editor and doubleclick here to view equation. Se genera un valor aleatorio x en el rango [0,1]. Si p>x, se acepta la modificación del peso, en caso contrario se rechaza y se vuelve a restaurar el valor anterior a la modificación del paso 2.4.1. En el caso de la versión estocástica del aprendizaje Hebbiano, la idea general es realizar modificaciones aleatorias en las salidas de las neuronas ocultas de la red y ajustar los pesos de las conexiones entre las neuronas ocultas y de entrada (W) y ocultas-salida (V) en función de la diferencia entre las probabilidades de que coincida su salida cuando se tienen en cuenta la actividad de las neuronas ocultas (correspondientes a los cambios de estado que hayan sido aceptados) y los pesos w y v de todas las conexiones de la red (pij+ y qjh+); y cuando sólo se considera el efecto de las salidas cambiadas y los valores de los pesos v de las conexiones entre la capa oculta y la de salida (pij- y qjh-). Es algo así como valorar la diferencia entre probabilidad deseada y obtenida. Además, debido al enfriamiento simulado, ya que cada vez será menos probable aceptar los cambios en las neuronas ocultas y, por tanto, la variación VIII. Redes estocásticas. 8.1 de los pesos. Así, el ajuste de los pesos se obtiene según las expresiones: Install Equation Editor and doubleclick here to view equation. La secuencia de pasos de este proceso de aprendizaje será: 1) Se asignan valores aleatorios a todos los pesos (w y v) en el rango [-1,+1] y a las salidas de las neuronas ocultas en el conjunto {0,1}. 2) Se calculan pij+ y qjh+: 2.1) Comenzando en la primera iteración del proceso de aprendizaje (t=1) y para cada pareja de vectores de entrada Ek=(e1(k),..,eN(k)) y salida Sk=(s1(k),..,sM(k)) que debe aprender a asociar la red, desde k=1 hasta K (número total de parejas), se hace lo siguiente. 2.1.2) Se establecen los valores de Ek y Sk en la entrada y salida de la red respectivamente Install Equation Editor and doubleclick here to view equation. 2.1.2) Se ajusta el valor de la temperatura aplicando la función de correspondiente a la red utilizada (Tabla 8.1). 2.1.3) Se selecciona aleatoriamente una neurona oculta j y se invierte su estado de activación: Install Equation Editor and doubleclick here to view equation. 2.1.4) Se calcula el cambio en la energía global de la red a causa de dicho cambio de estado: Install Equation Editor and doubleclick here to view equation. 2.1.5) Si la energía disminuye a causa del cambio, se mantiene éste, pero si aumenta se mantendrá sólo si la probabilidad (pj) de ese aumento (a la temperatura actual de la red) es grande. Para ello se genera aleatoriamente un valor x en el rango [0,1] y se compara con la Install Equation Editor and doubledensidad de probabilidad de Boltzmann click here to view equation. 27 o de Cauchy Install Equation Editor and doubleclick here to view equation. 28, manteniéndose el cambio sólo si la probabilidad calculada en mayor que el valor generado. En caso contrario se deshace el cambio de estado realizado en el paso 2.1.3: Install Equation Editor and doubleclick here to view equation. 2.1.6) Se repite los pasos 2.1.3 a 2.1.5 tantas veces como neuronas ocultas (P) tenga la red. VIII. Redes estocásticas. 8.1 2.1.5) Se incrementa el tiempo (t=t+1) y se repite todo el proceso desde el paso 2.1.2 hasta que se alcance el equilibrio en el punto de mínima energía global, lo cual ocurre cuando no hay variación de energía a causa de ninguna de las neuronas ocultas seleccionadas (ΔEj=0). 2.1.6) Se registran datos para estadísticas, para el cálculo de pij+ y qjh+. Estos valores son las salidas en equilibrio de todas las neuronas ocultas (sno1(k),..,snoP(k)). 2.2) El resultado es Install Equation Editor and doubleclick here to view equation. Siendo Cor[a,b] la función correlación entre los valores a y b, de tal forma que si son iguales, el valor de la función es 1 y cero en caso contrario. 3) Se calculan pij- y qjh-: Comenzando en la primera iteración del proceso de aprendizaje (t=1) y para cada pareja de vectores de entrada Ek=(e1(k),..,eN(k)) y salida Sk=(s1(k),..,sM(k)) que debe aprender a asociar la red, desde k=1 hasta K (número total de parejas), se hace lo mismo que en el caso anterior, pero con la diferencia de que ahora como incremento de energía de la red se utiliza la expresión: Install Equation Editor and doubleclick here to view equation. 4) Se ajustan los pesos de la red: Install Equation Editor and doubleclick here to view equation. 5) Se repiten los pasos 1 a 4 hasta que Δwji y Δvhj sean cero o suficientemente pequeños, para i=1..N, j=1..P, h=1..M. 8.4.- MECÁNICA ESTADÍSTICA Y REDES ESTOCÁSTICAS. En este apartado se justificará el funcionamiento y aprendizaje de las redes estocásticas descritas anteriormente, desde un punto de vista formal, a partir de principios de mecánica estadística. Estos principios fueron aplicados, por primera vez, por L. Boltzmann en termodinámica para estudiar el efecto del calor en los materiales (considerando éstos formados por una gran cantidad de partículas) a través de postulados estadísticos que permiten estimar su comportamiento medio global. En nuestro caso la red será el material físico motivo de estudio y las neuronas sus partículas elementales. En este estudio un concepto importante es el de entropía, que puede considerarse estadísticamente como la medida del desorden interno de un sistema o material, siendo proporcional al logaritmo de la probabilidad del estado energético (E) del sistema, con un factor de proporcionalidad igual a la constante de Boltzmann (1.380621023 Jul/ºK): VIII. Redes estocásticas. 8.1 H(E)= -kln P(E) Si los estados posibles del sistema son limitados, la entropía global se expresaría como la suma de las entropías multiplicadas por la correspondiente probabilidad (la probabilidad del estado de energía Em se denota como P(Em)) Install Equation Editor and doubleclick here to view equation. La probabilidad de que un cuerpo tenga una energía Em viene dada por la conocida distribución de probabilidad enunciada por L. Boltzmann: Install Equation Editor and doubleclick here to view equation. Donde k es la constante de Boltzmann y T la temperatura (grados Kelvin) del cuerpo. El valor de la constante A, cuya inversa A-1 se denomina función de partición en mecánica estadística, se obtiene mediante la inversa del sumatorio indicado, para conseguir que la suma de los valores de las Install Equation Editor and doubleprobabilidades de todos los estados del sistema sea la unidad click here to view equation. 35 . Por tanto, la energía media global del cuerpo será: Install Equation Editor and doubleclick here to view equation. En el ámbito de las redes neuronales estocásticas, se utilizarán las expresiones anteriores para determinar el mecanismo de aprendizaje y funcionamiento de las mismas. En este apartado comenzaremos el estudio considerando el caso una red con N neuronas visibles y P ocultas dispuestas según una arquitectura monocapa (Fig. 8.11). Posteriormente se hará lo propio con las multicapa, compuestas de N neuronas de entrada, P ocultas y M de salida. VIII. Redes estocásticas. 8.1 Figura 8.11 Arquitectura de una red estocástica monocapa. En cuanto al funcionamiento, se tratará de demostrar la expresión de la probabilidad de activación de una neurona i con entrada neta neti: ( presentada en el apartado 8.1): Install Equation Editor and doubleclick here to view equation. Para esta demostración es preciso recordar el concepto de energía de la red, como aquella función objetivo (o de coste) en cuyos mínimos se encuentran los puntos estables de funcionamiento de la red. En este caso, como ocurría con el modelo de Hopfield (capítulo 5) su expresión matemática es: Install Equation Editor and doubleclick here to view equation. Si se evalúa la variación en la energía de la red a causa del cambio en la salida de una (i) de las N+P neuronas, de tal forma que siendo ésta "1" pasase a ser "0", se obtendría: Install Equation Editor and doubleclick here to view equation. Que, como puede comprobarse, coincide con la expresión de entrada neta a dicha neurona. Siguiendo con el símil termodinámico, la probabilidad de que la red se encuentre en un estado de energía tal que la neurona i tenga como salida "1", teniendo en cuenta que las neuronas son binarias con dos posibles valores de salida, se puede representar a través de la distribución de Boltzmann (se omite la constante k realizando el oprotuno cambio de unidades): Install Equation Editor and doubleclick here to view equation. VIII. Redes estocásticas. 8.1 Dividiendo numerador y denominador por el término e-Esi=1/T y teniendo en cuenta que ΔEi=Esi=0Esi=1, se obtiene: Install Equation Editor and doubleclick here to view equation. Con lo que se demuestra que el funcionamiento de las redes estocásticas descrito en el apartado 8.1 tiene una justificación en el ámbito de la mecánica estadística. De igual forma puede demostrarse el aprendizaje estocástico de estas redes. Para ello se utilizará una notación basada en el uso de los subíndices α y β para referirnos a cada uno de los posibles estados de activación del conjunto de neuronas visibles (1,..,N) y ocultas (N+1,..,N+P) de la red respectivamente. Puesto que se trata de neuronas con valores de salida binarios {0,1}, existirá un total de 2N+P estados posibles de la red, con 2N estados diferentes para las neuronas visibles y 2P estados para las ocultas. Según esto, la probabilidad de que las neuronas visibles de la red se encuentren en el estado α, independientemente de las ocultas, será: Install Equation Editor and doubleclick here to view equation. Donde αβ representa uno de los 2N+P estados de la red global, considerando tanto las N neuronas visibles como las P neuronas ocultas. Eαβ es la energía de la red en el estado αβ: Install Equation Editor and doubleclick here to view equation. Siendo siαβ y sjαβ las salidas de las neuronas i y j de la red respectivamente cuando el estado es αβ (en este caso los valores de salida de una neurona posibles son {0, 1}, a diferencia del modelo de Hopfield donde podían ser {-1,+1}). De esta forma, si, por ejemplo, la red tuviera 2 neuronas visibles (N=2) y una oculta (P=1), y el estado fuese αβ=(110), es decir s1αβ=1, s2αβ=1, s3αβ=0, y los pesos w12=w21=-0.8, w13=w31=-0.5, w23=w32=0.2, la energía sería: Install Equation Editor and doubleclick here to view equation. Aunque a lo largo de la demostración se va a necesitar la expresión de la energía de la red, el aprendizaje estocástico, siguiendo el símil termodinámico, se basa en realidad en buscar una combinación de pesos que establezcan un valor mínimo de la función de entropía relativa de la red. Para ello, como sucedía en el caso de la regla delta, se aplica el operador gradiente descendiente sobre dicha función, asegurando así que un cambio en los valores de los pesos provoque un descenso por un valle de la superficie de esta función hasta alcanzar el mínimo local mas próximo. La diferencia respecto a la regla delta es que ahora se complementa la técnica del gradiente descendente con la del temple o enfriamiento simulado (apartado 8.1) para poder escapar de los mínimos locales y alcanzar el global. La función de entropía sobre la que se aplica el gradiente descendiente es, en realidad, una medida relativa, conocida también como divergencia asimétrica (G), que compara las entropías de la red en dos situaciones diferentes: a) cuando se bloquean las salidas de las neuronas visibles, se trataría entonces de una entropía que podría denominarse deseada (denotada como H+) al forzar el supervisor que dirige el aprendizaje la salida que se desea ante el patrón de entrada que se está utilizando; b) cuando VIII. Redes estocásticas. 8.1 no se establece dicho bloqueo y la red funciona libremente, se trataría de una entropía libre u obtenida (denotada como H-): Install Equation Editor and doubleclick here to view equation. Suponiendo que ambos sistemas tienen la misma energía media: Install Equation Editor and doubleclick here to view equation. Puede demostrarse que: Install Equation Editor and doubleclick here to view equation. Siendo Pα+ y Pα- las probabilidades de que las N neuronas visibles estén en el estado α cuando se bloquean sus salidas y cuando quedan libres respectivamente, independientemente del estado de las ocultas. Por tanto, el ajuste de los pesos se realizará de forma proporcional al gradiente descendiente de dicha diferencia de entropías (se suprime la constante de Boltzmann k para simplificar la notación): Install Equation Editor and doubleclick here to view equation. El gradiente G/wij se calcula de la siguiente forma: Install Equation Editor and doubleclick here to view equation. Como Install Equation Editor and doubleclick here to view equation. Y, además, teniendo en cuenta que Install Equation Editor and doubleclick here to view equation. Entonces Install Equation Editor and doubleclick here to view equation. Sustituyendo en la expresión del gradiente de G, se tiene: VIII. Redes estocásticas. 8.1 Install Equation Editor and doubleclick here to view equation. Aplicando las siguientes propiedades (Pβ│α representa la probabilidad de que las neuronas ocultas estén en el estado β cuando las visibles están ya en el estado α): Install Equation Editor and doubleclick here to view equation. Se obtiene Install Equation Editor and doubleclick here to view equation. Siendo Install Equation Editor and doubleclick here to view equation. Estos dos términos, conocidos como probabilidades de coocurrencia, miden la probabilidad de que dos neuronas i y j estén activadas simultáneamente cuando se bloquean las neuronas visibles (pij+) y cuando funcionan libremente (pij-). Por tanto, el ajuste de los pesos será proporcional a la anterior expresión obtenida al aplicar el gradiente descendiente a la entropía relativa. Install Equation Editor and doubleclick here to view equation. Podemos considerar el término 1/T, donde T es la temperatura de equilibrio del sistema al final del proceso de templado, incluido en la constante η, con lo que se obtiene finalmente la expresión general de aprendizaje utilizada en el apartado 8.3 para el entrenamiento de las redes estocásticas. Existen algunas propuestas de varios autores para mejorar algunos aspectos concretos del mecanismo de aprendizaje. Por ejemplo, se podría añadir un término de disminución del valor de los pesos de la red durante la etapa de aprendizaje que acelere el proceso. También se recomienda utilizar una regla de aprendizaje incremental, sumando un pequeño valor constante a cada peso wij en cada iteración cuando ambas neuronas (i y j) estén activas (salida "1") durante la fase en la que se bloquean las neuronas visibles para calcular pij+ y restando este mismo valor cuando las dos neuronas estén activas durante la fase con todas las neuronas funcionando libremente para calcular pij-. Con ello se consigue ayudar al algoritmo en el descenso por valles poco profundos de la función de energía o error, evitando además oscilaciones durante este descenso. Otra recomendación es que cuando algunos estados (α) de las neuronas visibles de la red hacen cero la probabilidad deseada Pα+, se incremente su valor para garantizar que se pueda llegar en algún momento a un valor de la probabilidad Pα- igual al anterior (con una temperatura mayor que cero) y finalice así el proceso de aprendizaje [Hertz 91]. La demostración anterior se ha basado en una red con arquitectura monocapa, aunque también es válida para el caso de la arquitectura multicapa con conexiones feedback que diferenciaba entre neuronas visibles de entrada y de salida. La única diferencia consiste en que el bloqueo y desbloqueo de neuronas para calcular pij+ y pij- se refiere sólo a las de salida, ya que las de entrada siempre están bloqueadas. En VIII. Redes estocásticas. 8.1 este caso habría que tener en cuenta que manteniendo la anterior notación α se referiría a uno de los 2N+M estados posibles del total de neuronas visibles (N de entrada y M de salida). Se puede, no obstante, realizar un cambio de notación para distinguir entre el estado α de las neuronas de entrada (con un total de 2N posibles) y el estado γ de las de salida (con un total de 2M posibles). Entonces la entropía relativa se debería expresar de la siguiente forma: Install Equation Editor and doubleclick here to view equation. En cuanto a las redes con arquitectura multicapa con conexiones feedfoward (hacia delante), como el Perceptron, y funcionamiento determinista a las que se aplica un aprendizaje estocástico (apdo. 8.3.3) para la determinación de los pesos de las conexiones entre capas entrada-oculta (w) y oculta-salida (v) tendríamos lo siguiente: Install Equation Editor and doubleclick here to view equation. Install Equation Editor and doubleclick here to view equation. Figura 8.12 Red feedfoward multicapa. Install Equation Editor and doubleclick here to view equation. En este caso, la función de entropía relativa que se minimiza es una medida de la diferencia entre los estados (β) de las neuronas ocultas y los de las neuronas de entrada (α) y salida (γ): Install Equation Editor and doubleclick here to view equation. Siendo Pβ la probabilidad del estado β en las neuronas de la capa oculta y Qγ la probabilidad del estado γ en la capa de salida de la red. Aplicando el operador gradiente descendente a esta función y considerando que el ajuste de los pesos es proporcional a dicho gradiente, se llega a obtener los siguientes resultados: VIII. Redes estocásticas. 8.1 Install Equation Editor and doubleclick here to view equation. Install Equation Editor and doubleclick here to view equation. Que coinciden con las utilizadas en el apartado 8.3 cuando se describió el aprendizaje de este tipo de redes. Finalmente, indicar que en las demostraciones que se han realizado en este apartado se ha supuesto que la distribución de probabilidad de las redes era la de Boltzmann. En el caso de la distribución de Cauchy se procedería de forma similar. VIII. Redes estocásticas. 8.1 8.5.- APLICACIONES DE LAS REDES ESTOCÁSTICAS. Las redes estocásticas, en sus diferentes versiones (Máquinas de Boltzmann y Cauchy), se han utilizado, aunque en menor medida que los modelos de Hopfield y Back-propagation, debido, sobre todo a su lentitud, en aplicaciones relacionadas con el reconocimiento de patrones, procesamiento de voz y de imágenes, procesamiento de conocimiento [Touretzky 88] y para resolver problemas de optimización [Gutzmann 87]. En general, si su arquitectura es monocapa, este tipo de redes se puede utilizar en las mismas aplicaciones que el modelo de Hopfield: servir como memoria autoasociativa que permita reconocer y reconstruir informaciones (imágenes, voz, datos) distorsionadas e incompletas o para resolver problemas de optimización, planteados en términos de la función energía de la red. Cuando la arquitectura es multicapa, su uso puede ser mas general, en aplicaciones semejantes a las que utiliza el Perceptron multicapa con aprendizaje Backpropagation, como sistemas capaces de aprender a relacionar informaciones de entrada con otras diferentes de salida (heteroasociación), que puedan ser utilizados para tareas de clasificación, compresión y descompresión de datos, control de sistemas, predicción, codificación, transformación de la información (por ejemplo, de texto manuscrito a caracteres ASCII, o de texto a voz), etc. En el ámbito del reconocimiento de patrones se ha utilizado la Máquina de Boltzmann para reconocer dígitos manuscritos [Pawlicki 87] y en sistemas de visión [Lin 88], para reconstruir imágenes con ruido cuya versión nítida había sido "aprendida" previamente por la red [Geman 84], también para el caso de imágenes radiológicas [Smith 83], incluso para el reconocimineto de imágenes bidimensionales con diferentes desplazamientos y rotaciones espaciales [Sejnowski 86]. La Máquina de Cauchy también se a utilizado para la extracción [Szu 90] de características comunes de diferentes patrones (imágenes) mediante la búsqueda del mínimo global de una función de error (energía) que relaciona cada patrón con el prototipo o representante de una clase determinada. En cuanto a las aplicaciones sobre transformación de información, hay que destacar la utilización de una Maquina de Boltzmann, denominada NETtalk, para convertir en voz un texto escrito [Sejnowski 87]. Los autores de esta red habían desarrollado previamente una versión basada en el modelo Backpropagation, obteniendo con la Máquina de Boltzmann unos resultados similares en cuanto a eficiencia aunque necesitando para ello un mayor tiempo. La red NETtalk tiene arquitectura multicapa con conexiones hacia delante (feedfoward), con una capa de entrada formada por siete grupos de 29 neuronas (un total de 203), una capa oculta de 80 neuronas y una de salida formada por 26 neuronas (Fig. 8.13). Esta red recibe como entrada un texto inglés en forma de cadena de caracteres y genera como salida una cadena de fonemas que pueden servir como entrada a un sintetizador de voz. En realidad, el texto se introduce carácter a carácter, generando la red el fonema correspondiente al carácter del grupo central de los 7 que forman la capa de entrada (ventana de 7 caracteres); siendo necesarios los 3 anteriores y 3 posteriores por la influencia del contexto en la pronunciación. Cada carácter se representa con 29 neuronas o valores binarios que indican cada una de las 26 letras del alfabeto inglés y 3 signos de puntuación, siendo activa ("1") la correspondiente al valor del carácter. Por su parte, los fonemas a la salida de la red se representan en las 26 neuronas, en términos de 23 características articulatorias y 3 silencios, indicando cada neurona su presencia ("1") o ausencia ("0") en el fonema. Durante su entrenamiento, los autores utilizaron la transcripción fonética del habla de un niño, además de un conjunto de 1000 palabras de uso común; obteniendo posteriormente durante el funcionamiento de la red, un porcentaje de producción de fonemas correctos superior al 80%. VIII. Redes estocásticas. 8.1 Figura 8.13 Arquitectura de la red NETtalk. Aunque se han utilizado en aplicaciones como las descritas, las redes estocásticas son especialmente útiles para solucionar problemas de optimización, pues mediante su funcionamiento basado en el mecanismo del temple o enfriamiento simulado se permite alcanzar el mínimo global de la función energía (en este caso entropía) de la red, que podría asociarse a la función objetivo (o de coste) del problema a resolver, obteniendo unos valores para los pesos de la red, como se hizo en el capítulo 5 con el modelo de Hopfield, en función de los parámetros del problema. De esta forma se pueden solucionar, por ejemplo, los mismos problemas planteados en aquel capítulo: Vendedor Viajero (Resuelto en [Szu 90b] mediante la Máquina de Cauchy), bipartición de grafos, emparejamiento ponderado, etc. El motivo principal por el que no se ha generalizado el uso de las redes estocásticas, limitándose éste a la resolución de algún problema de optimización específico, a pesar de poder ser utilizadas en una amplia gama de posibles aplicaciones, se debe, sin duda, al excesivo tiempo necesario tanto durante la etapa de aprendizaje como durante la de funcionamiento debido al enfriamiento simulado de la red, precisando un tiempo mucho mayor que en caso de otras redes más utilizadas (Hopfield y Backpropagation) para obtener resultados similares. Aunque éste es el principal motivo, también podría considerase como tal el hecho de utilizar un mecanismo de operación con una cierta complejidad y no tan intuitivo como en el caso de otras redes. IX. Redes Neuronales y Lógica Borrosa. 9.1 IX REDES NEURONALES Y LÓGICA BORROSA. Actualmente existe una gran cantidad de propuestas de combinación de la capacidad de aprendizaje de las redes neuronales y del procesamiento de información imprecisa de la lógica borrosa (Fuzzy Logic). Esta combinación suele referirse a aspectos como la utilización de neuronas borrosas cuyo funcionamiento se describe en función de operadores borrosos (producto y suma) en lugar de aritméticos; la adaptación borrosa de algoritmos de aprendizaje de redes conocidas, como el Perceptrón (con o sin capas ocultas; la simulación con redes neuronales de sistemas expertos dinámicos que integran opiniones borrosas de varios especialistas; el almacenamiento y evaluación con redes de las reglas utilizadas en sistemas de control borroso; la generación, utilizando redes competitivas de estas reglas; la generación y adaptación de funciones de pertenencia a conjuntos borrosos mediante redes; etc. En este capítulo se presentarán algunas de las combinaciones más conocidas. Al tratarse de un campo en plena investigación, se remite al lector interesado a las actas de congresos de redes neuronales y lógica borrosa para conocer el estado actual de la combinación entre ambas tecnologías. Algunos de estos congresos, que se celebran anual o bianualmente, son: International Conference on Fuzzy Logic, Neural Networks and Soft Computing; International Joint Workshop on Fuzzy Logic and Neural Networks; IEEE International Conference on Neural Networks (ICNN); IEEE International Conference on Fuzzy Systems (ICFS); European Congress on Fuzzy and Intelligent Technologies (EUFIT), International Joint Conference On Neural Networks (IJNN); International Workshop on Artificial Neural Networks (IWANN); etc. 9.1.- CONCEPTOS BÁSICOS SOBRE LÓGICA BORROSA. En la década de los veinte de este siglo, J. Lukasiewicz desarrolló los principios de la lógica multivaluada, cuyos enunciados pueden tener valores de verdad comprendidos entre el 0 (FALSO) y el 1 (CIERTO) de la lógica binaria clásica. Por ejemplo, el enunciado "El vaso está lleno", en lógica binaria tendría el valor de verdad 1 (CIERTO) si el recipiente contiene tanto líquido como su capacidad máxima admite; por el contrario, si el vaso contiene el 90% de su capacidad total, el enunciado sería falso, con valor de verdad 0. En tal caso, aunque falso, parece evidente que es casi cierto, puesto que casi está lleno. La lógica multivaluada permitiría asignar diferentes grados de certeza, de esta forma, si el vaso está al 90% de su capacidad, el valor de verdad del enunciado sería 0.9 (casi CIERTO), mientras que si contiene, por ejemplo, un 10% de líquido el valor de verdad sería 0.1 (poco CIERTO). En 1965 L. Zadeth [Zadeth 65] aplicó la lógica multivaluada a la teoría de conjuntos, estableciendo la posibilidad de que los elementos pudieran tener diferentes grados de pertenencia a un conjunto (por ejemplo, el caso del vaso con el 90% de líquido, tendría un grado de pertenencia al conjunto de VASOS LLENOS de valor 0.9, en el rango 0..1). Zadeth introdujo el término fuzzy (borroso) y desarrolló un álgebra completa para los conjuntos fuzzy. aunque estos conjuntos no tuvieron IX. Redes Neuronales y Lógica Borrosa. 9.1 aplicación práctica hasta mediados de los años setenta, cuando E.H. Mamdani diseñó un controlador borroso para un motor de vapor. Por tanto, en lógica borrosa se trabaja con conjuntos, que se definen por sus funciones de pertenencia, que se denotan como μC(x) e indican el grado de pertenencia (entre 0 y 1) del elemento con valor "x" al conjunto "C". Por ejemplo, se podrían tener tres conjuntos de tipos de tallas de personas que tuvieran valores dentro de los siguientes rangos: BAJA = {140..170 cm} NORMAL = {150..190 cm} ALTA = {170..200 cm} Las funciones de pertenencia a estos conjuntos borrosos podría tener la forma indicada en la Figura 9.1(a). En este caso, una persona con una talla de 155 cm pertenecería en un 50% (μBAJA(155)=0.5) al conjunto de personas BAJAS y en un 25% (μNORMAL(155)=0.25) a las de tamaño NORMAL. En contraposición con los conjuntos borrosos, en lógica binaria tradicional (también conocida como crisp logic) se utilizan los denominados conjuntos no borrosos (conjuntos crisp), donde los grados de pertenencia son binarios (0 ó 1) como se muestra en el ejemplo de la Figura 9.1(b). Figura 9.1 (a) Conjuntos borrosos. (b) Conjuntos no borrosos (crisp sets). En lógica borrosa las operaciones entre conjuntos se plantean en forma de operaciones borrosas entre sus funciones de pertenencia. Las más utilizadas son las de Unión (U), Intersección () y Complemento () para los conjuntos y las correspondientes suma lógica borrosa (), producto lógico borroso () y negación borrosa para las funciones de pertenencia, . Así, estas operaciones aplicadas sobre dos conjuntos borrosos A y B con sendas funciones de pertenencia μA y μB serían: Install Equation Editor and doubleclick here to view equation. Install Equation Editor and doubleclick here to view equation. IX. Redes Neuronales y Lógica Borrosa. 9.1 Install Equation Editor and doubleclick here to view equation. En el caso de la unión, la función de pertenencia del conjunto resultante se obtiene realizando la operación de suma lógica borrosa entre los grados de pertenencia de cada posible elemento (x) a cada uno de los conjuntos (Fig.9.2). El resultado de una suma lógica borrosa coincide con el mayor (máx) de los grados de pertenencia (P.ej. Si los conjuntos fuesen ALTA y DELGADA, una persona un 70% ALTA y un 20% DELGADA pertenecería en un 70% al conjunto de personas ALTAS ó DELGADAS). En el caso de la intersección, se realiza el producto lógico o determinación del menor (min) de los grados de pertenencia de un mismo elemento (x) a cada conjunto (Siguiendo con el ejemplo, aquella persona pertenecería en un 20% al conjunto de personas ALTAS que son DELGADAS). Finalmente, la función Figura 9.2 Operaciones en lógica borrosa. de un conjunto complementario coincide con la función de no pertenencia al conjunto original (En el ejemplo, una persona un 70% ALTA sería un 30% NO ALTA). La utilidad de estas operaciones con conjuntos borrosos se comprobará en los siguientes apartados de este capítulo, donde se utiliza una mínima parte de las posibilidades de la lógica borrosa. El lector interesado en profundizar en la teoría borrosa y sus aplicaciones puede consultar las referencias [Dubois 80], [Terano 92] y [Trillas 92]. 9.2.- NEURONAS BORROSAS Y APRENDIZAJE BORROSO. Entre la lógica borrosa y las redes neuronales puede establecerse una relación bidireccional, ya IX. Redes Neuronales y Lógica Borrosa. 9.1 que es posible, por ejemplo, utilizar redes para optimizar ciertos parámetros de los sistemas borrosos, pero también se puede aplicar la lógica borrosa para modelar un nuevo tipo de neurona especializada en el procesamiento de información de este tipo. Una neurona borrosa puede modelarse como una unidad de procesamiento que recibe unas señales borrosas de entrada a través de unas sinápsis borrosas, siendo la entrada el producto borroso de la salida de la neurona anterior por el peso borroso de la conexión. La entrada neta de la neurona no se obtiene como la suma aritmética de las entradas, sino como la suma borrosa de las mismas (Fig.9.3). Figura 9.3 Red con neuronas borrosas. Install Equation Editor and doubleclick here to view equation. La expresión matricial de las entradas netas de todas las neuronas de una misma capa puede calcularse mediante el operador borroso denominado composición (): Install Equation Editor and doubleclick here to view equation. Install Equation Editor and doubleclick here to view equation. IX. Redes Neuronales y Lógica Borrosa. 9.1 Install Equation Editor and doubleclick here to view equation. Una posible utilidad de este tipo de redes, es servir de memoria asociativa (FAM: Fuzzy Associative Memory) para almacenar y evaluar las reglas de control en un sistema borroso. El mecanismo de aprendizaje, tal como se describirá en el apartado 9.5, también utiliza operadores borrosos para la obtención de los pesos, siendo una adaptación borrosa de la regla de Hebb, conocido como aprendizaje Hebbiano borroso. Además de poder utilizar redes con neuronas borrosas como las anteriores, con algoritmo de entrenamiento borroso, también existe la posibilidad de utilizar esta lógica para conseguir versiones borrosas de algoritmos convencionales que funcionen sobre redes con neuronas no borrosas. Por ejemplo, podría ser interesante estudiar la posible utilidad de una versión borrosa de la regla delta del Perceptrón para utilizar esta red en aplicaciones de clasificación borrosa (con fronteras entre clases poco nítidas). En este caso, la estructura de la red es la ya conocida y descrita en el capítulo 4. En la figura 9.4 se muestra un Perceptrón con dos entradas y otra con valor fijado a "1" para representar el umbral (wo) de la función de activación escalón de la neurona. Esta red es capaz de clasificar patrones de entrada, que pueden considerarse puntos del plano, con un hiperplano lineal de separación de las dos clases (A y B) posibles. El problema del Perceptrón es que no es siempre posible encontrar una recta que deje a un lado Figura 9.4 Clasificación lineal de datos con un Perceptrón. todos los elementos de un tipo (cruces en la figura 9.4) y al otro todos los del otro tipo (círculos). Por ejemplo, en la figura hay dos puntos (círculo y cruz) que, siendo de una clase han quedado situados en la zona de la clase opuesta. Una posible solución a este problema consiste en utilizar un perceptrón multicapa que permita establecer hiperplanos de separación no lineal. Sin embargo, también es posible utilizar el Perceptrón elemental y utilizar un algoritmo de aprendizaje borroso que permita establecer una frontera borrosa entre las clases (Fig. 9.5). IX. Redes Neuronales y Lógica Borrosa. 9.1 Figura 9.5 Clasificación borrosa de datos con un Perceptrón. Una posible versión borrosa de la regla delta podría ser la siguiente [Moraga 92]: Install Equation Editor and doubleclick here to view equation. Siendo delta la diferencia entre la salida obtenida y la deseada. Realmente, coincide con la clásica; sin embargo, se ha añadido un Install Equation Editor and doublefactor click here to view equation. 9para valorar los grados de pertenencia de cada patrón de entrada a la clase correspondiente. Así, si los grados de pertenencia de la entrada xi a las clases A y B son muy diferentes indica que debe hacerse el ajuste completo porque es importante que dicho punto se considere de la clase dada. Cuando se utiliza esta versión de la regla delta, además del conjunto de patrones de entrenamiento y la clase a la que pertenece cada uno, el supervisor del proceso debe también conocer las funciones de pertenencia de cada patrón a cada clase. Existen también versiones borrosas de la regla delta generalizada para Perceptrones multicapa [Hayashi 92]. IX. Redes Neuronales y Lógica Borrosa. 9.3.- IMPLEMENTACIÓN BORROSOS. NEURONAL 9.1 DE MAPAS COGNITIVOS En 1985 B. Kosko propuso la posibilidad de utilizar una red neuronal con arquitectura similar a la de Hopfield, aunque con conexiones autorrecurrentes, como alternativa a la forma tradicional, basada en la utilización de reglas y hechos, de representación del conocimiento en sistemas expertos [Kosko 86]. Estos sistemas constituyen un pilar básico de la Inteligencia Artificial ya que "permiten obtener una síntesis de los conocimientos que existen en un determinado campo, así como suministrar las ideas y decisiones que un especialista, partiendo de aquellos, podría sugerir". Estos sistemas se están utilizando en la industria como alternativa para la resolución de problemas difícilmente planteables mediante las técnicas algorítmicas clásicas, como es el diagnóstico médico, económico, etc. Tradicionalmente se ha considerado un sistema experto compuesto por tres elementos fundamentales: Una base de reglas, una base de conocimientos y un motor de inferencias (Fig. 9.6). La Base de reglas contiene un conjunto de reglas específicas, también denominadas reglas de producción, en forma de sentencias "si-entonces" (if-then) donde se indican las acciones que se deberían realizar, en el ámbito donde va a funcionar el sistema experto, ante diferentes condiciones (Ej. Si llueve ENTONCES coger un paraguas). La Base de conocimientos, que en muchos casos se integra en la base de reglas, incluye un conjunto de hechos y opiniones de expertos o especialistas sobre el dominio de trabajo del sistema. Existen hechos que no ofrecen lugar a duda (P.ej. El 5 es un número primo), mientras que hay otros que no son del todo ciertos y pueden depender de la opinión del experto que se ha brindado a ofrecer sus conocimientos en el desarrollo del sistema (P.ej. El cielo está bastante nublado, El cielo está poco nublado). Por último, el Motor de Inferencias es la parte del sistema que trabaja, que infiere respuestas ante determinadas consultas del sistema (P.ej. Una consulta podría ser Hoy está lloviendo, ¿Qué debo hacer?, el motor, mediante un procedimiento de búsqueda en las bases de reglas y conocimientos infiere como respuesta Coger un paraguas). Figura 9.6 Estructura de un Sistema Experto. Uno de los problemas que se plantean en la construcción de un sistema experto es el de la representación de los conocimientos ambiguos de los especialistas. Es más, normalmente si se consulta a diferentes especialistas del mismo tema, ofrecerán conocimientos y opiniones diferentes e, incluso, totalmente opuestas. Es por ello que el enfoque anterior de sistema basado en reglas funciona y es adecuado cuando los expertos tienen un conocimiento claro sobre el tema porque es fácil establecer las reglas. Cuando esto no ocurre y se dispone de opiniones diferentes de los expertos, un enfoque alternativo se podría basar en la utilización de una red neuronal que "aprenda" las opiniones (borrosas) IX. Redes Neuronales y Lógica Borrosa. 9.1 de los diferentes expertos. Para el diseño de esta red B. Kosko propuso plantear, en primer lugar, un diagrama causal o mapa de conocimientos con una serie de nodos que representarían los conceptos relevantes para el sistema y unas conexiones entre ellos que muestren la relación causal (influencia) entre conceptos. Cada uno de los conceptos del mapa será un conjunto borroso, por lo que la denominación del diagrama suele ser Mapa Cognitivo Borroso (FCM: Fuzzy Cognitive Map). Las conexiones entre conceptos tendrán un valor asociado en el rango [-1,+1] que represente el grado de causalidad (influencia) de un nodo sobre otro. Si el valor es positivo, indica que ante un incremento en la evidencia del concepto origen aumenta también el significado, la evidencia o valor de verdad del concepto destino. Si es negativo, ante un aumento en la evidencia del fuente se decrementa la del destino. Si el valor es 0, no existe conexión y, por tanto, son conceptos sin relación causal. Para entender lo anterior, se muestra en la Fig. 9.7 el mapa cognitivo borroso que se puede obtener a partir de la opinión de un experto sobre las relaciones entre algunos aspectos del Sistema Económico de un hipotético país. Figura 9.7 Ejemplo de Mapa Cognitivo Borroso. Para recabar la opinión del especialista económico, se le puede presentar un formulario tipo test con preguntas sobre la influencia de un concepto sobre otro, ofreciendo varias alternativas (borrosas), representadas de forma simbólica, pero que después el diseñador traducirá a valores numéricos asociados a las conexiones. Por ejemplo, se podría utilizar un repertorio de respuestas posibles como la indicada en la tabla 9.1. VALORES SIMBÓLICOS VALORES NUMÉRICOS No tiene efecto 0.0 Tiene un ligero efecto 0.2 IX. Redes Neuronales y Lógica Borrosa. 9.1 Tiene algún efecto 0.4 Afecta 0.6 Afecta considerablemente 0.8 Es una causa directa 1.0 Tabla 9.1 Posibles valores de las respuestas de un experto acerca del efecto de un concepto sobre otro. En el ejemplo de la figura 9.7, nuestro experto podría opinar, entre otras cosas, que la disminución del nivel de empleo es causa directa de la conflictividad social, que la estabilidad del gobierno afecta considerablemente en las inversiones extranjeras, que las leyes de regulación del mercado laboral afectan a las inversiones privadas, etc. Si se desea ajustar el mapa a las opiniones de varios expertos, habrá que recabar las valoraciones de todos ellos y establecer, en consecuencia, los valores definitivos asociados a las relaciones de causalidad. Para ello, puesto que estas relaciones representan conjuntos borrosos, y lo que se pretende hacer es la unión de estos conjuntos, se procederá a calcular la suma lógica borrosa de las opiniones de cada experto. Si, por ejemplo, las opiniones de tres expertos sobre la relación entre las medidas para la mejora del mercado de trabajo y el nivel de empleo son: (Afectan considerablemente, afecta, tiene un ligero efecto) = (0.8, 0.6, 0.2), entonces el valor que se utilizará en el mapa de conocimientos borrosos será el máximo: 0.8. Se puede utilizar una red neuronal monocapa (fig 9.8) semejante a la red Hopfield, aunque con conexiones autorrecurrentes y mecanismo de aprendizaje diferente, para implementar mapas de este tipo y estudiar la evolución del sistema ante entradas que representen los niveles de evidencia de los conceptos. En esta red las neuronas representarían los conceptos (nodos) de mapa y las conexiones entre neuronas las relaciones de causalidad entre los conceptos. Los pesos asociados a las conexiones coincidirían con los valores borrosos de las relaciones causales del mapa. Así wij representaría el valor de la relación causal entre el concepto Cj y el concepto Ci del mapa. En el caso de implementar el mapa de la figura 9.7, la matriz de pesos de la correspondiente red de 5 neuronas podría ser: IX. Redes Neuronales y Lógica Borrosa. Install Equation Editor and doubleclick here to view equation. Figura 9.8 Red neuronal para implementar un Mapa Cognitivo Borroso (FCM). 9.1 IX. Redes Neuronales y Lógica Borrosa. 9.1 El aprendizaje de la red consiste simplemente en asignar directamente a los pesos los valores propuestos por el experto en la descripción de las relaciones entre conceptos. Después de esta fase de aprendizaje, se pasa a la fase de funcionamiento de la red. En este caso, la red puede ser útil para comprobar la evolución del sistema ante variaciones de los niveles de evidencia de los conceptos. Por ejemplo, puede interesar conocer el efecto de una fuerte inversión extranjera (en tal caso el nodo Inversión extranjera sería muy activo, con un valor próximo a la unidad: C1=1) en plena crisis económica en un país con un gobierno muy inestable (C5=0), sin leyes para la regulación del mercado de trabajo (C3=0), con una gran conflictividad social (C4=1) y un gran nivel de desempleo (C2=0). En tal caso, el vector que representa los valores actuales de salida de los conceptos del sistema tendría el siguiente valor: Install Equation Editor and doubleclick here to view equation. Si suponemos, para simplificar la evolución del sistema, que las funciones de activación de las neuronas de la red son de tipo escalón entre 0 y 1, de tal forma que si la entrada neta es negativa la salida es 0, si es positiva la salida es 1 y si es cero la salida se mantiene invariable. La evolución del sistema a partir de la situación inicial anterior sería: Install Equation Editor and doubleclick here to view equation. Por lo que los valores de salida de la red (nivel de evidencia de los conceptos del mapa) si, como se ha supuesto, las funciones de activación son de tipo escalón, serían: Net(t=1) = (0 0.6 0 0 -0.8 ) ===> C(t=1) = ( 1 1 0 1 0) Se repetiría el proceso hasta alcanzar una situación de estabilidad, lo cual no siempre ocurre, aunque en este caso si es así: Net(t=2) = C(t=1)W = (0 0.6 0 -1 -0.6) ===> C(t=2) = (1 1 0 0 0) Net(t=3) = C(t=2)W = (0 0.6 0 -1 0.2) ===> C(t=3) = (1 1 0 0 1) Net(t=4) = C(t=3)W = (0 0.6 0 -1 0.2) ===> C(t=4) = (1 1 0 0 1) Puede observarse que, a partir de la tercera iteración, se alcanza una situación que no varía con el tiempo. Se trata de una situación en la que puede comprobarse que gracias a las inversiones extranjeras se ha alcanzado una situación de pleno empleo (C2=1), sin crispación social (C4=0) y, en consecuencia, el gobierno ha alcanzado un alto grado de estabilidad (C5=1). Además, puede comprobarse que no han sido necesarias leyes específicas de regulación del mercado de trabajo para salir de la crisis (C3=0), pues parece ser que es suficiente con la inversión extranjera (C1 =1). La evolución del sistema puede razonarse de la siguiente forma: En t=0 se producen fuertes inversiones extranjeras que en t=1 consiguen, a través de la relación positiva de causalidad entre ambos conceptos, mejorar el nivel de empleo, con lo que en t=2 se reduce la conflictividad social; que permite, en t=3, la plena estabilidad del gobierno y de la situación. En este ejemplo, al trabajar con funciones de activación del tipo escalón, los conceptos tienen valores binarios [0,1]; si se desea obtener unos niveles IX. Redes Neuronales y Lógica Borrosa. 9.1 continuos en este rango, habría que utilizar funciones continuas de tipo lineal o sigmoidal. Cuando se diseña un sistema experto, puede ser interesante recoger las opiniones de varios especialistas en el tema. En tal caso, como ya se ha comentado, habría que realizar la operación de suma lógica borrosa (unión de conjuntos borrosos) cuyo resultado es el máximo de los valores. Así, si por ejemplo la relación de causalidad entre los conceptos Cj y Ci propuestas por M expertos son wij(1), wij(2), .., wij(M), el valor final del peso wij en la red neuronal sería: Install Equation Editor and doubleclick here to view equation. En el caso del mapa que se está utilizando como ejemplo, se podrían adaptar los pesos de la red considerando las opiniones de otro experto. Para ello se realizaría la operación de suma borrosa entre los valores propuestos por ambos. Suponiendo que la opinión de este segundo experto se recoge en una matriz W2, los nuevos valores de las relaciones entre conceptos y, por tanto, los nuevos pesos de la red serían: Install Equation Editor and doubleclick here to view equation. Install Equation Editor and doubleclick here to view equation. Por último, comentar que aunque el aprendizaje de la red anterior se limitaba a una asignación directa de valores a los pesos a partir de las opiniones de los expertos, existe una variación de este modelo de red que utiliza un algoritmo de aprendizaje de tipo Hebbiano diferencial para aquellas situaciones en las que no se disponga de las opiniones del experto pero sí de valores obtenidos a partir de la observación del entorno en el que va a funcionar el sistema. Por ejemplo, se puede recoger datos durante varios años sobre los valores de niveles de empleo, inversiones etc, en fechas concretas. Esa información recopilada sería el conjunto de patrones de entrenamiento de la red neuronal, formado por vectores Ek que contienen los valores borrosos de los M conceptos en un instante k. Patrones entrenamiento = E1, E2,.. = [e1(1),e2(1),..,eM(1)], [e1(2),e2(2),..,eM(2)], ... El algoritmo Hebbiano diferencial es parecido al utilizado por el modelo de Hopfield (capítulo 5) pero, en este caso, en lugar de utilizar los valores de los componentes de los vectores de entrenamiento, se utiliza la variación de estos valores en el tiempo. Es decir se calculan los pesos como una correlación entre las variaciones temporales que se producen en los diferentes conceptos del mapa cognitivo. Este mecanismo de ajuste de pesos también se denomina concomitance variation y, matemáticamente, se expresaría: Δwij = -wij + ΔCi ΔCj = -wij + Δf(ei(k)) Δf(ej(k)) Siendo Ci y Cj los valores de salida (conceptos del mapa) de las neuronas i y j, y f la función de activación de dichas neuronas. El ajuste del peso de la conexión entre las neuronas (es decir, el valor de la relación de causalidad entre dos conceptos) ante un nuevo vector de entrada Ek se realiza como la correlación (producto) entre las variaciones que se producen en las salidas de las neuronas correspondientes. En realidad, lo que se quiere conseguir es que si la variación entre dos instantes de tiempo de los niveles de evidencia de dos conceptos se realiza en el mismo sentido (ambos aumentan o ambos disminuyen) se debe producir un reforzamiento de la relación de causalidad (peso) entre ambos, mientras que si se realiza en diferente sentido (cuando uno aumenta el otro disminuye), esta relación se IX. Redes Neuronales y Lógica Borrosa. debilita. 9.1 IX. Redes Neuronales y Lógica Borrosa. 9.1 9.4.- SISTEMAS DE CONTROL BORROSO. Una de las principales aplicaciones de la lógica borrosa es el diseño de sistemas de control que, a partir de unas entradas, deben generar unas salidas para actuar sobre determinados mecanismos. Un ejemplo podría ser el sistema de control para regular la velocidad de un ventilador en función de la temperatura ambiente. En este caso, la única entrada del sistema sería el valor de la temperatura, por ejemplo en grados centígrados y la única salida el valor, en revoluciones por minuto (rpm), de la necesaria velocidad del ventilador para conseguir una temperatura ideal. En 1980 la empresa danesa F.L. Smidth & Company utilizó por primera vez un sistema borroso para supervisar el funcionamiento de un horno de cemento. En 1987, la empresa japonesa Hitachi desarrolló un sistema borroso para el control del metro de la ciudad de Sendai. Esta empresa comprobó que un sistema de control borroso era superior a uno convencional, especialmente en lo que respecta a la mayor suavidad en las operaciones de frenado y aceleración de los trenes, lo que aumentaba el confort de los viajeros y, sobre todo, reducía el consumo de energía eléctrica. El rendimiento comprobado en este sistema fue tal que en en doce meses, más de 50 empresas japonesas estaban trabajando para desarrollar tecnologías basadas en lógica borrosa, utilizando este tipo de lógica para hacer funcionar cientos de aparatos electrodomésticos (hornos, lavadoras, coches, etc.) y otros productos electrónicos de todo tipo (computadores, cámaras, etc..), alcanzando en 1992 una facturación de casi dos mil millones de dólares en este tipo de productos [Kosko 93]. Aunque la lógica borrosa se utiliza sobre todo para el diseño de controladores, existen otras aplicaciones de esta tecnología. En la tabla 9.2 se muestran algunas de ellas. APLICACIONES DE LA LÓGICA BORROSA ÁREA APLICACIONES INFORMÁTICA Computadores, desarrollo de software, procesamiento de datos. TRANSPORTES Sistemas de transmisión y frenado de automóviles, regulación del consumo. INDUSTRIA ELECTRODOMESTICOS Robots, reconocimiento de patrones (voz, texto), visión artificial, procesamiento de señales, sensores. Lavadoras, aire acondicionado, hornos. ECONOMÍA Análisis de mercados y de riesgos, estimaciones, sistemas de decisión. SIMULACIÓN Modelado de sistemas no lineales. MEDICINA Diagnóstico clínico. MICROELECTRÓNICA Fabricación de chips. CONSUMO Cámaras de video y TV. Tabla 9.2 Algunas aplicaciones de la lógica borrosa. Los motivos por los que se empieza a utilizar la lógica borrosa en los controladores se refieren, sobre todo, a su simplicidad, ya que no requiere constructores matemáticos complejos (no es preciso conocer la expresión algebraica exacta que gobierna el funcionamiento del sistema), permitiendo, en cambio, diseñar mediante la descripción del funcionamiento con lenguaje natural y facilitando también IX. Redes Neuronales y Lógica Borrosa. 9.1 las tareas de prueba y mantenimiento del sistema. Otra característica de los sistemas borrosos son su mayor suavidad en el control que en el caso de sistemas convencionales y su posible combinación con tecnologías clásicas ya establecidas y con otras más modernas, como las redes neuronales. En la figura 9.9 se muestra el funcionamiento de los sistemas de control borroso. Se pueden distinguir 3 partes fundamentales: una primera etapa de fuzzificación (emborronamiento) de los valores de entrada, otra de evaluación de reglas de control borrosas y una última de defuzzificación (desemborronamiento) para obtener valores concretos de salida. Figura 9.9 Funcionamiento de un sistema de control borroso. 1) FUZZIFICACIÓN DE LAS ENTRADAS. La fuzzificación o emborronamiento de una entrada es el proceso por el cual se calcula su grado de pertenencia a uno o a varios de los conjuntos borrosos en que se divide el rango de valores posibles para dicha entrada. Por ejemplo, si se trata de un sistema de control de la velocidad de giro de un ventilador cuya entrada es la temperatura ambiente, el rango (dominio) de posibles temperaturas se podría considerar dividido en tres conjuntos borrosos que se podrían denominar: FRÍA, que incluiría las temperaturas, por ejemplo, en el rango 5C-13C; el conjunto FRESCA, con valores desde 9C hasta 21C; el conjunto de temperatura AGRADABLE, con los valores 17C-29C; CÁLIDA, con valores 25C-37C; y el conjunto de temperatura TÓRRIDA, con valores entre 33C y 40C. FRÍA = {5..13} FRESCA = {9..21} AGRADABLE = {17..29} CALIDA = {25..37} TÓRRIDA = {33..40} Estos conjuntos pueden considerarse borrosos si se supone que los valores de temperatura que IX. Redes Neuronales y Lógica Borrosa. 9.1 contienen no pertenecen en el mismo grado al conjunto. En este caso, es evidente que una temperatura de 20C es menos FRESCA que una de 15C, con lo que la primera pertenecerá en menor grado que la segunda al conjunto de temperaturas FRESCAS. De hecho, la primera (20C) también puede considerarse como AGRADABLE, ya que pertenece a este conjunto, aunque en menor medida que otra, por ejemplo, de 23C que sería la más AGRADABLE, al ser la temperatura ambiente ideal. Como se indicó en el apartado 9.1, cuando se trabaja con conjuntos borrosos como los anteriores hay que establecer unas funciones de pertenencia de los elementos a los diferentes conjuntos; lo cual permite determinar, a partir del valor de un elemento, su grado de pertenencia al conjunto, siendo éste un valor real normalizado entre 0 (no pertenece en absoluto) y 1 (pertenece al 100%). Esta función se denota como μ(x), siendo x el valor del elemento. Las funciones de pertenencia deben definirse en base a la experiencia o la intuición o simplemente utilizando el sentido común, y suelen tener forma triangular, trapezoidal o gausiana; a diferencia de las funciones escalón que se utilizan cuando se trabaja en lógica binaria (crisp logic) con conjuntos no borrosos (crisp sets). En la figura 9.10 se muestran algunas formas posibles para la función de pertenencia a un conjunto de temperaturas AGRADABLES. Figura 9.11 Conjuntos borrosos para la temperatura. Figura 9.10 Diferentes formas de la función de pertenencia a un conjunto. Si utilizamos funciones triangulares en el ejemplo del controlador del ventilador, podríamos tener unas funciones de pertenencia para todo el dominio de posibles valores de entrada como las indicadas en la figura 9.11. IX. Redes Neuronales y Lógica Borrosa. 9.1 Según esta figura, si la temperatura ambiente, de entrada al sistema, fuese de 15C, se trataría de una temperatura totalmente FRESCA. En cambio, si fuese de 16C, sería un 83% FRESCA; mientras que 18C se podría considerar como FRESCA (en un 50%) o como AGRADABLE (en un 17%). Formalizando la notación y considerando, en general, el dominio de valores de entrada dividido en N conjuntos borrosos denominados A1, A2,..,AN, los valores que se obtienen después de la etapa de fuzzificación son los grados de pertenencia del valor de entrada x, a cada uno de estos conjuntos borrosos: μA1(x), μA2(x), .., μAN(x). En el ejemplo de las temperaturas, si x=18C, los grados de pertenencia serían (Fig. 9.11): μFRÍA(18) = 0.0 μCALIDA(18) = 0.0 μFRESCA(18) = 0.5 μTÓRRIDA(18) = 0.0 μAGRADABLE(18) = 0.17 2) EVALUACIÓN DE LAS REGLAS DE CONTROL. Para gobernar el comportamiento del sistema, el diseñador debe establecer una serie de reglas de la forma SI-ENTONCES para indicar la acción a realizar en función del conjunto al que pertenece la entrada al sistema. La forma general de una regla es: R: SI (x es A) ENTONCES (y es C) También se pueden utilizar las notaciones: R: A -> C R: (A;C) La primera parte de la regla ("SI") se denomina antecedente y contiene una o varias condiciones referidas a si cada una de las entradas del sistema pertenece a tal o cual conjunto borroso. La segunda parte ("ENTONCES"), denominada consecuente, contiene los nombres de los conjuntos borrosos a los que deben pertenecer las salidas del sistema si se cumple el antecedente correspondiente. En el caso del ejemplo del control de la velocidad de un ventilador, para poder establecer las reglas, es preciso realizar una división del dominio de posibles valores de salida, en este caso velocidades de rotación, creando una serie de conjuntos borrosos, de forma similar a como se hizo con la temperatura de entrada. En la figura 9.12 se muestran estos conjuntos para la velocidad, que se han denominado de la siguiente forma: PARADO, incluye las velocidades entre 0 y 20 rpm; LENTA, con velocidades en el rango 10 rpm-30 rpm; MEDIA = {20..40}; RÁPIDA = {30..50}; y MÁXIMA = {40..60}. IX. Redes Neuronales y Lógica Borrosa. 9.1 Figura 9.12 Conjuntos borrosos para la velocidad. Una vez establecidos los conjuntos, se pueden crear las reglas de control que determinen el tipo de velocidad en función de la temperatura. Estas reglas podrían ser: Regla 1: Regla 2: Regla 3: Regla 4: Regla 5: SI (Temperatura es FRÍA) ENTONCES (Velocidad será PARADO) SI (Temperatura es FRESCA) ENTONCES (Velocidad será LENTA) SI (Temperatura es AGRADABLE) ENTONCES (Velocidad será MEDIA) SI (Temperatura es CÁLIDA) ENTONCES (Velocidad será RAPIDA) SI (Temperatura es TÓRRIDA) ENTONCES (Velocidad será MÁXIMA) Estas reglas componen lo que se denomina Base de Reglas del Sistema. Su evaluación consiste en determinar qué regla (o reglas) se activará ante un determinado valor de entrada. Para averiguarlo se parte del grado de pertenencia de dicho valor a cada uno de los diferentes conjuntos borrosos del dominio de entrada. En el ejemplo anterior, para una temperatura de 18C, los grados de pertenencia eran μFRESCA(18)=0.5, μAGRADABLE(18)=0.17 y el resto cero; por lo que es evidente que se activarían (o dispararían) las reglas 2 y 3, ya que esa temperatura es FRESCA (50%) y AGRADABLE (17%). A cada regla Ri:(Ai;Ci) se le asocia un valor denominado peso que, en principio, coincide con el grado de pertenencia de la entrada (x) al conjunto indicado en el antecedente (μAi(x)). Este peso será el que permitirá establecer el grado de pertenencia de la salida (y) del sistema al conjunto indicado en el consecuente de la regla (μCi(y)). Regla i: SI (x es Ai) ENTONCES (y será Ci) Peso de la regla i = μAi(x) μCi(y) = Peso de la regla i = μAi(x) Si se utilizase en el antecedente de alguna regla el operador de negación, el peso de la regla sería la diferencia entre la unidad y el grado de pertenencia: Regla i: SI (x NO es Ai) ENTONCES (y será Ci) Peso de la regla i = 1 - μAi(x) IX. Redes Neuronales y Lógica Borrosa. 9.1 μCi(y) = Peso de la regla i = 1 - μAi(x) Cuando el sistema tiene varias entradas, el antecedente se compone de varias condiciones referidas a los conjuntos a los que pertenecen éstas. En el caso de dos entradas se tendrían reglas como: Regla i: SI ((x1 es Ai) Y (x2 es Bi)) Regla j: SI ((x1 es Aj) O (x2 es Bj)) ENTONCES (y será Ci) ENTONCES (y será Cj) Para calcular el peso asociado a cada una de estas reglas, se aplican los operadores producto y suma lógica borrosa presentados en el apartado 9.1. Peso Regla i = mín (μAi(x1), μBi(x2)) Peso Regla j = máx (μAi(x1), μBi(x2)) μCi(y) = Peso Regla i = mín (μAi(x1), μBi(x2)) μCi(y) = Peso Regla j = máx (μAi(x1), μBi(x2)) Si se tienen combinaciones de ambas operaciones, se aplicará el criterio por partes. Por ejemplo: SI ( ((x1 es A)Y(x2 es B)) O (x3 es A)) ENTONCES (y será C) Peso regla = max ( mín(μA(x1), μB(x2)), μA(x3)) μC(y) = Peso regla = max ( min(μA(x1), μB(x2)), μA(x3)) Finalmente, en el caso de sistemas con más de una salida, el grado de pertenencia de la salida a un conjunto se corresponderá con el mayor peso de todas las reglas en cuyo consecuente aparezca el conjunto: Regla i: SI ..... ENTONCES (y1 será C) Y (y2 será D) Regla j: SI ..... ENTONCES (y1 será C) Y (y2 será E) μC(y1) = max (Peso regla i, Peso regla j) μD(y2) = Peso regla i μE(y2) = Peso regla j Una vez ponderadas las reglas que van a gobernar el funcionamiento del sistema, se procede a la defuzzificación de las salidas. 3) DEFUZZIFICACION DE LAS SALIDAS. La defuzzificación o desemborronamiento de las salidas consiste en obtener un valor numérico para cada una de las salidas del sistema a partir de los conjuntos borrosos a los que pertenecen. En el ejemplo del ventilador se puede llegar a la conclusión, mediante la evaluación de las reglas, que la velocidad debe ser MEDIA; pero esto no es suficiente, ya que es preciso obtener un valor numérico que IX. Redes Neuronales y Lógica Borrosa. 9.1 indique la velocidad exacta a la que debe girar el ventilador. Existen varias técnicas de defuzzificación. En este apartado se describen tres de las más utilizadas, denominadas método del centroide, método del semifallo y método de la media ponderada. a) Método del centroide o centro de gravedad. Es la más utilizada. Consiste en crear, para la salida del sistema, una función de pertenencia a un nuevo conjunto obtenido como unión de aquellos a los que pertenece parcialmente el valor de salida. Esta nueva función puede calcularse mediante la suma de las funciones de pertenencia de estos conjuntos, pero multiplicadas aritméticamente por el grado de pertenencia de la salida al subconjunto, que ya fue calculado en la fase anterior de evaluación de las reglas de control. Si, por ejemplo, se han activado dos reglas (Ri y Rj), obteniéndose que la salida (y) pertenece a los conjuntos Ci y Cj en los grados dados por los pesos de las correspondientes reglas, entonces la función de pertenencia del nuevo conjunto C, unión de los anteriores sería: μC(y) = Peso Regla Ri μCi(y) + Peso Regla Rj μCj(y) Otra posibilidad sería el considerar las funciones originales simplemente limitadas superiormente por el valor de los pesos. En este caso se estaría utilizando el producto lógico borroso en lugar del producto aritmético: μC(y) = min (Peso Regla Ri, μCi(y)) + min (Peso Regla Rj, μCj(y)) En el caso del ejemplo del ventilador, si la temperatura es de 18ºC, se activaron las reglas 2 y 3, correspondientes a velocidades LENTA y MEDIA con pesos 0.5 y 0.17 respectivamente; por lo que el nuevo conjunto de valores de salida, unión de los anteriores, se calcularía sumando las funciones sombreadas en la figura 9.13(a) si se sigue el primer criterio (producto aritmético) y sumando las de la figura 9.13(b) si se utiliza el segundo (producto lógico borroso). IX. Redes Neuronales y Lógica Borrosa. 9.1 Figura 9.13 Obtención de la función de pertenencia del nuevo conjunto de valores de salida: (a) Producto aritmético. (b) Producto lógico borroso. Así, en el segundo de los casos (producto lógico borroso), si se calcula dicha suma, la función de pertenencia global sería la mostrada en la Fig. 9.14. Install Equation Editor and doubleclick here to view equation. Figura 9.14 Función de pertenencia global y centroide. Una vez obtenida la función de pertenencia global, se calcula el valor exacto de la salida como el centroide (centro de gravedad) de esta función (Fig. 9.14), mediante la expresión general: IX. Redes Neuronales y Lógica Borrosa. 9.1 Install Equation Editor and doubleclick here to view equation. En el caso de trabajar con valores de salida discretos, las integrales se podrían substituir por sumatorios en el rango de los n valores posibles para la salida: Install Equation Editor and doubleclick here to view equation. En el ejemplo del ventilador, si consideramos una función de pertenencia como la de la figura 9.14, el valor del centroide calculado es: Install Equation Editor and doubleclick here to view equation. Existe otra forma de obtener este valor, ya que puede demostrarse que la expresión anterior es equivalente a otra en la que el numerador se exprese como la suma de los productos del centroide de cada subconjunto, que al tener funciones de pertenencia simétricas coinciden con su centro geométrico, multiplicado por el área encerrada por la función; y el denominador como la suma de las áreas de ambos subconjuntos: Install Equation Editor and doubleclick here to view equation. b) Método singleton (semifallo). Consiste en calcular un promedio de los centroides de las funciones de pertenencia de los conjuntos de salida activados. Al ser funciones simétricas, los centroides coinciden con el punto medio. Para la ponderación se utilizan los pesos de las reglas activadas, o grados de pertenencia de la salida a los subconjuntos correspondientes. Install Equation Editor and doubleclick here to view equation. c) Método de la media ponderada. Se trata de un sencillo cálculo del promedio entre los valores de salida que se obtendrían para cada uno de los conjuntos borrosos multiplicados (ponderados) por el peso de la correspondiente regla o grado de pertenencia al subconjunto. IX. Redes Neuronales y Lógica Borrosa. Install Equation Editor and doubleclick here to view equation. 9.1 IX. Redes Neuronales y Lógica Borrosa. 9.1 9.5.- REDES NEURONALES COMO MEMORIAS ASOCIATIVAS BORROSAS (FAM). En 1987 [Kosko 87a] B. Kosko propuso un modelo de red neuronal que permitiera ser utilizado como memoria asociativa para el almacenamiento de reglas de control de un sistema borroso. Esta red, también conocida como FAM (Fuzzy Associative Memory), tiene una arquitectura como la indicada en la figura 9.15. Figura 9.15 Arquitectura de una red FAM. La topología de esta red es semejante a la de otras utilizadas también como memorias asociativas, denominadas BAM (Bidirectional Associative Memory) [Kosko 88] y TAM (Temporal Associative Memory) [Amari 72]. Estas redes almacenan ("aprenden") parejas de vectores (A1;C1), (A2;C2), ..., (AP;CP) y, además de permitir posteriormente recuperar un vector Ci a partir de un incompleto Ai de entrada, también permiten hacerlo en sentido contrario, es decir, recuperar un vector Ai a partir de una entrada Ci incompleta. En los tres casos el aprendizaje es OFF-LINE de tipo Hebbiano. En la tabla 9.3 se muestra el proceso de ajuste de los pesos durante el entrenamiento cuando se presentan P parejas de vectores del tipo (Ak,Ck)= (a1(k),..,aN(k)), (c1(k),..,cM(k)) que deben ser almacenados en la red. En el caso de la red TAM, las parejas son del tipo (Ak,Ak+1), ya que se trata de una red semejante a un autómata finito que debe "aprender" una secuencia temporal de patrones, de tal forma que durante su funcionamiento, dado un patrón de entrada, es capaz de generar como salida los siguientes de la serie que tiene almacenada. Por otra parte, la red FAM sólo almacena una pareja (A,C), es decir el valor de P en ese caso es 1. Este tipo de redes pueden considerarse compuestas por dos subredes independientes, con conexiones feed-foward, si se tiene en cuenta que cada una de las capas de neuronas puede funcionar como entrada o como salida (Fig. 9.16). Cuando se utiliza la capa A como entrada, se trata de una red asociativa que, a través de los pesos W, genera como salida C el patrón asociado al de entrada (Fig. 9.16(a)). Cuando la capa de entrada es C, se genera como salida a través de los pesos V el patrón asociado al de entrada B (Fig. 9.16(b)). IX. Redes Neuronales y Lógica Borrosa. 9.1 Figura 9.16 Subredes que componen los modelos BAM, TAM y FAM. En al tabla 9.3 se muestra el mecanismo de aprendizaje de este tipo de redes asociativas. Ak y Ck son los patrones k-ésimos que debe aprender a asociar la red y W la matriz de pesos entre las neuronas de la capa A y la C.: Install Equation Editor and doubleclick here to view equation. Ak = (a1(k), a2(k), ..., aN(k)) Ck = (c1(k), c2(k), ..., cM(k)) RED BAM W wij Install Equation Editor an Install Equation Editor and d click here to view equatio click here to view equation. NEURONAS CAPA A NEURONAS CAPA C N M IX. Redes Neuronales y Lógica Borrosa. 27 TAM FAM 9.1 28 Install Equation Editor an Install Equation Editor and d click here to view equatio click here to view equation. 29 30 N N Install Equation Editor an Install Equation Editor and d click here to view equatio click here to view equation. N M 31 32 Tabla 9.3 Aprendizaje en las redes BAM, TAM y FAM. Los pesos de las conexiones de las neuronas de la capa C hacia las de la A son iguales a los de las conexiones de A hacia C. Es decir vij=wji, con lo que la matriz de pesos V coincidiría con la transpuesta de W: V=WT. Una vez finalizado el "aprendizaje", se pueden utilizar estas redes como memorias asociativas para recuperar la información que almacenan. Para ello habrá que presentar a la entrada de la red un vector A ó C, que se corresponda exacta o parcialmente con alguno de los utilizados en el entrenamiento. La red generará como salida el correspondiente vector C ó A que internamente está asociado al de entrada. Este funcionamiento se refleja en la tabla 9.4, donde se muestran las entradas netas a las neuronas de salida en ambos casos (cuando se introduce el valor de A y se quiere recuperar C y viceversa) y los correspondientes valores de salida. Puede comprobarse que las funciones de activación de las neuronas en las redes BAM y TAM son de tipo escalón, mientras que en la red FAM es de tipo lineal, con lo que la salida coincide con la entrada neta. IX. Redes Neuronales y Lógica Borrosa. RED netcj NETC scj(t+1) NETA Install Equation Install Equation Edito click here to vie click here to view equ BAM TAM AW AW 34 35 AW CWT Install Equation Install Equation Edito click here to vie click here to view equ CWT = 38 39 A'WT 42 netai sai(t+1) Install Equation E Install Equation Edito click here to view click here to view equ Install Equation Editor and doubleclick here to view equation. FAM 9.1 CWT 36 37 Install Equation E Install Equation Edito click here to view click here to view equ 40 41 Install Equation Editor and doubleclick here to view equation. 43 Tabla 9.4 Funcionamiento de las redes BAM, TAM y FAM. En el caso de la red TAM, el funcionamiento consiste en presentar la entrada A y obtener una salida A' que será el patrón siguiente a A en el orden en que fueron "aprendidos". Si se quiere seguir repitiendo la secuencia, se introducirá este valor A' a través de la entrada C (C=A'), y en la salida se obtiene el vector A'' siguiente en la serie y así sucesivamente. En cuanto a la red FAM, se trata de una memoria asociativa que utiliza el operador lógico borroso denominado "composición" () tanto en el aprendizaje como durante su funcionamiento (Tablas 9.3 y 9.4). Esta red es útil para almacenar una regla de control borrosa como las descritas en el apartado anterior: Regla R: SI (x es A) ENTONCES (y será C) Durante la fase de entrenamiento se aplica el algoritmo de aprendizaje Hebbiano borroso (Tabla 9.4) para registrar en los pesos de la red las funciones de pertenencia (μA(x),μC(x)) a los conjuntos borrosos A y C. Para ello, hay previamente que expresar de forma discreta estas funciones continuas, ya que en los pesos se registrarán de esa forma. Así, en el caso del ejemplo planteado en el apartado anterior sobre el control borroso de un ventilador, se podría considerar discretizado el rango de temperaturas posibles, tomando un número limitado de valores para definir las funciones de pertenencia. Este número de valores coincidirá con el de neuronas de entrada de la red FAM. En la figura 9.17(a) se muestra una posible discretización de las funciones, considerando únicamente las temperaturas 15C, 18C, 21C, 24C, 27C y 30C. Para simplificar los cálculos, se van a considerar sólo 3 conjuntos borrosos (FRESCA, AGRADABLE, CALIDA) y un rango de 15C a 31C. En cuanto a los conjuntos borrosos de la velocidad del ventilador, sólo se van a considerar tres (LENTA, MEDIA, RAPIDA) y un rango de valores posibles entre 20 y 40 rpm, discretizado en los valores 20, 25, 30, 35 y 40 rpm. (Fig. 9.17(b)). Por tanto, los conjuntos borrosos estarían formados por los siguientes valores discretos: * TEMPERATURA: FRESCA={15,18,21} AGRADABLE={18,21,24,27} CALIDA={27,30} IX. Redes Neuronales y Lógica Borrosa. * VELOCIDAD: LENTA={20,25,30} MEDIA={20,25,30,35,40} 9.1 RAPIDA={30,35,40} Y las reglas de control borroso serían: Regla 1: SI (Temperatura es FRESCA) ENTONCES (Velocidad será LENTA) Regla 2: SI (Temperatura es AGRADABLE) ENTONCES (Velocidad será MEDIA) Regla 3: SI (Temperatura es CALIDA) ENTONCES (Velocidad será RAPIDA) Figura 9.17 Conjuntos borrosos discretizados para (a) las temperaturas y (b) las velocidades. Si se desea utilizar una red FAM (Fig. 9.18) para almacenar una de estas reglas, por ejemplo la 2, se procederá de la siguiente forma: se crean los vectores A y C para registrar la forma de las funciones de pertenencia del conjunto del antecedente (temperatura AGRADABLE) y del consecuente (velocidad MEDIA) respectivamente. Estos vectores contienen los valores de las correspondientes funciones para cada una de las temperaturas y velocidades en que se han discretizado estos dominios. En el caso de la temperatura, puede comprobarse a través de la figura 9.17(a) que estos valores son: μAGRADABLE(15)=0.0 μAGRADABLE(24)=0.83 μAGRADABLE(18)=0.17 μAGRADABLE(27)=0.33 μAGRADABLE(21)=0.67 μAGRADABLE(30)=0.0 Para las velocidades, según la figura 9.17(b), los grados de pertenencia de los valores discretos al conjunto de velocidad MEDIA serían: μMEDIA(20)=0.0 μMEDIA(25)=0.62 μMEDIA(30)=1.0 μMEDIA(35)=0.62 μMEDIA(40)=0.0 IX. Redes Neuronales y Lógica Borrosa. serán: 9.1 Por tanto, los vectores A y C que se utilizarán en la fase de aprendizaje de la red FAM A = (a1, a2, a3, a4, a5, a6) = (0, 0.17, 0.67, 0.83, 0.33, 0) C = (c1, c2, c3, c4, c5) = (0, 0.62, 1, 0.62, 0) Figura 9.18 Red FAM para almacenar una regla de control. Ya se puede aplicar al algoritmo de aprendizaje Hebbiano borroso indicado en la tabla 9.3 para calcular los pesos de la red FAM: Install Equation Editor and doubleclick here to view equation. wji= min (ai, cj) Install Equation Editor and doubleclick here to view equation. IX. Redes Neuronales y Lógica Borrosa. 9.1 Una vez establecidos los pesos, ya se puede utilizar la red como memoria asociativa, siendo su funcionamiento el descrito por la siguiente expresión borrosa: C´= EA W En este caso se está aplicando un vector de entrada EA=(a1,a2,a3,a4,a5,a6) en las neuronas de la capa de entrada y se obtiene, propagando la entrada a través de las conexiones con pesos W, un vector C´=(c1,c2,c3,c4,c5) en las neuronas de la capa de salida. La utilidad de este tipo de redes se pone de manifiesto si se emplean varias de ellas para formar la base de reglas de un sistema de control borroso. Se usarían K redes FAM, una para cada regla del tipo Regla i: SI (x es Ai) ENTONCES (y será Ci), todas ellas con N neuronas en la capa de entrada (que en este caso sería Ai) y M en la capa de salida (Ci) (Fig. 9.19). Figura 9.19 Esquema funcional de un controlador borroso basado en redes neuronales. De esta forma, dado un valor de entrada (x) al sistema, se utilizan las K redes FAM para evaluar las correspondientes reglas, para lo cual se debe añadir a la salida una nueva capa de M neuronas (denominada SUM en la Fig. 9.19) con función de activación lineal (Salida neurona = Entrada neta), que reciba los subconjuntos borrosos Ci' extraídos de cada red FAMi y realice la suma de todos ellos para obtener un conjunto global, unión de los anteriores, que permita, posteriormente, utilizando alguna de las conocidas técnicas de defuzzificación, calcular el valor concreto de salida (y) del sistema. Si se utiliza el método del centroide o centro de gravedad, al trabajar con valores discretos, la expresión matemática para obtener el valor de la salida sería: Install Equation Editor and doubleclick here to view equation. Siendo SCi el grado de pertenencia de la muestra i-ésima del rango de valores discretos IX. Redes Neuronales y Lógica Borrosa. 9.1 en que se ha dividido el dominio de salida al nuevo conjunto global C: SCi = μC(yi) Este valor coincidirá con la salida de la neurona i de la nueva capa de neuronas (SUM) que se ha añadido a la batería de redes FAM (Fig 9.20). Figura 9.20 Estructura del módulo de evaluación de reglas de control borrosas. En el caso del controlador de la velocidad de un ventilador en función de la temperatura, para poder comprobar qué velocidad habría que aplicar cuando la temperatura es, por ejemplo, de 18C, habrá que terminar de diseñar el resto de redes FAM que almacenan las reglas, lo cual se haría de igual forma a como se ha diseñado la red que almacenaba la regla que relacionaba la temperatura AGRADABLE con la velocidad MEDIA (FAM2). IX. Redes Neuronales y Lógica Borrosa. 9.1 Los vectores de entrenamiento (Ai,Bi), que representan los conjuntos borrosos de temperatura y velocidad son los indicados en la tabla 9.5. REGLA i: SI (x es Ai) ENTONCES (y será Ci) R1: A1=FRESCA C1=LENTA R2: A2=AGRADABLE C2=MEDIA R3: A3=CALIDA C3=RAPIDA Ai Ci (1,0.5,0,0,0,0) (1,0.62,0,0,0) (0,0.17,0.67,0.83,0.33,0) (0,0,0,0,0.33,0.83) (0,0.62,1,0.62,0) (0,0,0,0.62,1) Tabla 9.5 Reglas y funciones de pertenencia de los conjuntos borrosos del ejemplo. Los pesos (W2) de la red FAM2 ya se calcularon anteriormente. Los de las redes FAM1 y FAM3 se obtendrían de igual forma: Install Equation Editor and doubleclick here to view equation. Install Equation Editor and doubleclick here to view equation. Los pesos de las conexiones entre las neuronas de salida de la batería de redes FAM y las neuronas de la capa final (SUM) del módulo de evaluación de reglas se van a fijar a valor "1"; lo que quiere decir que se va a dar la misma importancia a todas las reglas almacenadas. Una vez calculados todos los pesos de la red, se puede comprobar el funcionamiento global del sistema de control, analizando qué salida generaría ante una entrada concreta. Por ejemplo, se puede suponer una temperatura de entrada de 18C (x=18). En primer lugar este valor pasaría al módulo de fuzzificación de la figura 9.19. La función de dicho módulo, en este caso, será la de generar un vector de entrada a la red donde se indique la temperatura discreta más cercana al valor de entrada. En este ejemplo, los valores discretos posibles que se habían considerado para la temperatura eran 15C, 18C, 21C, 24C, 27C y 30C, por lo que, como x=18, es evidente que el más cercano es precisamente el mismo valor. En el vector que se genera existirán tantas componentes como temperaturas posibles (en este caso 6), número que será igual al de neuronas de la capa de entrada de las redes FAM. Las componentes de este vector serán todas cero excepto la que coincida, o sea más cercana, con el valor de entrada (x). En el ejemplo, si x=18, la componente con valor "1" será la segunda del vector: EA = ( 0 1 0 0 0 0 ) A continuación, este vector se aplica como entrada a todas las redes FAM de la Base de Reglas del sistema de control borroso, obteniéndose las siguientes salidas en estas redes: C1' = EA W1 = ( 0.50, 0.50, 0.00, 0.00, 0.00 ) C2' = EA W2 = ( 0.00, 0.17, 0.17, 0.17, 0.00 ) IX. Redes Neuronales y Lógica Borrosa. 9.1 C3' = EA W3 = ( 0.00, 0.00, 0.00, 0.00, 0.00 ) Cada uno de estos vectores representa la función de pertenencia de los subconjuntos borrosos a los que pertenecerá la salida, en este caso velocidad, del sistema (Fig. 9.21). El primero de ellos representa un subconjunto de velocidad LENTA, al que pertenecerá en un 50% el valor final de la velocidad al ser la temperatura de 18C un 50% FRESCA; el segundo es de velocidad MEDIA, al que pertenecerá en un 17% por ser un 17% AGRADABLE, y el tercero es RAPIDA, al que no pertenecerá en absoluto la velocidad del ventilador cuando la Figura 9.21 Subconjuntos borrosos para la velocidad cuando la temperatura es de 18C. temperatura es de 18C. La salida total de la red se obtiene mediante la suma de estos tres vectores multiplicados por los pesos de las conexiones entre las neuronas de salida de las subredes FAM y las de la capa de salida (SUM) de la red, que en este caso tenían el valor "1" al considerar de igual importancia todas las reglas: SC = C1'1 + C2'1 + C3'1 = ( 0.50, 0.67, 0.17, 0.17, 0.00) Este vector representa la función de pertenencia del conjunto global de velocidades posibles (Fig. 9.22). μ(20) = 0.50 μ(25) = 0.67 μ(30) = 0.17 μ(35) = 0.17 μ(40) = 0.00 Figura 9.22 Función de pertenencia global y centroide. IX. Redes Neuronales y Lógica Borrosa. 9.1 El último módulo del sistema se encarga de la defuzzificación de la salida. Si el método es el del centroide, la velocidad de salida obtenida es: Install Equation Editor and doubleclick here to view equation. Para concluir con este apartado, indicar que las redes FAM también pueden utilizarse en sistemas de control con algunas entradas que utilizan reglas de control con varios antecedentes. Por ejemplo, en el caso de 2 entradas (x1 y x2), se tendrán reglas de la forma: Regla i: SI (x1 es Ai) Y (x2 es Bi) ENTONCES (y será Ci) Regla j: SI (x1 es Aj) O (x2 es Bj) ENTONCES (y será Cj) En ambos casos, las redes FAMi y FAMj que almacenan las reglas Ri y Rj estarían compuestas por dos subredes, FAMAiCi y FAMBiCi (Fig.9.23(a)) en el caso de la red FAMi; y FAMAjCj y FAMBjCj (Fig.9.23(b)) en el caso de la red FAMj, con los pesos siguientes: Install Equation Editor and doubleclick here to view equation. Figura 9.23 Almacenamiento de reglas con antecedente compuesto: (a) Ri: (Ai Y Bi)-->Ci. (b) Rj: (Aj O Bj)-->Cj. A la salida de estas subredes FAM existe una nueva capa de neuronas borrosas con pesos unitarios y con entradas netas que se obtienen aplicando el operador producto lógico borroso () a cada una de las sinapsis de entrada a la neurona si en el antecedente de la regla se utilizó la conjunción (Y); o el operador suma borrosa () si el antecedente de la regla es disyuntivo (O). Así, cuando se presente a la red sendos vectores EA y EB asociados a las entradas x1 y x2 respectivamente, los vectores de salida que se obtienen en las redes que almacenan las reglas Ri IX. Redes Neuronales y Lógica Borrosa. 9.1 y Rj serán: Install Equation Editor and doubleclick here to view equation. Install Equation Editor and doubleclick here to view equation. Finalmente, si en el sistema de control existieran varias salidas, y en la Base de Reglas hubiera reglas con consecuente compuesto, dichas reglas se podrían descomponer en varias con consecuente simple. En el caso de las regla: Regla i: SI antecedente ENTONCES (y1 será Ci) Y (y2 será Di) Se descompondría en las dos siguientes: Regla i1: SI antecedente ENTONCES (y1 será Ci) Regla i2: SI antecedente ENTONCES (y2 será Di) Que se almacenarán en dos redes FAM simples. 9.6.- GENERACIÓN NEURONAL DE REGLAS DE CONTROL BORROSO. Como se indicó en el los capítulos 6 (Resonancia Adaptativa) y 7 (Modelo de Kohonen), las redes neuronales con aprendizaje competitivo sin supervisión permiten establecer clases o categorías de datos (clusterización), así como el prototipo o representante de cada una de ellas. En base a esta idea, se podrían utilizar redes para establecer las reglas que gobiernan el funcionamiento de un sistema de control borroso [Kosko 92], ya sea uno de nuevo diseño o alguno ya existente del que se desea averiguar las reglas que gobiernan su funcionamiento. Para ello, será necesario disponer de un gran número de datos a partir de los cuales la red pueda establecer las relaciones y, en definitiva, las categorías que, en este caso, son las reglas de control. Para el caso del sistema de control de la velocidad de un ventilador en función de la temperatura ambiente descrito en los apartados anteriores, el conjunto de datos de entrenamiento de la red estaría compuesto por el mayor número posible de parejas del tipo (Temperatura, Velocidad), que indicarían la velocidad de giro del ventilador más apropiada ante una temperatura determinada. La red neuronal, que podría ser de Kohonen (Fig. 9.24), tendría dos neuronas de entrada para los valores de temperatura y velocidad, y tantas de salida como reglas se quieran generar, por ejemplo 5 (reglas: FRÍA-PARADO, FRESCALENTA, AGRADABLE-MEDIA, CALIDA-RAPIDA, TÓRRIDA-MÁXIMA). IX. Redes Neuronales y Lógica Borrosa. 9.1 Figura 9.24 Red de Kohonen para establecer 5 reglas que relacionan la velocidad del ventilador con la temperatura ambiente. Cuando la red "aprende" todas las parejas, ha establecido a qué clase (regla) pertenece cada una, registrando en sus pesos los centroides o representantes de cada clase. Si se realizase una representación gráfica en el plano, con ejes para temperatura y velocidad divididos en los conjuntos borrosos correspondientes a ambos dominios y dibujando sobre el plano los representantes o prototipos de las 5 clases, se establecerían fácilmente las reglas como aquellas que relacionan los conjuntos de temperatura y velocidad situados, respectivamente, en la vertical y horizontal de cada prototipo obtenido (Fig. 9.25). IX. Redes Neuronales y Lógica Borrosa. 9.1 Figura 9.25 Prototipos obtenidos y distribución de los patrones de entrenamiento de la red. Si se desea además tener información sobre la importancia de cada regla en el sistema, se pueden utilizar más neuronas de salida que el número de reglas. De esta forma aparecerán más prototipos o centroides repartidos por el plano, que permitirán averiguar cuáles son las reglas más "fuertes" (más frecuentes), que serán aquellas que incluyan más prototipos en la vertical y horizontal de los conjuntos (antecedente y consecuente) relacionados. Así, si el número total de clases (neuronas de salida) es N y el número de prototipos que establecen la misma regla i es Ni, entonces el peso o importancia de esa regla podría considerarse como Ni/N. Además, si se almacenasen las reglas en redes FAM como en la figura 9.19, estos valores referidos a la frecuencia de uso de las reglas podrían servir como los valores de los pesos que ponderaban la "importancia" de cada regla en aquellos sistemas. Es decir, los pesos de las conexiones entre las salidas de las neuronas de la red FAMi y las de la capa encargada de sumar las salidas de todas las redes de reglas. También, mediante este procedimiento, se podrían extraer las reglas de un controlador ya construido, generando aleatoriamente entradas y registrando las correspondientes salidas, acumulando, de esta forma, un conjunto de patrones de entrenamiento que posteriormente, con la ayuda de la red, permitirán estimar las reglas que fueron utilizadas en el diseño del IX. Redes Neuronales y Lógica Borrosa. 9.1 sistema. 9.7.- AJUSTE NEURONAL DE FUNCIONES DE PERTENENCIA BORROSAS. Una posible utilización de las redes neuronales en sistemas borrosos es el ajuste o afinado de las funciones de pertenencia a conjuntos borrosos. Para ello se podrían caracterizar estas funciones mediante algunos parámetros (por ejemplo si son funciones triangulares, mediante la base y la altura) y utilizar una red sin supervisión, por ejemplo ART2 o Kohonen, que permita obtener un representante de la función de pertenencia a través de diferentes ejemplares de la misma ofrecidos por varios especialistas diferentes. Por ejemplo, en la figura 9.26 se muestra a la derecha la función triangular (μ) generada por una red de Kohonen, con una neurona de salida y dos de entrada para los extremos del triángulo que son los parámetros de la función cuyo valor máximo es "1" en todos los casos, a partir de las tres funciones de la izquierda (μ1,μ2,μ3). Puede comprobarse que los nuevos extremos coinciden con los centros de gravedad de los originales. Figura 9.26 Ajuste de la función de pertenencia mediante una red de Kohonen. En este caso se ha ajustado una función de pertenencia cuya forma es conocida, sin embargo, también existe la posibilidad de utilizar una red neuronal con aprendizaje supervisado, para que la propia red establezca la forma de dicha función [Nauck 93]. Se podría utilizar, por ejemplo, una red Backpropagation con tantas neuronas de entrada como entradas al sistema (x1,..,xN) y tantas salidas como diferentes conjuntos borrosos (C1,..,CK) a los que pueden pertenecer las entradas. La red se entrenaría presentando diferentes valores de entrada que activarían (pondrían a "1") las salidas correspondientes a los conjuntos a los que pertenece cada valor (Fig. 9.27). IX. Redes Neuronales y Lógica Borrosa. 9.1 Figura 9.27 Perceptrón multicapa para establecer funciones de pertenencia. Después de la fase de aprendizaje, se dispone de una red que, aunque en principio, se ha entrenado para que genere valores binarios ("0" si pertenece al conjunto y "1" si no es así), al disponer de capas de neuronas ocultas, en los correspondientes pesos ocultos la red ha establecido unas formas concretas para las funciones de pertenencia, de tal forma que ante un nuevo valor de entrada, generará como salida un valor entre 0 y 1 que representa el grado de pertenencia al conjunto Ci representado por esa salida. Puede comprobarse que si se entrena una red con una sola entrada (x) con valores posibles en el rango [0,.6] dividido en tres conjuntos C1={0..2}, C2={1..5} y C3={4..6}, utilizando como patrones de entrenamiento los valores de x: 0,1,2,3,4,5 y 6 para los cuales la red debe "aprender" las salidas (C1, C2, C3): (1,0,0), (1,1,0), (1,1,0), (0,1,0), (0,1,1), (0,1,1) y (0,0,1) respectivamente, las funciones de pertenencia generadas por la red son las indicadas en la figura 9.28. Figura 9.28 Funciones de activación generadas por la red. IX. Redes Neuronales y Lógica Borrosa. 9.1 IX. Redes Neuronales y Lógica Borrosa. 9.1.- CONCEPTOS BÁSICOS SOBRE LÓGICA BORROSA. 9.2.- NEURONAS BORROSAS Y APRENDIZAJE BORROSO. 9.2.- COMBINACIÓN DE REDES NEURONALES Y LÓGICA BORROSA. 9.3.- IMPLEMENTACIÓN NEURONAL DE MAPAS COGNITIVOS BORROSOS. 9.4.- SISTEMAS DE CONTROL BORROSO. 9.5.- IMPLEMENTACIÓN NEURONAL DE SISTEMAS DE CONTROL BORROSO. 9.6.- GENERACIÓN NEURONAL DE REGLAS DE CONTROL BORROSAS. 9.7.- AJUSTE NEURONAL DE FUNCIONES DE PERTENENCIA BORROSAS. 9.1 Bibliografía referenciada. 1 BIBLIOGRAFIA A continuación se indican las referencias bibliográficas de los documentos a los que se hace referencia en el libro. [Ackley 85] D.Ackley, G.Hinton y T.Sejnowski. "A Learning Algorithm for Boltzmann Machines". Cognitive Science, 9, pp. 147-169, 1985. Reimpreso en el texto "Neurocomputing" (J.Anderson y E.Rosenfeld ed.), MIT Press, 1988. [AEIA 91] "Redes Neuronales Artificiales". XIII Escuela de Verano de Informática, Isla de A Toxa. Asociación Española de Informática y Automática (AEIA), 1991. [Almeida 87] L.Almeida. "A learning rule for asynchronous perceptrons with feedback in a combinatorial environment". Proceedings of the IEEE First International Conference on Neural Networks. Vol.II, pp. 609-618, 1987. [Amari 72] S.Amari. "Learning patterns and pattern sequences by self-organizing nets of threshold elements". IEEE Transactions on Computers, 21, pp. 1197-1206, 1972. [Anderson 68] J.Anderson. "A memory model using spatial correlation functions". Kybernetik, 5, pp. 113-119, 1968. [Anderson 77] J.Anderson, J.Silverstein, S.Ritz y R.Jones. "Distinctive features, categorical perception and probability learning: some applications on a neural model". Psychological Review, 84, pp. 413-451, 1977. [Angeniol 88] B.Angeniol, G.de la Croix y J.le Texier. "Self-organizing feature maps and the travelling salesman problem". Neural Networks, 1, pp. 289-293, 1988. [Arai 91] T.Arai y otros. "Self-Organizing QRS-Complex Recognition by Neural Networks". Proceedings of the 13th Annual International Conference of the IEEE Engineering in Medicine and Biology Society, Vol.13, No.2, 1991. [Barron 93] J.J.Barron. "Putting Fuzzy Logic into Focus". BYTE, pp. 111-118, Abril, 1993. [Barto 83] A.Barto, R.Sutton y C.Anderson. "Neuron-like adaptive elements that can solve difficult learning control problems". IEEE Transactions on Systems, Man & Cybernetics, 13, pp. 834-846, 1983. [Barto 85] A.Barto y P.Anandan. "Pattern recognizing stochastic learning automata". IEEE Transactions on Systems, Man & Cybernetics, 15, pp. 360-375, 1985. [Bortolan 90] G.Bortolan, R.Degani y J.Willems. "Neural Networks for ECG Classification". Proceedings of the IEEE Conference on Computers in Cardiology, pp. 269-272, Chicago, 1990. [Brigham 74] E.O.Brigham. "The Fast Fourier Transform". Ed. Prentice-Hall, 1974. [Carpenter 86] G.Carpenter y S.Grossberg. "Absolutely stable learning of recognition codes by a self- Bibliografía referenciada. 1 organizing neural network". American Institute of Physics (AIP) Conference Proceedings 151: Neural Networks for Computing, pp. 77-85, 1986. [Carpenter 87] G.Carpenter y S.Grossberg. "ART2: Self-organization of stable category recognition codes for analog input patterns". Proceedings of the IEEE First International Conference on Neural Networks. Vol.II, pp. 727-736, 1987. [Carpenter 88] G.Carpenter y S.Grossberg. "The ART of Adaptive Pattern Recognition by a SelfOrganizing Neural Network". IEEE Computer, pp. 77-88, Marzo, 1988. [Casaleggio 90] A.Casaleggio, M.Morando y S.Ridella. "Neural Networks for Automatic Anomalous QRS Complex Detection". Proceedings of the IEEE Conference on Computers in Cardiology, pp. 553556, Chicago, 1990. [Caudill 89] M.Caudill. "Neural Network Primer". AI Expert. pp. 61-67, Agosto, 1989. [DARPA 88] DARPA Neural Network Study. Ed. AFCEA Press, Washington, 1988. [Dassen 90] W.Dassen y otros. "A Neural Network to Differentiate Wide-QRS Tachycardias". Proceedings of the IEEE Conference on Computers in Cardiology, pp. 287-290, Chicago, 1990. [Dubois 80] D.Dubois y H.Prade. "Fuzzy Sets and Systems: Theory and Applications. Ed. Academic Press, 1980. [Eberhart 90] R.C.Eberhart y R.W.Dobbins (editores). "Neural Networks PC Tools: A Practical Guide". Ed. Academic Press, 1990. [Freeman 91] J.A.Freeman y D.M.Skapura. "Neural Networks. Algorithms, Applications and Programming Techniques". Ed. Addison-Wesley, 1991. Versión española: "Redes Neuronales. Algoritmos, Aplicaciones y Técnicas de Programación", Ed. Díaz de Santos, 1993. [Freeman 94] J.A.Freeman. "Simulating Neural Networks with Mathematica". Ed. AddisonWesley,1994. [Fu 86] Y.Fu y P.W.Anderson. "Application of Statistical Mechanics to NP-Complete Problems in Combinatorial Optimization". Journal of Physics, A19, pp. 1605-1620, 1986. [Fukushima 75] K.Fukushima. "Cognitron: A self-organizing multilayered neural network". Biological Cybernetics, 20, pp. 121-136, 1975. [Fukushima 80] K.Fukushima. "Neocognitron: A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position". Biological Cybernetics, 36, pp. 193-202, 1980. [Fukushima 83] K.Fukushima, S.Miyake y T.Ito. "Neocognitron: A neural network model for a mechanism of visual pattern recognition". IEEE Transactions on Systems, Man & Cybernetics, 13, pp. 826-834, 1983. Reimpreso en el texto "Artificial Neural Networks: Theoretical Concepts" (V.Vemuri ed.), pp. 136-144, IEEE Computer Society Press Technology Series, 1988. Reimpreso en el texto "Neurocomputing" (J.Anderson y E.Rosenfeld ed.), MIT Press, 1988. [Geman 84] S.Geman y D.Geman. "Stochastics Relaxation, Gibbs Distribution and the Bayesian Restoration of Images". IEEE Trans. on Pattern Analysis and Machine Inteligence, Vol.6, pp. 614-634, Noviembre, 1984. Bibliografía referenciada. 1 [Glover 87] D.Glover. "An Optical Fourier/Electronic Neurocomputer Automated Inspection System. Proceedings of the IEEE First International Conference on Neural Networks, Vol.1, pp. 569-576, San Diego, 1987. [Grant 86] P.Grant, J.Sage. "A Comparison of Neural Network and Matched Filter Processing for Detecting Lines in Images". AIP Conference Proceedings 151: Neural Networks for Computing, pp. 194-199, 1986. [Grossberg 68] S.Grossberg. "Some nonlinear networks capable of learning a spatial pattern of arbitrary complexity". Proceedings of the National Academy of Sciences, 59, pp. 368-372, 1968. [Grossberg 73] S.Grossberg. "Contour enhancement, short-term memory and constancies in reverberatring networks". Studies in Applied Mathematics, 52, pp. 217-257, 1973. [Grossberg 80] S.Grossberg. "How Does the Brain Buid a Cognitive Code?". Psychological Review, 87, pp. 1-51, 1980. Reimpreso en el texto "Neurocomputing" (J.Anderson y E.Rosenfeld ed.), MIT Press, 1988. [Grossberg 82] S.Grossberg. "Studies of Mind and Brain: Neural Principles of Learning , Perception, Development, Cognition and Motor Control". Ed. Reidel Press, Amstermdam, 1982. [Grossberg 85] S.Grossberg y E.Mingolla. "Neural Dynamics of Form Perception: Boundary Completion, Illusory Figures and Neon Color Spreading". Psychological Review, 92, pp. 173-211, 1985. [Gupta 92] M.M.Gupta. "Fuzzy Logic and Neural Networks". Proceedings of the 2nd International Conference on Fuzzy Logic and Neural Networks IIZUKA'92, pp.157-160, 1992. [Gutzmann 87] K.Gutzmann. "Combinatorial Optimization Using a Continuous State Boltzmann Machine". Proceedings of the IEEE First Int. Conf. on Neural Networks, Vol.3, pp. 721-734, 1987. [Hayashi 92] Y.Hayashi, J.J.Buckley y E.Czogala. "Direct Fuzzification of Neural Network and Fuzzified Delta Rule". Proceedings of the 2nd International Conference on Fuzzy Logic, Neural Nets and Soft Computing IIZUKA'92, pp. 73-76, 1992. [Hebb 49] D.Hebb. "The organization of behavior". Ed. John Wiley & Sons, 1949. (Reimpreso parcialmente en el texto "Neurocomputing" (J.Anderson y E.Rosenfeld ed.), MIT Press, 1988). [Hecht-Nielsen 87] R.Hecht-Nielsen. "Counterpropagation networks". Proceedings of the IEEE First International Conference on Neural Networks. Vol.II, pp. 19-32, 1987. [Hecht-Nielsen 88a] R.Hecht-Nielsen. "Neurocomputing: Picking the Human Brain". IEEE Spectrum, 25, pp. 36-41, Marzo, 1988. Reimpreso en el texto "Artificial Neural Networks: Theoretical Concepts" (V.Vemuri ed.), pp. 13-18, IEEE Computer Society Press Technology Series, 1988. [Hecht-Nielsen 88b] Hecht-Nielsen Neurocomputer Corporation. "ECG Processing on ANZA Neurocomputer". Descrito por B.Soucek en el texto "Neural and Concurrent Real-Time Systems", pp. 107-109, Ed. John Wiley & Sons, 1989. [Hecht-Nielsen 88c] R.Hecht-Nielsen. "Applications of Counterpropagation Networks". Neural Networks, 1, pp. 131-140, 1988. Bibliografía referenciada. 1 [Hertz 91] J.Hertz, A.Krogh y R.G.Palmer. "Introduction to the Theory of Neural Computation". Ed. Addison-Wesley, 1991. [Hilera 94] J.R.Hilera, M.Mazo y V.J.Martínez. "Neural Networks for ECG Compression and Classification". Proceedings of the 3rd International Conference on Fuzzy Logic, Neural Nets and Soft Computing IIZUKA'94, Japón, 1994. [Hinton 84] G.Hinton, D.Ackley y T.Sejnowski. "Boltzmann machines: Constraint satisfaction networks than learn". Carnegie-Mellon University, Departament of Computer Science Technical Report (CMUCS-84-119), 1984. [Hopfield 82] J.Hopfield. "Neural Networks and physical systems with emergent colective computational abilities". Proceedings of the National Academy of Sciences, 79, pp. 2554-2558, 1982. Reimpreso en el texto "Neurocomputing" (J.Anderson y E.Rosenfeld ed.), pp. 460-464, MIT Press, 1988. [Hopfield 84] J.Hopfield. "Neurons with graded response have collective computational properties like those of two-state neurons". Proceedings of the National Academy of Sciences, 81, pp. 3088-3092, 1984. Reimpreso en el texto "Neurocomputing" (J.Anderson y E.Rosenfeld ed.), pp. 579-584, MIT Press, 1988. Reimpreso en el texto "Artificial Neural Networks: Theoretical Concepts" (V.Vemuri ed.), pp. 8286, IEEE Computer Society Press Technology Series, 1988. [Hopfield 85] J.Hopfield, D.Tank. "Neural Computation of Decisions in Optimization Problems". Biological Cybernetics, 52, pp. 141-152, 1985. [Isasi 93] P.Isasi. "Aprendizaje no Supervisado: Redes de Kohonen". Incluido en el texto "Redes Neuronales Artificiales: Fundamentos y Aplicaciones" (I.Olmeda y S.Barba-Romero ed.), pp. 83-101, Universidad de Alcalá de Henares, 1993. [Iwata 89] A.Iwata, Y.Nagasaka y N.Suzumura. "A Digital Holter Monitoring System with Dual 3 Layers Neural Network". Proceedings of the International Joint Conference on Neural Networks, pp.6974, Washington, 1989. [Kennedy 90] J.Kennedy y P.Morasso. "Self-organized Neural Networks for Signal Processing". Proceedings of the Euroship Workshop on Neural Networks, Sesimbra 90 (G.Goos y J.Hartmanis ed.), Springer-Verlag, 1990. [Klopf 86] A.Klopf. "Drive-reinforcement model of single neuron function: An alternative to the Hebbian neuron model". AIP Conference Proceedings 151: Neural Networks for Computing, pp. 265270, 1986. [Koch 86] C.Koch, J.Marroquin, A.Yuille. "Analog Neural Networks in Early Vision". Proceedings of the National Academy of Sciences, 83, pp. 4263-4267, 1986. [Kohonen 73] T.Kohonen y M.Ruohonen. "Representation of associated data by matrix operators". IEEE Transactions on Computers, 22, pp. 701-702, 1973. [Kohonen 77] T.Kohonen. "Associative Memory. A system theoretical approach". Springer-Verlag,1977. [Kohonen 82] T.Kohonen. "Self-organized formation of topologically correct feature maps". Biololgical Cybernetics, 43, pp. 59-69, 1982. Reimpreso en el texto "Neurocomputing" (J.Anderson y E.Rosenfeld ed.), MIT Press, 1988. Bibliografía referenciada. 1 [Kohonen 88a] T.Kohonen. "The neural phonetic typewriter". IEEE Computer, 21, pp. 11-22, Marzo, 1988. [Kohonen 88b] T.Kohonen. "Learning Vector Quantization". Abstracts of the First Annual INNS Meeting, 303, 1988. [Kohonen 88c] T.Kohonen. "An Introduction to Neural Computing". Neural Networks, Vol.1, pp. 3-16, 1988. [Kohonen 89] T.Kohonen. "Self-Organization and associative memory (3rd ed.)". Springer-Verlag,1989. [Kosko 86] B.Kosko. "Fuzzy Cognitive Maps". International Journal of Man-Machine Studies, pp. 6575, Enero, 1986. [Kosko 87a] B.Kosko. "Fuzzy Associative Memories". Incluido en el texto Fuzzy Expert Systems (A.Kandel ed.), Addison-Wesley, 1987. [Kosko 87b] B.Kosko. "Adaptive Bidirectional Associative Memories". Applied Optics, 26, pp. 49474960, 1987. [Kosko 88] B.Kosko. "Bidirectional Associative Memories". IEEE Transactions on Systems, Man & Cybernetics, 18, pp. 42-60, 1988. [Kosko 92] B.Kosko. "Neural Networks and Fuzzy Systems". Ed. Prentice-Hall, 1992. [Kosko 93] B.Kosko y S.Isaka. "Lógica Borrosa". Investigación y Ciencia, pp. 60-86, Sept., 1993. [Kung 93] S.Y.Kung. "Digital Neural Networks". Ed. Prentice-Hall, 1993. [Le Cunn 87] Y.Le Cunn. "Modèles connexionnistes de l'apprentissage". Ph.D. Thessis. Université Pierre et Marie Curie, Paris VI, 1987. [Lin 88] J.Lin, G.Mei, W.Lin y S.Chen. "Hierarchical Neural Network Architectures for Vision Systems". Neural Networks Supplement: INNS Abstracts, 1, 1988. [Lippman 87a] R.Lippman. "An Introduction to Computing with Neural Nets". IEEE ASSP Magazine, Vol.3, nº 4, pp. 4-22, Abril, 1987. Reimpreso en el texto "Artificial Neural Networks: Theoretical Concepts" (V.Vemuri ed.), pp. 36-54, IEEE Computer Society Press Technology Series, 1988. [Lippman 87b] R.Lippman, B.Gold, M.Malpass. "A Comparison of Hamming and Hopfield Neural Nets for Pattern Clasification". MIT Lincoln Laboratory Technical Report 769, 1987. [Lippman 89] R.Lippmann. "Review of Neural Networks for Speech Recognition". Neural Computation, 1, pp. 1-38, 1989. [López 89] F.J.López, M.I.Acevedo y M.A.Jaramillo. "Redes Neuronales: Evolución Histórica". Mundo Electrónico, 197, pp. 57-71, Julio, 1989. [Maren 90] A.J.Maren, C.T.Harston y R.M.Pap. "Handbook of Neural Computing Applications". Ed. Academic Press, 1990. Bibliografía referenciada. 1 [Martínez 89] T.Martinez, H.Ritter, K.Schulten. "3D-neural net for learning visuomotor-coordination of a robot arm". Proceedings of the First International Joint Conference on Neural Networks, Vol.II, pp. 351-356, 1989. [McCulloch 43] W.S.McCulloch y W.A.Pitts. "A Logical Calculus of the Ideas Immanent in Nervous Activity". Boulletin of Mathematics and Biophysics, 5, pp. 115-133, 1943. [McEliece 87] R.J.McEliece y otros. "The Capacity of the Hopfield Associative Memory". IEEE Transactions on Information Theory, 33(4), pp. 461-482, Julio, 1987. Reimpreso en el texto "Artificial Neural Networks: Theoretical Concepts" (V.Vemuri ed.), pp. 100-121, IEEE Computer Society Press Technology Series, 1988. [Minsky 69] M.Minsky y S.Papert. "Perceptrons". Ed. MIT Press, 1969. [Moraga 92] C.Moraga. "Redes Neuronales y Lógica Borrosa. Un Desafío y una Promesa". Incluido en el texto "Aplicaciones de la Lógica Borrosa" (E.Trillas y J.Gutierrez ed.), pp. 151-160, Ed. Consejo Superior de Investigaciones Científicas (CSIC), 1992. [Morasso 88] P.Morasso. "Neural Models of Cursive Script Handwriting". Proceedings of the First International Joint Conference on Neural Networks, Washington, 1989. [Narendra 74] K.Narendra y M.Thathachar. "Learning automata. A survey". IEEE Transactions on Systems, Man & Cybernetics, 4, pp. 323-334, Julio, 1974. [Nasrabadi 88] N.Nasrabadi, Y.Feng. "Vector quantization of images based upon the Kohonen selforganizing feature maps". Proceedings of the IEEE Second International Conference on Neural Networks, Vol.I, pp. 101-105, 1988. [Nauck 93] D.Nauck, F.Klawonn y R.Kruse. "Combining Neural Networks and Fuzzy Controllers". Proceedings of the 8th Austrian Artificial Intelligence Conference, pp. 35-46, Ed. Springer-Verlag, 1993. [Nemes 69] T.N.Nemes. "Kibernetikai Gepek (Cybernetic Machines)". Ed. Akademiai Kiado, 1969. [Olmeda 93] I.Olmeda y S.Barba-Romero (editores). "Redes Neuronales Artificiales: Fundamentos y Aplicaciones" (Actas de un curso de verano de la Universidad de Alcalá de Henares), Ed. Servicio de Publicaciones de la UAH, 1993. [Orchad 93] G.Orchad (editor). "Neural Computing. Research and Applications". Ed. Institute of Physics Publishing, Londres, 1993. [Parker 82] D.Parker. "Learning logic". Invention Report, S81-64, File 1. Office of Technology Licensing, Stanford University, 1982. [Pawlicki 87] T.Pawlicki, D.Lee, J.Hull y S.Srihari. "Neural Networks and their Application to HandWritten Digit Recognition". Proceedings of the IEEE First International Conference on Neural Networks, Vol.2, pp.63-70, San Diego, 1987. [Peterson 87] C.Peterson y J.Anderson. "A Mean Field Theory Learning Algorithm for Neural Networks". Complex Systems, 1, pp. 995-1019, 1987. [Pineda 87] F.Pineda. "Generalization of Back-propagation to recurrent neural networks". Physical Review Letters, 59, pp. 2229-2232, 1987. Bibliografía referenciada. 1 [Reddy 86] B.Reddy e I.Murthy. "ECG Data Compression Using Fourier Descriptors". IEEE Transactions on Biomedical Engineering, Vol.33, Abril, 1986. [Rohwer 87] R.Rohwer y B.Forrest. "Training time-dependence in neural networks". Proceedings of the IEEE First International Conference on Neural Networks, Vol.II, pp. 701-708, 1987. [Rosenblatt 58] F.Rosenblatt. "The Perceptron: A probabilistic model for information storage and organization in the brain". Psychological Review, 65, pp. 386-408, 1958. Reimpreso en el texto "Neurocomputing" (J.Anderson y E.Rosenfeld ed.), pp. 92-114, MIT Press, 1988. [Rubio 90] R.Rubio. "Aplicaciones Médicas de las Redes Neuronales". Novatica, Vol.16, No.87, pp. 4987, 1990. [Rumelhart 85] D.Rumelhart y D.Zipser. "Feature discovery by competitive learning". Cognitive Science, 9, pp. 75-115, 1985. [Rumelhart 86] D.Rumelhart, G.Hinton y R.Williams. "Learning representations by back-propagating errors". Nature, 323, pp. 533-536, 1986. Reimpreso en el texto "Parallel Distributed Processing: Explorations in the microstructure of cognition. vol.1. Foundations" (D.Rumelhart y J.McClelland ed.), pp. 318-362, MIT Press, 1986. Reimpreso en el texto "Neurocomputing" (J.Anderson y E.Rosenfeld ed.), MIT Press, 1988. [Sejnowski 77] T.Sejnowski. "Storing covariance with nonlinearly interacting neurons". Journal of Mathematical Biology, 4, pp. 303-321, 1977. [Sejnowski 86] T.Sejnowski, P.Kienker y G.Hinton. "Learning Simmetry Groups with Hidden Units: Beyond the Perceptron". Physica, 22D, pp. 260-275, 1986. [Sejnowski 87] T.Sejnowski y C.Rosenberg. "Parallel Networks that Learn to Pronounce English Text". Complex Systems, 1, pp. 145-168, 1987. [Shu 91] S.Shu, S.Bliven y J.Belina. "Training of Feedfoward Neural Network Architectures for Feature Recognition of Abnormal ECG Waveforms". Proceedings of the Annual International Conference of the IEEE Engineering in Medicine and Biology Society, Vol.13, No.2, pp. 1395-1396, 1991. [Sigüenza 93] J.A.Sigüenza, V.López y J.R.Dorronsoro. "Redes Neuronales, de la Investigación Básica a las Aplicaciones Industriales". Chip, abril, 1993. [Simpson 90] P.K.Simpson. "Artificial Neural Systems". Ed. Pergamon Press, 1990. [Smith 83] W.Smith, H.Barrett y R.Paxman. "Reconstruction of Objects from Coded Images by Simulated Annealing". Optics Letters, Vol.8, pp. 199-201, Abril, 1983. [Steinbuch 61] K.Steinbuch. "Die lernmatrix". Kybernetik, 1, pp. 36-45, 1961. [Sutton 81] R.Sutton y A.Barto. "Toward a modern theory of adaptive networks: Expectation and prediction". Psychological Review, 88, pp. 135-171, 1981. [Szu 86] H.Szu. "Fast simulated annealing". AIP (American Institute of Physics) Conference Proceedings 151: Neural Networks for Computing (J.Denker ed.), pp. 420-425, 1986. Bibliografía referenciada. 1 [Szu 90a] H.Szu y K.Scheff. "Simulated Annealing Feature Extraction from Occluded and Cluttered Objects". Proc. 2nd Int. Joint Conf. on Neural Networks, Washington, Enero, 1990. [Szu 90b] H.Szu. "Colored Noise Annealing Benchmark by Exhaustive Solutions of TSP". Proc. 2nd Int. Joint Conf. on Neural Networks, Vol.1, pp. 317-320, Washington, Enero, 1990. [Tank 86] D.Tank y J.Hopfield. "Simple Neural Optimization Networks: An A/D Converter, Signal Decision Circuit and a Linear Programming Circuit". IEEE Transactions on Circuits and Systems, 33(5), pp. 533-541, Mayo, 1986. Reimpreso en el texto "Artificial Neural Networks: Theoretical Concepts" (V.Vemuri ed.), pp. 87-95, IEEE Computer Society Press Technology Series, 1988. [Terano 92] T.Terano, K.Asai y M.Sugeno. "Fuzzy Systems Theory and its Applications". Ed. Academic Press, 1992 (La versión original en japonés es de 1987). [Touretzky 88] D.Touretzky y G.Hinton. "A Distributed Connectionist Production System". Cognitive Science, 12, pp. 423-466, 1988. [Trillas 92] E.Trillas y J.Gutierrez (editores). "Aplicaciones de la Lógica Borrosa". Ed. Consejo Superior de Investigaciones Científicas (CSIC), 1992. [Tsai 91] Y.Tsai, J.Su y J.Duan. "Parallel Neural Network Emulator for ECG Processing". Proceedings of the Annual International Conference of the IEEE Engineering in Medicine and Biology Society, Vol.13, No.3, pp. 1438-1439, 1991. [Viot 93] G.Viot. "Fuzzy Logic in C". Dr. Dobb's Journal, Febrero, 1993. [Wee 68] W.Wee. "Generalized inverse approach to adaptive multiclass patter classification". IEEE Transactions on Computers, 17, pp.1157-1164, 1968. [Werbos 74] P.Werbos. "Beyond Regression: New tools for prediction and analisys in the behavioral sciences". Ph.D. Thessis. Harvard University, 1974. [Widrow 60] B.Widrow y M.Hoff. "Adaptative Switching Circuits". IREWESCON Convention Record, Part 4, pp. 96-104, 1960. Reimpreso en el texto "Neurocomputing" (J.Anderson y E.Rosenfeld ed.), pp. 126-134, MIT Press, 1988. [Widrow 85] B.Widrow y S.D.Stearns. "Adaptive Signal Processing". Ed. Prentice-Hall, 1985. [Widrow 88] B.Widrow y R.Winter. "Neural Nets for Adaptive Filtering and Adaptive Pattern Recognition". IEEE Computer, 21, pp. 25-39, Marzo, 1988. [Widrow 90] B.Widrow y M.A.Lehr. "30 Years of Adaptive Neural Networks: Perceptron, Madaline and Backpropagation". Proceedings of the IEEE, Vol.78, No.9, pp. 1415-1442, Septiembre, 1990. [Winter 88] R.Winter y B.Widrow. "MADALINE Rule II: A Training Algorithm for Neural Networks. Proceedings of the IEEE Second International Conference on Neural Networks, Vol.I, pp. 401-408, 1988. [Zadeth 65] L.A.Zadeth. "Fuzzy Sets". Information and Control. Vol.8, pp. 338-353, 1965. [Zadeth 93] L.A.Zadeth. "The Role of Fuzzy Logic and Soft Computing in the Conception and Design of Intelligent Systems". Proceedings of the 8th Austrian Artificial Intelligence Conference, pp.1, Bibliografía referenciada. Springer-Verlag, 1993. View publication stats 1