Red de memoria asociada

Este tipo de redes neuronales funcionan sobre la base de la asociación de patrones, lo que significa que pueden almacenar diferentes patrones y, en el momento de dar una salida, pueden producir uno de los patrones almacenados combinándolos con el patrón de entrada dado. Estos tipos de recuerdos también se denominanContent-Addressable Memory(LEVA). La memoria asociativa realiza una búsqueda paralela con los patrones almacenados como archivos de datos.

Los siguientes son los dos tipos de memorias asociativas que podemos observar:

  • Memoria asociativa automática
  • Memoria heteroasociativa

Memoria asociativa automática

Esta es una red neuronal de una sola capa en la que el vector de entrenamiento de entrada y los vectores objetivo de salida son los mismos. Los pesos se determinan para que la red almacene un conjunto de patrones.

Arquitectura

Como se muestra en la siguiente figura, la arquitectura de la red de memoria autoasociativa ha ‘n’ número de vectores de entrenamiento de entrada y similares ‘n’ número de vectores de destino de salida.

Algoritmo de entrenamiento

Para la formación, esta red utiliza la regla de aprendizaje Hebb o Delta.

Step 1 - Inicializar todos los pesos a cero como wij = 0 (i = 1 to n, j = 1 to n)

Step 2 - Realice los pasos 3-4 para cada vector de entrada.

Step 3 - Active cada unidad de entrada de la siguiente manera -

$$ x_ {i} \: = \: s_ {i} \ :( i \: = \: 1 \: a \: n) $$

Step 4 - Active cada unidad de salida de la siguiente manera -

$$ y_ {j} \: = \: s_ {j} \ :( j \: = \: 1 \: a \: n) $$

Step 5 - Ajuste los pesos de la siguiente manera -

$$ w_ {ij} (nuevo) \: = \: w_ {ij} (antiguo) \: + \: x_ {i} y_ {j} $$

Algoritmo de prueba

Step 1 - Establezca los pesos obtenidos durante el entrenamiento para la regla de Hebb.

Step 2 - Realice los pasos 3-5 para cada vector de entrada.

Step 3 - Establecer la activación de las unidades de entrada igual a la del vector de entrada.

Step 4 - Calcular la entrada neta a cada unidad de salida j = 1 to n

$$ y_ {inj} \: = \: \ Displaystyle \ sum \ limits_ {i = 1} ^ n x_ {i} w_ {ij} $$

Step 5 - Aplicar la siguiente función de activación para calcular la salida

$$ y_ {j} \: = \: f (y_ {inj}) \: = \: \ begin {cases} +1 & if \: y_ {inj} \:> \: 0 \\ - 1 & if \: y_ {inj} \: \ leqslant \: 0 \ end {cases} $$

Memoria heteroasociativa

Similar a la red de memoria asociativa automática, también es una red neuronal de una sola capa. Sin embargo, en esta red, el vector de entrenamiento de entrada y los vectores objetivo de salida no son los mismos. Los pesos se determinan para que la red almacene un conjunto de patrones. La red heteroasociativa es de naturaleza estática, por lo tanto, no habría operaciones no lineales ni de retardo.

Arquitectura

Como se muestra en la siguiente figura, la arquitectura de la red Hetero Associative Memory ha ‘n’ número de vectores de entrenamiento de entrada y ‘m’ número de vectores de destino de salida.

Algoritmo de entrenamiento

Para la formación, esta red utiliza la regla de aprendizaje Hebb o Delta.

Step 1 - Inicializar todos los pesos a cero como wij = 0 (i = 1 to n, j = 1 to m)

Step 2 - Realice los pasos 3-4 para cada vector de entrada.

Step 3 - Active cada unidad de entrada de la siguiente manera -

$$ x_ {i} \: = \: s_ {i} \ :( i \: = \: 1 \: a \: n) $$

Step 4 - Active cada unidad de salida de la siguiente manera -

$$ y_ {j} \: = \: s_ {j} \ :( j \: = \: 1 \: a \: m) $$

Step 5 - Ajuste los pesos de la siguiente manera -

$$ w_ {ij} (nuevo) \: = \: w_ {ij} (antiguo) \: + \: x_ {i} y_ {j} $$

Algoritmo de prueba

Step 1 - Establezca los pesos obtenidos durante el entrenamiento para la regla de Hebb.

Step 2 - Realice los pasos 3-5 para cada vector de entrada.

Step 3 - Establecer la activación de las unidades de entrada igual a la del vector de entrada.

Step 4 - Calcular la entrada neta a cada unidad de salida j = 1 to m;

$$ y_ {inj} \: = \: \ Displaystyle \ sum \ limits_ {i = 1} ^ n x_ {i} w_ {ij} $$

Step 5 - Aplicar la siguiente función de activación para calcular la salida

$$ y_ {j} \: = \: f (y_ {inj}) \: = \: \ begin {cases} +1 & if \: y_ {inj} \:> \: 0 \\ 0 & if \ : y_ {inj} \: = \: 0 \\ - 1 & if \: y_ {inj} \: <\: 0 \ end {cases} $$