Está en la página 1de 39

3 Redes Recurrentes y Autnomas

______________________________________________________________________

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).

En este captulo vamos a estudiar un modelo de red neuronal artificial conocido


como red de Hopfield, y su aplicacin a la resolucin de problemas de optimizacin,
como son: el problema del viajante, el problema de la biparticin de un grafo, el
problema del recubrimiento o el problema de la localizacin de centros de servicio. Por
lo tanto, las redes de neuronas artificiales constituyen una clara alternativa a los
algoritmos convencionales de la Investigacin Operativa y a las tcnicas heursticas.

3.2 El modelo de Hopfield discreto

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.

El elemento bsico de computacin es una unidad de proceso bipolar. Una unidad


de proceso bipolar es una funcin matemtica con dominio el conjunto N-dimensional
{-1,1}N y rango el conjunto {-1,1}, definida por la siguiente expresin:

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

Anlogamente, se define una unidad de proceso binaria como una funcin


matemtica con dominio el conjunto n-dimensional {0,1}n y rango el conjunto {0,1},
definida por la siguiente expresin:
1 si w1 x 1 + w2 x 2 + ... + w N x N
f ( x1 , x 2 ,..., x N ) =
0 si w1 x 1 + w2 x 2 + ... + w N x N <

x1

x2 y

x3

Figura 1. Unidad de proceso bipolar.

Cuando la salida de la unidad de proceso es igual a 1 se dice que dicha unidad de


proceso est activada o encendida y presenta el estado 1, mientras que si su salida es
igual a cero se dice que est desactivada o apagada, presentando el estado 0.

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

si en la iteracin k+1 hemos seleccionado la unidad de proceso i. Cuando despus de


actualizar todas las unidades de proceso ninguna de ellas cambia su estado anterior se
dice que la red se ha estabilizado y el estado que presentan las unidades de proceso
constituye una configuracin final.

Puede observarse que la regla de actualizacin anterior tambin se puede expresar de


la siguiente manera:
N
s i (k + 1) = s i (k ) + 2 sgn( w s
j =1
ij j (k ) i )
(2)
Es decir,
N
s i (k ) = s i (k + 1) s i (k ) = 2 sgn( w sj =1
ij j (k ) i ) (3)

Para actualizar las unidades de proceso podemos seleccionar una aleatoriamente y


actualizarla, a continuacin otra, y as sucesivamente, en cuyo caso diremos que
estamos siguiendo una actualizacin secuencial, no sincronizada o asncrona. La
eleccin aleatoria es para asegurar imparcialidad en el proceso de actualizacin. En
cambio, si actualizamos simultneamente todas las unidades de proceso en cada
iteracin entonces diremos que la actualizacin se hace en paralelo o de forma
sincronizada.

Ahora surgen cuatro preguntas:

Qu se persigue con esta dinmica de la computacin?


Qu papel desempean los pesos sinpticos y el umbral?
Dejarn de cambiar de estado alguna vez las unidades de proceso cuando se
actualizan? Es decir, se estabilizar la red en algn momento.
Cmo son las configuraciones de la red cuando se estabiliza?
Para qu se puede utilizar esta red neuronal?

Vamos a ir respondiendo a estas preguntas a lo largo de esta leccin.

Con la regla de actualizacin anterior se pretende que la red encuentre una


configuracin en la que cada par (i, j) de unidades de proceso, cuyo peso sinptico wij

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

Sin embargo, como la correlacin entre el estado de la unidad de proceso i y la


unidad de proceso j es la misma que entre el estado de la unidad j y el estado de la
unidad i, es por lo que se supone que wij = wji. Entonces en la expresin anterior cada
conexin aparece dos veces por lo que nuestro objetivo va a ser maximizar

1 N
i =1 j =1 ij i j
N
w ss
2

Qu papel desempea aqu el umbral que ni aparece en la expresin anterior?


Vamos a interpretar el umbral i como el peso asociado a una seal externa que llega a
la unidad de proceso i con valor igual a 1 y que pretende activar a la unidad de proceso
i si el umbral es negativo y desactivarla en caso contrario.. Es decir, si i < 0 entonces
trata de activarla (estado 1), con ms fuerza conforme ms grande sea dicho valor, y si
i > 0 entonces trata de desactivarla. En definitiva, que nuestro objetivo va a ser
maximizar la funcin
1 N
i =1 j =1 ij i j
w s s + i =1 i (1) si
N N

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

donde E(k) representa el valor de la funcin de energa computacional en la


actualizacin k-sima.

La propiedad ms importante de la red de Hopfield es que conforme evoluciona la


red segn su dinmica de computacin, la energa va decreciendo hasta estabilizarse, es
decir, hasta que alcanza un mnimo local de la misma, como se pone de manifiesto a
continuacin.

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

Si representamos el incremento de la unidad de proceso i por si(k), es decir,


s i (k ) = s i (k + 1) s i (k )
entonces podemos sustituir en la funcin de energa los valores si(k+1) en trminos de
si(k) segn la expresin
si (k + 1) = si (k ) + si (k )
resultando,
= wij (si (k ) + si (k ) )(s j (k ) + s j (k ) ) + i (si (k ) + si (k ) ) +
1 N N N

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

Por la simetra de la matriz de pesos sinpticos (wij=wji):

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

Sacando factor comn si(k) obtenemos

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.

O bien, se deduce directamente de la expresin (3). 

Corolario 1. La red recurrente bipolar alcanza un estado estable en un nmero finito de


pasos utilizando la regla de actualizacin secuencial y dicho estado corresponde a un
mnimo local de la funcin de energa.

Demostracin: En efecto, como la red reduce la funcin de energa en cada iteracin (o


al menos no cambia) y el nmero posible de estados que puede alcanzar la red es finito
(2N), se tiene que estabilizar en un nmero finito de pasos. Adems una vez que est
estabilizada no se puede reducir la funcin de energa cambiando el estado de una sola
unidad de proceso, es decir, la solucin encontrada es un mnimo local.

Un vector bipolar se dice que es un atractor si corresponde a un estado de equilibrio


de la red (estado estable). En el modelo secuencial est claro que un atractor debe ser un
mnimo local (o global) y viceversa.

Qu ocurre si la matriz de pesos sinpticos no es simtrica? En este caso no est


garantizado que la red sea estable, es decir, puede estar continuamente cambiando de
estado. Por ejemplo, si consideramos una red con dos unidades de proceso, donde
w12=1, w21=1, 1=0 y 2=0 entonces si comienza en el estado (1,1) y actualizamos la
primera unidad de proceso resulta que s1(1) = -1 pues el potencial sinptico es 1(-1),
que es menor que cero. Si actualizamos a continuacin la segunda unidad resulta que
s2(2)= 1, pues (-1)1 es menor que cero. Si actualizamos la primera unidad entonces
s1(3) = 1, ya que su potencial sinptico es igual a (-1)(-1), que es positivo. Si ahora
actualizamos la segunda unidad entonces s2(4) = 1, y, por lo tanto volvemos al estado
inicial. Es decir, la red estara cambiando siempre los estados de sus unidades de
proceso de forma cclica y no converge a un estado estable.

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.

Teorema 2. Si la matriz de pesos sinpticos es simtrica y semidefinida positiva, con


todos los elementos de la matriz diagonal nulos, entonces la funcin de energa decrece
o permanece igual, en cada actualizacin simultnea de las unidades de proceso, es
decir,
E ( k + 1) E (k ) , k = 1,2,

Demostracin: De la expresin (2) tenemos que


N N 1 N
E(k+1) E(k) = si (k ) wij s j (k ) i + wij s j (k )
i =1 j =1 2 j =1
N N 1 N N
= si (k ) wij s j (k ) i wij si (k ) s j (k )
i =1 j =1 2 i =1 j =1
0
N
pues como hemos visto con anterioridad s r (k ) wrj s j (k ) r 0 y el
j =1
N N
trmino w
i =1 j =1
ij si (k ) s j (k ) es no negativo por ser la matriz de pesos sinpticos

semidefinida positiva. 

Corolario 2. La red recurrente bipolar alcanza un estado estable en un nmero finito de


pasos utilizando la regla de actualizacin paralela.
Demostracin: Anloga a la demostracin del corolario 1.

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

vamos a definir la regla de actualizacin para un incremento infinitesimal de tiempo,


t>0, de la siguiente manera:

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

siendo la funcin f una funcin continua y estrictamente creciente, con valores en el


intervalo [-1,1], y que verifica que f(0)=0, como, por ejemplo, la funcin tangente
hiperblica (ver la figura 5):
e u e u
f (u ) = u
e + e u

Figura 5. Representacin grfica de la funcin tangente hiperblica.

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

Para estudiar la convergencia de la red utilizamos la funcin de energa computacional


utilizada tambin en el caso discreto,
1 N N N
E (t ) = wij xi (t ) x j (t ) + i xi (t ) .
2 i =1 j =1 i =1

Vamos a ver que si la red sigue la regla de actualizacin anterior el sistema se


estabiliza en una configuracin de valores de las unidades de proceso que es un mnimo
(local) de la funcin de energa computacional.

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.

Demostracin: En efecto, como


dE (t ) E (t + t ) E (t )
= lim
dt t 0 t

y t>0 entonces es suficiente probar que dE(t)/dt0, t[0,) (una funcin es


decreciente si su derivada es negativa o nula)

Teniendo en cuenta que


dE (t ) N dE (t ) dx i (t )
= (7)
dt i =1 dx i (t ) dt

vamos a probar que cada sumando

dE (t ) dxi (t )
0, i = 1,2,..., N . (8)
i
dx (t ) dt

En efecto, por una parte se tiene que


N
dE (t )
= wij x j (t ) + i ,
dx i (t ) j =1

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.

Por otra parte, segn la regla de actualizacin (6) resulta que:

dx i (t ) N
a) Si > 0 entonces f ( wij x j (t ) i ) > 0
dt j =1

y como f es estrictamente creciente, con f(0)=0, esto es equivalente a que


N

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

y como f es estrictamente creciente, con f(0)=0, esto es equivalente a que


N

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.

La red alcanza un estado estable cuando dxi(t)/dt=0, t[to,), i=1,2,,N, es decir,


ninguna de las unidades cambia su estado en una actualizacin. De la expresin (7) se
deduce que entonces dE(t)/dt=0, t[to,), es decir, dicho estado estable corresponde a
un mnimo local de la funcin de energa.

Adems, obsrvese que cuando la red alcanza un mnimo local de la funcin de


energa, es decir, dE(t)/dt=0, es porque dxi(t)/dt=0 (en cuyo caso xi(t)=1 -1, o bien,
N N
f ( wij x j (t ) i ) = 0 , es decir,
i =1
w x
i =1
ij j (t ) i = 0 ) para algunas neuronas, y para la

dems dE(t)/dxj=0. En todas la neuronas se tiene que dxi(t)/dt = 0, i1,2,,N. Es decir,


si la red encuentra un mnimo local de la funcin de energa se estabiliza en l.

Asimismo, si no imponemos a las salidas de las unidades de proceso actualizaciones


acotadas, es decir, dentro del intervalo [-1,1], la funcin de energa podra decrecer
indefinidamente conforme evoluciona la red. Sin embargo, de esta forma la funcin de
energa computacional tiene una cota inferior dada por la expresin:
1 N N N
wij i .
2 i =1 j =1 i =1

La red de Hopfield continua se puede considerar como una generalizacin de la


discreta que incrementa considerablemente el espacio de estados y por tanto es ms

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.

Por lo tanto, una red de Hopfield continua viene constituida por:

Un conjunto de N unidades de proceso. Cada unidad de proceso tiene asociados


N-1 pesos sinpticos correspondientes a las conexiones con las dems unidades
de proceso. Sean wi1,wi2,...,wiN, los pesos sinpticos de la unidad de proceso i,
siendo wii=0. Supondremos tambin que la matriz de pesos sinpticos es
simtrica. Adems, la entrada a dicha unidad, llamada potencial de accin, viene
dada por la expresin:
N
u i (t ) = wij x j (t ) i
j =1

donde xj(t) nos da la salida (estado) de la unidad de proceso j en el instante t, y j


es el umbral (sesgo) de dicha unidad.

Una funcin de transferencia f que es una funcin continua estrictamente


creciente cuyo rango es el intervalo [-1,1], y verifica f(0)=0. Por ejemplo, la
funcin tangente hiperblica:
e u e u
f (u ) = u
e + e u

f(ui(t)) nos da la salida (estado) de la unidad de proceso i en el instante t.

La dinmica de la computacin que viene dada por la siguiente expresin:

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

donde la tasa de aprendizaje es una constante positiva pequea cuya magnitud


incide sobre la velocidad de convergencia. Esta regla nos indica cmo se
actualiza la salida de la unidad de proceso en el instante t. As, los cambios en la
salida son graduales, es decir, en una cantidad de tiempo infinitesimal solamente
pueden ocurrir cambios infinitesimales en las salidas de las unidades de proceso.

3.4 Aplicaciones a problemas de optimizacin combinatoria


En muchos problemas de optimizacin es difcil llegar a una solucin ptima en un
tiempo razonable de cmputo. Por ejemplo, consideremos el problema del viajante de
comercio, que consiste en encontrar una ruta que pase por un cierto nmero de ciudades,

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.

A continuacin vamos a ver aplicaciones de la red de Hopfielp para encontrar


soluciones factibles en problemas combinatorios y para encontrar soluciones mnimas
locales en problemas de optimizacin combinatoria.

3.4.1 Redes biestables (o basculantes)

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.

La red tiene cuatro configuraciones o estados posibles: (1,1),(1,-1),(-1,1) y (-1,-1), y


posee dos estados estables, (1,-1) y (-1,1), que corresponden a mnimos globales de la
funcin de energa (la energa total de las configuraciones estables es igual a -1, frente
al valor de 1 correspondiente a los otros dos estados).

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).

3.4.2. El problema de las ocho torres

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,

1 si en la fila i y columna j hay una torre


s ij (k ) =
0 si en la fila i y columna j no hay una torre

Figura 7. Ocho torres que no estn en jaque.


Para modelar el problema vamos a establecer un conjunto de ecuaciones que recogen
las exigencias impuestas en el problema:

a) Que slo hay una torre en cada fila:

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

b) Que slo hay una torre en cada columna:

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

pues s ij2 = sij ya que . s ij {0,1}

Desarrollando de manera similar el segundo trmino, resulta que la expresin de la


energa queda:

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

Esta expresin se puede escribir tambin de la forma siguiente:


1 N N N 1 N N N N N

2 i=1 j =1 k =1
(2) sij sik (2) sij srj + (2) sij + 2 N
2 i=1 j =1 r =1 i =1 j =1
k j r i

Figura 8. Conexiones de la neurona (3,4).

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.

3.4.3 El problema del recubrimiento minimal de los vrtices de un grafo (servicios


de vigilancia por vdeo)

Dado un grafo G=(V,E), siendo V el conjunto de vrtices del grafo y E el conjunto de


aristas, se trata de encontrar un subconjunto XV de forma que cada arista de E tenga al
menos un vrtice en dicho conjunto X, y adems, no hay un subconjunto propio de X
con dicha propiedad. Es decir, X es el subconjunto de vrtices que recubre todas las
aristas del grafo con menor nmero de elementos. Por ejemplo, en una ciudad donde las
calles son las aristas del grafo y los puntos de concurrencia de calles son los vrtices del
grafo, podemos estar interesados en vigilar todas las calles con cmaras de vdeo desde
los puntos de concurrencia. El nmero mnimo de cmaras de vdeo necesarias para
vigilar todas las calles corresponde a la solucin de este problema.

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:

1 si el vrtice i es uno de los seleccionados


si =
0 en otro caso

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

donde ((aij )) es la matriz de adyacencia del grafo,

1 si existe la arista que une el vrtice i con el vrtice j


aij =
0 en otro caso

La restriccin anterior se puede incorporar a la funcin objetivo de forma


penalizada, de manera que el problema se reduce a minimizar la funcin:

16
N N N

s
i =1
i + aij (1 si )(1 s j )
i =1 j =1
j i

El trmino de la derecha es siempre no negativo y por tanto alcanza su valor mnimo


cuando es cero, es decir, cuando se satisface la restriccin. Por ello, hay que tomar un
valor de suficientemente grande que garantice que el mnimo de la funcin objetivo se
alcance cuando su segundo trmino es nulo (solucin factible).

Desarrollando la expresin anterior obtenemos:

N N N N N N N N N

si + aij + aij si s j aij si aij s j


i =1 i =1 j =1 i =1 j =1 i =1 j =1 i =1 j =1
j i j i j i j i

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

Identificando el coeficiente del producto sisj como el peso sinptico wij en la


funcin de energa computacional de Hopfield y el coeficiente del trmino en si como
el umbral, se obtiene que:

wij = 2aij , i j ,
wii = 0,
i = 1 2ni , i = 1,2,..., N

3.4.4 El problema de la biparticin de un grafo

Consideremos un grafo G=(V,E) cuyo nmero de vrtices es 2N (par). El problema


consiste en descomponer el conjunto de vrtices V en dos conjunto disjuntos V1 y V2, de
N vrtices cada uno, de manera que sea mnimo el nmero total de aristas que conectan
un vrtice de V1 con un vrtice de V2.

Para formular este problema definimos la variables de decisin s1,...,s2N, de la


siguiente manera:

17
1 si el vrtice i se asigna al conjunto V1
si =
1 si el vrtice i se asigna al conjunto V2

El nmero de conexiones (aristas) de los vrtices de V1 con los vrtices de V2 viene


dado por la expresin:
2N 2N (1 s i s j )

i =1 j =1
a ij
2
j i

donde ((aij )) es la matriz de adyacencia del grafo,

1 si existe la arista que une el vrtice i con el vrtice j


aij =
0 en otro caso

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.

Por lo tanto, incorporamos la condicin anterior en la funcin objetivo como un


trmino de penalizacin y as el problema consiste en minimizar la funcin:

(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

Como el primer trmino es constante (no depende de las variables) y el ltimo


trmino tambin lo es, pues s i2 = 1 , entonces la funcin de energa computacional a
minimizar viene dada por los dos trminos restantes de la expresin anterior y se puede
escribir de la forma siguiente:

18
1 2N 2N
E= (aij 2 )si s j
2 i =1 j =1
j i

Identificando el coeficiente del producto sisj como el peso sinptico wij en la


funcin de energa computacional de Hopfield y el coeficiente del trmino en si como
el umbral se obtiene que:
wij = (aij 2 ), i j ,
wii = 0,
i = 0, i = 1,2,...,2 N

3.4.5 El problema del viajante de comercio

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.

Para una ruta de cinco ciudades habr 12 recorridos diferentes y no es preciso


resolver el problema con el ordenador. Sin embargo, para 10 ciudades hay 181.440
rutas diferentes y hay que resolverlo por ordenador, pero para 30 ciudades hay ms de
401030 rutas diferentes, es decir, que un ordenador que evaluara 1013 rutas por segundo
y hubiese comenzado su clculo cuando se cre el universo (hace ms de 15.000
millones de ao) no hubiera terminado an de calcular todas la rutas posibles. Ello es
porque el problema requiere un tiempo de cmputo que es una funcin exponencial del
nmero de ciudades (y no polinomial). Por ello, una solucin buena que se encuentre
rpidamente ser preferible a la mejor solucin, que si llegamos a encontrarla puede ser
ya demasiado tarde.

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).

Se trata ahora de desarrollar una representacin de las soluciones posibles mediante


unidades de proceso, y construir una funcin de energa cuyos mnimos locales
favorezcan aquellos estados que contengan las distancias totales ms cortas y aquellos
estados que incluyan a cada ciudad una sola vez en el recorrido y que contengan una
sola vez cada una de las posiciones del recorrido.

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 .

Finalmente, la longitud total de la ruta viene dada por la expresin:

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.

3.4.6 Diseo de un convertidor Analgico/Digital

Se trata de convertir (aproximar) una seal analgica continua z(t) [0,3] en su


representacin binaria de 2 bits (x0, x1) que mejor la aproxima, donde x0 corresponde al
bit menos significativo, es decir, aproximar z(t) [0,3] mediante z* = 20x0 + 21x1, que
segn los valores de x0 y x1{0,1} dar lugar a los valores z* = 0 (para x0 =0 y x1=0), z*
= 1 (para x0 =1 y x1=0), z* = 2 (para x0 =0 y x1=1) y z* = 3 (para x0 =1 y x1=1).

El objetivo es minimizar el error de representacin que viene dado por la expresin:


(
E (t ) = z (2 0 x o + 21 x1 ) ) 2

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

y adems tenemos que imponer que


x 0 (1 x 0 ) y x1 (1 x1 )

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

El trmino z2 se puede quitar de la funcin de energa porque no depende de las


variables a minimizar, su presencia slo desplaza la funcin en un valor constante, y por
tanto no afecta a los mnimos de la funcin de energa. Adems, tomaremos 0=1 y
1=4, ya que los trminos tercero y cuarto tienen que ser cero pues no aparecen en la
funcin de energa de Hopfield. Por lo tanto, la funcin de energa ser:

E (t ) =
1
[ 4 x0 x1 4 x1 x0 ] + (1 2 z ) x 0 + 4(1 z ) x1
2

y por identificacin de los coeficiente con la funcin de energa de Hopfield


1 1
E (t ) = w01 x 0 x1 w10 x1 x 0 + 0 x 0 + 1 x1
2 2
se obtiene
w01=-4, w10=-4, 0=(1-2z), 1=4(1-z).

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
)

que vale cero si y slo si xi(t){1,1}, i=1,2,,n.

En la prcticas, el modelo continuo se prefiere al discreto en muchos problemas, a pesar


de ser este ltimo ms simple computacionalmente, ya que el modelo continuo puede
evitar algunos de los numerosos mnimos locales pobres en los que suele quedar

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

Sin embargo, este estado no corresponde a un mnimo global de la funcin de energa


que viene dada por la expresin E(t)=x1x2, pues los mnimos globales corresponden a
los estados de la red (-1,1) y (1,-1). El modelo discreto s se estabiliza en dichos valores.

3.5 Memorias Asociativas Dinmicas


En un ordenador convencional la informacin se almacena en dispositivos (discos
duros, disquetes, CD-R, etc.) y para recuperarla es preciso conocer el lugar preciso
donde se encuentra dicha informacin, es decir, para recuperar un conjunto de datos de
la memoria hay que acceder a la direccin de memoria donde estn esos datos. Sin
embargo, la memoria humana no esta organizada de esta manera. Por ejemplo, si
queremos recordar el nombre de una persona no nos sirve para nada saber que es la
persona nmero 70 que conocemos. La informacin que se guarda en el cerebro no
aparece como tal en ninguna lista. Sin embargo, s nos puede ayudar a recordarlo saber
que empieza por M. El ser humano recuerda sucesos cuando stos estn asociados a
otros sucesos.

Se cree que la memoria humana (las redes neuronales biolgicas) almacena la


informacin en los puntos de contacto entre neuronas diferentes, la llamada sinapsis, y
se sabe hace ms de 100 aos que las neuronas transmiten la informacin mediante
seales elctricas, y no utilizan para ello cables elctricos (metlicos), sino membranas
semipermeables e iones.

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.

Una memoria asociativa recupera la informacin almacenada basndose en el


conocimiento de parte de sta (clave) y no en su posicin en la memoria. El patrn clave
puede ser una versin con ruido de un patrn memorizado, es decir, que difiere de l en
pocas componentes. La memoria humana recuerda a una persona aunque vaya vestida
de forma diferente o lleve gafas.

Patrn Memoria Patrn de


clave Asociativa referencia

Figura 10. Memoria asociativa.

Hay dos tipos de tareas de asociacin, la autoasociacin que consiste en asociar el


patrn de referencia a un patrn clave que es una versin con ruido del mismo (con la
misma dimensin). Cuando el patrn de entrada es un patrn de referencia la red lo
reconoce, es decir, le asocia a l mismo; y la heteroasociacin que hace corresponder
patrones de diferentes dimensiones, como, por ejemplo, asociar una firma digitar a un
cdigo (DNI).

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)

x* = (x*1, x*2, . . . , x*N),

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

La desviacin cuadrtica media nos da el nmero de componentes diferentes (bits)


que tienen diferentes los vectores xk y x*, es decir, Dk es la distancia de Hamming
entre los vectores xk y x*. La distancia de Hamming tambin se puede expresar mediante
la siguiente expresin:
N
Dk = ( x (1 x
k
i

i ) + ( 1-xik ) xi )
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*

Supongamos ahora que vamos a tener p pares entradas y salidas,

{ (x1,y1),(x2,y2), ... ,(xp,yp) }, xk N, ykM.

Es decir, al vector de entrada xi le debe corresponder el vector de salida yi. A dichos


patrones los llamaremos memorias de referencia. Distinguiremos dos tipos de memorias
asociativas:

-Memorias heteroasociativas
-Memorias autoasociativas

Una memoria heteroasociativa es aquella que establece una correspondencia de N


en M de tal manera que (xi) = yi, para i=1,2,..,p y adems si x est ms prximo a xi
que a cualquier otro xj entonces (x) = yi .

Una memoria autoasociativa establece la misma correspondencia que la memoria


heteroasociativa pero siendo los patrones de entrada y de salida los mismos, es decir.
(xi) = xi .

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).

3.5.1 El Asociador Lineal

Supongamos que deseamos memorizar p pares de patrones (entradas y salidas),

{ (x1,y1),(x2,y2), ... ,(xp,yp) }, xk N, ykM.

donde el vector xk es un vector columna N1 (entrada), el vector yk es un vector


columna M1 (salida), y se supone que los p vectores de entrada (claves) son
ortonormales, es decir, (xk)Txk = 1 y (xk)Txi = 0 , ki.

Un asociador lineal es una aplicacin lineal de la forma

yi =(xi) = W xi

donde W = { wij } es una matriz mn, definida por la expresin:


p
W = y k ( x k )T (10)
k =1

Obsrvese que con esta eleccin de la matriz W se garantiza que


p
(x i ) = W x i = y k (x k ) T x i = y i , i = 1,2,..., p
K =1

Esta igualdad se cumple gracias a la ortonormalidad de los patrones.

Si tomamos como clave el vector x = xi + d, que es una pequea modificacin del


vector clave xi producida por el vector d que tiene la mayora de sus componentes
nulas, entonces el asociador lineal funcionaria de la siguiente manera:
p
(x) = (x i + d) = W (x i + d) = y k (x k ) T (x i + d)
k =1

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

No tenemos garantizada la correcta asociacin a menos que el segundo miembro de


la suma sea 0, cosa que es difcil mientras los patrones no sean ortogonales.

Como conclusin, podemos decir que el asociador lineal es la memoria asociativa


ms simple pero no es capaz de memorizar bien claves no ortogonales. Por ello, vamos
a estudiar un nuevo modelo de memoria asociativa que incorpora la no linealidad pero
de forma sencilla.

3.5.2 Memorias asociativas dinmicas no lineales (red de Hopfield)


A continuacin vamos a estudiar un asociador no lineal simple (una red recurrente de
Hopfield) que puede almacenar patrones no ortogonales. Supongamos que deseamos
memorizar p patrones
{s1, s2, ,sp}, sk N, k=1,2,,p

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.

Supongamos que deseamos memorizar un solo patrn, el patrn


s=(s1, s2, ..., sN)T

Vamos a determinar los pesos sinpticos de la siguiente manera:


1
wij = si s j (11)
N
Se suele conocer con el nombre de regla de Hebb, por su similitud con la hiptesis
hecha por Hebb en 1949 acerca de la manera en que las fuerzas sinpticas en el cerebro
cambian como respuesta a la experiencia (estmulos externos). Obsrvese que cuando
las componentes si y sj son iguales el peso es positivo y cuando son diferentes es
negativo (wij una medida de la correlacin entre los estados de las dos neuronas
conectadas).

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

Si actualizamos la unidad de proceso i, en la primera iteracin,

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

Por lo tanto, si el patrn de entrada tiene mayora de componentes iguales al


memorizado se estabilizar la red en el patrn memorizado mientras que si tiene
mayora de componentes diferentes se estabiliza en el patrn opuesto del memorizado.
Es decir, la red de Hopfield cada vez que memoriza un patrn tambin memoriza su
opuesto, puesto que si n=N entonces (r1,r2,...,rN)= (-s1,-s2,...,-sN) es el patrn opuesto y
se estabiliza en l mismo.

Supongamos ahora que deseamos memorizar p patrones fundamentales


( s1k ,s 2k ,...,s Nk ) para k {1,2,...,p}

En este caso, la regla de Hebb viene dada por la siguiente expresin:

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

entonces la unidad de proceso i se estabilizara en el estado Si(k), es decir, Si(k+1)=


Si(k), favoreciendo los estados espurios en la vecindad de un patrn fundamental.

El potencial sinptico asociado a la neurona i en la iteracin inicial k=1 cuando la red


se encuentra en la configuracin que corresponde al patrn, ( S1 (1), S 2 (1),..., S N (1)) =
( s1r ,s 2r ,...,s Nr ) viene dado por la siguiente expresin, despus de sustituir los pesos wij
por los valores de la expresin (13):

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

Para que la salida, Si(2)=sgn[hi(1)], coincida con el patrn de entrada, s ir , i=1,2,...,N,


basta que los p patrones de entrada sean ortogonales dos a dos, es decir,
N

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 .

Sin embargo, en la prctica los patrones a memorizar seguramente no sern


ortogonales, por lo que para garantizar la memorizacin correcta N tendr que ser lo
suficientemente grande en comparacin con p. En general, la capacidad de
almacenamiento de la red se define como el nmero mximo de patrones que puede
memorizar la red con un error aceptable.

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 ) .

El potencial sinptico es:

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.

3.5.3 Capacidad de almacenaje de una memoria asociativa no lineal


Cuntos patrones de referencia (atractores) se pueden almacenar en una red de
Hopfield con N unidades de proceso de manera que se puedan recuperar sin error? El
comportamiento de las redes de Hopfield depende en gran medida del nmero de
patrones de referencia. La capacidad de almacenamiento de una red neuronal se refiere
a la cantidad de informacin que se puede almacenar en la red de tal manera que se
recupere sin error. Una medida de la capacidad de almacenamiento es la siguiente:

29
p
C=
N

donde p es el nmero de patrones almacenados y N es el nmero de unidades de proceso


de la red neuronal.

Si la red no est completamente conectada entonces otra medida de su capacidad de


almacenamiento puede ser
p
Cw =
Nw
donde Nw es el nmero de conexiones de la red.

La capacidad de almacenamiento realmente depende de varios factores, como los pesos


sinpticos, la similitud entre los patrones almacenados, y la diferencia entre los patrones
estmulo y los de referencia. Amit (1989) estableci una cota sobre el nmero de
patrones de manera que se garantice que cada patrn de referencia se recupere sin error.

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:

Supongamos que deseamos disear un asociador no lineal (red de Hopfield) que


memorice los patrones (1 -1 1) y (-1 1 -1) que representan a las imgenes siguientes:

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)

Figura 11. Patrones memorizados.

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

Figura 12. Red de Hopfield.

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)

Figura 13. Cambio de la configuracin (1 1 1) a la (1 -1 1).

En la iteracin tres elegimos otra unidad de proceso, por ejemplo, la 3, y calculamos


su potencial sinptico,
2 2 4
h3 = 1 + (1) = > 0
3 3 3
Como es positivo el estado que presenta es el 1 (igual al que presentaba)
Si en la iteracin 4 elegimos la unidad 1, como su potencial sinptico
2 2 4
h1 = (1) + 1 = > 0
3 3 3
es positivo continua presentando el estado 1.
Si en la iteracin 5 elegimos la unidad 2, como su potencial sinptico
2 2 4
h2 = 1 + 1 = <0
3 3 3
es negativo, sigue presentando el mismo valor -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

3.6 La Red BSB (Brain-State-in-a-Box)

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.

Est constituida por

N unidades de proceso (tantas como la dimensin del espacio de los patrones a


memorizar), todas ellas conectadas entre s. La actualizacin se hace en
unidades de tiempo discretas.

Una funcin de transferencia f que es la funcin rampa dada por la expresin


(ver la figura 14 ):

+ 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 )) )

La dinmica de la computacin viene establecida por la ecuacin:


N
xi (k + 1) = f wij x j (k ) ,
j =1
que nos da el estado (salida) siguiente de la unidad de proceso i.

Se suele fijar el peso sinptico wii=1, i=1,2,...,N. La evolucin de la red es la


siguiente: comienza con un estado inicial de activacin que es amplificado regularmente
por retroaccin positiva y sujeto a la condicin de que las unidades de proceso se
saturan en los valores 1 y 1. As, los estados de la red estarn siempre en el hipercubo
[-1,1]N. La funcin rampa lleva a la red a un interesante comportamiento, en el que la
red se mueve regularmente desde un punto arbitrario de dentro del hipercubo (caja)

33
hacia una cara del mismo y entonces se desplaza sobre la cara hasta alcanzar un vrtice
de la misma.

f(u)

+1

-1

Figura 14. Funcin rampa con valores entre 1 y +1.

Los pesos sinpticos de las conexiones de la red se determinan a partir de un


conjunto sr [-1,1]N, r=1,2,...,p, de p patrones bipolares llamados memorias
fundamentales, mediante la regla de Hebb. Es decir, si el conjunto de patrones es fijo, se
pueden determinar los pesos sinpticos mediante un proceso no iterativo, de manera que
el peso wij viene dado por la ecuacin:
1 p
wij = s ir s rj
p r =1
donde s rj es la componente j del patrn r. Tambin se pueden determinar de una forma
iterativa mediante la siguiente expresin:

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

Dicha ecuacin se verifica si

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.

Como en la red de Hopfield puede haber estados espurios, es decir, estabilizarse en


estados que no corresponden a ninguno de los patrones memorizados ni sus opuestos.

3.7 Memoria asociativa bidireccional (BAM)


En 1987, Bart Kosko introduce un nuevo tipo de memoria asociativa: la memoria
asociativa bidireccional (B.A.M). Se trata de una memoria heteroasociativa que asocia
vectores bipolares (binarios) de distinta dimensin. Es decir, puede asociar a un cdigo
binario de 10 bits una firma digitalizada de 10.000 bits, o a una imagen 140.000 bits una
imagen comprimida de 7.000 bits.
La BAM consta de dos capas de unidades de proceso, n unidades en la primera capa y
m en la segunda, estando conectadas entre s solamente las unidades de la primera capa
con las unidades de la segunda (figura 15). Representaremos por wij el valor del peso
sinptico de la conexin de la unidad i de la primera capa con la unidad j de la segunda,
i=1,2,..,n, j=1,2,...,m, siendo estas conexiones bidireccionales.

La red bidireccional comienza con una configuracin inicial y va actualizando


simultneamente en cada iteracin todas las unidades de proceso de una capa y a
continuacin las de la otra capa, y as sucesivamente hasta que la red se estabilice
(alcance una configuracin de equilibrio). La dinmica de la computacin de la red se
define de forma similar a como se hace en la red de Hopfield, teniendo en cuenta ahora
que las entradas de un unidad de proceso son los estados de las unidades de proceso de
la otra capa. Por lo tanto, la regla de actualizacin de la red (dinmica de la
computacin) para las unidades de la primera capa viene dada por la siguiente
expresin:
m

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

y para las unidades de la segunda capa por:

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.

A continuacin vamos a estudiar dicha dinmica de la computacin. Para ello vamos


a introducir una funcin de energa computacional que va a regir la evolucin de la red,
como con el modelo de Hopfield. La funcin de energa computacional de la BAM en la
iteracin k viene dada por la siguiente expresin:
n m n m
E (k ) = wij xi (k ) y j (k ) + i xi (k ) + j y j (k )
i =1 j =1 i =1 j =1

Figura 15. Arquitectura de una red BAM.

Al igual que en el modelo de Hopfield el modelo BAM evoluciona de forma que


decrece la funcin de energa, o no cambia, en cada actualizacin. Por ello, se puede
utilizar tambin esta red para resolver problemas de optimizacin combinatoria, sin ms
que identificar los valores de los pesos sinpticos con los coeficientes correspondientes
de la funcin objetivo del problema de optimizacin.

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.

Demostracin: Supongamos que en la iteracin k vamos a actualizar la unidades de


proceso de la segunda capa. Entonces,

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

donde el elemento wij de la matriz W nos da el peso sinptico de la conexin entre la


unidad i de la primera capa y la unidad j de la segunda capa.

Ejemplo: Supongamos que se desea memorizar los patrones y cdigos siguientes:

(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)

Segn la expresin (17), la matriz de pesos sinpticos es:

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

Si le damos a la red como entrada en la primera capa el patrn de prueba

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

Como el potencial sinptico de la primera unidad de la segunda capa vale -8 entonces


dicha unidad presenta el estado -1; anlogamente, como la segunda unidad de la
segunda capa tiene un potencial sinptico igual a -2 presenta tambin el estado -1 y la
tercera capa presenta el estado 1 puesto que su potencial sinptico es positivo (igual a
8). Por lo tanto el cdigo asignado es (-1 -1 1). A continuacin se actualizan las
unidades de la primera capa segn el estado que presentan las de la segunda. Su
potencial sinptico es:

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

También podría gustarte