Download Sin título de diapositiva

Document related concepts

Hopfield (RNA) wikipedia , lookup

Máquina de Boltzmann wikipedia , lookup

Teoría hebbiana wikipedia , lookup

Red neuronal cuántica wikipedia , lookup

Neuroph wikipedia , lookup

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 
bM
 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 0T  5 1 0T
0
1 0 0T   2 1 6T
0
0 1 0T   2 4 3T
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,1Nen 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  1T
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 2N 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
y0
y0
• 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