Redes Asociativas
Redes Asociativas Redes que realizan una asociación de ideas memoria asociativa El modelo más representativo y conocido son las redes de Hopfield (1982) La redes feedforward: Estables. Comportamiento limitado. Hopfield intenta mejorar el comportamiento añadiendo elementos de memoria redes realimentadas o feedback. El problema de las redes realimentadas es la estabilidad.
John J. Hopfield
Redes de Hopfield . . . 1 i n n-1 Normalmente las redes de Hopfield no son adaptativas, los pesos vienen dados por las matrices de entrada, y no “aprenden”. Existe un caso particular que si es adaptativo y los pesos pueden llegar a aprenderse.. Por su comportamiento son redes hebbianas Pueden trabajar en binario y en bipolar. Hay modelos de entradas continuas
Funcionamiento Trabajando en bipolar, la salida de cada neurona es: donde
Funcionamiento La señal inicial está entrando constantemente. El estado de la red corresponde al vector de salida en un momento dado: Los cambios de estado son: Discretos en tiempos aleatorios (asincrónicamente).
Funcionamiento La visualización es sencilla. Suponer un sistema con 3 neuronas, con dos vectores que se quieren aprender: (101) y (000). 111 101 110 011 001 010 000
Estabilidad Un vértice estable viene determinado por: Los pesos. Las entradas. El valor del umbral. W es estable Para garantizar la estabilidad: - El sistema es asíncrono, la matriz ha de ser simétrica y la diagonal igual a cero: Se supone la existencia de una función que decrece cuando la red cambia de estado y que se para al alcanzar un mínimo: Red estable. La función es una función de Liapunov.
Función de Liapunov V(x) es una función de Liapunov en un entorno si se cumple: 1.- V(x) es continua en . 2.- V(x) tiene un mínimo en . 3.- Toda trayectoria continua en , V(x) es decreciente. Esta función V(x) se denomina E (energía) para las redes de Hopfield. Se trata de encontrar la función E para cada caso concreto. La forma de la función E es: donde yj es la salida de la neurona j, xj es la entrada externa de la neurona j y j es el umbral de la neurona j.
Función de Liapunov El dE producido por un cambio en la neurona j es: donde netj es la entrada neta a la neurona j. En función de la relación entre netj y j : Con la función de activación definida Si netj >j [netj -j]>0 yi o cte dyi0 dE0 E . Si netj <j dyi0 dE0 E . Si netj =j dE=0. La energía se reduce o se mantiene por cambios en el estado de la red estabilidad. Utilizando esta función, la energía disminuyen en cualquier trayectoria independientemente de cómo varíe la yj.
Cálculo de pesos Calculados a priori, no se adaptan. La matriz de pesos W es de dimensiones nxn, donde n es el número de neuronas, o sea el número de componentes de los vectores. Para cada patrón a almacenar: Para almacenar m patrones:
Ejemplo Se almacena el patrón Se almacena un segundo patrón
Ejemplo La matriz que almacena los dos patrones es: Para pasar los valores de entrada de binario a bipolar se cambia: binario x bipolar y=2x-1
Algortimo 1.- Inicializar los pesos para almacenar los vectores de entrada. 2.- Para cada vector de entrada a) Calcular b) Para cada neurona i hacer una actualización en orden aleatorio: Actualizar y enviar yi (t+1) a todas las neuronas. 3.- Test de convergencia. Si no hay cambios en (t+1) con respecto a (t) la red ha convergido Si no, ir a 2.
Ejemplo Dado el vector de entrada (1,1,1,-1) ver si la red también converge para el vector erróneo (-1,1,1,-1). 1.- 2.-
Ejemplo 3.- Secuencia de actualización: 4, 3, 1,2. Se puede ver como la red converge y corrige el error. Si el vector de entrada fuese (-1,-1, 1,-1) la red no converge, es incapaz de corregir los 2 errores
Sistemas Continuos Se utiliza como función de activación una función continua:
Capacidad de la Red Existen 2n posibles estados. Hopfield determinó experimentalmente el límite 0.15n, donde n es el número de neuronas. Mejora utilizando: Patrones simétricos: #{-1} #{+1} Patrones ortogonales: Pi Pj xi•xj=0 La red puede caer en mínimos locales: Utilizar métodos estadísticos para solucionarlo. Métodos lentos pero funcionan.
Aplicaciones: Optimización “El problema del viajante” Se busca la solución de menor coste Minimizar el camino. Problema NP-completo. Al igual que Kohonen , las redes de Hopfield solucionan este problema; da una buena solución, aunque no la óptima. Dadas n ciudades caminos. El problema es encontrar una función de Liapunov adecuada, considerando dos restricciones: Fuertes: “Cada ciudad es visitada sólo una vez” Débiles: “El camino ha de ser mínimo”
Aplicaciones: Optimización “El problema del viajante” Hopfield da una solución, que minimiza la energía: donde el primer término será 0 si no se repiten ciudades, el segundo si no se repite el orden y el tercero si son exactamente n ciudades. El último término corresponde al camino más corto.
Redes BAM (Bidirectional Associative Memory) X Y Z Muy relacionadas con Hopfield. Como memoria asociativa permiten recuperar información incompleta o errónea.
Redes BAM (Bidirectional Associative Memory) Normalmente heteroasociativas. Dada una entrada , se calcula utilizando la matriz de pesos W. Se calcula utilizando la matriz de pesos WT. La calculada realimenta la entrada, y así sucesivamente: Se termina cuando y sean estables. El vector sólo entra la primera vez.
Redes BAM (Bidirectional Associative Memory) Se pueden tener diferentes niveles, donde la salida de cada uno es: donde la función de activación es: y el umbral puede ser cero.
Aprendizaje Dados los patrones y sus asociados , se calcula la matriz de pesos: Cuando W=WT BAM = Hopfield
Ejemplo
Ejemplo Si se entra Aplicando la función de activación, se obtiene el vector asociado:
Capacidad de Memoria No muy buenos resultados cuando se han de almacenar muchos patrones. Funcionan bien para pocos patrones. Mejor si los patrones son simétricos: #{-1} #{+1} Los mejores casos son aquellos en que se hace un pre-tratamiento de la información; se conoce muy bien lo que se ha de reconocer (Ex: matrículas). Muy robusta a la aparición de ruido.