Download Sin título de diapositiva
Document related concepts
Transcript
MEMORIAS AUTOASOCIATIVAS
MEMORIAS
•
Memoria: sistema con capacidad de recordar ciertos estímulos y responder
ante ellos con ciertos patrones almacenados durante el proceso de
aprendizaje (memorización)
a
•
Estímulo
Memoria
Respuesta
(Vector)
(Matriz)
(Vector)
b
Pueden ser:
- Lineales/No lineales
- Autoasociativas/Heteroasociativas
•
Un MLP o una RBF adecuadamente entrenados pueden funcionar como
memorias no lineales
MEMORIAS
Una vez entrenada, la memoria puede
recuperar un patrón a partir de información
parcial o ruidosa
MEMORIAS LINEALES
• Queremos una estructura lineal que “memorice” el siguiente problema:
Estímulos
Respuestas
k 1,... N
bk
ak
• Los estímulos y las respuestas son patrones (vectores) de dimensión p
ak ak1 akp T
bk ak1 akp T
• La memoria lineal ha de ser una matriz de dimensión pxp
bk Mak
a k1
ak 2
bk1
bk 2
akp
bkp
MEMORIAS LINEALES
• Una posibilidad sencilla consiste en emplear una matriz que contenga las
correlaciones entre estímulos y respuestas
N
N bk1
ˆ bk aT ak1 akp
M
k
k 1
k 1 b
kp
La matriz puede reescribirse como
aT
1
ˆ b1 bN BAT
M
a T
N
Y obtenerse de forma recursiva como
ˆk M
ˆ k 1 bk aT ,
M
k
k 1,,N
Correlation
Matrix memory
ASOCIACION
• Cuando a una memoria lineal de correlación se le presenta unos de los
patrones almacenados, responde de la siguiente manera
ˆaj
bM
bk aTk a j aTk a j bk
N
N
k 1
k 1
b a Tj a j b j
aTk a j bk
N
k 1
k j
Si los estímulos (patrones) tienen energía unidad
b bj
Respuesta
deseada
aTk a j bk
N
k 1
k j
Interferencia o
ruido
Escalar
ASOCIACION
• Si el conjunto de patrones a almacenar es ortonormal
1, k j
aTk a j
0, k j
no existe interferencia entre patrones, entonces la respuesta al patrón a j es
b bj
0
aTk a j bk b j
N
k 1
k j
• CAPACIDAD DE ALMACENAMIENTO :¿Cuántos patrones ortogonales se
pueden almacenar?
Rango(Μ ) p
PREPROCESADO
aj
Estimulo
cj
(Ort. GramSchmidt)
Memoria
Lineal
k 1 T
c a
ck a k i k
T
i 1 ci ci
c ,
i
k 1, N
bj
Respuesta
MEMORIAS ADAPTATIVAS
ˆ (n) , el error al presentar
• Si en el instante n-ésimo la matriz de asociación es M
un nuevo patrón es
ˆ ( n)a k
ek (n) bk M
• Y podemos actualizar la matriz mediante un algoritmo tipo LMS
ˆ (n 1) M
ˆ (n) bk M
ˆ (n)ak aT
M
k
a k a k , y los patrones son
procedimiento adaptativo consigue una
• Si buscamos una memoria autoasociativa
ortogonales,
entonces
el
autoasociación perfecta
ˆ ()ak ak
M
Los ak son lo autovectores de la matriz
ˆ ()
M
UN EJEMPLO
Patrones a
almacenar
ortonormales
1
0 0 0T 5 1 0T
0
1 0 0T 2 1 6T
0
0 1 0T 2 4 3T
5 2 2 0
M 1 1
4 0
0 6
3 0
• La memoria asocia perfectamente Mak bk
• Ante un patrón ruidoso obtiene la respuesta más cercana
0.8
5
2
2
0
4
0
.
15
1 1
1.25
4 0
0.15
0 6
3 0
0.45
0
.
20
CONCLUSIONES
•
Una forma muy sencilla de conseguir la asociación entre patrones es
mediante una memoria lineal
•
Si los patrones son ortonormales mediante una matriz NxN podemos
almacenar N patrones y recuperarlos sin error
•
Si los patrones no son ortogonales existe interferencia entre ellos en el
proceso de recuperación
•
Es posible entrenar la memoria lineal mediante un LMS
LA RED DE HOPFIELD
GRUPO DE TRATAMIENTO AVANZADO DE SEÑAL (GTAS)
UNIVERSIDAD DE CANTABRIA
FUNCIONES DE ENERGIA COMO MEMORIAS
• Un sistema dinámico regido por una cierta función de energía evoluciona para
alcanzar estados de energía mínima
• Si conseguimos almacenar ciertos patrones en los valles de una función de
energía, el correspondiente sistema dinámico, empezando en un punto
cualquiera, evolucionará hacia una de estos patrones: es decir, el sistema
“recuerda” los patrones
LA RED DE HOPFIELD CONTINUA
v1
v2
v3
v4
x1 (t )
y2 (t )
y3 (t )
Ecuación de los nodos:
y1 (t )
y4 (t )
x2 ( t )
x3 (t )
Cj
dy j
dt
N
yj
wij ( y j ) R
i 1
i j
x4 ( t )
j
v j,
Salidas:
x j (y j )
En forma matricial:
Cy Gy Wx v
W
¡¡ La matriz de pesos de conexión entre neuronas ha de ser simétrica!!
WT W
wij w ji
j 1,N
FUNCION DE LIAPUNOV
• Para el sistema dinámico que describe una Red de Hopfield podemos definir la
función de Liapunov o función de energía como
N
N
1
1 x j 1
E wij xi x j ( x j )dx j v j x j
2 i j
R 0
j 1 j
j 1
• La red convergerá si: dE 0
dt
• En ese caso las salidas de la red xi evolucionan de tal manera que la Energía
disminuya
N
x
dE
T
y x yi2 i
dt
yi
i 1
xi
' ( yi ) 0
yi
ya que la función de activación es monótonamente creciente,
por lo tanto dE 0
dt
CONVERGENCIA
• CONCLUSION: La Red de Hopfield siempre alcanza un punto de equilibrio
x 1,1Nen el que dE 0
dt
• A pesar de la realimentación presente en una Red de Hopfield, todos los
atractores
son
puntos
fijos
estables.
No
existen
ciclos
límite
ni
comportamiento caótico del sistema dinámico.
• La Red es determinista, por lo tanto, el punto estable alcanzado sólo depende
del punto inicial
• La simplicidad del comportamiento dinámico del la Red de Hopfield es debida
wij w ji
en gran medida a la simetría del acoplamiento entre neuronas
LA RED DE HOPFIELD DISCRETA
z 1
z 1
z 1
z
v1
v2
v3
v4
y1(k )
y(k ) Wx(k )
o
1
x1(k 1)
y2 ( k )
y3 (k )
x2 (k 1)
x3 ( k 1)
y4 ( k )
x4 (k 1)
y(k ) Wx(k ) v
x(k 1) y(k )
1 v 0
-1 v 0
( y ) sgn( y )
WT W
W
• Los elementos del vector x se pueden actualizar síncronamente (todos a la vez)
o asíncronamente (cada vez uno elegido aleatoriamente)
• La dinámica de la Red discreta es equivalente a la de la contínua
HOPFIELD COMO MEMORIA ASOCIATIVA
• Queremos que la Red memorice una serie de P patrones N-dimensionales
xi 1 1 1 1 1T
i 1,,P
• El problema es obtener una matriz de pesos W, tal que:
1.- los patrones a almacenar estén en los puntos de equilibrio
2.- los patrones más cercanos en distancia de Hamming a estos, pertenezcan a
su zona de atracción
• El objetivo 1 se puede conseguir para un número limitado de patrones
• El objetivo 2 sólo se puede conseguir de forma aproximada
HOPFIELD COMO MEMORIA ASOCIATIVA
• Una posibilidad sencilla consiste en seleccionar la matriz de pesos comc
1 P
W xi xiT PI
N i 1
0 1
1.-
Es simétrica
2.-
Los elementos de la diagonal principal del sumatorio suman P; el segundo
término, por lo tanto, disminuye la realimentación de una neurona consigo misma
3.-
Con 1, los elementos de la diagonal principal valen cero.
UN EJEMPLO EN MATLAB
% Queremos diseñar una Red de Hopfield con dos puntos estables (dos neuronas)
% situados en los puntos dados por T
T =[-1 1; 1 -1];
Espacio de estados para la Red de Hopfield
(1 -1)
1
a(2)
-1
-1
a(1)
1
(-1, 1)
UN EJEMPLO EN MATLAB
% Diseñamos la Red de Hopfield
net=newhop(T);
1 P
W xi xiT PI
N i 1
% La matriz de pesos incluye un término de bias
% Comprobamos si los patrones son puntos estable
[Y,Pf,Af]=sim(net,2,[],T)
Y=T
% Para comprobar la evolución dinámica de la Red de Hopfield, empleamos
notación “cell array”
a={rands(2,1)}
[Y,PF,Af]=sim(net,{1 40},{},a)
40 iteraciones
UN EJEMPLO EN MATLAB
% Pasamos a notación matricial estándar
a_mat=cell2mat(a);
Y_mat=cell2mat(Y);
estado=[a_mat Y_mat];
Evolución del estado de la Red de Hopfield
1
plot(estado(1,:),estado(2,:),'b')
0.5
0
-0.5
-1
-1
-0.5
0
0.5
1
UN EJEMPLO EN MATLAB
• Zonas de atracción para los puntos estables
1
0.5
0
-0.5
-1
-1
-0.5
0
0.5
1
MEMORIAS ESPUREAS
• En una Red de Hopfield es inevitable la presencia de estados estables
espúreos (memorias falsas)
1
-1
-1
1
• Para el ejemplo visto antes, en el (0,0) existe un punto estable de la dinámica
de la red de Hopfield: todos los puntos sobre la diagonal convergen al (0,0)
• En este caso el (0,0) no es absolutamente estable; cualquier perturbación lleva
a la red a alguno de los dos patrones almacenados
MEMORIAS ESPUREAS
• Pueden ser puntos estables espúreos:
- Un inverso de un patrón (la función de energía es la misma para xi y para xi )
- Una combinación de un número impar de patrones
si sgn( x1 x2 x3 )
• En general, pueden existir muchos más estados estables espúreos que
patrones almacenados:
- El número de memorias espúreas puede ser tan grande como exp(N)
- El número de patrones almacenados es como mucho N
FUNCIONAMIENTO DE LA RED
• Un patrón arbitrario de entrada puede expresarse como
z xj n
• En la primera iteración formamos
y (1) Wz Wx j n1
• Si tomamos la matriz de pesos como
P = es el
número de
patrones
N = es el
número de
neuronas
(longitud del
vector)
1 P
W xi xiT
N i 1
Mide la correlación entre
los patrones i y j
1 P
1 P
T
y (1) xi xi x j n1 cij xi n1
N i 1
N i 1
1 P
y (1) x j cij xi n1 x j n2 n1
N i 1
i j
FUNCIONAMIENTO DE LA RED
• Si el patrón inicial no tiene ruido y los patrones almacenados son ortogonales
n1 0,
N , i j
cij
0, resto
y (1) x j
Recuperamos el patrón en
la primera iteración
• Mientras el término de ruido no cambie el signo de las componentes del patrón
y (1) x j n1 n2 x j
Recuperamos el patrón en
la primera iteración
• En cualquier otro caso:
- Si y(1) está mas cercano a xj que la version ruidosa original z, la red convergerá
hacia xj
- La red puede recuperar otro de los patrones almacenados si y(1) está mas
cercano a xk
- La red puede converger a una memoria falsa
CAPACIDAD DE ALMACENAMIENTO
•¿ Cuántos patrones pueden ser almacenado en una red con N neuronas?
• Suponemos un caso sin ruido externo, el ruido es debido únicamente a la falta
de ortogonalidad entre patrones
1 P
y (1) x j cij xi
N i 1
Cada una de las componentes
del vector de ruido es una v. a.
Gaussiana de media nula y
varianza ( P 1) / N
i j
SNR
varianza señal
1
N
varianza ruido ( P 1) / N P 1
• La probabilidad de recuperación correcta de un bit será
N
Pr ob yk 0 | x j ,k 1 1 Q
P 1
CAPACIDAD DE ALMACENAMIENTO
• La probabilidad de recuperar correctamente un patrón de N bits será
N
Prec 1 Q
P
1
N
• Fijando una probabilidad de recuperación del 99%, y haciendo algunas
aproximaciones adicionales, se obtiene que el número máximo de patrones
que pueden ser correctamente almacenados es
P
Por ejemplo, si N=256, P 12
N
4 ln( N )
¡ Capacidad de almacenamiento muy
limitada!
SINCRONA vs ASINCRONA
• En una actualización síncrona todos los nodos (neuronas) son actualizados
simultáneamente
• En una actualización asíncrona cada vez actualizamos una neurona elegida al
azar
• El tipo de actualización no cambia la función de energía: la red tiene los
mismos puntos estables
• Si que cambia, sin embargo, la dinámica de la red; es decir, el camino de
descenso por la superficie de energía
• En general, se ha comprobado que una actualización asíncrona tiene un mejor
comportamiento en cuanto a estabilidad y convergencia
APLIC.1: RECONOCIMIENTO DE CARACTERES
• Los caracteres están codificados como matrices de tamaño 7x5 de 1s y -1s
Patrón
x1
-1 -1 -1 -1 -1 -1 1 1 ... 1 1 -1 -1 -1 -1
Patrón
x2
1 -1 -1 -1 1 1 1 -1 ... -1 1 1 -1 -1 1
• Los patrones no son ortogonales
x1T x1 xT
2 x2 35
x1T x2 5
RECONOCIMIENTO DE CARACTERES
• Consideramos únicamente el almacenamiento de 2 caracteres.
• La matriz M tiene dimensiones 35x35
Entrada
Iteracion 1
Iteracion 2
Iteracion 3
APLIC. 2: OPTIMIZACIÓN COMBINATORIAL
• En los problemas de optimización combinatorial, la solución que minimiza la
función de coste requiere la búsqueda exhaustiva en un espacio que crece
combinatorialmente con el tamaño del problema
• Un ejemplo es el problema del viajante: ¿En que orden debe un viajante visitar
N ciudades para recorrer la mínima distancia, visitando cada ciudad una
única vez y empezando y terminando en el mismo punto?
A
C
A
B
C
D
E
A
B
0
0.175
0.195
0.893
0.275
B
0.175
0
0.207
0.793
0.175
C
0.195
0.207
0
1.0
0.195
D
0.893
0.793
1.0
0
0.814
E
0.275
0.175
0.195
0.814
0
E
D
¡¡¡¡HAY N ! POSIBILIDADES!!!
OPTIMIZACIÓN COMBINATORIAL
• El problema del viajante es un problema NP-completo:
- Los mejores algoritmos para encontrar la solución óptima necesitan un tiempo
que crece exponencialmente con el tamaño del problema
- Existen algoritmos subóptimos que corren un un tiempo polinómico
• La red de Hopfield permite obtener una solución subóptima de una forma muy
eficiente; para ello:
1) Hace falta una forma para representar soluciones (recorridos) como salidas de
la Red de Hopfield
2) Hace falta encontrar una matriz de pesos W y un vector de entrada v que den
origen a una función de energía cuyos mínimos correspondan a recorridos de
mínima longitud que cumplan las restricciones
y(k ) Wx(k ) v
x(k 1) y(k )
REPRESENTACIÓN DE SOLUCIONES
• Una determinada neurona representa una determinada ciudad visitada en un
Ciudades
determinado lugar
Orden de visita
A
B
C
D
E
1
x Aj
0
1
2
3
4
5
xA1
xB1
xC1
xD1
xE1
xA2
xB2
xC2
xD2
xE2
xA3
xB3
xC3
xD3
xE3
xA4
xB4
xC4
xD4
xE4
xA5
xB5
xC5
xD5
xE5
Ciudad A visitada en lugar j - ésimo
Ciudad A no visitada en lugar j - ésimo
• Necesitamos N2 neuronas
• Empleamos una codificación con 1s y 0s en vez de 1s y -1s
• Para ser un recorrido válido debe existir una y sólo una neurona activa por fila
y por columna
FUNCIÓN DE ENERGÍA
•Una posible función de energía cuyos mínimos son soluciones “válidas” del
problema del viajante es la siguiente
E Ea Eb Ec
2
2
a
Ea x Li 1 x Li 1
2 L i
i L
Siguiente
Eb
Anterior
b
d LK xLi xKi
xKi
2 i L K L
Ec
c
( xLi ) 2
2 i L
Tiene un valor mínimo cuando
sólo hay una neurona activa por
fila y columna
Va acumulando las distancias
entre ciudades x Li 0
Tiene un valor mínimo cuando
todas las neuronas están
activas: evita que el término Eb
lleve todas las neuronas a cero
Típicamente a, b c son constantes cercanas a 1 (distancias normalizadas); además c 2a
MATRIZ DE PESOS Y EXCITACIÓN
• A partir de la función de energía, la matriz de pesos W y el vector de excitación
v se obtienen como
1
v 2a
1 N 2 1
a
b
c
W Wa Wb Wc
2
2
2
A
I
Wa
I
I
A I
I A N 2 N 2
I
2 1 1
1 2 1
A
1 1 2 N N
W AA W AB W AN
W
W BB W BN
BA
Wb
W NA W NB W NN N 2 N 2
0
d
XY
W XY 0
0
d XY
Wc I
N 2N 2
I N N
d XY
0
0
d XY
0
d XY
0
0
0
0
d XY
d XY
0
d XY
0 N N
RESULTADOS
• Para un problema con 5 ciudades existe 5!=120 soluciones válidas
• La Red de Hopfield creada tiene 330 puntos de equilibrio, entre ellos están las
120 soluciones válidas
• Con una actualización aleatoria, en el 50 % de las veces la red alcanza como
punto de convergencia un recorrido no válido
• La búsqueda del mínimo absoluto de la función de energía puede mejorarse si
empleamos una red de Hopfield estocástica
RED DE HOPFIELD ESTOCASTICA
• En la Red de Hopfield determinista, las evoluciones de la red siempre
disminuyen la función de energía
• En la Red de Hopfield estocástica existe una probabilidad de ir a estados más
altos de energía
1, y j 0
1, y j 0
Cambiamos ( y j )
y la probabilidad viene dada por
por
p( y j )
1, con probabilid ad p(y j )
1, con probabilid ad 1-p(y j )
( y j )
1
1 e
y j T
siendo T una variable (temperatura) que inicialmente toma un valor elevado
y disminuye progresivamente tras cada iteración
• Se trata de un algoritmo de optimización tipo “simulated annealing”
MAXNET
• Permite encontrar de una forma muy sencilla el máximo de entre una colección
de N números
• La topología de la Maxnet es idéntica a una Red de Hopfield
• La no linealidad (signo) es reemplazada por la siguiente función
y
f ( y)
0
y0
y0
• Como matriz de pesos se emplea
1
W
1
1
0 1/ N
N números
• La salida de todas las neuronas converge a cero excepto una
CONCLUSIONES
•
La Red de Hopfield es un sistema dinámico cuyos puntos de equilibrio
representan los patrones que deseamos almacenar
•
La estabilidad de la Red está relacionada con la simetría de la matriz de pesos W
•
El objetivo de diseño de una Red de Hopfield es encontrar una matriz de pesos W
y un vector de excitación v, tales que:
- Los mínimos de la función de energía estén en los patrones a almacenar
- La región de atracción de los puntos estables incluya todos los puntos más
cercanos al patrón deseado
•
Puede funcionar como memoria asociativa o puede resolver problemas
combinatoriales
•
Sus limitaciones son su limitada capacidad de almacenamiento y la presencia de
un elevado número de memorias falsas
•
Variantes; Red de Hopfield estocástica, Maxnet