Red neuronal artificial - Hopfield Networks

La red neuronal de Hopfield fue inventada por el Dr. John J. Hopfield en 1982. Consiste en una sola capa que contiene una o más neuronas recurrentes completamente conectadas. La red Hopfield se usa comúnmente para tareas de optimización y asociación automática.

Red Hopfield discreta

Una red Hopfield que opera en forma de línea discreta o, en otras palabras, se puede decir que los patrones de entrada y salida son vectores discretos, que pueden ser de naturaleza binaria (0,1) o bipolar (+1, -1). La red tiene pesos simétricos sin autoconexiones, es decir,wij = wji y wii = 0.

Arquitectura

A continuación se presentan algunos puntos importantes a tener en cuenta acerca de la red Hopfield discreta:

  • Este modelo consta de neuronas con una salida inversora y una no inversora.

  • La salida de cada neurona debe ser la entrada de otras neuronas, pero no la entrada de uno mismo.

  • El peso / fuerza de conexión está representado por wij.

  • Las conexiones pueden ser tanto excitadoras como inhibidoras. Sería excitador, si la salida de la neurona es la misma que la entrada, de lo contrario inhibitoria.

  • Los pesos deben ser simétricos, es decir wij = wji

La salida de Y1 caminante a Y2, Yi y Yn tener los pesos w12, w1i y w1nrespectivamente. Del mismo modo, otros arcos tienen los pesos sobre ellos.

Algoritmo de entrenamiento

Durante el entrenamiento de la red Hopfield discreta, se actualizarán los pesos. Como sabemos, podemos tener los vectores de entrada binarios así como los vectores de entrada bipolares. Por tanto, en ambos casos, las actualizaciones de peso se pueden hacer con la siguiente relación

Case 1 - Patrones de entrada binaria

Para un conjunto de patrones binarios s(p), p = 1 to P

Aquí, s(p) = s1(p), s2(p),..., si(p),..., sn(p)

La matriz de peso está dada por

$$ w_ {ij} \: = \: \ sum_ {p = 1} ^ P [2s_ {i} (p) - \: 1] [2s_ {j} (p) - \: 1] \: \: \: \: \: para \: i \: \ neq \: j $$

Case 2 - Patrones de entrada bipolar

Para un conjunto de patrones binarios s(p), p = 1 to P

Aquí, s(p) = s1(p), s2(p),..., si(p),..., sn(p)

La matriz de peso está dada por

$$ w_ {ij} \: = \: \ sum_ {p = 1} ^ P [s_ {i} (p)] [s_ {j} (p)] \: \: \: \: \: para \ : i \: \ neq \: j $$

Algoritmo de prueba

Step 1 - Inicialice los pesos, que se obtienen del algoritmo de entrenamiento utilizando el principio de Hebbian.

Step 2 - Realice los pasos 3-9, si las activaciones de la red no están consolidadas.

Step 3 - Para cada vector de entrada X, realice los pasos 4-8.

Step 4 - Hacer que la activación inicial de la red sea igual al vector de entrada externa X como sigue -

$$ y_ {i} \: = \: x_ {i} \: \: \: para \: i \: = \: 1 \: a \: n $$

Step 5 - Para cada unidad Yi, realice los pasos 6-9.

Step 6 - Calcule la entrada neta de la red de la siguiente manera -

$$ y_ {ini} \: = \: x_ {i} \: + \: \ Displaystyle \ sum \ limits_ {j} y_ {j} w_ {ji} $$

Step 7 - Aplique la activación de la siguiente manera sobre la entrada neta para calcular la salida -

$$ y_ {i} \: = \ begin {cases} 1 & if \: y_ {ini} \:> \: \ theta_ {i} \\ y_ {i} & if \: y_ {ini} \: = \: \ theta_ {i} \\ 0 & if \: y_ {ini} \: <\: \ theta_ {i} \ end {cases} $$

Aquí $ \ theta_ {i} $ es el umbral.

Step 8 - Transmita esta salida yi a todas las demás unidades.

Step 9 - Pruebe la red para la conjunción.

Evaluación de la función energética

Una función de energía se define como una función que está ligada y no es una función creciente del estado del sistema.

Función de energía Ef⁡, ⁡también llamado Lyapunov function determina la estabilidad de la red Hopfield discreta y se caracteriza de la siguiente manera:

$$ E_ {f} \: = \: - \ frac {1} {2} \ Displaystyle \ sum \ limits_ {i = 1} ^ n \ Displaystyle \ sum \ limits_ {j = 1} ^ n y_ {i} y_ {j} w_ {ij} \: - \: \ estilo de visualización \ sum \ límites_ {i = 1} ^ n x_ {i} y_ {i} \: + \: \ estilo de visualización \ sum \ límites_ {i = 1} ^ n \ theta_ {i} y_ {i} $$

Condition - En una red estable, siempre que cambie el estado del nodo, la función de energía anterior disminuirá.

Suponga que cuando el nodo i ha cambiado de estado de $ y_i ^ {(k)} $ a $ y_i ^ {(k \: + \: 1)} $ ⁡entonces el cambio de energía $ \ Delta E_ {f} $ viene dado por la siguiente relación

$$ \ Delta E_ {f} \: = \: E_ {f} (y_i ^ {(k + 1)}) \: - \: E_ {f} (y_i ^ {(k)}) $$

$$ = \: - \ left (\ begin {array} {c} \ displaystyle \ sum \ limits_ {j = 1} ^ n w_ {ij} y_i ^ {(k)} \: + \: x_ {i} \: - \: \ theta_ {i} \ end {matriz} \ right) (y_i ^ {(k + 1)} \: - \: y_i ^ {(k)}) $$

$$ = \: - \ :( net_ {i}) \ Delta y_ {i} $$

Aquí $ \ Delta y_ {i} \: = \: y_i ^ {(k \: + \: 1)} \: - \: y_i ^ {(k)} $

El cambio de energía depende del hecho de que solo una unidad puede actualizar su activación a la vez.

Red de Hopfield continua

En comparación con la red Discrete Hopfield, la red continua tiene el tiempo como una variable continua. También se utiliza en problemas de optimización y asociación de automóviles, como el problema del vendedor ambulante.

Model - El modelo o arquitectura se puede construir agregando componentes eléctricos como amplificadores que pueden asignar el voltaje de entrada al voltaje de salida a través de una función de activación sigmoidea.

Evaluación de la función energética

$$ E_f = \ frac {1} {2} \ Displaystyle \ sum \ limits_ {i = 1} ^ n \ sum _ {\ subck {j = 1 \\ j \ ne i}} ^ n y_i y_j w_ {ij} - \ Displaystyle \ sum \ limits_ {i = 1} ^ n x_i y_i + \ frac {1} {\ lambda} \ Displaystyle \ sum \ limits_ {i = 1} ^ n \ sum _ {\ subck {j = 1 \\ j \ ne i}} ^ n w_ {ij} g_ {ri} \ int_ {0} ^ {y_i} a ^ {- 1} (y) dy $$

aquí λ es el parámetro de ganancia y gri conductancia de entrada.