1. Fundamentos de hopfield
La meta es diseñar una red que establezca un conjunto especifico de puntos equilibrados tales que, cuando
una condición inicial es proporcionada, la red eventualmente viene a descansar a un punto diseñado
semejante. La red es recursiva, la salida es alimentada hacia atrás a una de las entradas de la red en
operación. El método que presentamos no es perfecto en el diseño de la red, puede tener puntos en equilibrio
falsos. Sin embargo, el numero de estos puntos es disminuido tanto como sea posible por el método de
diseño. Por otro lado, el dominio de la atracción de los puntos de equilibrio diseñados es tan amplio como es
posible.
El método de diseño es basado en un sistema de ecuaciones diferenciales ordinarias de primer orden que
están definidas en un hipercubo cerrado en el espacio. La solución existe en el limite del hipercubo. Estos
sistemas tienen la estructura básica del modelo de hopfield, pero son mas fáciles de entender y diseñar que el
propio modelo de hopfield.
Esta red puede ser probada con uno o más vectores de entrada que son presentados como condiciones iniciales
en la red. Después de que las condiciones iniciales son dadas. La red produce una salida que es alimentada
hacia atrás para llegar a ser entrada.
Este proceso es repetido sobre y hasta que las entradas establecidas, cada vector de salida eventualmente
converge a uno en los vectores de puntos en equilibrio diseñados.
Esta red utiliza la función de transferencia lineal saturada satlin
Figura de la función satlin
Satlins simplemente regresa las entradas de la red entre –1 y 1. Mas aya de esas regiones se satura en estos
valores mínimos y máximos.
Las redes de hopfield pueden ser simuladas con simuhop que toma un vector de entrada inicial a, los pesos w
y los bias b de la red, y opcionalmente, el numero de pasos de tiempo para simular, regresa una salida de la
red en el paso de tiempo final.
a = simuhop (a, w, b, ts)
si simuhop es llamado con un segundo argumento de salida, regresa ambos valores, la salida de la capa a al
final del ultimo paso de tiempo y la matriz aa de todos los vectores de salida a lo largo de la simulación.
Diseño
[ w , b ] = solvehop ( T )
2. Dado un conjunto de puntos objetivo en equilibrio representado por la matriz de vectores T, solvehop regresa
los pesos y bias para una red recursiva. La red es garantizada para tener puntos en equilibrio estable en el
vector objetivo, pero puede contener también otros puntos de equilibrio falsos.
Una vez que la red ha sido diseñada, puede ser probada con uno o más vectores de entrada, esperando que
esos vectores de entrada cierren los puntos en equilibrio que se encontraran en sus objetivos.
La habilidad para ejecutar lotes de vectores de entrada de prueba rápidamente te permite verificar el diseño en
un corto tiempo.
Primero puedes verificar para ver que los vectores de puntos objetivo en equilibrio están ciertamente en la
red. Después puedes intentar con otros vectores de entrada para determinar el dominio de la tracción de los
puntos objetivo en equilibrio y la localización de los puntos en equilibrio falsos.
Demohop1: diseño de dos neuronas
Considera una red con solo dos neuronas, cada neurona tiene dos pesos de entrada y un bias.
Definimos los puntos objetivo en equilibrio para ser considerados en la red y dos columnas de la matriz T.
T = [+1 -1;
-1 +1];
Dibujemos el estado del espacio de hopfield con dos puntos estables etiquetados con “*”
Hopfield Network State Space
1
0.5
a(2)
0
-0.5
-1
-1 -0.5 0 0.5 1
a(1)
Figura del demo
[ w, b ] = solvehop (T)
solvehop regresa un conjunto de pesos y bias para cada neurona
W=
3. 0.6925 -0.4694
-0.4694 0.6925
b=
1.0e-016 *
0.6900
0.6900
Después del diseño es probado con el vector objetivo T para ver si están considerados en la red. Los
objetivos son usados como entradas para la simulación de hopfield con la función simuhop.
A = simuhop (T, w, b)
A=
1 -1
-1 1
Como se espera, las salidas de la nueva red son los vectores objetivo. La solución permanecerá en las
condiciones iniciales después de una simple actualización y por consiguiente permanecerá ahí para cualquier
numero de actualizaciones.
Ahora puedes sorprenderte como la red se desempeña con varios vectores de entrada aleatorios, se muestra en
el dibujo de las direcciones que la red toma a través del estado en el espacio, para llegar a un punto objetivo.
Hopfield Network State Space
1
0.5
a(2)
0
-0.5
-1
-1 -0.5 0 0.5 1
a(1)
Demohop2: puntos en equilibrio inestable
Usa las mismas neuronas que demohop1. Puedes volver a llamar el demohop1. Los puntos en equilibrio son
diseñados
4. T = [+1 -1;
-1 +1];
Cuando los vectores de entrada son generados aleatoriamente son presentados, la salida de la red
generalmente convergen a uno de los puntos en equilibrio de diseño en menos de 25 ciclos, y 60 ciclos son
casi suficientes para todas las condiciones iniciales aleatorias.
Sin embargo, el comportamiento exitoso descrito no garantiza que no hay otro equilibrio. Permítenos intentar
por un instante, un conjunto de vectores de entrada en la línea perpendicular y bisectar el vector que conecta
los dos puntos diseñados.
Primero la red es diseñada con solvehop. Después los vectores mostrados son aplicados como entrada,
puedes ver la gráfica del progreso de los puntos de salida. Todas las cabezas de las salidas hacia el origen,
son puntos en equilibrio inestable.
Una ligera desviación de la línea (-1, -1) a (+1, +1) dirigida para una salida en uno de los 2 puntos diseñados.
Así, ( 0, 0 ) es un punto en equilibrio inestable que debería ser rara vez un destino final en un sistema real con
ruido.
Hopfield Network State Space
1
0.5
a(2)
0
-0.5
-1
-1 -0.5 0 0.5 1
a(1)
Demohop3: diseño de tres neuronas.
Consideremos una red teniendo 3 neuronas, cada neurona tiene tres entradas y un bias.
Definiremos los puntos objetivo en equilibrio a ser considerados en la red como 2 columnas en la matriz T.
T = [+1 +1;
-1 +1;
-1 -1];
esta matriz es usada para diseñar la red con solvehop, regresa un conjunto de pesos y un bias para cada
neurona.
5. W=
0.2231 0 0
0 1.1618 0
0 0 0.2231
b=
0.8546
0
-0.8546
Después el diseño es probado con el vector objetivo T para ver si están considerados en la red es el vector
objetivo. La solución permanente en estas condiciones iniciales siempre. Así, la red ha considerado los
puntos en equilibrio que le proporcionamos.
Aquí es dibujado el resultado de condiciones iniciales aleatorias. Los puntos estables en el estado del espacio
tridimensional de tres neuronas.
Cada simulación sigue los siguientes patrones: mueve al borde pequeño derecho del cubo, y después sigue el
borde más cercano al punto estable de la esquina.
Aunque ninguna de las simulaciones detenidas en un punto estable diferente a los puntos diseñados dentro de
la red, es posible que esta red tenga otros puntos de equilibrio. Típicamente tal equilibrio no es encontrado
cuando usas condiciones iniciales aleatorias.
Para ver si hay algún equilibrio inestable probaremos puntos en o cerca de un plano que bisecte la línea entre
dos puntos diseñados. Algún punto con una segunda coordenada igual o cerca del cero lo hará.
P = [ 1.0 -1.0 -0.5 1.00 1.00 0.0;
0.0 0.0 0.0 0.00 0.01 -0.2;
-1.0 1.0 0.5 -1.01 -1.00 0.0]
después de varios ciclos la salida es
A=
Los primeros cuatro vectores encontrados en un punto en equilibrio inestable en [1; 0; -1]. Sin embargo,
aunque los vectores de entrada 5 y 6 se inician cerca del punto en equilibrio inestable. Entonces claramente
el sistema tiene un punto en equilibrio inestable
6. Hopfield Network State Space
1
0.5
a(3) 0
-0.5
-1 1
-1
0
0
1 -1 a(2)
a(1)
Demohop4: puntos estable falso.
Una red de 5 neuronas es diseñada con solvehop para considerar los siguientes cuatro vectores.
T = [+1 +1 -1 +1;
-1 +1 +1 -1;
-1 -1 -1 +1;
+1 +1 +1 +1;
-1 -1 +1 +1];
El sistema es primero probado para ver si tiene establecido el punto en equilibrio diseñado.
El conjunto de entradas aleatorias con presentadas en la red. La mayoría del tiempo el rendimiento ha
estabilizado los puntos diseñados después de 25 ciclos. Si embargo, ocasionalmente las salidas de la red se
estabilizan en un punto estable asintotico falso tal como son mostrados en dos y tres columnas.
Desafortunadamente la red tiene esos dos puntos estables asintoticos falsos así como también los puntos
diseñados.
A=
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