la Red de Hopfield.
La red
de Hopfield es una de las redes unicapas más importantes y ha
influido en el desarrollo de multitud de redes posteriores.
Es una red autoasociativa no lineal que fue desarrollada por Hopfield
en 1982 basándose en los modelos de redes de McCulloch y Pitts
y los símiles de los campos magnéticos con spin de Amit,
Gutfreund, & Sompolinsky.
Arquitectura
de la red de hopfield
La red
de Hopfield es una red monocapa, esto es, de una sola capa. Aunque también
se puede mostrar como una red bicapa de dos capas, la primera capa seria
una capa de sensores y la segunda capa será la capa donde se
realiza el procesamiento.
En la
versión bicapa la manera de interconexionar ambas capas es unir
la primera capa a la segunda linealmente, esto es cada neurona con su
respectiva, y después unir todas las neuronas con todas en la
misma capa.
La red
de Hopfield toma valores bipolares esto es, {-1,1}, sin embargo se pueden
usar también valores binarios {0,1}.
Dinámica
de la red de hopfield
Ejecutar
un patrón en la red de Hopfield consiste en enviar un patrón
en la red y actualizar las neuronas repetidamente hasta que se estabilicen
los estados de las neuronas a un patrón memorizado.
Con pasos
sería así.
1
Se establece el patrón de entrada en la capa de entrada.
2. Se actualizan las neuronas de la capa de procesamiento.
3. Si han cambiado el estado de la red o hemos realizada ya el número
máximo de iteraciones paramos.
4. Si no volvemos al pasos 2.
Las neuronas de actualizan de la siguiente manera:
Sea
POT =
El potencial de la neurona i,
Pij = El peso asociado a la sinapsis que une las neuronas i de la capa
actual y j de la capa de sensores.
Ej = El estado del sensor j
Entonces
POTi = SumatorioEnj(Pij*Ej)
Y el estado
de la neurona y la función de salida es la función signo
Si los
valores de entrada fuesen binarios deberíamos usar la función
escalón en vez de la función signo.
El potencial
se calcula de la misma manera que en el caso bipolar
Aprendizaje de
la red de hopfield
Esta red
aprende usando la regla de hebb, esto es asociamos los pesos de las
sinapsis al Estado de las neuronas pre y postsinápticas. Los
pasos para que la red aprenda una lista de patrones son los siguientes:
1 Para
cada patrón de la lista P
2 Se establece el patrón de entrada de P en los sensores, la
capa de entrada.
2 Se hace que las neuronas de la capa de salida se actualicen sus
estados a los valores de la capa de entrada.
3 Solicitar que aprendan todas las sinapsis usando las sinapsis laterales.
4 Hacer los pesos de las sinapsis nulos.
Si la red de Hopfield es bipolar, {-1,1}, Las sinapsis que une las neuronas
i, j aprenderán de la siguiente manera:
Sea
Ei
= El estado de la neurona i de la capa de salida.
Pij = El peso actual asociado a la sinapsis que une la neurona i
y la neurona j de la capa de salida.
Ej = El estado de la neurona j de la capa de salida.
Pijnuevo = El peso actualizado.
N = el número de patrones de la lista de patrones.
Entonces
Pijnuevo
= Pij + Ej*Ei / N