Professional Documents
Culture Documents
______________________________________________________________________
3.1 Introduccin
Las redes de neuronas artificiales son modelos matemticos inspirados en las redes de
neuronas biolgicas y en el conocimiento que tenemos actualmente del cerebro. El
cerebro humano posee una capacidad sorprendente para procesar la informacin y
resolver muchos problemas donde los modernos ordenadores no pueden competir. La
capacidad del cerebro para realizar una gran variedad de tareas, como el reconocimiento
del habla, el reconocimiento y la identificacin de los objetos de una escena en
centsimas de segundo, el control manual de objetos y la capacidad de recordar
(recuperar la informacin almacenada), son algunas de las caractersticas que lo hacen
muy superior a los ordenadores actuales, a pesar de que las neuronas tienen respuestas
lgicas mucho ms lentas (del orden de milisegundos) que las puertas lgicas de los
chips de silicio (del orden de nanosegundos).
Este modelo fue introducido en 1982 por el fsico norteamericano John Hopfield, en su
trabajo titulado Neural Networks and Physical Systems with Emergent Collective
Computational Abilities que tuvo gran impacto en la comunidad cientfica que
trabajaba en Inteligencia Artificial.
1 si w1 x 1 + w2 x 2 + ... + w N x N
f ( x1 , x 2 ,..., x N ) =
1 si w1 x 1 + w2 x 2 + ... + w N x N <
donde los parmetros w1,w2,,wN, se llaman pesos sinpticos y son los pesos con los
que se ponderan los valores de entrada x1,x2,,xN, o argumentos de la funcin; la suma
ponderada u = w1 x1 + w2 x 2 + ... + w N x N se llama potencial sinptico y el parmetro se
1
llama umbral o sesgo. Tambin se puede expresar la funcin f mediante la funcin
signo, es decir,
f ( x1 , x 2 ,..., x N ) = sgn(u )
siendo la funcin signo,
1 x0
sgn(x) =
1 x<0
x1
x2 y
x3
Una red de Hopfield bipolar est constituida por N unidades de proceso bipolares
completamente conectadas entre s, de manera que las entradas de cada unidad de
proceso son las salidas de las dems unidades. La matriz de pesos sinpticos, es decir,
constituida por las cantidades con las que se ponderan las salidas de las unidades de
proceso, va a ser una matriz simtrica con los elementos de la diagonal principal iguales
a cero. Por lo tanto,
wii = 0, i=1,2,,N (sin autoconexiones)
wij = wji , i,j=1,2,,N. (simetra de los pesos)
w12 w23
w31
Figura 2. Red de Hopfield.
2
La red de Hopfield bipolar evoluciona de la siguiente manera: comienza a partir de
un estado inicial de las unidades de proceso, que representaremos por s1(0),
s2(0),,sn(0), donde si(0){1,1} representa el estado inicial de la unidad de proceso i,
y en cada iteracin se actualiza una unidad de proceso seleccionada aleatoriamente
(diferente de la anterior) siguiendo la siguiente regla de actualizacin recurrente que
nos determina la dinmica de computacin de la red:
N
1
si w s
j =1
ij j (k ) > i
N
s i (k + 1) = s i (k ) si w s ij j (k ) = i (1)
j =1
N
- 1
si w s ij j (k ) < i
j =1
3
es positivo, presenten el mismo estado (concordancia), y esta propiedad se debe
cumplir con ms fuerza conforme mayor sea el valor positivo del peso sinptico de la
conexin, mientras que en el caso contrario, si el peso sinptico wij es negativo se vean
forzadas dichas unidades de proceso a presentar estados diferentes, con ms fuerza
conforma ms se aleje del valor cero. Es decir, si el peso sinptico es positivo entonces
debe de haber una correlacin directa entre los estado, mientras que si es negativo debe
de haber una correlacin inversa entre dichos estados. De esta manera, cada peso
sinptico wij representara una medida de la correlacin entre el estado de la unidad de
proceso i y la unidad de proceso j cuando la red alcanza alguna configuracin estable.
Por lo tanto buscamos que
si wij > 0 entonces sisj =1, y
si wij < 0 entonces sisj =1.
Esto es lo mismo que hacer mximo el producto wij sisj , o lo que es lo mismo, que
sea positivo. Por lo tanto, nuestro objetivo va ser maximizar la expresin:
i =1 j =1 wij si s j
N N
1 N
i =1 j =1 ij i j
N
w ss
2
Por analoga con el estudio de los sistemas fsicos que tienden a estados de mnima
energa vamos a tomar como funcin objetivo el valor opuesto de la expresin anterior,
que llamaremos funcin de energa computacional, y as pasamos de un problema de
maximizacin a un problema de minimizacin. Es decir, se trata de minimizar la
funcin
1 N N N
E (k ) = i =1 j =1
wij s i (k ) s j (k ) + s (k )
i =1 i i
(4)
2
4
Teorema 1. Si en la iteracin k+1 actualizamos el estado de la unidad de proceso r
segn la regla de actualizacin (1), manteniendo iguales los estados de las unidades de
procesos restantes, entonces la funcin de energa decrece o permanece igual, es decir,
E ( k + 1) E (k )
Demostracin:
En efecto,
1 N N N
E (k + 1) E (k ) = wij si (k + 1) s j (k + 1) + i si (k + 1) +
2 i =1 j =1 i =1
1 N N N
+ wij si (k ) s j (k ) i si (k )
2 i =1 j =1 i =1
2 i =1 j =1 i =1
1 N N
( )
N
+ ij i j
2 i =1 j =1
w s ( k ) s ( k )
i =1
i si (k )
1 N N 1 N N 1 N N
= ij i
2 i =1 j =1
w s ( k ) s j ( k ) ij i
2 i =1 j =1
w s ( k ) s j ( k ) wij si (k ) s j (k ) +
2 i =1 j =1
N
+ i si (k )
i =1
N N
1 N N N
= wij si (k ) s j (k ) wij si (k ) s j (k ) + i si (k ) =
i =1 j =1 2 i =1 j =1 i =1
N N 1 N
= s i (k ) wij s j (k ) i + wij s j (k ) (5)
i =1 j =1 2 j =1
Si slo actualizamos la unidad de proceso r entonces si(k)=0 para todo ir, quedando
la expresin
N 1
= s r ( k ) w rj s j ( k ) r + w rr s r ( k )
j =1 2
Como wrr=0, pues no hay autoconexiones, se tiene que
5
N
= s r (k ) wrj s j (k ) r
j =1
0, pues si
N
w
j =1
rj s j (k ) > r entonces sr(k+1)=1 y sr(k)0, y si
N
w
j =1
rj s j (k ) < r entonces sr(k+1)=-1 y sr(k)0.
w12=1
w21=1
Figura 3. Red con conexiones asimtricas.
Si suponemos ahora que los pesos sinpticos son simtricos, w12= w21=1, 1=0 y
2=0 (figura 4) entonces los atractores de la red (mnimos locales) son los vectores
bipolares (1,1) y (1,1). La funcin de energa viene dada por la expresin E(k) = s1 s2.
Sus mnimos globales son dichos estados. As, si la red parte de la configuracin (1,1) y
actualizamos la primera unidad de proceso, como su potencial sinptico es 1 entonces
se desactiva dicha unidad, es decir, pasa a la configuracin (1,1). Si actualizamos la
6
segunda unidad de proceso esta no cambia de estado, al igual que si actualizamos la
primera, por lo que la red se estabiliza en dicha configuracin.
w12=1
w21=1
Figura 4. Red con conexiones simtricas.
Hasta ahora hemos actualizado las unidades de proceso de una en una, es decir, de
manera secuencial (o asncrona). A continuacin vamos a estudiar la red recurrente
cuando se actualizan al mismo tiempo todas las unidades de proceso, es decir, con
actualizacin paralela (o sncrona), analizando bajo qu condiciones de la matriz de
pesos sinpticos se garantiza el decrecimiento de la funcin de energa en cada
iteracin. El siguiente resultado nos da la respuesta.
semidefinida positiva.
Es importante resaltar que en el modelo paralelo los atractores no tienen por qu ser
mnimos locales (globales), mientras que los mnimos locales s que deben de ser
atractores. Como consecuencia, hay muchos ms atractores espurios en el modelo
paralelo que en la versin secuencial. Sin embargo, el modelo secuencial puede quedar
atrapado en mnimos locales ms fcilmente que el modelo secuencial. Por ejemplo, si
se encuentra en una configuracin que difiere en el valor de una unidad de proceso para
que sea un mnimo local, la red secuencial quedar atrapada en dicho mnimo local
mientras que la paralela puede ser que no, al actualizar todas las unidades de proceso.
7
3.3 El modelo de Hopfield continuo
Estos modelos vienen caracterizados porque las salidas de sus neuronas son continuas
(analgicas), es decir, son nmeros reales entre 1 y 1, y el tiempo tambin es continuo,
es decir, cada unidad de proceso examina constantemente su entrada y actualiza su
salida de forma gradual.
En el caso discreto hemos visto que la salida de la unidad de proceso viene dada por
la funcin escaln
N
xi (k + 1) = sgn wij x j (k ) {1,1} , k = 1,2,
j =1
Ahora vamos a utilizar unidades de proceso analgicas, es decir, que toman valores
en el intervalo cerrado [-1,1], y que se actualizan en instantes infinitesimales de tiempo.
En lugar del parmetro k, vamos a utilizar el parmetro t[0,), y las actualizaciones de
las unidades de proceso se harn en instantes infinitesimales de tiempo. As, por
analoga con el caso discreto, en el que cuando xi(k)0 se tiene que
N
xi (k ) = xi (k + 1) xi (k ) = 2 sgn( wij x j (k ) i ) ,
j =1
dxi (t ) x (t ) x (t + t ) xi (t ) N
= lim i = lim i = f ( wij x j (t ) i )
dt t 0 t t 0 t j =1
As, los cambios en las unidades de proceso sern graduales, es decir, que en un
incremento infinitesimal del tiempo slo pueden ocurrir cambios infinitesimales en las
salidas de las unidades de proceso. El parmetro es una cantidad constante positiva y
pequea, llamada tasa de aprendizaje, de cuyo valor depende la velocidad de
convergencia.
Sin embargo, con la regla de actualizacin anterior no se garantiza que las unidades
de proceso tomen valores dentro del intervalo [-1,1]. La acotacin de los valores de las
unidades de proceso es necesaria para facilitar la implementacin, asegurar la
8
convergencia del proceso as como su plausibilidad biolgica. Por ello, la regla de
actualizacin que proponemos es la siguiente:
N
0 si xi (t ) = 1 y f wij x j (t ) i > 0
j =1
N
dxi (t ) 0 si xi (t ) = 1 y f wij x j (t ) i < 0
= j =1 (6)
dt
f w x (t )
N
ij j i si xi (t ) (1,1)
j =1
Teorema 3
En una red recurrente continua guiada por la regla (6) la funcin de energa
computacional disminuye, o por lo menos no cambia, en cada actualizacin y alcanza
un estado estable que es un mnimo local de la funcin de energa.
dE (t ) dxi (t )
0, i = 1,2,..., N . (8)
i
dx (t ) dt
9
1 1
ya que wij xi (t ) x j (t ) + w ji x j (t ) xi (t ) = wij xi (t ) x j (t ) , por ser la matriz de pesos
2 2
simtrica.
dx i (t ) N
a) Si > 0 entonces f ( wij x j (t ) i ) > 0
dt j =1
w j =1
ij x j (t ) i > 0 .
dE (t )
Por lo tanto, < 0 y as se verifica (8).
dt
N
dxi (t )
b) Si < 0 entonces f ( wij x j (t ) i ) < 0
dt j =1
w x
j =1
ij j (t ) i < 0 .
dE (t )
Por lo tanto, > 0 y cumple (8).
dt
dxi (t )
c) Finalmente, si = 0 entonces el trmino correspondiente de la expresin
dt
(8) es cero.
10
probable que la funcin de energa computacional tenga muchos ms mnimos locales
que en el caso discreto. Sin embargo, los resultados experimentales muestran que el
modelo continuo puede encontrar mejores soluciones que el discreto en problemas de
optimizacin combinatoria. Aunque en problemas NP-difciles, como el problema del
viajante, el modelo continuo no presenta una clara ventaja frente al discreto. De todas
formas, el modelo continuo se puede implementar ms fcilmente con hardware
analgico. Adems, permite la computacin paralela, es decir, que se actualicen
simultneamente las N unidades de proceso.
0 si xi (t ) = 1 y f (u i (t )) > 0
dxi (t )
= 0 si xi (t ) = 1 y f (u i (t )) < 0 (9)
dt f (u (t ))
i en otro caso
11
N, visitando cada da una de ellas de manera que cada ciudad sea visitada una sola vez,
de forma que la distancia total recorrida sea mnima. Es decir, el problema consiste en
encontrar el circuito Hamiltoniano de mnima longitud. En principio hay N! rutas
posibles, pero como dada una ruta nos da igual el punto de partida, esto reduce el
nmero de rutas a examinar en un factor N. Adems, como no importa la direccin en
que se desplace el viajante, el nmero de rutas a examinar se reduce tambin en un
factor 2. Por lo tanto, hay que considerar (N-1)!/2 rutas posibles. As, para un problema
del viajante con 5 ciudades hay 12 rutas diferentes y no necesitamos un ordenador para
encontrar la mejor ruta; para 10 ciudades hay 181.440 rutas diferentes y necesitaramos
ya un ordenador; para 30 ciudades hay ms de 41031 rutas posibles, por lo que con un
ordenador que calcule un milln de rutas por segundo necesitara 1018 aos. Si se
hubiera comenzado a calcular al comienzo de la creacin del universo, hace unos
13.400 millones de aos (13.4109 aos), todava no se hubiera terminado. Puede
comprobarse que si incorporamos una nueva ciudad el nmero de rutas se multiplica por
el factor N. Es decir, el tiempo de clculo que requiere el ordenador crece
exponencialmente con el nmero de ciudades y, por ello, el problema pertenece a una
clase de problemas que se conocen con el nombre de problemas NP-completos.
Ello nos lleva a que un mtodo que encuentre una buena solucin en un tiempo
razonable ser preferible al mtodo que nos encuentre la mejor solucin en un tiempo
demasiado largo.
Por ello, la red de Hopfield es adecuada para este tipo de problemas, aunque nos
suministre una solucin que slo sea mnimo local.
Vamos a comenzar con una red de Hopfield formada por dos neuronas y cuyos pesos
son w12 = w21 = -1 y sus umbrales iguales a cero (ver figura 6). La funcin de energa
es:
E(k)=s1 (k)s2(k).
w12
w21
Figura 6. Red de Hopfield dipolar.
12
Por lo tanto, en esta red, cada neurona est forzando a la otra a que tome el valor
opuesto para estabilizar la red; se comporta como una componente lgica con dos
salidas que toman valores lgicos complementarios.
Por otro lado, esta red biestable se puede interpretar como una red capaz de
almacenar uno de los estados (1,-1) (-1,1). Si tomamos como patrn a memorizar
(1, -1) entonces los pesos de la red de Hopfield sern
w12 = 1(-1) = -1
w21 = (-1)1 = -1
w11 = w22 = 0.
Cada vez que la red comienza en un estado de partida la red le asigna el estado estable
correspondiente. Este estado estable suele ser el patrn memorizado ms prximo (con
ms componentes coincidentes) al estado de partida (patrn de entrada).
Se trata de colocar ocho torres en un tablero de ajedrez de manera que slo puede haber
una torre en cada fila y en cada columna (ninguna torre debe estar en jaque) como se
muestra en la figura 7. Para ello vamos a utilizar una red de Hopfield de 64 neuronas
binarias {0,1} (en lugar de bipolares {-1,1}), una por cada casilla del tablero. La
variable de estado sij representa el estado de la neurona que corresponde a la fila i y a la
columna j del tablero de ajedrez,
13
s11 + s12 + K + s1N = 1
s 21 + s 22 + K + s 2 N = 1 N
M
es decir, s ij = 1 ; i = 1, K , N
j =1
s N 1 + s N 2 + K + s NN = 1
s11 + s 21 + K + s N 1 = 1
s12 + s 22 + K + s N 2 = 1 N
M
es decir, s ij = 1 ; j = 1, K , N
i =1
s1N + s 2 N + K + s NN = 1
Ahora tenemos que determinar una funcin de energa computacional que recoja dichas
ecuaciones de manera que cuando se cumplan la energa alcance su valor mnimo. As,
la red neuronal partir de una colocacin arbitraria y siguiendo la dinmica de la
computacin llegar a una solucin local de mnima energa.
Cuando tenemos un sistema de m ecuaciones de la forma
g1(x1,,xn)=0
gm(x1,,xn)=0
que deseamos resolver, podemos resolverlo como un problema de minimizacin de la
funcin
[g1(x1,,xn)]2 ++[ g1(x1,,xn)]2
Obsrvese que cada solucin del sistema corresponde a un mnimo de dicha funcin y
un mnimo de dicha funcin corresponde siempre a una solucin del sistema de
ecuaciones (suponiendo que exista) pues el valor mnimo de la funcin es igual a cero.
Por lo tanto, nuestra funcin de energa a minimizar va a ser:
2
N
2
N N
N
E = sij 1 + sij 1
i =1 j =1 j =1 i =1
Cualquier solucin a la que corresponda el valor mnimo de la funcin de energa, E=0,
ser una solucin factible para el problema de las ocho torres.
Si desarrollamos el primer trmino de la expresin anterior obtenemos:
N N
2
N N N N
s ij 1
=
s ij
s ik + 1 2 s ij
i =1 j =1 j =1 k =1
i =1 j =1
N N N N N
= s ij sik + N 2 sij
i =1 j =1 k =1 i =1 j =1
14
N N N N N N N
= sij sik + sij2 + N 2 s ij
i =1 j =1 k =1 i =1 j =1 i =1 j =1
k j
N N N N N
= sij s ik + N sij .
i =1 j =1 k =1 i =1 j =1
k j
N N N N N N N N N N
E= sij sik + N sij + sij s rj + N sij
i =1 j =1 k =1 i =1 j =1 j =1 i =1 r =1 j =1 i =1
k j r i
Dicha funcin va a ser la funcin de energa computacional que vamos a utilizar (salvo
la constante 2N que no influye a la hora de determinar el mnimo de dicha funcin). Es
decir, identificando los coeficientes de los trminos sijsrk como los pesos sinpticos wij,rs
obtenemos que
wij,ik = -2 cuando kj
wij,rj = -2 cuando ri
wij,ij = 0
15
wij,rk = 0 en los dems casos.
ij = -2.
Esto quiere decir que en la red cada unidad de proceso (i,j) solo est conectada con las
unidades de proceso de su misma fila y de su misma columna (con peso igual a -2) y
con las dems no est conectada (peso cero), como se puede ver en la figura 8.
Consideremos una red neuronal de Hopfield con N (nmero de vrtices del grafo)
neuronas. La variable de estado de la neurona i, que representaremos por si, es binaria 0-
1, con la siguiente interpretacin:
La funcin objetivo que deseamos minimizar viene dada por el nmero total de vrtices
seleccionados, es decir,
N
s
i =1
i
Adems, hay que asegurar que cada arista contenga al menos un vrtice del conjunto del
recubrimiento, X, o sea, que el nmero total de aristas cuyos dos vrtices no estn en X
debe ser cero, es decir,
N N
a
i =1 j =1
ij (1 si )(1 s j ) = 0
j i
16
N N N
s
i =1
i + aij (1 si )(1 s j )
i =1 j =1
j i
N N N N N N N N N
N N N N N N
= si + ni + aij si s j ni si n j s j
i =1 i =1 i =1 j =1 i =1 j =1
j i
N
donde ni = aij es el grado de incidencia del vrtice i, es decir, el nmero de aristas
j =1
j i
que inciden en l y aii=0, i=1,2,...,N. Por lo tanto, la expresin se puede poner como:
1 N N N
= ( 2 ) a s s
ij i j + [1 2ni ]si + constante
2 i =1 j =1 i =1
j i
wij = 2aij , i j ,
wii = 0,
i = 1 2ni , i = 1,2,..., N
17
1 si el vrtice i se asigna al conjunto V1
si =
1 si el vrtice i se asigna al conjunto V2
Obsrvese que la expresin (1-sisj)/2 vale uno siempre y cuando uno de los vrtices
es del conjunto V1 y el otro es del conjunto V2.
Adems, tenemos que asegurar que los dos conjuntos tengan el mismo nmero de
vrtices. Ello viene garantizado por la siguiente condicin:
2N
s
i =1
i =0
Esta expresin nos dice que el nmero de variables con valor igual a 1 tiene que ser
igual al nmero de variables con valor 1.
(1 si s j )
2
2N 2N
2N
a
i =1 j =1
ij
2
+ si
i =1
j i
2N 2N 2N 2N 2N 2N
= aij / 2 aij si s j / 2 + si s j
i =1 j =1 i =1 j =1 i =1 j =1
j i j i
a ij (1 S i S j ) / 2
2N 2N 2N 2N 2N 2N 2N
= aij / 2 aij si s j / 2 + s i s j + si2
i =1 j =1 i =1 j =1 i =1 j =1 i =1
j i j i j i
18
1 2N 2N
E= (aij 2 )si s j
2 i =1 j =1
j i
Un viajante de comercio tiene que hacer una ruta que pasa por N ciudades, visitando
cada una de ellas una sola vez y volviendo al punto inicial. Se trata de determinar la
secuencia, en la que hay que visitar dichas ciudades, que minimiza el coste total del
recorrido. El nmero total de rutas posibles y diferentes es (n-1)!/2, pues para un viaje
dado no importa cul de las N ciudades sea el punto inicial, ya que la ruta es la misma al
tener el mismo coste, y desde la ciudad de partida puede ir a una de las n-1 ciudades
restantes; desde la segunda ciudad del trayecto se puede ir slo a una de las n-2
ciudades restantes, y as sucesivamente, de manera que hay (n-1)! rutas posibles. Pero
como no importa la direccin en la que se desplace el viajante, el nmero total de rutas
diferentes se reduce a (n-1)!/2.
La red de Hopfield permite encontrar una buena solucin para este problema, pues
va mejorando la solucin de partida y cuando se estabiliza alcanza un mnimo local de
la funcin de energa (que va a ser la funcin objetivo que corresponde al coste total de
la ruta).
Para ello, vamos a utilizar una red de Hopfield con N2 unidades de proceso, de
manera que cada configuracin de la red corresponda a una ruta. As, se define la
variable sij de la siguiente forma:
19
1 si la ciudad i se encuentra en la posicin j - sima de la ruta
sij =
0 en otro caso.
Como cada ciudad debe aparecer una sola en la ruta, se tiene que cumplir
N
s
j =1
ij = 1, i=1,2,...,N .
Adems, slo una ciudad se puede visitar en la posicin j (tramo j-simo de la ruta).
Es decir,
N
s
i ==1
ij = 1, j=1,2,...,N .
1 N
d ij sik (s j ( k +1) + s j ( k 1) )
2 i , j ,k
pues el tramo entre las ciudades i y j, cuya distancia la representamos por dij, interviene
en la ruta si se visita la ciudad i en la posicin k, es decir, sik =1, y a continuacin se
visita la ciudad j (en la posicin k+1, es decir, sj(k+1)=1), o si se ha visitado la ciudad j
en la posicin k-1 (sj(k-1)=1) y de all se visita la ciudad i. Se divide por dos porque una
misma ruta aparece dos veces en la funcin objetivo, una en cada direccin.
Ahora slo tendramos que incorporar las restricciones a la funcin objetivo como
trmino con penalizacin e identificar los pesos de la correspondiente funcin de
Holpfield.
Para ello utilizaremos una red de Hopfield continua con dos unidades de proceso y
cuyos pesos sinpticos dependan del valor z(t) dado, de manera que la red se estabilice
en los estados xo (la primera neurona) y x1 (la segunda neurona) que conducen a la mejor
representacin digital de z(t). Dicha red tendr como funcin de energa la expresin
E(t) anterior.
20
Como los valores tienen que ser binarios (en lugar de bipolares) tomaremos como
funcin de transferencia la funcin logstica
1
f ( x) =
1 + e ax
sean cero para asegurar que se estabilice en valores enteros cero o uno en lugar de
valores del intervalo (0,1). Es decir, se trata de minimizar la funcin de energa
computacional:
2
1
E (t ) = z 2 i x i (t ) + 0 x 0 (t )(1 x 0 (t )) + 1 x1 (t )(1 x1 (t ))
i =o
= z 2 + 4 x 0 x1 + (1 0 ) x 02 + (4 1 ) x12 + ( 0 2 z ) x 0 + (1 4 z ) x1
E (t ) =
1
[ 4 x0 x1 4 x1 x0 ] + (1 2 z ) x 0 + 4(1 z ) x1
2
Por lo tanto, las redes de Hopfield continuas tambin se pueden aplicar para resolver
problemas de optimizacin combinatoria aadiendo a la funcin de energa el trmino
de penalizacin
n
x (t )[1 x (t )]
i =1
i i i
para asegurar que se estabilice en una solucin binaria (no decimal) eligiendo valores de
los coeficientes i suficientemente grandes, ya que vale cero si y slo si xi(t){0,1},
i=1,2,,n. En el caso de unidades de proceso bipolares el trmino de penalizacin es
n
(1 x (t )
i =1
i
2
)
21
atrapado el modelo discreto. Pero tambin el modelo continuo puede quedar atrapado en
mnimos locales pobres como ocurre en el siguiente ejemplo:
Consideremos la red de Hopfield con dos unidades de proceso y con pesos sinpticos
w12=w21=-1 (figura 9).
w12
w21
Figura 9. Red de Hopfield bipolar.
Si se parte del estado inicial x1(0)=1 y x2(0)=1, y tomamos umbrales iguales acero,
entonces la red evoluciona actualizando sus estados y se estabiliza en el estado (0,0), es
decir,
lim x1 (t ) = 0, lim x 2 (t ) = 0 .
t t
En este captulo vamos a utilizar un dispositivo (una red neuronal recurrente), al que
llamaremos memoria asociativa, para almacenar la informacin y poder recuperarla
cuando sea necesario, es decir, una red retroalimentada, cuya salida se utiliza
repetidamente como una nueva entrada hasta que el proceso converge. La informacin
almacenada va a ser un conjunto de patrones, es decir, un conjunto de vectores binarios
(o bipolares), que pueden representar firmas digitalizadas, caracteres, huellas dactilares,
etc. Por lo tanto, el dispositivo deber almacenar un conjunto dado de patrones,
llamados patrones de referencia, memorias, patrones memorizados, patrones
22
principales o atractores. Partiendo de una entrada, llamada patrn clave, o simplemente
clave, la red ir evolucionando, es decir, cambiando el estado de sus unidades de
proceso, hasta alcanzar un estado estable que debe corresponder a un patrn de
referencia almacenado. Por lo tanto, el dispositivo asociar a cada patrn clave su
patrn de referencia. Para ello, el dispositivo utiliza una matriz de pesos sinpticos, que
contiene la informacin que permite recuperar el patrn de referencia asociado al patrn
de entrada. El proceso para la obtencin de estos pesos sinpticos se llama proceso de
almacenamiento o aprendizaje de los patrones de referencia (ver la figura 10). El
nmero de patrones de referencia que tiene el dispositivo lo llamaremos tamao de la
memoria.
Puede ocurrir que el patrn clave sea una versin de un patrn de referencia con
demasiado ruido de manera que no se parezca a ninguno de los patrones memorizados,
o que pueda haber varios patrones de referencia alternativos para un patrn de entrada,
pues todos ellos se parecen lo mismo a dicho patrn.
Definicin 3.1
Una memoria autoasociativa es un dispositivo para almacenar informacin que
permite la recuperacin de la misma basndose slo en un conocimiento parcial de su
contenido y no necesita conocer el lugar de su almacenamiento. La recuperacin de la
informacin se consigue segn el grado de similitud entre el patrn de entrada y los
patrones memorizados.
Consideremos los p patrones (vectores) xk = (xk1, xk2, xk3,..., xkN), k = 1,2, ... ,p, con
componentes xki binarias (toman los valores cero o uno). Cada vector contiene N bits de
informacin y al mismo tiempo se puede considerar como un patrn binario que
representa las N caractersticas ms destacadas de un determinado objeto. Supongamos
23
que deseamos almacenar en la memoria esta informacin suministrada por los p
vectores de manera que cuando presentemos un nuevo patrn (patrn de prueba)
se recupere aquel patrn de memoria ms parecido a este. El patrn de prueba puede ser
una distorsin (ruido) de uno de los patrones de la memoria o alguna informacin
parcial de los mismos. El parecido entre dos patrones, x* y xk, se mide en trminos de la
desviacin cuadrtica media
Dk = (xi* xik )
N
2
i =1
Cuando los vectores son bipolares, es decir, sus componentes son 1 1, entonces la
distancia de Hamming viene dada por la expresin:
N
1 k * 2
Dk = ( xi - xi )
i =1 4
puesto que
0 si xik = xi*
(x - x ) =
k
i
* 2
i
4 si xik xi*
-Memorias heteroasociativas
-Memorias autoasociativas
24
Por lo tanto, en una memoria autoasociativa vamos a tener p patrones de referencia a
memorizar mientras que en una heteroasociativa vamos a tener p pares de patrones de
referencia, puesto que hay que especificar las entradas (claves) y las salidas (memorias
de referencia).
yi =(xi) = W xi
p
= y i + y k (x k ) T d = y i + (d)
k =1
Es decir, nos devuelve una versin tambin modificada del vector asociado yi segn una
funcin de d. El asociador lineal acta como una memoria interpolativa, pues a vectores
prximos a xi le asocia vectores prximos a yi ya que es una funcin continua.
Sin embargo, la condicin de que las claves tengan que ser ortogonales es muy fuerte
qu ocurre si las claves no fuesen ortogonales, sino solo normalizadas, (xi)Txi = 1,i
{1,2, ... , p}? Tendramos que
p
(x i ) = W x i = y k (x k ) T x i
K =1
25
p
= y i (x i ) T x i + y k (x k ) T x i
k =1
k i
p
= y + y k (x k ) T x i
i
k =1
k i
Se trata de determinar los pesos sinpticos de una red de Hopfield con n unidades de
proceso (tantas como componentes tienen los patrones) utilizando la informacin de los
patrones a memorizar de manera que cuando la red comienza en una configuracin, que
corresponda a un patrn de entrada determinado, evolucione segn la dinmica de la
computacin (1) hasta que se estabilice en una configuracin que se corresponda con
uno de los patrones memorizados (el ms parecido con el patrn de entrada de la
configuracin inicial). Si tomamos el patrn de entrada de la red s=(s1, s2, ..., sN)T, es
decir, Si(0) = si, i{1,2,...,N} y Si(k) = Si(k+1) = si k1, i{1,2,...,N}, entonces
diremos que la red ha memorizado dicho patrn. Por lo tanto, el patrn s est
memorizado si la red se estabiliza en l mismo.
Con la eleccin de estos pesos, se memoriza el patrn de entrada pues cada vez que
la red reciba este patrn de entrada (configuracin inicial) va a dar como salida el
mismo patrn, puesto que
26
N N N 1
Si (1) = sgn wij S j (0) = sgn wij s j = sgn (si s j )s j = sgn[si ] = si (12)
j =1 j =1 j =1 N
Vamos a ver cmo se comporta la red cuando se le presenta un patrn de prueba que
difiere de los patrones memorizados. Supongamos que la red comienza en el estado
determinado por los valores del patrn de prueba (r1,r2,...,rN), que tiene las n primeras
componentes diferentes con el patrn memorizado (s1,s2,...,sN), y el resto iguales, es
decir,
s i i = 1,2 ,...,n
ri =
si i = n + 1, n + 2,..., N
N n N
S i (1) = sgn wij S j (0) = sgn wij ( s j ) + wij s j
j =1 j =1 j = n +1
n 1 N
1
= sgn ( si s j )( s j ) + ( si s j ) s j
j =1 N j = n +1 N
2n
= sgn (1 ) s i
N
s i si n > N / 2
=
si si n N / 2
p
1
wij =
N
s
k =1
k
i s kj (13)
Se puede considerar como una regla de aprendizaje puesto que el valor del peso
sinptico para p+1 patrones se puede considerar como una modificacin del valor que
tena para los p primeros patrones aadindoles s ip +1 s jp +1 / N , es decir,
27
1 p +1 p +1
wij ( p + 1) = wik ( p) +
si s j
N
ya que segn la regla de Hebb (1949) las conexiones sinpticas del cerebro modifican su
respuesta con cambios que son proporcionales a la correlacin entre las activaciones de
las neuronas pre y postsinpticas.
Obsrvese que wii = p/N, i=1,2,,p, pues s ik sik = 1 . Sin embargo, se suele tomar wii =
0, i=1,2,,p, puesto que conduce a resultados similares, ya que en la expresin (12)
tendramos:
N N N
N 1
Si (1) = sgn wij S j (0) = sgn wij s j = sgn (si s j )s j = sgn
1
si = si
j =1 j =1 j =1 N N
j i j i j i
Adems, en algunos casos, se pueden evitar estados espurios, es decir, estados en los
que se estabiliza la red y no corresponden a patrones fundamentales (o a sus opuestos),
N
pues, si wii es mayor que w S
j =1
ij j (k ) (en alguna etapa k), como
j i
N
S i (k + 1) = sgn( wij S j (k ) + wii S i (k )) ,
j =1
j i
N p p N N
1 1 1
hi (1) =
N
sik s kj S j ( 1 ) =
j =1 k =1 N
sik s kj s rj +
k =1 j =1 N
s
j =1
r
i s rj s rj
k r
p N
1
=
N
sik s kj s rj + sir
k =1 j =1
k r
s
j =1
k
j s rj = 0, k r
Tambin ocurrir eso cuando N es mucho ms grande que p, de manera que la cantidad
1 p k N k r
si s j s j
N k =1 j =1
k r
28
sea lo suficientemente pequea en comparacin con s ir , de forma que sgn[hi(0)]
coincidir con sir .
Veamos cmo se comporta la red si utilizamos como patrn de prueba (-s1r ,s 2r ,...,s Nr )
que es una versin con ruido del patrn ( s1r ,s 2r ,...,s Nr ) .
1 p
k N 1 r r r N
hi ( 0 ) = s k
s
i 1 ( s1
r
) + s k r
s
j j + s i 1
s (-s1 ) + s rj s rj
N k =1
k r
j =2 N j =2
1 p
k r N k r 2 r
= s i -s1 s1 + s j s j + 1
k
si
N k =1
k r
j = 2 N
As, cuanto mayor sea N con respecto a p, (de manera que se el signo de la expresin
anterior sea el signo del segundo trmino, es decir, de s ir (suponiendo N>2)), ms fiable
ser la red, es decir, cometer menos asignaciones incorrectas. En este caso la red le
asignara dicha versin con ruido al patrn memorizado ( s1r ,s 2r ,...,s Nr ) .
De manera similar, si el patrn utilizado difiere del patrn almacenado ( s1r ,s 2r ,...,s Nr )
en n componentes, se llega a la expresin:
1 p
n k r N 2n
hi (t) = s k
i
sj s j +
s k
j s rj + 1- sir
N
N k =1
k r
j =1 j = n +1
As, conforme menores sean n y p con respecto a N, ms fiables ser dicha red como
memoria asociativa.
29
p
C=
N
Teorema
1
La capacidad mxima de una red de Hopfield est acotada por c = . Es decir,
4 ln N
lim P(todas las componente de todos los patrones almacenados sean recuperada correctamente) = 1,
N
N
siempre que p < .
4 ln N
Ejemplo:
Los ocho patrones posibles se corresponden con los vrtices del cubo de la figura 11.
(-1 -1 1) (-1 1 1)
(1 -1 1)
(1 1 1)
(-1 -1 1) (-1 1 1)
(1 -1 1) (1 1 1)
30
Vamos a disear una red de Hopfield que tiene tres unidades de proceso y cuyos
pesos sinpticos vienen dados por la expresin (1),
1 2 1 2 1 2
w12 = (1 1) = , w13 = (1 + 1) = , w23 = (1 1) =
3 3 3 3 3 3
Es decir,
0 2/3 2/3
w = 2/3 0 2 / 3
2/3 2/3 0
Obsrvese que los valores wij (ij) de dicha matriz de pesos tambin se puede obtener
mediante los productos matriciales:
1 1
1
1 p k k
w = s s
N k =1
( )T
3
= 1 (1 1 1) + 1 ( 1 1 1).
1 1
1 1 1 1 1 1
1 1
= 1 1 1 + 1 1 1
3 3
1 1 1 1 1 1
23 2 3 2 3
= 2 3 2 3 2 3 .
2 3 2 3 2 3
La red resultante se muestra en la figura 12.
-2/3
1 2
2/3 -2/3
3
Supongamos que desear ver el patrn que le asocia al patrn de prueba (1 1 1). La
red parte de la configuracin inicial, S1(0)=1, S2(0)=1 y S3(0)=1. A continuacin se
selecciona una unidad de proceso aleatoriamente, por ejemplo, la unidad 1. Su potencial
sinptico viene dado por la expresin:
2 2
h1 = 1 + 1 = 0.
3 3
31
Por lo tanto, la regla de actualizacin dice que la unidad se queda en el estado que
estaba.
Elegimos otra unidad de proceso para actualizar (segunda iteracin), por ejemplo, la
unidad 2. Su potencial sinptico
2 2 4
h2 = 1 + 1 = < 0.
3 3 3
y as la unidad 2 cambia al estado S2(2) = 1 (ver figura 3.4).
En este momento el estado de las neuronas es (configuracin de la red):
S1(2)= 1, S2(2)= -1, S3(2)= 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)
32
Como no ha cambiado ninguna de las tres unidades de proceso, la red se ha
estabilizado. Al patrn de prueba (1 1 1) le ha asociado el patrn memorizado (1 1 1).
As, la red considera que el patrn de prueba (1 1 1) es una versin con ruido del patrn
(1 1 1).
Si hubiera memorizado solamente un patrn de los dos, por ejemplo, el (1 1 1), hubiera
salido el mismo resultado. Porque uno es el opuesto del otro y la red por defecto si
memoriza un patrn tambin memoriza su opuesto.
1 1 0 0 0 1 3 1 3
1 1
w = 1 (1 1 1) 0 1 0 = 1 3 0 1 3
3 3
1 0 0 1 1 3 1 3 0
Esta red fue propuesta por Anderson et al. (1972) y es similar a la red de Hopfield. Se
utiliza como autoasociador de tareas, aunque tambin se extiende a una red con dos o
ms capas para la heteroasociacin.
+ 1 si u i (k ) 1
f (u i (k )) = u i (k ) si - 1 < u i ( k ) < +1
- 1 u i (k ) < 1
si
es decir,
f (u i (k )) = min(1, max(1, u i (k )) )
33
hacia una cara del mismo y entonces se desplaza sobre la cara hasta alcanzar un vrtice
de la misma.
f(u)
+1
-1
N
wij = s rj s ir wik s kr , r=1,2,...,p. (14)
k =1
donde 0 es una constante positiva prefijada. Esta regla corresponde a la minimizacin
del error
2
p N
r N
s j w jk s kr
r =1 j =1 k =1
con respecto a wjk siguiendo la tcnica del descenso del gradiente. La regla de
actualizacin (14) se aplica sucesivamente hasta que el error llegue a ser despreciable.
Una vez que se ha terminado el entrenamiento se espera que
w
r =1
r
ij =0
es decir, que
r r
p N
r =1
s j
s i
k =1
wik s kr = 0
34
N
s ir = wik s kr .
k =1
De esta manera la red es estable para los patrones memorizados, es decir, cuando la
red parte de un patrn memorizado se estabiliza en l y no cambia de estado.
1 si wij y j (k ) > i
j =1
m
xi (k + 1) = xi (k ) si wij y j (k ) = i , i =1,2,,n (15)
j =1
m
- 1 si wij y j (k ) < i
j =1
1 si w x (k ) >
ij i j
i =1
n
y j (k + 1) = y j (k ) si w x (k ) =
ij i j , j =1,2,..,m (16)
i =1
n
- 1
si w x (k ) <
i =1
ij i j
35
Por lo tanto, el estado de las unidades de la segunda capa viene determinado por el
estado de las unidades de la primera capa, y viceversa. Como las unidades de proceso
son bipolares podemos tomar los valores umbral iguales a cero.
Cuando en cada iteracin slo se actualiza una unidad de proceso de una capa y en la
siguiente iteracin se actualiza otra de la otra capa diremos que estamos siguiendo una
actualizacin secuencial, mientras que si en una iteracin actualizamos todas las
unidades de una capa y en la siguiente iteracin todas las unidades de la otra capa,
diremos que estamos haciendo una actualizacin en paralelo. Vamos a ver que la red
comienza en una configuracin cualquiera y va evolucionando hacia estados de
equilibrio en los que la red se estabiliza. Estos estados de equilibrio van a ser los
atractores de la red.
Teorema 1. Una memoria asociativa bidireccional con una matriz de pesos sinpticos
arbitraria la funcin de energa computacional decrece, o no cambia, en cada
actualizacin, y la red alcanza un estado estable (estado de equilibrio) despus de un
nmero finito de actualizaciones, tanto en modo secuencial como en modo paralelo.
36
n m n m
E (k + 1) E (k ) = wij xi (k ) y j (k + 1) + i xi (k ) + j y j (k + 1)
i =1 j =1 i =1 j =1
n m n m
+ wij xi (k ) y j (k ) i xi (k ) j y j (k )
i =1 j =1 i =1 j =1
[ ] [ ]
n m m
= wij xi (k ) y j (k + 1) y j (k ) + j y j (k + 1) y j (k )
i =1 j =1 j =1
[ n
]
m
= y j (k + 1) y j (k ) wij xi (k ) j
j =1 i=1
0
n
pues si w x (k )
i =1
ij i j >0 entonces yi(k+1)=1 yi(k),
n
y si w x (k )
i =1
ij i j <0 entonces yi(k+1)= 1 yi(k).
n
Por lo tanto, como la red slo cambia de configuracin cuando w x (k )
i =1
ij i j 0,
para algn j, en cuyo caso alcanza un menor valor de la funcin de energa, y el nmero
de configuraciones posibles de la red es finito (2m2n), entonces la red se tiene que
estabilizar en un nmero finito de iteraciones.
La red BAM se puede utilizar tambin como una memoria asociativa en cuyo caso
los pesos de la red se determinan a partir de p pares de patrones, llamados memorias
fundamentales, cada par viene dado por un patrn y su cdigo, es decir, se pretende que
la red memorice los p pares de patrones siguientes:
{ ( ) (
x k = x1k , x 2k ,..., x nk , y k = y1k , y 2k ,..., y mk ; k = 1,2,..., p ) }
Dichos patrones fundamentales actuarn de atractores, es decir, cuando la red parte
de un patrn de prueba que no sea fundamental la red se va a estabilizar en uno de los
patrones fundamentales (o sus opuestos), el ms parecido al patrn de prueba, que
considerar como una versin con ruido del correspondiente patrn memorizado. Para
ello se determinan los pesos sinpticos de la red mediante la regla de Hebb:
p
W = (x k ) T y k (17)
k =1
(1 -1 -1)
(-1 -1 1)
37
Es decir, tenemos como memorias fundamentales los pares,
(1 1 1 -1 1 -1 -1 1 -1) (1 -1 -1)
(1 -1 -1 1 -1 -1 1 1 1) (-1 -1 1)
0 2 0
2 0 2
2 0 2
2 0 2
W = 2 0 2
0 2 0
2 0 2
0 2 0
2 0 2
que es una versin con ruido del segundo patrn (L), entonces las unidades de la
segunda capa se actualizan segn su potencial sinptico
0 2 0
2 0 2
2 0 2
2 0 2
(1 1 1 1 1 1 1 1 1) 2 0 2 = (8 2 8)
0 2 0
2 0 2
0 2 0
2 0 2
38
0 2 0 2
2 0 2 4
2 0 2 4
2 0 2 1 4
2 1 = 4
0 2
0 2 0 1 2
2 0 2 4
0 2 0 2
2 0 2 4
Por lo tanto, las unidades de la primera capa presentan la configuracin dada por el
vector (1 1 1 1 1 1 1 1 1) que corresponde al segundo patrn fundamental. Si
actualizamos de nuevo las unidades de la segunda capa
0 2 0
2 0 2
2 0 2
2 0 2
(1 1 1 1 1 1 1 1 1) 2 0 2 = (12 6 12)
0 2 0
2 0 2
0 2 0
2 0 2
las unidades de proceso presentan la configuracin dada por el vector (-1 -1 1) que es el
mismo cdigo que presentaban, correspondiente a al segundo patrn memorizado. La
red ya no cambia, se ha estabilizado. Por lo tanto, la red le ha asociado al patrn de
prueba el segundo patrn memorizado y su correspondiente cdigo. Considera que el
patrn de prueba es una versin con ruido de la letra L memorizada.
39