Memoria Autoasociativa
La aplicación más conocida de las redes de Hopfield es su uso como Memoria Autoasociativa.
MEMORIA ASOCIATIVA
Se entiende por memoria asociativa el almacenamiento y recuperación de información por asociación con otras informaciones.
Un dispositivo de almacenamiento de información se llama memoria asociativa si permite recuperar información a partir de conocimiento parcial de su contenido, sin saber su localización de almacenamiento. A veces también se le llama memoria de direccionamiento por contenido.
Los computadores tradicionales no usan este direccionamiento, si no que se basan en el conocimiento exacto de la dirección de memoria en la que se encuentra la información.
Sin embargo, es obvio que el cerebro humano no actúa así. Si queremos recordar el nombre de una persona, no nos sirve para nada saber que fue el nombre número 3274 que aprendimos. Es más útil saber que su nombre empieza y termina por 'N' y que es un famoso científico inglés. Con esta información, es casi seguro que recordaremos exitosamente a "Newton".
Computacionalmente, una memoria asociativa puede contener p patrones binarios, con N bits de información cada uno. Cuando a la memoria se le presenta un nuevo patrón x, debe recordar el patrón de los almacenados que más se parezca a x. Generalmente, el grado de similitud lo da la distancia de Hamming.
MEMORIA AUTOASOCIATIVA
Las memorias heteroasociativas establecen correspondencias entre pares de vectores x e y, de forma que si un x arbitrario está más próximo a un x' que a cualquier otro x, la correspondencia será f(x)=y'. Se hace corresponder cada entrada con el vector y asociado al vector x más próximo a la entrada.
En una memoria autoasociativa, se igualan los vectores x e y. Si un x arbitrario está más próximo a x' que a cualquier otro x, la correspondencia será f(x)=x' (x'=y').
Esta memoria autoasociativa es la que se trata de simular mediante el siguiente applet, a través de una red de Hopfield.
INSTRUCCIONES
Tenemos una cuadrícula en la que podemos marcar casillas, definiendo así vectores NxN, bipolares. Con estos vectores tenemos cuatro opciones:
Borrar: eliminamos todas las casillas marcadas de la cuadrícula.
Memorizar: guardamos la configuración de la cuadrícula en la siguiente posición de nuestra memoria autoasociativa. Podemos guardar hasta 6 imágenes, aunque dependiendo del tamaño de la red, las imágenes serán después reconocidas o no. La red tiene NxN neuronas, y la memoria tolera un patrón memorizado por cada 7 neuronas. Usando una cuadrícula 10x10 podríamos almacenar muchas más imágenes (hasta 100/7=14 imágenes), pero con una cuadrícula 4x4 sólo tendríamos para 2. Siempre se pueden memorizar más patrones de los permitidos por el número de neuronas, pero el rendimiento en su reconocimiento cae enseguida.
Olvidar: borra todas las posiciones de memoria.
Asociar: recuerda el patrón memorizado más cercano a la configuración de la cuadrícula. En los grafos adjuntos se muestra la proximidad a cada patrón memorizado y la evolución de la energía.
Los grafos representan:
Grafo de coincidencia: Muestra el grado de coincidencia del patrón que recuerda la red con cada patrón memorizado. La red puede llegar a recordar patrones que no están almacenados, si conserva una energía mínima.
Grafo de energía: Muestra la energía de la red. La energía tiene un comportamiento semi-negativo, así que la red trata de encontrar configuraciones de energía mínima. Aunque a veces la memoria no recuerde el mejor patrón, o incluso llegue a una configuración que no corresponde a patrón alguno, la energía siempre será la menor posible