Está en la página 1de 8

Aprendizaje No Supervisado

Red de Hopfield

Red Recurrente
Red de Hopfield
En los años 1980 John Hopfield, estudió modelos aoutoasociativos que presentaban algunas similaridades con los
perceptrones, pero que también incluían grandes diferencias.

La red de Hopfield se incluye dentro de las redes de neuronas recurrentes, pues cada neurona está conectada con todas
las demás y además se produce un procesamiento temporal de los patrones.

El concepto de memoria asociativa es bastante intuitivo: se trata simplemente de asociar dos patrones.

Tipos de memorias asociativas

Memoria heteroasociativa: Establece una correspondencia F entre dos vectores x e y de tal manera que F(xi) = yi,
y si un x arbitrario está más próximo a xi que a cualquier otro xj , entonces F(x) = yi . En esta definición, el estar más
próximo quiere decir con respecto a la Distancia de Hamming.

Memoria asociativa interpoladora: Establece una correspondencia F entre x e y de tal manera que F(xi) = yi,
pero si el vector de entrada x difiere de uno de los ejemplares en el vector d, de tal modo que x = xi + d, entonces
F(x) = yi + d.

Memoria autoasociativa: Presupone que y = x, y establece una correspondencia F de x en x tal que F(x) = x, y
si algún xi arbitrario está más próximo a x que a cualquier otro vector xj , entonces F(xi) = x.
Red de Hopfield
La estructura de red neuronal es una memoria autoasociativa de una sola capa, totalmente conectada y recurrente.
La red de Hopfield está formada por n neuronas, cada una conectada a todas las demás salvo a ella misma.

La matriz de pesos de la red de Hopfield es una matriz W = (wij ) de orden n × n, donde wij representa el peso
de la conexión de la neurona i a la neurona j.

Dicha matriz posee las siguientes particularidades:


1.- Es una matriz simétrica, es decir, wij = wji, ∀i, j = 1, 2, . . . , n. Esto implica que el peso de la conexión
entre dos neuronas tiene el mismo valor en ambos sentidos.

2.- Los elementos de la diagonal de la matriz son iguales a cero, es decir, wii = 0, ∀i = 1, 2, . . . , n, puesto
que no existen conexiones de una neurona a sí misma.

Las neuronas poseen dos estados, generalmente −1 y 1, que vienen determinados por la función de activación
denotada por Si(t + 1). Esta función es, generalmente, un escalón simétrico y viene dada por:

Si(t + 1) = sgn Vi(t + 1) para i = 1, 2, . . . , n

donde sgn es la función signo definida como:

+1 si x > 0
sng(x) =
−1 si x < 0
Red de Hopfield
Vi(t+ 1) es el nivel de activación, que antes llamamos n o entrada de red de la neurona i y que se calcula como:

Vi(t + 1) = σ𝑛𝑗=1 𝑤𝑗𝑖 𝑠𝑗 (𝑡) − Ui para i = 1, 2, . . . , n


donde Ui es un umbral fijo aplicado a la neurona i y sj(t) es el estado de la neurona j en el instante anterior de tiempo, t.
En el caso de que el nivel de activación que recibe la neurona, Vi(t + 1), sea igual a cero se considera que el estado de la
neurona no varía respecto al instante de tiempo anterior, es decir, Si(t + 1) = Si(t).

Incluyendo todas sus características podríamos expresar Si(t+1), también, de la siguiente forma:

+1 si Vi(t) > 0
Si(t + 1) = Si(t) si vi(t) = 0
−1 si vi(t) < 0

Para una red de Hopfield con n neuronas el estado viene dado por:

s(t + 1) = [S1(t + 1), S2(t + 1), . . . , Sn(t + 1)]

Dicho estado s representa una palabra binaria de n bits de información.


Aprendizaje y funcionamiento de la red de Hopfield

En la red de Hopfield, la salida es tomada como entrada en el paso siguiente, produciendo una nueva salida.

En esta red no se ajustan los pesos, ya que estos se mantienen constantes.

En la red de Hopfield se distinguen dos fases de operación: fase de almacenamiento y fase de recuperación.

Durante la fase de almacenamiento se van a determinar los valores que deben tomar los pesos de la red para almacenar
un conjunto de patrones, y la fase de recuperación describe el mecanismo para recuperar la información almacenada a
partir de información incompleta.

Fase de almacenamiento
Sea {x(k) = x1(k), x2(k), . . . , xn(k)} k=1,...,p el conjunto de p patrones que se desea almacenar.
Cada patrón x(k) es un vector n-dimensional, cuyas componentes toman valores binarios, es decir −1 ´o 1.

Para almacenar patrones, el peso de la conexión de la neurona j a la i viene dado por:

wij = σ𝑝𝑘=1 xj(k)xi(k) ∀ i # j


Esta ecuación cumple la regla de Hebb, pues si xi(k) y xj(k) son iguales, el peso de la conexión de i a j se incrementa en
una unidad, mientras que si son distintas se reducen en la misma cantidad.
Red de Hopfield
Fase de recuperación
Sea x = (x1, x2, . . . , xn) un patrón de prueba diferente a los patrones almacenados en la fase de almacenamiento. Dicho
patrón representa generalmente una versión de uno de los vectores x(k) almacenados, pero con información incompleta
o al que se le ha incluido ruido. En esta fase la red de Hopfield recuperaría el patrón almacenado más próximo a x.

El procedimiento seguido sería el siguiente:

Paso 1. Se inicializan los estados de las n neuronas de la red, utilizando el patrón x: Si(0) = xi para i = 1, 2, . . . , n

Paso 2. Se espera a que la red alcance un estado estable o punto fijo, entendiendo por estable aquel en el que el estado de
los elementos de la red permanezca invariante en el tiempo: Si(t + 1) = Si(t) ∀i = 1, 2, . . . , n

Este estado estable de la red representaría el patrón recuperado a partir del patrón de prueba x.
Red de Hopfield

Ejemplo: Construir una red Hopfield para reconocer imágenes.


Referencias
http://quegrande.org/apuntes/EI/2/SC/teoria/red_de_hopfield_y_crecimiento_de_redes.pdf
https://eprints.ucm.es/id/eprint/46536/1/T40583.pdf
http://www.lcc.uma.es/~jmortiz/archivos/Tema3.pdf
https://ccc.inaoep.mx/~pgomez/cursos/redes%20neuronales%20artificiales/presentaciones/hopfield.pdf

https://kripkit.com/red-de-hopfield/
https://oa.upm.es/43404/7/PFC_GERMAN_ALVAREZ_ALBA_2016.pdf
http://jupiter.utm.mx/~tesis_dig/11612.pdf
https://thales.cica.es/rd/Recursos/rd98/TecInfo/07/ejemplo.htm

Cualquier libro, página web, blog, paper o pdf que trate las Redes Neuronales Artificiales.

Martin Hagan, Howard Demuth y Mark Beale. Neural Network Design. PWS Publishing Company, 1996.

José Hilera y Victor Martínez. Redes Neuronales Artificiales, Fundamentos, Modelos y Aplicaciones. Alfaomega
RA-MA, 2000
.
Simon Haykin. Neural Networks.A Comprehensive Foundation. MacMillan Publishing.

Robert Hecht-Nielsen. Neuroncomputing.Addison Wesley.

Bart Kosko. Neural Networks and Fuzzy Systems. Prenticell Hall.

También podría gustarte

  • Estadística Con Python
    Estadística Con Python
    Documento23 páginas
    Estadística Con Python
    GABRIEL EDUARDO DEL CARPIO VILLAFUERTE
    100% (1)
  • Introducción A La Programación en Python
    Introducción A La Programación en Python
    Documento20 páginas
    Introducción A La Programación en Python
    GABRIEL EDUARDO DEL CARPIO VILLAFUERTE
    Aún no hay calificaciones
  • Diapositiva 9
    Diapositiva 9
    Documento13 páginas
    Diapositiva 9
    GABRIEL EDUARDO DEL CARPIO VILLAFUERTE
    Aún no hay calificaciones
  • Diapositiva 13
    Diapositiva 13
    Documento8 páginas
    Diapositiva 13
    GABRIEL EDUARDO DEL CARPIO VILLAFUERTE
    Aún no hay calificaciones
  • Diapositiva 8
    Diapositiva 8
    Documento9 páginas
    Diapositiva 8
    GABRIEL EDUARDO DEL CARPIO VILLAFUERTE
    Aún no hay calificaciones
  • Diapositiva 14
    Diapositiva 14
    Documento4 páginas
    Diapositiva 14
    GABRIEL EDUARDO DEL CARPIO VILLAFUERTE
    Aún no hay calificaciones
  • Diapositiva 6
    Diapositiva 6
    Documento11 páginas
    Diapositiva 6
    GABRIEL EDUARDO DEL CARPIO VILLAFUERTE
    Aún no hay calificaciones
  • Diapositiva 5
    Diapositiva 5
    Documento9 páginas
    Diapositiva 5
    GABRIEL EDUARDO DEL CARPIO VILLAFUERTE
    Aún no hay calificaciones
  • Diapositiva 3
    Diapositiva 3
    Documento23 páginas
    Diapositiva 3
    GABRIEL EDUARDO DEL CARPIO VILLAFUERTE
    Aún no hay calificaciones
  • Diapositiva 7
    Diapositiva 7
    Documento14 páginas
    Diapositiva 7
    GABRIEL EDUARDO DEL CARPIO VILLAFUERTE
    Aún no hay calificaciones
  • Modelos de Predicción Con Python
    Modelos de Predicción Con Python
    Documento12 páginas
    Modelos de Predicción Con Python
    GABRIEL EDUARDO DEL CARPIO VILLAFUERTE
    Aún no hay calificaciones
  • Manipulación y Análisis de Datos Con Pandas
    Manipulación y Análisis de Datos Con Pandas
    Documento9 páginas
    Manipulación y Análisis de Datos Con Pandas
    GABRIEL EDUARDO DEL CARPIO VILLAFUERTE
    Aún no hay calificaciones
  • Entornos Virtuales Con Python
    Entornos Virtuales Con Python
    Documento5 páginas
    Entornos Virtuales Con Python
    GABRIEL EDUARDO DEL CARPIO VILLAFUERTE
    Aún no hay calificaciones
  • Definición de Funciones en Python e Importación de Bibliotecas
    Definición de Funciones en Python e Importación de Bibliotecas
    Documento11 páginas
    Definición de Funciones en Python e Importación de Bibliotecas
    GABRIEL EDUARDO DEL CARPIO VILLAFUERTE
    Aún no hay calificaciones
  • Sentencias en Python
    Sentencias en Python
    Documento10 páginas
    Sentencias en Python
    GABRIEL EDUARDO DEL CARPIO VILLAFUERTE
    Aún no hay calificaciones
  • Vigas Simplemente Reforzadas
    Vigas Simplemente Reforzadas
    Documento6 páginas
    Vigas Simplemente Reforzadas
    GABRIEL EDUARDO DEL CARPIO VILLAFUERTE
    Aún no hay calificaciones