El modelo de Hopfield es un algoritmo de Inteligencia Artificial para el Aprendizaje no supervisado offline.

Consiste en una red monocapa con neuronas cuyas salidas son binarias. Cada neurona está conectada a las demás mediante conexiones laterales. Los pesos asociados a las conexiones entre pares de neuronas son simétricos. Es un modelo backforward.

En su versión discreta, la red usa una función de transferencia escalón en . En las redes continuas se usa la función sigmoidal en .

Esta es una red autoasociativa: puede almacenar varios patrones durante el aprendizaje y después, cuando llega algún patrón distorsionado, puede clasificarlo en alguno de los que aprendió.

Cada neurona recibe una entrada del exterior y las salidas de las demás neuronas multiplicadas por los pesos de su conexión. Así se calcula el de cada neurona y su correspondiente salida. Este proceso se retroalimenta hasta que la red se estabiliza.

Funcionamiento:

  1. En se aplica la información de entrada ().
  2. Iterar hasta alcanzar la convergencia (cuando ):

En la etapa de aprendizaje se fijan los valores de los pesos. Esta red usa un aprendizaje no supervisado de tipo hebbiano (autoasociativo), tal que el peso de una conexión entre una neurona y otra se obtiene mediante el producto de los componentes -ésimo y -ésimo del vector que representa el patrón a almacenar.

Siendo patrones, y suponiendo una red discreta que trabaja con , se obtienen los pesos:

Con los ceros para eliminar la conexión autorecurrente. Representación matricial de los pesos:

Las informaciones que debe aprender la red son:

Tal que el aprendizaje es:

Luego se presenta un patrón nuevo y se calcula:

Y se repite este proceso hasta que . Si existe una repetición con entonces la red no se estabiliza.

Estos modelos no clasifican, sino que encuentran patrones similares. Si se almacenan demasiados patrones en una red de Hopfield, la red puede no estabilizarse o incluso estabilizarse en patrones desconocidos.

Condiciones de Recuperabilidad

Siendo la capacidad la cantidad de patrones que esta red puede almacenar, se conoce que:

Se observa que este modelo es ineficiente: requiere muchas neuronas para almacenar pocos patrones.

Esto no garantiza obtener una salida correcta estable si los patrones no son lo suficientemente diferentes entre sí. Para ello surge la ortogonalidad: se recomienda que la diferencia entre patrones sea al menos del 50%, calculada como: