Prerrequisitos: RNN
Las redes neuronales de Hopfield, inventadas por el Dr. John J. Hopfield, consisten en una capa de neuronas recurrentes ‘n’ totalmente conectadas. Generalmente se utiliza para realizar tareas de optimización y asociación automática. Se calcula utilizando un proceso interactivo convergente y genera una respuesta diferente a la de nuestras redes neuronales normales.
Red discreta de Hopfield: es una red neuronal completamente interconectada donde cada unidad está conectada a todas las demás unidades. Se comporta de manera discreta, es decir, da una salida distinta finita, generalmente de dos tipos:
- Binario (0/1)
- bipolares (-1/1)
Los pesos asociados con esta red son de naturaleza simétrica y tienen las siguientes propiedades.
Estructura y Arquitectura
- Cada neurona tiene una salida inversora y otra no inversora.
- Al estar completamente conectado, la salida de cada neurona es una entrada para todas las demás neuronas, pero no para uno mismo.
La figura 1 muestra una representación de muestra de una arquitectura de red neuronal Hopfield discreta que tiene los siguientes elementos.
[ x1 , x2 , ... , xn ] -> Input to the n given neurons. [ y1 , y2 , ... , yn ] -> Output obtained from the n given neurons Wij -> weight associated with the connection between the ith and the jth neuron.
Algoritmo de entrenamiento
Para almacenar un conjunto de patrones de entrada S(p) [p = 1 a P], donde S(p) = S 1 (p) … S i (p) … S n (p) , la array de peso viene dada por:
- Para patrones binarios
- Para patrones bipolares
(es decir, los pesos aquí no tienen conexión propia)
Pasos involucrados
Step 1 - Initialize weights (wij) to store patterns (using training algorithm).
Step 2 - For each input vector yi, perform steps 3-7.
Step 3 - Make initial activators of the network equal to the external input vector x.
Step 4 - For each vector yi, perform steps 5-7.
Step 5 - Calculate the total input of the network yin using the equation given below.
Step 6 - Apply activation over the total input to calculate the output as per the equation given below:
(donde θ i (umbral) y normalmente se toma como 0)
Step 7 - Now feedback the obtained output yi to all other units. Thus, the activation vectors are updated.
Step 8 - Test the network for convergence.
Problema de ejemplo
Considere el siguiente problema. Estamos obligados a crear una red Hopfield discreta con representación bipolar del vector de entrada como [1 1 1 -1] o [1 1 1 0] (en caso de representación binaria) almacenados en la red. Pruebe la red hopfield con entradas faltantes en el primer y segundo componente del vector almacenado (es decir, [0 0 1 0]).
Solución paso-a-paso
Step 1 - given input vector, x = [1 1 1 -1] (bipolar) and we initialize the weight matrix (wij) as:
and weight matrix with no self connection is:
Step 3 - As per the question, input vector x with missing entries, x = [0 0 1 0] ([x1 x2 x3 x4]) (binary) - Make yi = x = [0 0 1 0] ([y1 y2 y3 y4])
Step 4 - Choosing unit yi (order doesn't matter) for updating its activation. - Take the ith column of the weight matrix for calculation. (we will do the next steps for all values of yi and check if there is convergence or not)
‘
now for next unit, we will take updated value via feedback. (i.e. y = [1 0 1 0])
now for next unit, we will take updated value via feedback. (i.e. y = [1 0 1 0])
now for next unit, we will take updated value via feedback. (i.e. y = [1 0 1 0])
Red continua Hopfield: A diferencia de las redes discretas Hopfield, aquí el parámetro de tiempo se trata como una variable continua. Entonces, en lugar de obtener salidas binarias/bipolares, podemos obtener valores que se encuentran entre 0 y 1. Se puede usar para resolver problemas de memoria asociativa y optimización restringida. La salida se define como:
where, vi = output from the continuous hopfield network ui = internal activity of a node in continuous hopfield network.
Función de energía
Las redes de hopfield tienen una función de energía asociada a ellas. Disminuye o permanece sin cambios en la actualización (retroalimentación) después de cada iteración. La función de energía para una red continua de hopfield se define como:
Para determinar si la red convergerá a una configuración estable, vemos si la función de energía alcanza su mínimo por:
La red está obligada a converger si la actividad de cada neurona en función del tiempo viene dada por la siguiente ecuación diferencial:
Publicación traducida automáticamente
Artículo escrito por prakharr0y y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA