Información

¿Por qué la red de hopfield es un modelo de memoria asociativa?

¿Por qué la red de hopfield es un modelo de memoria asociativa?

Estoy luchando por comprender el significado del término memoria asociativa en el contexto de las redes de Hopfield. No estoy seguro de si el aprendizaje asociativo es lo mismo o diferente. En el aprendizaje asociativo, tienes dos elementos no relacionados y aprendes a asociar un elemento con el otro. En una red de hopfield, tiene un patrón parcial, luego puede recuperar el patrón completo. ¿Cómo es este aprendizaje asociativo? ¿O el aprendizaje asociativo y la memoria asociativa son cosas diferentes?


Una memoria asociativa es un sinónimo de memoria direccionable de contenido o una memoria que almacena el resultado del aprendizaje asociativo, en el que se aprende que un elemento de entrada está asociado con un elemento de salida.

Una red Hopfield es un tipo de memoria asociativa, en la que un elemento de entrada (incluidas las representaciones parciales y ruidosas del elemento original entrenado / codificado) está asociado a la representación ideal del elemento de entrada entrenado / deseado / codificado.

Para un análisis más detallado de las redes Hopfield, recomiendo mirar la pregunta "¿Cuál es la diferencia entre una red Hamming y una Hopfield?"


Redes Hopfield continuas modernas como modelos basados ​​en energía

Dejemos que & rsquos intente ahora conectar el sistema definido por la función de energía eqref al marco de la mecánica estadística de los modelos basados ​​en la energía 12 13.

Modelos basados ​​en energía: una suave introducción

Los modelos basados ​​en energía aprenden una función de energía parametrizada $ E _ < theta> $ que mapea puntos de datos $ boldsymbol$ a valores de energía escalares reales $ E _ < theta> ( boldsymbolPS La distribución de datos está modelada por la distribución de Boltzmann, begin p _ < theta> ( boldsymbol) = frac < mathrm^ <- E _ < theta> ( boldsymbol) >>, etiqueta fin donde $ Z ( theta) = int mathrm boldsymbol mathrm^ <- E ( boldsymbol)> $ denota la función de partición del sistema & rsquos. Configuraciones $ boldsymbol$ con bajas energías $ E _ < theta> ( boldsymbol) $ se consideran más probables y su peso contribuye más fuertemente a la función de partición.

Para dirigir la distribución del modelo $ p _ < theta> $ hacia una distribución de datos objetivo $ p _ < mathrm> $, podemos intentar minimizar la función de pérdida de probabilidad

donde la probabilidad logarítmica negativa es igual a

empezar - log p_ < theta> ( boldsymbol) = E_ < theta> ( boldsymbol) + log Z ( theta). fin

Este es un problema de optimización difícil porque calcular $ log Z ( theta) $ es difícil para la gran mayoría de distribuciones de datos de alta dimensión que nos interesan. En la práctica, las personas recurren a aproximaciones como la divergencia contrastiva para reducir la energía de los "ejemplos positivos" extraídos de la distribución de datos, mientras que empujan hacia arriba los "ejemplos equivalentes" obtenidos a partir del muestreo de la distribución del modelo. Aunque el muestreo de eqref se puede hacer con métodos como Markov Chain Monte Carlo, es computacionalmente costoso hacerlo, especialmente como parte de un paso 14 de optimización de bucle interno.

Optimización exacta de las modernas redes Hopfield continuas

Entonces, ¿qué pasa con el sistema definido por la función de energía eqref? Dejemos que & rsquos considere los patrones almacenados $ mathbf in mathbb^$ como los parámetros del modelo que queremos optimizar. La tarea del modelo es intentar memorizar los patrones de estado entrantes $ boldsymbol < xi> in mathbb^$ extraído de alguna distribución de datos $ p _ < mathrm> $ al decidir qué tipo de patrones almacenar. La función de partición se parece a

que, debido al $ log $ en el & ldquointeraction término & rdquo, se reduce a una suma de $ n $ integrales gaussianas dimensionales

empezar Z = (2 pi) ^ suma_^ mathrm^ < frac <1> <2> boldsymbol_^ cdot boldsymbol_ > end

Después de tomar el logaritmo, terminamos con $ mathrm$ operador:

empezar log Z = frac <2> log left (2 pi right) + mathrm left ( frac <1> <2> mathrm left ( boldsymbol^ boldsymbol right) right) end

donde $ mathrmSe entiende que el operador $ convierte la diagonal de su argumento de matriz en un vector. Conectando esta expresión a eqref conduce a la siguiente función de pérdida para la matriz de patrones almacenados

empezar mathcal_ < mathrm> ( mathbf) = & amp mathbb_ < boldsymbol < xi> sim p _ < mathrm>> left [ frac <1> <2> boldsymbol < xi> ^ T boldsymbol < xi> - mathrm left ( boldsymbol^ T boldsymbol < xi> right) right] nonumber
& amp + mathrm left ( frac <1> <2> mathrm left ( boldsymbol^ boldsymbol derecha) derecha) + frac <2> log left (2 pi right) end

empezar nabla _ < mathbf> mathcal_ < mathrm> ( mathbf) = & amp - mathbb_ < boldsymbol < xi> sim p _ < mathrm>> left [ boldsymbol < xi> otimes mathrm left ( boldsymbol^ T boldsymbol < xi> right) right] nonumber
& amp + boldsymbol mathrm left ( frac <1> <2> mathrm left ( boldsymbol^ boldsymbol right) right) end

y una actualización con tamaño de paso $ gamma $

empezar mathbf_ = mathbf_ & amp + gamma mathbb_ < boldsymbol < xi> sim p _ < mathrm>> left [ boldsymbol < xi> otimes mathrm left ( boldsymbol^ T_ boldsymbol < xi> right) right] nonumber
& amp - gamma mathbf_ mathrm left ( frac <1> <2> mathrm left ( boldsymbol^_ boldsymbol_ right) right) end

Dejemos que & rsquos intente adivinar qué significa esto para un patrón de estado de entrada única. El primer término de gradiente empuja todos los patrones almacenados hacia la muestra, pero ponderados por un vector de atención de producto escalar que cuantifica su superposición con el patrón de entrada, similar a eqref pero en la otra dirección. El segundo término de gradiente proviene de la función de partición y actúa como un regularizador al mantener bajo control las normas de los patrones almacenados. La regularización mantiene los valores del patrón dentro de un rango razonable y empuja el sistema hacia regiones en el espacio de parámetros con valores de productos escalares pequeños no triviales.


Entrenamiento [editar | editar fuente]

Entrenar una red Hopfield implica reducir la energía de los estados que la red debería "recordar". Esto permite que la red sirva como un sistema de memoria direccionable de contenido, es decir, la red convergerá a un estado "recordado" si se le da solo una parte del estado. Por ejemplo, si entrenamos una red Hopfield con cinco unidades para que el estado (1, 0, 1, 0, 1) sea un mínimo de energía, y le damos a la red el estado (1, 0, 0, 0, 1) convergerá a (1, 0, 1, 0, 1). Así, la red está debidamente entrenada cuando la energía de los estados que la red debe recordar son mínimos locales.


Modelos básicos de redes asociativas

En los modelos de redes asociativas, la memoria se construye como una red metafórica de conceptos cognitivos (por ejemplo, objetos, eventos e ideas) interconectados por vínculos (o vías) que reflejan la fuerza de la asociación entre pares de conceptos. Tales modelos comúnmente incorporan ideas sobre & # 8220 activación de propagación & # 8221 para representar los procesos de recuperación de la memoria. De acuerdo con tales modelos, se dice que los conceptos que se están pensando en la actualidad están & # 8220 activados & # 8221 y & # 8220excitación & # 8221 se extienden desde estos caminos de conexión descendente hasta conceptos asociados. Es probable que las asociaciones que se han encontrado con más frecuencia en el pasado sean más fuertes y estén representadas en modelos de redes asociativas por vías a través de las cuales la excitación se puede propagar más rápidamente. Una vez que haya pasado suficiente excitación de conceptos previamente activados a un nuevo concepto, de modo que su nivel de excitación acumulada supere algún umbral, ese nuevo concepto también se recordará.


Para comprender mejor las redes de Hopfield, es importante conocer algunos de los procesos generales asociados con las construcciones de redes neuronales recurrentes. En general, las neuronas reciben entradas complicadas que a menudo se rastrean a través del sistema para proporcionar tipos de dirección más sofisticados. Algunos expertos hablan del & ldquotraveling salesman problem & rdquo como un tipo de problema difícil que se aborda con las redes Hopfield & ndash, en este caso particular, el sistema está buscando el tiempo entre destinos y elaborando soluciones de alto nivel mediante el uso de estructuras neuronales artificiales que de alguna manera simulan Pensamiento humano.

Los expertos también utilizan el lenguaje de la temperatura para describir cómo las redes de Hopfield reducen las entradas de datos complejos a soluciones inteligentes, utilizando términos como "equilibrio quotérmico" y "recocido quosimulado", en el que las entradas de datos de picos o excitación simulan algunos de los procesos utilizados para enfriar metales calientes. La idea es que los datos se calientan o se estabilizan de acuerdo con las entradas neuronales y las comunicaciones laterales entre capas, y eso forma la base de gran parte de este equilibrio de patrones almacenados y nuevas entradas que permiten que las redes Hopfield sean valiosas en campos como el procesamiento de imágenes. , procesamiento de voz y computación tolerante a fallas.


Visualización de la memoria episódica con Hopfield Network

En 2018, escribí un artículo que describe el modelo neuronal y su relación con las redes neuronales artificiales. Un capítulo del libro al que me refiero explica que ciertas propiedades pueden surgir cuando un conjunto de neuronas trabajan juntas y forman una red. Hay muchas teorías en el libro, pero lo que más me atrae es una red que puede simular cómo funciona la memoria humana llamada Hopfield Network [Hopfield, J.J. mil novecientos ochenta y dos].

Hopfield Network es el predecesor de Restricted Boltzmann Machine (RBM) y Multilayer Perceptron (MLP). Es un memoria autoasociativa basada en energía, red recurrente y de inspiración biológica.

  • Es un a base de energía red ya que utiliza la función de energía y minimiza la energía para entrenar el peso. Imagine que una neurona se activa provocada por un impulso externo de energía y la energía se propaga por toda la red y excita a todas las demás neuronas conectadas.
  • Es un autoasociativo red de memoria significa que la red entrenada puede recuperar la información memorizada completa si se proporciona solo información parcial como entrada. Por ejemplo, digamos que tenemos una red que consta de 10 neuronas conectadas entre sí. Cuando activamos 8 neuronas con las llamadas entrada A estado, la red reaccionará y calculará de un lado a otro hasta que todas las neuronas y las sinapsis de las neuronas (la conexión entre las neuronas) sean estables. Digamos que este estado estable llamado S, pero ahora la red está implícitamente memorizada entrada A estado. Después de eso, cuando activamos algunas neuronas (las mismas neuronas que se activaron anteriormente pero no todas, menos de 8), la red reaccionará nuevamente hasta que todas las neuronas estén estables. Y la condición estable es donde se encuentran las 8 neuronas anteriores. entrada A estado.
  • Es un recurrente red significa que la salida de la red vuelve a la entrada de la red. La red forma un gráfico dirigido. En este caso, un gráfico cíclico dirigido.
  • Es un inspirado biológicamente red ya que la estructura de la región CA3 del hipocampo forma la estructura y el comportamiento similares con Hopfield Network.

Se ha demostrado conductualmente que el CA3 admite el aprendizaje espacial rápido de una prueba, el aprendizaje de asociaciones arbitrarias donde el espacio es un componente, la finalización de patrones, la memoria espacial a corto plazo y el aprendizaje de secuencias mediante asociaciones formadas entre elementos sucesivos. [Cutsuridis, V. y Wennekers, T. 2006]

A diferencia de otras redes neuronales que utilizan propagación hacia atrás para conocer el peso, Hopfield Network utiliza el aprendizaje de Hebb o el aprendizaje de Hebbian [Hebb, D.O. 1949] que también es un inspirado biológicamente aprendiendo. La idea detrás del aprendizaje de Hebbian es que la conexión entre dos neuronas (sinapsis) será más fuerte si las neuronas en ambos extremos se correlacionan activamente. En Hopfield Network, las neuronas solo tienen dos estados, activado y no activado. A veces, las personas cuantificaron el estado activado con 1 y el estado no activado con 0. A veces también cuantificaron el estado activado con 1 y el estado no activado con -1.

A finales de 2019, dediqué mi tiempo a intentar simular y visualizar cómo funciona la recuperación de la memoria con Hopfield Network. La simulación y visualización que hice es una aplicación web, por lo que es accesible y puede ser probada por todas las personas. Hay muchas explicaciones sobre Hopfield Network y sería redundante (¿o no?) Si también lo explico aquí. En cambio, estoy abriendo este código fuente de la aplicación web para que la gente explore y se haga una idea de la implementación. El enlace está aquí.

La imagen de arriba muestra la captura de pantalla de la aplicación web para visualizar Hopfield Network. Hay dos secciones, entrenar y predecir. Puede dibujar algunos patrones (3 como máximo) en cada una de las cuadrículas o también puede elegir los patrones predefinidos proporcionados. Una vez dibujado el patrón, puede hacer clic en el botón Entrenar 3 patrones. Cuando haya terminado, la red ya ha memorizado los 3 patrones proporcionados anteriormente. Puede intentar visualizar cómo Hopfield Network recuerda un patrón dibujando el patrón (incompleto) en la cuadrícula de Predicción. A continuación se muestra el GIF cuando jugamos con la visualización.

Es de esperar que este artículo y la simulación iluminen a algunas personas que todavía están perplejas con el funcionamiento de una red Hopfield. También podría ser útil para las personas que aprenden algo mejor visualmente.

Además de Hopfield Network, también creo una aplicación web para simular cómo funciona Q-learning. Q-learning es un algoritmo de aprendizaje por refuerzo. Puedes comprobarlo aquí.


Modelos de memoria asociativa no lineal

El modelo BSB es muy similar a una red de Hopfield, en el sentido de que es un modelo de memoria asociativa no lineal con conexiones recurrentes. Al igual que el modelo de Hopfield, también se puede entrenar con una regla de aprendizaje hebbiana simple. (También se puede entrenar usando una regla de Widrow-Hoff o delta, pero no lo discutimos en clase). Sin embargo, Anderson generaliza la red binaria simple de Hopfield de una manera importante: las unidades tienen estados continuos de valor real. Los estados de las unidades se calculan de acuerdo con una "función LÍMITE" (ver texto, p. 504-506) de la entrada sumada ponderada total. Esta función tiene una forma aproximadamente sigmoidea. Los estados se actualizan gradualmente, de modo que para cada unidad, el estado anterior se reemplaza gradualmente por la influencia de las activaciones entrantes. Como en el caso del asociador lineal, la dinámica de estado tiende a hacer que la red converja en los vectores propios de la matriz de ponderaciones. Entonces, si el estado inicial está cerca de un autovector con un autovalor grande, convergerá rápidamente a algo cercano a ese autovector. Sin embargo, debido a la función LIMIT, el estado final en realidad consistirá en todos los 1 y -1. Si solo hay 3 unidades, esto correspondería a las esquinas de un cubo en el espacio de estado. Para dimensiones más altas, los estados de la red están delimitados por las esquinas de un hipercubo de alta dimensión. Es por eso que este modelo se llama estado cerebral en una caja.


Las redes Hopfield son inútiles. He aquí por qué debería aprenderlos.

Las redes Hopfield fueron inventadas en 1982 por J.J. Hopfield, y para entonces, se han reunido varios modelos de redes neuronales diferentes, lo que proporciona un mejor rendimiento y robustez en comparación. Que yo sepa, en su mayoría se introducen y mencionan en los libros de texto cuando se acercan a Boltzmann Machines y Deep Belief Networks, ya que se basan en el trabajo de Hopfield.

Sin embargo, brindan una perspectiva tan diferente y alternativa sobre los sistemas de aprendizaje en comparación con el estado actual del aprendizaje profundo que vale la pena comprenderlos, en todo caso, por el simple hecho de hacerlo.

Vamos a averiguar cómo trabajan.


17.2.3 Recuperación de patrones

En muchos experimentos de recuperación de la memoria, se da una pista con información parcial al comienzo de una prueba de recuperación. La recuperación de un elemento de la memoria se verifica completando la información faltante.

Para imitar la recuperación de memoria en el modelo de Hopfield, se da una entrada inicializando la red en un estado S (t 0) = S (t_ <0>) = <>(t_ <0>) 1 leq i leq N >. Después de la inicialización, la red evoluciona libremente bajo la dinámica (17.3). Idealmente, la dinámica debería converger a un punto fijo correspondiente al patrón μ mu que es más similar al estado inicial.

metro μ ⁢ (t) = 1 N ⁢ ∑ yo p yo μ ⁢ S yo ⁢ (t). m ^ < mu> (t) = <1 sobre N> sum_pag_^ < mu> , S_(t) ,. (17.8)

La superposición juega un papel importante en el análisis de la dinámica de la red. De hecho, usando la ecuación. (17.2) el potencial de entrada h i h_ de una neurona es

hola ⁢ (t) = ∑ jwi ⁢ j ⁢ S j ⁢ (t) = c ⁢ ∑ j = 1 N ∑ μ = 1 M pi μ ⁢ pj μ ⁢ S j ⁢ (t) = c ⁢ N ⁢ ∑ μ = 1 M pi μ ⁢ m μ ⁢ (t) h_(t) = sum_w_,S_(t) = c sum_^ sum _ < mu = 1> ^pag_^ < mu> ,% p_^ < mu> , S_(t) = c , N , sum _ < mu = 1> ^pag_^ < mu> , m ^ < mu> (t) (17.9)

donde hemos utilizado las Ecs. (17,7) y (17,8). Para que los resultados del cálculo sean independientes del tamaño de la red, es estándar elegir el factor c = 1 / N c = 1 / N, como se mencionó anteriormente. A continuación, siempre tomamos c = 1 / N c = 1 / N a menos que se indique lo contrario. Para una discusión en profundidad, vea los argumentos de escala en el Capítulo 12.

Para cerrar el argumento, ahora usamos el potencial de entrada en la dinámica Eq. (17.3) y encuentre

Prob ⁢ = g ⁢ [∑ μ = 1 M p yo μ ⁢ m μ ⁢ (t)]. < rm Prob> <>(t + Delta t) = + 1 | h_(t) > = g left [ sum _ < mu = 1> ^pag_^ < mu>% , m ^ < mu> (t) right] ,. (17.10)

En el caso silencioso Eq. (17.10) se simplifica a

Por lo tanto, cada neurona toma, después de un solo paso de tiempo, el estado deseado correspondiente al patrón. En otras palabras, se recupera el patrón con la mayor similitud con la entrada, como debería ser.

Para las neuronas estocásticas encontramos

Prob ⁢ = sol ⁢ [p yo 3 ⁢ metro 3 ⁢ (t 0)]. < rm Prob> <>(t_ <0> + Delta t) = + 1 | h_(t) > = g [p_^ <3> , m ^ <3> (t_ <0>)] ,. (17.12)

De igual forma todos aquellos que deberían estar inactivos comparten otra regla

m 3 ⁢ (t 0 + Δ ⁢ t) = 1 2 ⁢ <2 ⁢ g ⁢ [m 3 ⁢ (t 0)] - 1> - 1 2 ⁢ <2 ⁢ g ⁢ [- m 3 ⁢ (t 0) ] - 1>. m ^ <3> (t_ <0> + Delta t) = <1 over 2> , <2 , g [m ^ <3> (t_ <0>)] - 1 > - <1 over 2> , <2 , g [% -m ^ <3> (t_ <0>)] - 1 > ,. (17.16)

En el caso especial de que g ⁢ (h) = 0.5 ⁢ [1 + tanh ⁡ (β ⁢ h)] g (h) = 0.5 [1+ tanh ( beta h)] Eq. (17.16) simplifica a una ley de actualización

m 3 ⁢ (t + Δ ⁢ t) = tanh ⁡ [β ⁢ m 3 ⁢ (t)] m ^ <3> (t + Delta t) = tanh [ beta , m ^ <3> (t) ] , (17.17)

A B
Fig. 17.8: Recuperación de memoria en el modelo de Hopfield. UNA . La superposición m ν ⁢ (t + Δ ⁢ t) m ^ < nu> (t + Delta t) con un patrón específico ν nu se da como una función de la superposición con el mismo patrón m ν ⁢ (t) m ^ < nu> (t) en el paso de tiempo anterior (línea continua) cf. Eq. (17,16). Se supone que la superposición con los otros patrones M-1 M-1 desaparecerá. La actualización iterativa se puede visualizar como una ruta (flecha) entre la curva de superposición y la diagonal (línea discontinua). La dinámica se aproxima a un punto fijo (círculo) con un alto solapamiento correspondiente a la recuperación del patrón. B . La probabilidad de error P P_ < rm error> de que durante la recuperación se produzca un cambio de estado erróneo corresponde al área sombreada bajo la curva cf. Eq. (17,20). El ancho σ sigma de la curva es proporcional a la carga del patrón M / N M / N figura esquemática.

En segundo lugar, si β & gt 1 beta & gt1, la dinámica converge desde una superposición inicialmente pequeña a un punto fijo con una superposición grande, cercana a uno. La solución gráfica de la actualización del patrón ν = 3 nu = 3 (para el cual existía una superposición distinta de cero en el estado inicial) se muestra en la figura 17.8. Debido a que la dinámica de la red se 'atrae' hacia un punto fijo estable caracterizado por una gran superposición con uno de los patrones memorizados (figura 17.9 A), el modelo de Hopfield y sus variantes también se denominan redes 'atractoras' o 'memorias atractoras'. (24 40).

Finalmente, la suposición de que, aparte del patrón 3, todos los demás patrones tienen una superposición inicial exactamente igual a cero es artificial. Para patrones aleatorios, esperamos una pequeña superposición entre pares arbitrarios de patrones. Por lo tanto, si la red está exactamente en el patrón 3 de modo que m 3 = 1 m ^ <3> = 1, los otros patrones tienen una superposición pequeña pero finita | m μ | ≠ 0 | m ^ < mu> | neq 0, debido a correlaciones espurias C μ ⁢ ν = (1 / N) ⁢ ∑ ipi μ ⁢ pi ν C ^ < mu nu> = (1 / N) suma_pag_^ < mu> p_^ < nu> entre dos patrones aleatorios cualesquiera μ mu y ν nu Fig. 17.7 B. Si el número de patrones es grande, las correlaciones espúreas entre los patrones pueden generar problemas durante la recuperación de la memoria, como veremos ahora.


¿Cómo funciona el feedforward en las redes hopfield?

Al igual que en cualquier otra red neuronal, tenemos aprendizaje y retroalimentación. Una vez que la red ha aprendido algo, queremos darle a esa red un patrón similar y ver el resultado. En el caso de las redes de alimentación anticipada / LSTM utilizadas para la clasificación, la salida puede ser un valor discreto. En el caso de una red de campo de salto, la salida es un patrón reconstruido. Entonces, para hacer feedforward en una red de hopfield, inicializaremos las neuronas con los valores de un patrón y luego pasaremos por cada neurona y calcularemos la suma ponderada de sus entradas. Si esa suma tiene el mismo signo que el valor de la neurona, no hacemos nada, de lo contrario daremos la vuelta a la neurona. Esto se llama para permitir que la red "evolucione" hacia un patrón aprendido.

Partiremos del supuesto de que los valores de cada neurona en la red son +1 o -1.

La suma ponderada de cualquier neurona ai se vería así:

Eso es como en cualquier otra red neuronal. Tomamos los valores de todas las neuronas aj que se conectan a ai (en el caso de una red hopfield serían todas las demás neuronas de la red ya que es un gráfico completo) y multiplicamos cada una por el peso wij entre ella y ai . Resumimos todos estos valores.

Pero en un procedimiento de avance neto de hopfield no estamos interesados ​​en el valor real de esa suma, sino en el signo de esa suma.

Entonces el valor de esa neurona será:

Entonces digamos que si el valor de la neurona es +1. Si la suma ponderada fue positiva, el valor de la neurona no cambia. De lo contrario, si la suma fuera negativa, el valor de la neurona cambiaría de +1 a -1. Entonces, en otras palabras, el valor de la neurona cambiará para coincidir con el canto de su suma ponderada. Haremos eso con todas las neuronas de la red hasta que terminemos en un estado "estable". Es entonces cuando el signo de cualquier neurona coincidirá con el signo de su suma ponderada. En otras palabras, las redes dejarán de evolucionar.


Ver el vídeo: red de hopfield (Enero 2022).