Subido por Edilberto Herrera

redes neuronales

Anuncio
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 (Nl
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 ║EkX║/║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.380621023 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.380621023 Jul/ºK):
VIII. Redes estocásticas.
8.1
H(E)= -kln 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 5C-13C; el conjunto FRESCA, con valores desde 9C hasta
21C; el conjunto de temperatura AGRADABLE, con los valores 17C-29C; CÁLIDA, con valores
25C-37C; y el conjunto de temperatura TÓRRIDA, con valores entre 33C y 40C.
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
20C es menos FRESCA que una de 15C, con lo que la primera pertenecerá en menor grado que la
segunda al conjunto de temperaturas FRESCAS. De hecho, la primera (20C) también puede
considerarse como AGRADABLE, ya que pertenece a este conjunto, aunque en menor medida que otra,
por ejemplo, de 23C 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 15C, se trataría de
una temperatura totalmente FRESCA. En cambio, si fuese de 16C, sería un 83% FRESCA; mientras
que 18C 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=18C, 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 18C, 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
AW
AW
34
35
AW
CWT
Install Equation Install Equation Edito
click here to vie click here to view equ CWT
=
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
CWT
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 15C, 18C,
21C, 24C, 27C y 30C. Para simplificar los cálculos, se van a considerar sólo 3 conjuntos
borrosos (FRESCA, AGRADABLE, CALIDA) y un rango de 15C a 31C. 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 18C, 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 18C (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 15C, 18C, 21C, 24C, 27C y 30C, 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 18C 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 18C.
temperatura es de 18C.
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
Descargar