Está en la página 1de 21

Tipos de redes

Asociadores de patrones o memorias heteroasociativas

Redes competitivas o mapas de auto-organización

Modelos de satisfacción de demanda o de adaptación probabilística

Otras redes asociativas de pesos fijos

Asociadores de patrones o memorias heteroasociativas

Son redes de dos o más capas cuyo objetivo es asociar, generalmente a través de un proceso de aprendizaje
supervisado, pares de estímulos o ítems distintos, llamados patrón de entrada y patrón de salida. Se trata de
conseguir que la presentación de un patrón de entrada provoque la recuperación del patrón de salida con el
que fue asociado durante el aprendizaje.

Podemos comparar un heteroasociador con los modelos de regresión estadística, los cuales tratan de hallar la
relación entre una serie de variables, llamadas predictores y criterio, a partir de una serie de datos conocidos.
De esta manera podemos predecir la variable criterio a partir de las variables usadas como predictores. Por
ejemplo, podemos hallar una función que nos relacione la estatura, el sexo, la edad (predictores) y la
complexión, con el peso(criterio), mediante un ajuste por mínimos cuadrados, y usar la estimación del peso a
partir de las otras variables como un indicador del peso ideal.

Peso = a + b * Estatura + c * Sexo + d * Edad + e * Complexión

Esto se puede lograr igualmente con una red neuronal; presentando como patrones de entrada la estatura, la
edad y el sexo de varios sujetos de peso apropiado, y como patrones de salida el peso de esos sujetos. Una vez
asocie edad, sexo y estatura de cada sujeto con su peso, podremos usarla para estimar el peso de nuevos
sujetos a partir de su estatura, sexo y edad, gracias a su capacidad de generalización.

La diferencia fundamental entre un asociador de patrones y un modelo de regresión está en que el primero es
capaz de representar relaciones mucho más complejas que un modelo de regresión, y en la forma en que
aprende (inductivamente) y representa dichas relaciones (distribuidas por toda la red), además de que va a
poseer las cualidades generales de las redes neuronales (generalización, tolerancia al ruido, etc.)

El primer asociador de patrones conocido es el Perceptrón (Rosemblat,1962), una red lineal no recurrente
compuesta por una capa de fotoreceptores, una capa de asociadores aleatoriamente conectados, llamados
demonios, y una capa de salida compuesta por una sola unidad, denominada perceptrón. Era capaz de asociar
patrones de entrada formados por variables continuas, con una variable de salida discreta binaria: 0/1, dado
que el perceptrón aplica una función de umbral. Si la respuesta de la red es la correcta las conexiones
existentes entre los demonios y el perceptrón no se modifican, cosa que sí ocurre en caso contrario. Aunque
puede parecer que este modelo tiene varias capas, técnicamente es una arquitectura de dos capas, ya que sólo
hay una capa de conexiones modificables. El Perceptrón se mostró bastante limitado en cuanto a su capacidad
de representar funciones (pe la función XOR) linealmente inseparables (Wassermann,1989). Son necesarias
más capas de conexiones modificables para representar funciones complejas y relaciones no lineales.
Ilustración 8: Modelo de Perceptrón (Rosemblatt, 1962)

Posteriormente surgieron el algoritmo de retropropagación y la regla delta generalizada.. En la actualidad


es posible asociar, casi sin restricciones, cualquier patrón de entrada con cualquier patrón de salida,
independientemente de sus características.

Cabe distinguir entre redes o memorias autoasoaciativas y memorias heteroasociativas. Como su nombre
indica, las primeras asocian patrones consigo mismo, de manera que son útiles para recuperar o reconstruir
patrones incompletos o distorsionados. Cualquier asociador de patrones sirve como memoria autoasociativa,
es tan sencillo como utilizar como patrones deseados los mismos patrones que se quiere aprender. Sin
embargo, se han desarrollado autoasociadores específicos que no sirven para asociar patrones distintos y
utilizan otro tipo de algoritmos de aprendizaje y de arquitecturas de interconexión, como las redes
recurrentes retroactivas.

Después veremos una descripción detallada del algoritmo de retropropagación y varias versiones de la regla
delta generalizada, comentaremos las críticas y las algunas extensiones que tratan de aumentar la velocidad de
convergencia.

Las redes basadas en la decisión y las de aproximación/optimización entrarían en este grupo, los primeros
perceptrones son redes del primer tipo, mientras que las redes de retropropagación son del segundo

Redes competitivas o mapas de auto-organización

Son redes uni o multicapa cuyo común denominador es postular algún tipo de competición entre unidades con
el fin de conseguir que una de ellas quede activada y el resto no. Esto se consigue mediante aprendizaje no
supervisado, presentando algún patrón de entrada y seleccionando la unidad cuyo patrón de pesos incidentes
se parezca más al patrón de entrada, reforzando dichas conexiones y debilitando las de las unidades
perdedoras.

La competición entre unidades se puede conseguir simulando una característica neurofisiológica del córtex
cerebral llamada inhibición lateral. Esto se logra postulando la existencia de conexiones inhibitorias intracapa
y conexiones excitatorias intercapa, de tal manera que la presentación de un patrón de entrada tenderá a
producir la activación de una única unidad y la inhibición del resto.

Al final se consigue que cada unidad responda frente a un determinado patrón de entrada, y, por
generalización, que cada unidad responda frente a patrones de entrada similares, de manera que los pesos
aferentes de esa unidad converjan en el centro del grupo de patrones con características similares.
Ilustración 9:Aprendizaje competitivo y clasificación de patrones

Es usual que haya una capa de neuronas de entrada y una capa de salida. Se usan tantas entradas como
dimensiones tenga el espacio vectorial de los patrones de entrada (espacio real o binario), y tantas salidas
como clases o categorías se quieren utilizar para clasificar los patrones de entrada, de manera que cada nodo
de salida representa una categoría.

Además de las conexiones hacia delante, con función excitatoria, se usa una red intracapa, inhibidora,
simulando el fenómeno neurológico de la inhibición lateral, de ahí que se la denomina capa lateral. La red
hacia delante implementa una regla de excitación de aprendizaje de Hebb. Esta regla, como ya sabemos,
refuerza las conexiones entre los pares de unidades entra-salida que se activan simultáneamente. La red lateral
es intrínsecamente inhibidora, realiza la labor de seleccionar al ganador, normalmente mediante un método de
aprendizaje competitivo, como el "winner-take-all" (el ganador lo toma todo, la unidad con mayor valor de
activación toma el valor máximo (pe. 1) y el resto el mínimo (0)). El esquema de winner-take-all se
implementa mediante una red (digital o analógica) MAXNET.

Las redes competitivas se usan típicamente como clasificadores de patrones, ya que cada unidad responde
frente a grupos de patrones con características similares. Para estimar el grado de semejanza de los patrones
se utilizan distancias o medidas de similaridad, siendo la más común la distancia euclídea.

a. Producto interno

b. Distancia Euclídea con Pesos


Podemos comparar estas redes con los métodos estadísticos de análisis de clusters, que agrupan los datos en
grupos con características similares.

La principal crítica a estos modelos es que no poseen una de las características generales de las redes
neuronales: la información no se halla distribuida entre todas las conexiones, la destrucción de una sola
unidad provocaría la pérdida de la información relativa a todo un grupo o categoría de patrones. Para
solventar este problema se han desarrollado los códigos demográficos, que representan cada categoría o grupo
de patrones mediante un conjunto de unidades próximas entre sí, en vez de mediante una sola unidad.

Como ejemplo de redes competitivas podemos citar las redes de Kohonen (Kohonen,1988) y las
arquitecturas ART (Adaptative Resonance Theory, Grossberg, 1987)

a. Reglas de aprendizaje competitivo básico

Como ya hemos comentado se suele utilizar la regla de Hebb para la red de propagación (las
conexiones entre-capas) y regla "winner-take-all" (WTA) para la red lateral.

Bajo este esquema se utilizan unidades de entrada y salida binarios, tantos nodos de salida como
grupos de características similares (categorías) se quieran utilizar. Cuando y sólo cuando la entrada i-
ésima y la salida j-ésima están activadas se actualizan los pesos. Una regla posible es la siguiente:

donde g es una pequeña constante, nk es el número de unidades de entradas activas del patrón k, xi =
1 si la señal de entrada es alta para el patrón k-ésimo y en otro caso xi = 0.

b. Reglas de entrenamiento basadas en pesos normalizados

i gana con el estímulo k, j pierde con el estímulo k

Con el fin de asegurar un ambiente de competición equitativo, las sumas de todos los pesos que van a

dar a las neuronas deben estar normalizados, asegurando

c) Reglas de aprendizaje para "Leaky Learning" (aprendizaje débil)

Con el fin de preveer la existencia de neuronas que no aprenden en su totalidad, se usa el aprendizaje
débil. Puesto que una neurona sólo aprende si gana en algún momento, es posible que una unidad no
gane nunca, y por lo tanto no aprende nada. Una forma de solucionar este problema es que todos los
pesos de la red intervengan en el entrenamiento con distintos niveles de aprendizaje.
i gana con el estímulo k, j pierde con el estímulo k

En esta regla el parámetro g1 es unas ordenes de magnitud más pequeño que xi(k)=0. Por lo tanto, las
unidades que pierden en la competición sufren un aprendizaje menor que las neuronas ganadoras.
Este cambio tiene la propiedad de que las unidades perdedoras se van desplazando hacia la región
donde yace el estímulo actual, donde empiezan a capturar algunas unidades (empiezan a ganar).

Modelos de satisfacción de demanda o de adaptación probabilística

Son asíncronas, es decir, que cada unidad se actualiza o no durante un ciclo de procesamiento según cierta
probabilidad.

Son redes cuyo objetivo principal es alcanzar soluciones (cuasi) óptimas a problemas que exigen tomar en
consideración un gran número de demandas simultáneas. Para ello parten de un estado dinámico o inestable y
tratan de alcanzar un estado estable mediante un proceso de relajación, estado en el que la mayoría de las
demandas sean satisfechas simultáneamente. Para evaluar el estado de la red se suele definir una "función de
energía", de manera que el proceso de relajación consiste en la disminución del "estado energético" de la red.

Como máximos exponentes de este tipo están las redes de Hopfield (Hopfield, 1982) y las máquinas de
Boltzman (Hinton y Sejnowski,1986), ambas ejemplos de memorias autoasociativas recurrentes, también
denominadas redes retroasociativas. Las redes autoasociativas aprenden a reconstruir patrones de entrada, son
útiles cuando tenemos información incompleta o distorsionada, para tratar de reproducir la información
original.

Las principales características de las memorias retroasociativas son las siguientes:

• Los pesos de las conexiones son precalculados y prealmacenados (mediante la regla de Hebb o por
una función de energía)
• Se usan operaciones no lineales de escalonamiento en cada etapa para producir valores binarios
• La retroalimentación tiene la función de propiciar que los estados se puedan actualizar iterativamente
• Las iteraciones convergen hacia una solución que minimiza una función de energía de la red.

Más adelante se incluye un apartado dedicado a las redes de Hopfield.

Otras redes asociativas de pesos fijos

Además de las redes de adaptación probabilística hay otros tipos de redes que no requieren modificar los
pesos de las conexiones. Se trata de memorias asociativas, utilizadas fundamentalmente para filtrar señales
distorsionadas o incompletas y recuperar los patrones originales libres de ruido, como las memorias pro-
asociativas y las redes de Hamming.

Asociadores de Mapas de auto- Modelos de satisfacción de Otras redes asociativas de


patrones organización demanda pesos fijos
Perceptrones Redes de Kohonen Redes de Hopfield Memorias proasociativas
Redes de Arquitecturas ART Máquinas de Boltzmann Redes de Hamming
retropropagación

Tabla 1 Clasificación de las redes neuronales artificiales

Redes de retropropagación (back-prop)

Introducción

Origen

Descripción matemática del algoritmo de retropropagación

Extensiones de la regla delta generalizada

Valoración

Métodos estadísticos

Introducción: equilibrio termodinámico simulado


Método de Boltzman
Método de Cauchy

Introducción

Al hablar de redes de retropropagación o redes de propagación hacia atrás hacemos referencia a un algoritmo
de aprendizaje más que a una arquitectura determinada. La retropropagación consiste en propagar el error
hacia atrás, es decir, de la capa de salida hacia la capa de entrada, pasando por las capas ocultas intermedias y
ajustando los pesos de las conexiones con el fin de reducir dicho error. Hay distintas versiones o reglas del
algoritmo de retropropagación y distintos arquitecturas conexionistas a las que pueden ser aplicados.

Durante mucho tiempo no se dispuso de algoritmos para entrenar redes multicapa, y como las redes de una
capa estaban muy limitadas en cuanto a lo que eran capaces de representar, el campo de las redes neuronales
artificiales estaba estancado. La invención y perfeccionamiento del algoritmo de retropropagación dio un gran
impulso al desarrollo de este campo. Tiene un buen fundamento matemático y a pesar de sus limitaciones ha
expandido enormemente el rango de problemas donde se aplican las redes neuronales artificiales.

Origen

Al parecer el algoritmo fue ideado a principios de los 70 por Werbos, y redescubierto a principios de los 80
por Parker y Rumelhart independientemente, sin embargo, no se hizo popular hasta 1986, cuando Rumerlhart,
Hinton y Williams presentaron una descripción clara y concisa del mismo. Y es que en un primer momento no
se valoró como se merecía. El hecho de que permaneciera en el olvido tanto tiempo también debe ser una
consecuencia de la condición interdisciplinar del campo, repartido entre las matemáticas y ciencias de la
computación, las neurociencias y la psicología.

Desde la fecha clave de 1986 han surgido nuevas versiones que han tratado de aumentar la velocidad de
convergencia del algoritmo y han tratado de superar algunos de sus inconvenientes, como la tendencia a
alcanzar mínimos locales y no globales, punto que será discutido más tarde.

Descripción matemática del algoritmo de retropropagación


Se explica una versión del algoritmo (Hinton, 1992) para redes con las siguientes características:

• No recurrentes
• Función de activación sigmoidal
• Capas totalmente interconectadas
• Operación totalmente síncrona

1. Aleatorizamos los pesos de las conexiones.


2. Presentamos un patrón de entrada y calculamos la salida.
3. Dada una unidad j-ésima de la capa de salida y unidades i-ésimas de la capa oculta
inmediatamente anterior, calculamos la entrada total ponderada y la salida o activación de
la misma.

4. Una vez computadas las actividades de todas las unidades de salida se calcula una
estimación del error, generalmente una función cuadrática de los errores individuales
cometidos por cada unidad, siendo cada error individual la diferencia entre la salida
deseada y la obtenida.

siendo dj la salida deseada para la unidad j-ésima

Nota: Se van a indicar por un lado las expresiones matemáticas y por otro lado la explicación
intuitiva de cada paso. Conviene recordar que nuestro objetivo es calcular como varía el error al
variar el peso de cada conexión (tasa de variación del error respecto al peso de una conexión, EP)

5. Cómputo de la rapidez de variación del error al cambiar la actividad de cada unidad de


salida (EA, error respecto a la actividad)
Es justamente la diferencia entre la salida deseada y la salida real obtenida, es decir, la diferencia
entre la actividad deseada y la actividad real

6. Cómputo de la rapidez de variación del error al cambiar la entrada total que recibe cada
unidad de salida.

Es igual a la tasa de variación del error al variar su activación multiplicado por la tasa de variación
de la activación al cambiar su entrada ( que es justamernte la derivada de la función sigmoidal )

7. Cómputo de la rapidez de variación del error al ser modificado un peso de la conexión


aferente a una unidad de salida.

Es igual a la tasa de variación del error al variar su entrada, por la tasa de variación de la entrada al
variar ese peso.

Hasta ahora sabemos calcular el EA sólo para las unidades de salida, ¿ qué pasa con las unidades
ocultas?. En este caso no tenemos una estimación directa del error aportado por cada unidad oculta;
aquí es donde interviene la retropropagación o propagación hacia atrás del error:

La unidad i-ésima de la capa oculta


afecta a todas las unidades de salida, por lo tanto, para estimar como varía el error al variar la
actividad de esa unidad oculta, habrá que sumar los efectos individuales de su actividad sobre todas
las neuronas de salida. Cada efecto individual sobre la variación del error, será igual a la tasa de
variación del error de la unidad de salida al cambiar su entrada total, multiplicado por la tasa de
variación de su entrada al variar la actividad de la unidad oculta.
8. Conociendo EA para las unidades de cualquier capa podemos calcular d y EP con las
expresiones ya conocidas.

9. Disponiendo de la tasa de variación del error respecto al peso de una conexión (EP),
podemos usar distintas reglas para modificar ese peso en aras a reducir dicho de error. Una
de las primeras reglas que aprovechó este algoritmo es la regla delta generalizada, que
calcula el incremento a aplicar a un peso como una proporción directa de la tasa de
variación del error.
siendo h el coeficiente de aprendizaje, típicamente con valores comprendidos entre 0.01 y
1.0

Extensiones de la regla delta generalizada

La regla DBD (delta-bar-delta) (Jordan, 1988) consiste en usar un coeficiente de aprendizaje propio y variable
para cada conexión.

Una extensión propuesta por Rumelhart, Hinton y Williams (1986) consiste en añadir un término proporcional
a la cantidad del último cambio realizado sobre un peso. Al coeficiente que pondera dicha cantidad se le llama
momentum (??

La propuesta EDBD (extended delta-bar-delta) (Minai y Williams,1990) consiste en añadir el momentum a la


regla DBD.

Valoración

El algoritmo de retropropagación presenta ciertos problemas, algunos referentes a su dudosa plausibilidad


neurofisiológica, y otros referentes a ciertos aspectos computacionales, que son los que vamos a comentar
aquí.
• Los resultados dependen de los valores iniciales, aleatorios, de las conexiones. Esto hace
que sea conveniente entrenar varias redes con distintas valores iniciales y elegir la que
mejor funcione.
• A veces se requiere mucho tiempo para obtener soluciones sencillas. Este problema se
reduce gracias al aumento de potencia de los procesadores y al uso de nuevas tecnologías,
sin embargo, el tiempo de cómputo aumenta mucho al aumentar el tamaño de la red. Si
bien el volumen de cálculo es proporcional al número total de conexiones. En la práctica, al
aumentar el tamaño de la red, hacen falta más ejemplos de aprendizaje, y eso provoca un
aumento aumenta mucho mayor del tiempo de aprendizaje. Para incrementar la velocidad
de convergencia se han desarrollado diferentes modificaciones del algoritmo.
• La "interferencia catastrófica" o empeoramiento en el rendimiento del sistema, como
consecuencia de la incorporación de nuevos ejemplos de aprendizaje.
• La parálisis: esto sucede cuando los pesos quedan ajustados a valores muy grandes, esto
hace operar a las unidades de proceso con una activación muy próxima a 1, y por lo tanto,
el gradiente del error, ???tiende a 0, en consecuencia no se producen modificaciones en los
pesos, el aprendizaje queda detenido. Por eso es conveniente aleatorizar los pesos de las
conexiones con valores pequeños y usar la tasa de aprendizaje, ????también pequeña, a
pesar de que se ralentice el aprendizaje.
• Inestabilidad temporal. Si usamos un coeficiente de aprendizaje elevado, se van a producir
incrementos grandes en los pesos, de manera que es fácil pasarse de incremento y tener
que tratar de compensarlo en el siguiente ciclo, de manera que se producirían oscilaciones
continuas. Esto se soluciona usando un coeficiente pequeño, o, para no tener un
aprendizaje muy lento, modificar dicho coeficiente adaptativamente (aumentarlo si el error
global disminuye, y disminuirlo en caso contrario).
• El problema de los mínimos locales. El algoritmo de retropropagación usa un técnica por
gradiente descendiente, esto significa que sigue la "superficie del error" siempre hacia
abajo, hasta alcanzar un mínimo local, pero no garantiza que se alcance una solución
globalmente óptima. Sin embargo, se ha comprobado que el hecho de alcanzar mínimos
locales no impide que se consigan resultados satisfactorios. Por otro lado, se han
desarrollado métodos para solventar este problema, como el modo de operación asíncrono
o probabilístico y el uso de métodos estadísticos, como el equilibrio termodinámico
simulado (ver siguiente apartado).

Ilustración 10: Problema de los mínimos locales

• Podemos considerar el error como una superficie llena de desniveles, si soltamos una
pelota caerá en algún valle, pero no necesariamente en el más hondo, sino en el más
cercano (un mínimo local). Una idea intuitiva para solucionar esto, sería aplicarle cierta
energía a esa superficie agitándola o haciéndola vibrar, esto haría saltar a la pelota de valle
en valle, como de los valles más profundos es más difícil salir, tendería a estar en valles
cada vez más profundos. Si dejamos de agitar esa superficie poco a poco, al final
tendremos la pelota en el valle más profundo de la superficie.
• Otras técnicas que pueden ayudar a no caer en mínimos locales consisten en añadir cierto
nivel de ruido a las modificaciones de los pesos de las conexiones. Otra medida propuesta
es añadir ruido a las conexiones, pero esto es más útil para darle robustez y aumentar la
capacidad de generalización de la red. Estas medidas, por contra, aumentan el tiempo de
aprendizaje.

Métodos estadísticos

Introducción: equilibrio termodinámico simulado

El equilibrio termodinámico simulado (simulated annealing) se inspira en el modo en como se templa el acero
en la industria metalúrgica: primero se calienta hasta temperaturas muy altas y luego se deja enfriar, de
manera que pase de estados de alta energía a estados de baja energía, hasta que alcanza un mínimo energético
global, así el acero queda mucho más resistente.

La relación entre temperatura y estado energético viene expresada por la distribución de probabilidad de
Boltzmann:

E = energía del sistema

k = constante de Boltzmann

T = temperatura (grados Kelvin)

a = coeficiente que depende del material

Esta función indica la probabilidad de estar en un estado de energía E a una determinada temperatura. Con
altas temperaturas es igualmente probable tener estados de alta o baja energía; pero a bajas temperaturas se
reduce la probabilidad de estar en un estado de alta energía. El estado energético indica la capacidad o
probabilidad de cambiar, por lo tanto, al empezar con temperatura elevadas hay muchas probabilidades de
cambiar, y se reducen al ir enfriando el sistema.

Método de Boltzmann

1. Definir una variable de temperatura, T, y darle al principio un valor elevado.


2. Aplicar los ejemplos de aprendizaje y calcular la salida y la función objetivo (error
cuadrático).
3. Realizar una modificación aleatoria de un peso y recalcular la salida y la función objetivo.
4. SI la función objetivo se reduce (el error disminuye) retener el cambio SINO calcular la
probabilidad de aceptar ese cambio mediante la distribución de probabilidad de Bolztmann.

P(c)= probabilidad de un cambio c en la función objetivo

k = constante que hay que elegir para cada problema concreto

T= la temperatura artificial
Seleccionar un número aleatorio r entre 0 y 1 (distribución uniforme) y retener el cambio si P(c) > r,
rechazarlo en caso contrario.

5. Repetir los pasos 3 y 4 reduciendo la temperatura hasta lograr un valor aceptable de la


función objetivo.

Hay varias formas de elegir el cambio de peso del paso 3 emulando los procesos termodinámicos, pe.
mediante una distribución gaussiana de probabilidad.

P(w) = probabilidad de un cambio de peso de tamaño w (?w)

Para obtener el incremento de peso D w a aplicar se puede usar el método de Monte Carlo:

a. Hallar la probabilidad acumulada de P(w), es decir, la integral entre 0 y w, por algún


método de integración numérica, y tabular el resultado como ?w. Obtener una tabla con
diversos valores de P(w) sobre cierto intervalo y los correspondientes ?w.
b. Elegir un número aleatorio mediante una distribución uniforme sobre el intervalo prefijado,
usarlo como valor para P(w) y buscar en la tabla el correspondiente valor de ?w.

Se ha comprobado que la tasa de reducción de temperatura debe ser proporcional al inverso del logaritmo del
tiempo.

Este resultado predice velocidades muy lentas de enfriamiento y muchos cálculos, lo cual conlleva periodos
de aprendizaje excesivamente largos. Una solución mucho más rápida consiste en sustituir la distribución de
Boltzmann por la distribución de Cauchy.

Método de Cauchy

Emplea la distribución de probabilidad de Cauchy en función de la temperatura y el tiempo:


En este caso el tiempo de enfriamiento se reduce drásticamente:

P(x) se puede integrar por métodos usuales:

xc es el cambio de peso

h es el coeficiente de aprendizaje

En este caso el método de Monte Carlo resulta muy simple. Seleccionamos un número aleatorio sobre el
intervalo abierto -p /2 a p /2, sustituirlo por P(x) y calcular xc con la temperatura actual.

Redes de Kohonen

Introducción

Aprendizaje

Aplicación

Sensibilidad basada en la historia

Introducción

Pertenece a la categoría de las redes competitivas o mapas de autoorganización, es decir, con aprendizaje no
supervisado de tipo competitivo. Poseen una arquitectura de dos capas (entrada-salida) (una sola capa de
conexiones), funciones de activación lineales y flujo de información unidireccional (son redes en cascada).
Las unidades de entrada reciben datos continuos normalizados, se normalizan así mismo los pesos de las
conexiones con la capa de salida. Tras el aprendizaje de la red, cada patrón de entrada activará una única
unidad de salida. En algunos modelos cada entrada puede provocar la activación de un conjunto de unidades
de salida, en ese caso estaríamos usando un código demográfico (ver el apartado correspondiente del
Aprendizaje no supervisado). El objetivo de este tipo de redes es clasificar los patrones de entrada en grupos
de características similares, de manera que cada grupo activará siempre la(s) misma(s) salida(s). Cada grupo
de entradas queda representado en los pesos de las conexiones de la unidad de salida triunfante. La unidad de
salida ganadora para cada grupo de entradas no se conoce a priori, es necesario averiguarlo después de
entrenar a la red.

Una de las cualidades de este tipo de redes es la incorporación a la regla de aprendizaje de cierto grado de
sensibilidad con respecto al vecindario o historia. Esto hace que el número de neuronas que no aprenden
desaparezca, aumentando así su capacidad de extraer o mapear características topológicas de los datos.

La red mapea el espacio de entrada hacia un espacio de salida con cierto orden topológico, Kohonen propone
un método para que este orden se conserve al entrenar la red, la clave está en reducir el tamaño del vecindario
de la unidad ganadora en cada ireración.

Aprendizaje
Indicamos un procedimiento basado en el cálculo de distancias euclídeas sobre los patrones de entrada.

Supongamos que tenemos patrones de entrada N-dimensionales

0. Aleatorizar los pesos de las conexiones. Normalizar los pesos de las conexiones incidentes de cada unidad
de salida sobre la unidad: dividir cada conexión por la raíz cuadrada de la suma de los cuadrados de las
conexiones de cada unidad. Normalizar igualmente los datos de entrada

1. Aplicar un patrón de entrada .


2. Calcular alguna medida de similitud/disimilitud (producto interno, distancia euclídea o de
Mahalanobis, etc.) entre las entradas y los pesos de las conexiones. Por ejemplo, mediante la
distancia euclídea:

donde X son los vectores de entrada.

3. La unidad de salida con los pesos más parecidos al patrón de entrada (es decir, menor Dj) es
declarada ganadora. El vector de pesos de la unidad ganadora, Wc, se convierte en el centro de un
grupo de vectores cercanos a él Wc, en concreto, a menos de cierta distancia D.
4. Modificar los pesos de los vectores de pesos Wj "cercanos" a Wc (distancia menor a D), según la
fórmula:

donde h es una pequeña constante positiva

De esta manera conseguimos que los vectores de pesos de la unidad ganadora y de su "vecindario" se
parezcan cada vez más al patrón de entrada que hace ganar a esa unidad.

La cuantía de la adaptación se puede escalar de acuerdo a una "función de vecindad" preestablecida


L (j,c):

donde c es el índice de la unidad ganadora

representa la posición de la neurona j en el espacio de salida. La


convergencia del mapa depende de escoger apropiadamente rj. Una opción es h = 1 / m, siendo m el
número de iteración del proceso de aprendizaje. El tamaño del vecindario (s ) debería decrecer
gradualmente.

5. Repetir los pasos 1 a 4 con todos los patrones de entrada.

A medida que avanza el aprendizaje hay que ir reduciendo D y a . Kohonen recomienda empezar con un valor
de a cercano a 1 y reducirlo gradualmente hasta 0.1. D puede empezar valiendo la máxima distancia existente
entre los pesos de las conexiones al principio y acabar siendo tan pequeño que no quede ninguna unidad en el
vecindario de la unidad ganadora. En ese momento solo se entrenará una unidad, que al final tendrá su vector
de pesos igual al vector de entrada.

La precisión de la clasificación de los patrones de entrada aumenta con el número de ciclos de aprendizaje.
Kohonen recomienda una cantidad de ciclos no inferior a 500 veces el número de neuronas de salida para
obtener buenos resultados.
Aplicación

Una vez entrenada, podemos usar a la red para clasificar patrones de entrada similares en el espacio n-
dimensional. Una clase o grupo de patrones similares tiende a controlar una neurona específica, que
representará el centro de una esfera n-dimensional (de radio unitario, pues normalizamos los datos sobre la
unidad). Esa neurona resultará la más activada frente a los patrones más parecidos a su vector de pesos.

Después del aprendizaje, la clasificación consiste en presentar una entrada y seleccionar la unidad más
activada, la gandora, mediante la función de Distancia utilizada (gana la más cercana al patrón de entrada).
Además, el vector de pesos nos servirá para reconstruir el patrón de entrada.

Sensibilidad basada en la historia

Una forma de evitar el problema de las unidades que no aprenden es consiste en la incorporación de algún
tipo de sensibilidad a la historia o frecuencia en la regla de entrenamiento. Hay dos aproximaciones:

1. Utilizar la sensibilidad a la frecuencia durante la selección del ganador


2. Utilizar la sensibilidad a la frecuencia para modificar la tasa de aprendizaje

Ejemplo de regla de aprendizaje con sensibilidad en la historia aplicada en la modulación de la tasa de


aprendizaje:

1. Selección de un ganador mediante alguna medida de distancia


2. Adaptación de los pesos del ganador

donde e (t) es función de la frecuencia con la que la unidad c es seleccionada como ganadora. Dos
posible funciones de este tipo son:

dónde uc(t) es el número de veces que la unidad c ha ganado hasta el momento t

Redes de Hopfield

Introducción

Funcionamiento

Aprendizaje de los pesos: regla de Cooper-Hebb

Condiciones de estabilidad y función de energía

Algoritmo secuencial (asíncrono)

Algoritmo paralelo (síncrono)


Interés práctico y valoración

Introducción

Las redes de Hopfield son redes de adaptación probabilística, recurrentes, funcionalmente entrarían en la
categoría de las memorias autoasociativas, que aprenden a de reconstruir los patrones de entrada que
memorizaron durante el entrenamiento. Son arquitecturas de una capa con interconexión total, funciones de
activación booleana de umbral (cada unidad puede tomar dos estados, 0 o 1, dependiendo de si la
estimulación total recibida supera determinado umbral), adaptación probabilística de la activación de las
unidades, conexiones recurrentes y simétricas, y regla de aprendizaje no supervisado. Mientras que las redes
en cascada (no recurrentes) dan soluciones estables, los modelos recurrentes dan soluciones inestables
(dinámicas), lo que no siempre es aconsejable. La principal aportación de Hopfield consistió precisamente en
conseguir que tales redes recurrentes fueran así mismo estables. Imaginó un sistema físico capaz de operar
como una memoria autoasociativa, que almacenara información y fuera capaz de recuperarla aunque la misma
se hubiera deteriorado.

Funcionamiento

A cada estado de la red se le puede atribuir una cierta cantidad de energía, el sistema evoluciona tratando de
disminuir la energía mediante un proceso de relajación (recordemos el símil con una pelota cayendo por una
superficie multidimensional), hasta alcanzar un mínimo (valle) donde se estabiliza. Los mínimos de energía se
corresponden con los recuerdos almacenados durante el aprendizaje de la red.

Ante la presentación de un estímulo nuevo se obtendrá una configuración inicial más o menos parecida a
alguno de los estímulos almacenados, el sistema evolucionará hasta caer en una configuración estable que
representa el recuerdo asociado a ese estímulo. Si la configuración inicial discrepa mucho de los recuerdos
almacenados podemos alcanzar algún mínimo que no se corresponde a ningún recuerdo almacenado,
recuperando en ese caso una información espuria, o podríamos no alcanzar ningún mínimo, quedando
inestable: en ese caso diríamos que la red está "confundida", no es capaz de reconocer el estímulo, no
recuerda. Una tercera posibilidad es que al cabo de unos pasos de evolución empiece a repetir periódicamente
una secuencia definida de estados; con esta dinámica se han modelado ciertas excitaciones nerviosas que
regulan acciones rítmicas y repetitivas; y se ha tratado de reproducir la memoria de secuencias temporales, pe.
el recuerdo de melodías.

Ilustración 11 Modelo de Red de Hopfield de 3 unidades


Como habíamos dicho, las neuronas se conectan todas entre sí, y consigo mismas. Para empezar se le asigna a
cada unidad el valor o estado correspondiente del patrón de entrada. En cada ciclo se elige una neurona al azar
y se calcula su activación (que coincide con su salida) según una función de umbral.

outi=1 si neti > q i

outi=0 si neti <= q i

Sea n el número de neuronas en la red, se utiliza una función de propagación hiperplana, es decir, el valor de
red se calcula como el sumatorio de todas las entradas ponderadas, incluida la procedente de la misma unidad.

Se puede trabajar con cualquier valor de umbral para la función de activación, pero típicamente se usa el 0
como umbral, con la ventaja de simplificar las ecuaciones.

outi=1 si neti > 0

outi=0 si neti <= 0

Otra posibilidad para calcular el umbral es utilizar un valor propio para cada unidad, dependiente de los
pesos:

Por definición los recuerdos (ítems o patrones almacenados) son puntos fijos en la dinámica de la red (puntos
de equilibrio), es decir, configuraciones que no cambian en el tiempo aunque se siga aplicando la regla de
evolución. Para almacenar un recuerdo habrá que lograr que la presentación del patrón de entrada lleve a la
red a alcanzar un punto fijo, esto se logrará mediante una determinada combinación de valores de los pesos de
las conexiones.

Se habla también de las zonas o áreas de atracción para referirse a estados de activación que con una
probabilidad alta (mayor de ½) llevan a un determinado punto de equilibrio.

Aprendizaje de los pesos: Regla de Cooper-Hebb

La elección de la regla de aprendizaje no es trivial, depende de la interrelación de los patrones que se desea
memorizar. Si estos patrones están poco correlacionados (pseudo-ortogonales) podemos aplicar la regla de
Cooper-Hebb, basada en la regla de Hebb o regla del producto:

Supongamos que tenemos M ítems o patrones (binarios) que almacenar (p1.. pm), calculamos los pesos de la
siguiente forma:

si i ¹ j (la matriz de pesos es simétrica)

wij = 0 si i = j (y la diagonal vale 0)


Esta regla fortalece las conexiones cuando las unidades i-ésima y j-ésima tienen la misma activación o valor
de estado, y las debilita en caso contrario.

El entrenamiento seguirá los siguientes pasos.

1. Elegir un número de neuronas que cumpla el criterio del 15%


2. Codificar los ítems que queremos memorizar de forma que los patrones para representarlos se
parezcan lo menos posible entre sí, para aproximarnos a la condición de pseudo-ortogonalidad.
3. Calcular los pesos de las conexiones según la regla de Cooper-Hebb.

Ya tenemos la red lista para usarla, asignando a las unidades el estado inicial y dejando que la red evolucione
hasta alcanzar un mínimo (esto lo conseguiremos comprobando que el decremento de energía es nulo).

Condiciones de estabilidad y función de energía

Como demostró Hopfield, que una red de adaptación asíncrona sea estable se puede conseguir haciendo que la
matriz de pesos sea simétrica y con 0’s en la diagonal principal. La idea para alcanzar estados estables es
encontrar una función del estado del sistema, que llamaremos Energía, con la propiedad de decrecer cuando
se produce un cambio en el estado de la red. Un tipo de funciones con esa propiedad son las funciones de
Liapunov.

Dónde yi representa el valor de activación o estado de cada unidad (que coincide con su salida outi).

En el caso ideal en que los vectores almacenados son perfectamente ortogonales, cada patrón original
representa un mínimo local (o global) de la función de energía. La recuperación de los patrones originales
consistirá entonces en la búsqueda de esos mínimos locales.

Si nos basamos en técnicas de gradiente podemos alcanzar los mínimos mediante un procedimiento
secuencial o iterativo (asíncrono), calculando el cambio de energía para una única unidad en cada paso. El
cambio de energía del sistema ante un cambio de estado de una unidad i elegida al azar (D yi) es:

Que como wii = 0 nos queda

Se puede demostrar que dicho cambio de energía es siempre negativo o nulo, de tal modo que el sistema
tiende a converger hacia un mínimo. El criterio de simetría es suficiente, pero no necesario para alcanzar la
estabilidad. Por otro lado la simetría aproximada es usualmente suficiente para lograrlo.

Veamos una versión discreta del gradiente:


Para garantizar el descenso de la función de energía, D yi se debería actualizar en la dirección de descenso del
gradiente, esto es,

D yi(k+1) a neti(k+1)

Algoritmo secuencial (Asíncrono)

Tomamos uno de los patrones memorizados, p, y lo introducimos como vector de estado inicial, con N
dimensiones

y(0)=[y1(0),y2(0), ..., yN(0)]T

Empezamos a realizar iteraciones desde k=1hasta la convergencia. Las actualizaciones o cambios de estado se
realizan en orden secuencial, una unidad en cada paso, desde i=1 hasta i=N.

1. Cálculo de los valores de red

2. Actualización de los estados

Se repite el mismo proceso para cada iteración hasta la convergencia, lo que ocurre cuando ninguno de los
elementos cambia de estado durante alguna iteración.

Si hay algún cambio de enegía, debe ser negativo. Puesto que E no debe decrecer indefinidamente, las
iteraciones de la red deben terminar en un número finito de pasos; de este modo la convergencia está
garantizada.

Algoritmo paralelo (Síncrono)

Los pesos se obtienen igual con una diferencia, la diagonal no se pone a 0

wij ¹ 0

Los umbrales de la red se calculan igual que en el modelo secuencial.


Durante la iteración k-ésima:

1. Cálculo de los valores de red en paralelo (todas las unidades en cada paso) para i=1,2..., N,

2. Actualización de los estados de activación e paralelo

Repetir el mismo proceso para la siguiente iteración hasta la convergencia, que ocurre cuando ninguno de los
elementos cambia de estado durante cualquier iteración.

Prueba de la convergencia

El cambio de nivel de energía debido a una iteración de actualización paralela, aplicando

, nos queda

Puesto que la matriz W se forma a partir del producto externo sin la anulación de la diagonal, es una matriz
definida no negativa, esto es, D kE2 <= 0. Debería estar claro ahora que D kE1 <= 0. Más precisamente, D
kE1 < 0 si ocurre una actualización no trivial. (Esto también asegura que no hay posibilidad de oscilación de
cualquier estado de convergencia.)

Interés práctico y valoración

Las redes de Hopfield pueden usarse desde un enfoque psicofisiológico, como un modelo sencillo para
explicar como ocurren las asociaciones entre ideas. Las ideas parciales serían estados de activación en la zona
de atracción de ideas más generales (puntos fijos o puntos de equilibrio), de forma que al introducir la idea
parcial se puede llegar a alcanzar la idea general.

A su vez, debido a que las áreas de atracción indican sólo una probabilidad (generalmente diferente de 1), este
modelo permite explicar también la incertidumbre que se produce en las asociaciones: una idea parcial, a
pesar de tener alta probabilidad de desembocar en la idea general, puede llevar a otras ideas diferentes que
también actúan como puntos de equilibrio.
Una posible aplicación informática de las redes de Hopfield es el desarrollo de memorias direccionadas por
contenido: los elementos de la memoria no estarían ordenados según índices numéricos, sino según parte de
su contenido. En las memorias actuales es necesario conocer la dirección de memoria de un dato para poder
recuperarlo, mientras que en las memorias direccionadas por contenido se pueden recuperar datos completos
(puntos de equilibrio) a partir de datos parciales (que formen parte de su área de atracción).

Las redes de Hopfield se han aplicado a campos como la percepción el reconocimiento de imágenes y
optimización de problemas, mostrando gran inmunidad al ruido y robustez. Incluso se han llegado a
desarrollar chips específicos para este tipo redes. El estudio de las representaciones de secuencias temporales
es un área de gran interés, con aplicaciones en reconocimiento automático de voces y movimientos.

Hopfield ha mostrado como aplicar los mismos principios con funciones de activación continuas como la
función sigmoidal, con muy pocas modificaciones.

Pero pese a sus evidentes ventajas no están exentas de problemas:

• El número máximo de patrones no correlacionados que puede almacenar es igual al 15% del número
de neuronas de la red.
• Requieren mucho tiempo de procesamiento hasta converger a una solución estable, lo que limita su
aplicabilidad.
• Otro de los problemas achacados a las redes de Hopfield es su tendencia a caer en mínimos locales,
como en las redes de retropropagación. La solución pasa por aplicar los métodos estadísticos que ya
comentamos en el apartado dedicado a las redes de retropropagación, el equilibrio termodinámico
simulado.