Modelos Computacionales
Memorias asociativas DinámicasMemorias asociativas Dinámicas
Contenidos
Introducción
El asociador lineal
El asociador no lineal simple
La Red BSB
Introducción
Memoria asociativa: dispositivo para almacenar información que permite recuperarla basándose sólo en un conocimiento parcial de su contenido y no en el lugar de su almacenamiento. La recuperación de la información se consigue según el grado de similitud entre el patrón de entrada(clave) y los patrones memorizados(referencias).
Memoria
Asociativa
Patrón clave
Patrón dereferencia
Introducción
Usaremos la desviación cuadrática como medida de semejanza:
xk = (xk1, x
k2, x
k3,..., x
kN) con k = 1,2, ... ,p son los patrones
de referencia x* = (x*
1, x*
2, . . . , x*
N) es el patrón de prueba Si las componentes de los vectores son binarias ({0,1}), Dk
coincide con la distancia de Hamming. Si los vectores son bipolares ({-1,1}) la distancia de
Hamming se calcula con Dk/4
N
i
kiik xxD
1
2*
Introducción
Tipos de memorias asociativas Heteroasociativa: para un conjunto de pares de entradas y salidas
{ (x1,y1),(x2,y2), ... ,(xp,yp) }, xk N, ykM
establece una correspondencia de N en M de tal manera que (xi) = yi, para i=1,2,..,p y además si x está más próximo a xi que a cualquier otro xj entonces (x) = yi .
Autoasociativa establece la misma correspondencia que la memoria heteroasociativa pero siendo los patrones de entrada y de salida los mismos, es decir. (xi) = xi .
El asociador lineal
Queremos memorizar p pares de patrones (entradas y salidas),
{ (x1,y1),(x2,y2), ... ,(xp,yp) }, xk N, ykM.
Los vectores de entrada (claves) son ortonormales, es decir, (xk)Txk = 1 y (xk)Txi = 0 , ki.
Un asociador lineal es una aplicación lineal de la forma
yi =(xi) = W · xi
El asociador lineal
Arquitectura N unidades de entrada y M unidades de proceso independientes Cada entrada se conecta a todas las unidades de proceso.
Ley de Aprendizaje:
Dinámica de la computación: Los resultados se obtienen instantáneamente, sin evolución en los
estados del sistema La función de activación es la función identidad.
yi =(xi) = W · xi
)x(y W Tkp
1 k
k
El asociador lineal
¿Se devuelven los patrones de referencia correctos?
¿Qué ocurre si perturbamos ligeramente la entrada?
El asociador lineal interpola la salida
p
1 k
iTkkii ) ( )( ) ·(W ) ( )( dxxydxdxx
)( )( ip
1k
Tkki dydxyy
pi W ,...,2,1 , )( · )( iiTkp
1 K
kii
yxxyxx
El asociador lineal
Ventaja: Simplicidad
Inconveniente: La condición de ortogonalidad de los patrones clave
Ejercicio:Construir un asociador lineal que memorice los patrones {(1000), (00)}, {(0110), (01)}, {(111), (11)}Calcular la salida ante las siguientes entradas:
(1100)
Asociador no lineal simple
Deseamos memorizar p patrones
{ s1, s2, …,sp, }, sk N, k=1,2,…,p
mediante una memoria asociativa dinámica no lineal. La salida del sistema se obtendrá tras un proceso de
computación. Es decir, la red comienza con la configuración determinada por la entrada y los estados de las neuronas van cambiando, hasta que llegamos a una situación estable en la que podemos leer el resultado de la computación.
La red habrá memorizado un patrón si se estabiliza en él.
Asociador no lineal simple
Arquitectura N unidades de proceso. Todas las neuronas conectadas con todas.
Ley de aprendizaje:
Regla de Hebb:
Aprendizaje iterativo:
p
k
kj
kiij ss
Nw
1
1
111)()1( p
jpiikij ss
Npwpw
Asociador no lineal simple Dinámica de la computación
Si(k) es el estado de la neurona i en el instante k de ejecución. Será 1 si la neurona está activa y –1 si no lo está. La actualización se realiza en tiempo discreto
La entrada s=(s1, s2, ..., sN)T, sirve para inicializar el estado de las neuronas, es decir, Si(0) = si, i{1,2,...,N}
Cuando Si(k) = Si(k+1) = si k1, i{1,2,...,N}, diremos que la red se ha estabilizado.
N
jjiji KSwkS
1
)(sgn)1(
Asociador no lineal simple
Para entender el funcionamiento de nuestro modelo neuronal consideremos el caso particular en el que queremos memorizar sólo un patrón, s=(s1, s2, ..., sN)T.
La regla de aprendizaje se particulariza a:
Con ese entrenamiento, ¿se memoriza el patrón?
jiij ssN
w1
ii
N
jjji
N
jjij
N
jjiji sssss
NswSwS
sgn1
sgnsgn)0(sgn)1(111
Asociador no lineal simple
Observación: wii = p/n pues sisi=1
Sin embargo, se suele tomar wii = 0 ya que no supone diferencia apreciable en la estabilidad de la red,
jiij ssN
w1
ii
N
ijj
jji
N
ijj
jij
N
jjiji ss
N
Nsss
NswSwS
1sgn
1sgnsgn)0(sgn)1(
111
ij
0iiw
Asociador no lineal simple
¿Qué ocurre ante entradas no memorizadas que difieren en n componentes del patrón memorizado?
Nnnis
,...,n, isr
i
ii ,...,2,1
21
N
njjij
n
jjij
N
jjij
N
jjiji swswrwSwS
1111
)(sgnsgn)0(sgn)1(
n
j
N
njii
n
j
N
njjjijji s
Ns
Nsss
Nsss
N 1 11 1
11sgn)
1())(
1(sgn
iii sN
ns
N
nNs
N
n)
21(sgnsgn
Asociador no lineal simple
Junto al patrón que le enseñamos, la red ha aprendido por cuenta propia el patrón opuesto.
Siguiendo el criterio de semajanza planteado el patrón referencia que se recupera será uno u otro.
2/ si
2/ si )1(
Nns
NnsS
i
ii
Asociador no lineal simple
¿Funciona igual de bien cuando queremos memorizar varios patrones?
Estado inicial:
¿Cuál sería el siguiente estado Si(1)=sgn[hi(0)]?
N
j
rj
rj
ri
p
rkk
N
j
rj
kj
ki
N
j
p
kj
kj
kii s ss
N s ss
N)( S ss
Nh
11 11 1
110
1(0)
ri
p
rkk
N
j
rj
kj
ki s s ss
N
1 1
1
)( 21rN
rr ,...,s,ss
Asociador no lineal simple
Si los patrones se escogieron ortogonales, el estado de la neurona se mantiene. Por tanto, la red se estabiliza y nos devuelve el patrón correcto.
Otra posibilidad es utilizar un número de neuronas (N) muy elevado en comparación con el número de patrones que queremos memorizar (p). Esto no nos asegura resultados esentos de error, pero sí “aceptables”.
Capacidad de almacenamiento de la red: cantidad de información que se puede almacenar de tal forma que se recupere sin error o con error despreciable.
Capacidad de un asociador no lineal
Indicadores de la capacidad de una red: Considerando patrones almacenados (p) y total de neuronas (N)
En base a los patrones (p) y al número de conexiones (NW)
Teorema:
La capacidad máxima de una red de Hopfield está acotada por
N
pC
ww N
pC
Nc
ln4
1
Asociador no lineal simple
¿Qué ocurre si almacenamos p patrones y la entrada difiere en n componentes de alguno de los patrones memorizados?
Cuanto menores sean n y p con respecto a N, más fiable será la red en su función de memoria asociativa.
ri
p
rkk
n
j
N
nj
rj
kj
rj
kj
kii s
N
n- ss sss
N(t)h
21
1
1 1 1
Asociador no lineal simple
Ejemplo:
Diseño de un asociador lineal que memorice los patrones (1 -1 1) y (-1 1 -1). Probarla con la entrada (1 1 1).
(1 -1 –1) (1 1 –1)
(-1 1 1)(-1 -1 1)
(1 -1 1)
(-1 -1 –1)
(1 1 1)
(-1 1 –1)
Asociador no lineal simple
Nuestra red tendrá 3 unidades de proceso. Cada una de ellas se encargará de procesar una componente del vector de entrada.
La dinámica de la computación es la definida.
Empleando la regla de Hebb, calculamos la interacción entre las neuronas
wii = 1/3(1+1) = 2/3
3
2)11(
3
1 ,
3
2)11(
3
1 ,
3
2)11(
3
1231312 www
Asociador no lineal simple
21
3
2/3
2/3
2/3
2/3
-2/3
-2/3
Asociador no lineal
Asociador no lineal simple
Estado inicial: (1 1 1) Computamos hasta que se estabiliza la red. Estado final: (1 –1 1)
(1 -1 –1) (1 1 –1)
(-1 1 1)(-1 -1 1)
(1 -1 1)
(-1 -1 –1)
(1 1 1)
(-1 1 –1)
La red BSB
La red BSB(Brain-State-in-a-Box) se suele emplear como memoria autoasociativa de conjuntos de patrones
{ s1, s2, …,sp, }, sk N, k=1,2,…,p
Arquitectura N unidades de proceso. Cada unidad está conectada a todas las demás.
Ley de aprendizaje Regla de Hebb
Se suele fijar el peso sináptico wii=1, i=1,2,...,N
p
k
kj
kiij ss
Nw
1
1
La red BSB
Dinámica de la computación: Actualización en unidades de tiempo discretas.
La función de transferencia es la función rampa
N
jjiji kxwfkx
1
)()1(
1)( si 1-
1)(1- si )(
1)( si 1
))((
ku
kuku
ku
kuf
i
ii
i
i
La red BSB
La ley de aprendizaje puede especificarse de forma iterativa:
es la tasa de aprendizaje. Determina la facilidad para aprender.
El entrenamiento se mantiene hasta que se produzcan salidas con un error aceptable
Con esos pesos la red se estabiliza en los patrones memorizados.
N
k
rkik
ri
rjij swssw
1
01
p
r
rijw
N
k
rkik
ri sws
1
La Memoria Asociativa Bidireccional (BAM)
m
jijij
m
jijiji
m
jijij
i
kyw
kywkx
kyw
kx
1
1
1
)( si 1-
)( si )(
)( si 1
)1(
n
ijiij
n
ijiijj
n
ijiij
j
kxw
kxwky
kxw
ky
1
1
1
)( si 1-
)( si )(
)( si 1
)1(
n
i
m
jjjii
n
i
m
jjiij kykxkykxwkE
1 11 1
)()()()()(
La Memoria Asociativa Bidireccional (BAM)
Teorema 1.
Si seguimos una actualización paralela la función de energía computacional decrece, o no cambia, en cada actualización, y la red alcanza un estado estable (estado de equilibrio) después de un número finito de actualizaciones.
n
i
m
jjjii
n
i
m
jjiij kykxkykxwkEkE
1 11 1
)1()()1()()()1(
n
i
m
jjjii
n
i
m
jjiij kykxkykxw
1 11 1
)()()()(
m
jjjj
n
i
m
jjjiij kykykykykxw
11 1
)()1()()1()(
m
j
n
ijiijjj kxwkyky
1 1
)()()1(
La Memoria Asociativa Bidireccional (BAM)
Determinación de los pesos sinápticos: Regla de Hebb
p
k
kTkW1
)( yx
Ejemplo: Memorizar los patrones y códigos siguientes:
(1 -1 -1)
(-1 -1 1)
(1 1 1 -1 1 -1 -1 1 -1) (1 -1 -1 1 -1 -1 1 1 1)
La Memoria Asociativa Bidireccional (BAM)
Determinación de los pesos sinápticos: Regla de Hebb
p
k
kTkW1
)( yx
202
020
202
020
202
202
202
202
020
8) 2 8(
202
020
202
020
202
202
202
202
020
)11 1 111 111(
Patrón a reconocer:
(-1 -1 1)Actualización:
La Memoria Asociativa Bidireccional (BAM)
Patrón a reconocer: (-1 -1 1)
4
2
4
2
4
4
4
4
2
1
1
1
202
020
202
020
202
202
202
202
020
(1 -1 -1 1 -1 -1 1 1 1)
Actualización:
Actualización:
La Memoria Asociativa Bidireccional (BAM)
Patrón a reconocer: (-1 -1 1)
(1 -1 -1 1 -1 -1 1 1 1)
12) 6 12(
202
020
202
020
202
202
202
202
020
)1 1 1 111 111(
(-1 -1 1)
Actualización:
Resultado final: