You are on page 1of 39

3

3.1 Introduccin

Redes Recurrentes y Autnomas

______________________________________________________________________

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 f ( x1 , x 2 ,..., x N ) = 1 si si w1 x 1 + w2 x 2 + ... + w N x N 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

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, x0 1 sgn( x) = x<0 1 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: si w1 x 1 + w2 x 2 + ... + w N x N 1
f ( x1 , x 2 ,..., x N ) = 0 si w1 x 1 + w2 x 2 + ... + w N x N <

x1

x2

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.

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:
1 s i (k + 1) = s i (k ) - 1 si si si

w s
ij j =1

j (k )

> i

w s
ij j =1 N

j (k )

= i < i

(1)

w s
ij j =1

j (k )

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:
s i (k + 1) = s i (k ) + 2 sgn(

w s
ij j =1

j (k )

i ) i )

(2)

Es decir,

s i (k ) = s i (k + 1) s i (k ) = 2 sgn(

w s
ij j =1

j (k )

(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

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: N N i =1 j =1 wij si s j 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 N w ss i =1 j =1 ij i j 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 N N w s s + i =1 i (1) si i =1 j =1 ij i j 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
E (k ) = 1 2


N i =1

N j =1

wij s i (k ) s j (k ) +

N s (k ) i =1 i i

(4) en la

donde E(k) representa el valor de la funcin de energa computacional 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, N 1 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
N 1 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, N 1 N N = wij (si (k ) + si (k ) )(s j (k ) + s j (k ) ) + i (si (k ) + si (k ) ) + 2 i =1 j =1 i =1 +
N 1 N N ( ) w s ( k ) s ( k ) i si (k ) ij i j 2 i =1 j =1 i =1

1 N N 1 N N 1 N N w s ( k ) s ( k ) w s ( k ) s ( k ) ij i ij i wij si (k ) s j (k ) + j j 2 i =1 j =1 2 i =1 j =1 2 i =1 j =1
N i =1

+ i si (k ) Por la simetra de la matriz de pesos sinpticos (wij=wji):


= wij si (k ) s j (k )
i =1 j =1 N N

1 N N wij si (k ) s j (k ) + 2 i =1 j =1

i =1

si (k ) =

Sacando factor comn si(k) obtenemos


N N 1 N = s i (k ) wij s j (k ) i + wij s j (k ) 2 j =1 i =1 j =1

(5)

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 ) 2 j =1 Como wrr=0, pues no hay autoconexiones, se tiene que

N = s r (k ) wrj s j (k ) r j =1 0, pues si

w
j =1 N

rj

s j (k ) > r s j (k ) < r

entonces entonces

sr(k+1)=1 y sr(k)0, y si sr(k+1)=-1 y sr(k)0.

w
j =1

rj

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.

2=0 (figura 4) entonces los atractores de la red (mnimos locales) son los vectores

Si suponemos ahora que los pesos sinpticos son simtricos, w12= w21=1, 1=0 y

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

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 ) 2 j =1 i =1 j =1 N N N N 1 = si (k ) wij s j (k ) i wij si (k ) s j (k ) i =1 j =1 2 i =1 j =1 0 pues como hemos visto con anterioridad trmino
N s r (k ) wrj s j (k ) r 0 j =1

y el

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.

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 {1,1} , k = 1,2, xi (k + 1) = sgn w x ( k ) ij j 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
xi (k ) = xi (k + 1) xi (k ) = 2 sgn( wij x j (k ) i ) ,
j =1 N

t>0, de la siguiente manera:

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


N dxi (t ) x (t ) x (t + t ) xi (t ) = lim i = lim i = f ( wij x j (t ) i ) t 0 t 0 dt t 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

convergencia del proceso as como su plausibilidad biolgica. Por ello, la regla de actualizacin que proponemos es la siguiente: 0 dxi (t ) 0 = dt N f wij x j (t ) i j =1 si si si N >0 xi (t ) = 1 y f w x t ( ) ij j i j = 1 N <0 xi (t ) = 1 y f w x t ( ) ij j i j = 1 xi (t ) (1,1)

(6)

Para estudiar la convergencia de la red utilizamos la funcin de energa computacional utilizada tambin en el caso discreto, N 1 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 t 0 dt 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 ) = dt dt i =1 dx i (t )

(7)

vamos a probar que cada sumando


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

(8)

En efecto, por una parte se tiene que


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

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: a) Si
dx i (t ) > 0 entonces dt f ( wij x j (t ) i ) > 0
j =1 N

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

w
j =1

ij

x j (t ) i > 0 .

Por lo tanto,

dE (t ) < 0 y as se verifica (8). dt

N dxi (t ) < 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

b) Si

w x
j =1 ij

(t ) i < 0 .

Por lo tanto,

dE (t ) > 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,

f ( wij x j (t ) i ) = 0 , es decir,
i =1

w x
i =1 ij

(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: N 1 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:
u i (t ) = wij x j (t ) i
j =1 N

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 dxi (t ) = 0 dt f (u (t )) i si si xi (t ) = 1 y f (u i (t )) > 0

xi (t ) = 1 y f (u i (t )) < 0

(9)

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 M s N 1 + s N 2 + K + s NN = 1

es decir,

s
j =1

ij

= 1 ; i = 1, K , N

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 M s1N + s 2 N + K + s NN = 1

es decir,

s
i =1

ij

= 1 ; j = 1, K , N

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:
N N N E = s 1 + ij sij 1 j =1 i =1 i =1 j =1 N 2 2

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 N N N = s 1 s s 1 2 s + ij ij ik ij i =1 j =1 i =1 j =1 j =1 k =1 N 2

= s ij sik + N 2 sij
i =1 j =1 k =1 i =1 j =1

14

2 = sij sik + sij + N 2 s ij i =1 j =1 k =1 k j N N N i =1 j =1 i =1 j =1

= sij s ik + N sij .
i =1 j =1 k =1 k j i =1 j =1
2 pues s ij = sij ya que . s ij {0,1}

Desarrollando de manera similar el segundo trmino, resulta que la expresin de la energa queda: E=

sij sik + N sij + sij s rj + N sij


i =1 j =1 k =1 k j i =1 j =1 j =1 i =1 r =1 r i j =1 i =1

Esta expresin se puede escribir tambin de la forma siguiente:


N N 1 N N N 1 N N N (2) sij sik (2) sij srj + (2) sij + 2 N 2 i=1 j =1 k =1 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 wij,rj = -2 wij,ij = 0 cuando kj cuando ri

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 01, con la siguiente interpretacin: 1 si = 0 si el vrtice i es uno de los seleccionados en otro caso

La funcin objetivo que deseamos minimizar viene dada por el nmero total de vrtices seleccionados, es decir,

s
i =1

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,

a
i =1 j =1 j i

ij

(1 si )(1 s j ) = 0

donde ((aij )) es la matriz de adyacencia del grafo, 1 aij = 0 si existe la arista que une el vrtice i con el vrtice j 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

s
i =1

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

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


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

= si + ni + aij si s j ni si n j s j
i =1 i =1 i =1 j =1 j i i =1 j =1

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:
=
N 1 N N ( 2 ) a s s + [1 2ni ]si + constante ij i j 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 = 1

si el vrtice i se asigna al conjunto V1 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 ) a ij 2 i =1 j =1
j i

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


1 aij = 0

si existe la arista que une el vrtice i con el vrtice j 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:

s
i =1

2N

=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:

a
i =1 j =1 j i 2N 2N

2N 2N

(1 si s j )
ij

2
2N 2N

2N + si i =1

= aij / 2 aij si s j / 2 + si s j
i =1 j =1 j i i =1 j =1 j i i =1 j =1

2N 2N

a ij (1 S i S j ) / 2

= aij / 2 aij si s j / 2 + s i s j + si2


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

2N 2N

2N 2N

2N 2N

2N

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

E=

1 2N 2N (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 sij = 0

si la ciudad i se encuentra en la posicin j - sima de la ruta en otro caso.

Como cada ciudad debe aparecer una sola en la ruta, se tiene que cumplir

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

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:
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
2 = z 2 + 4 x 0 x1 + (1 0 ) x 0 + (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

x (t )[1 x (t )]
i i i i =1

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

(1 x (t )
i i =1

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 clave

Memoria Asociativa

Patrn de 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 i =1 2

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: Dk =
i =1 N

( x (1 x
k i

) + ( 1-xik ) xi

Cuando los vectores son bipolares, es decir, sus componentes son 1 1, entonces la distancia de Hamming viene dada por la expresin: Dk =
i =1 N

1 k * 2 ( xi - xi ) 4

puesto que
k * 0 si xi = xi (x - x ) = k * 4 si xi xi k i * 2 i

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: W = y k ( x k )T


k =1 p

(10)

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


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

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:
(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
(x i ) = W x i = y k (x k ) T x i
K =1 p

25

= y i (x i ) T x i + y k (x k ) T x i
k =1 k i

= 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 j =1 j =1 j =1 N

(12)

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, i = 1,2 ,...,n s i ri = i = n + 1, n + 2,..., N si 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 = n +1 j =1 j =1 N n 1 1 = sgn ( si s j )( s j ) + ( si s j ) s j j = n +1 N j =1 N

2n = sgn (1 ) s i N
s i = si si n > N / 2 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 k k ( s1k ,s 2 ,...,s N ) para k { 1,2,...,p} En este caso, la regla de Hebb viene dada por la siguiente expresin:
1 wij = N

s
k =1

k i

sk j

(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 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. wij ( p + 1) = wik ( p) + 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 1 N 1 Si (1) = sgn wij S j (0) = sgn wij s j = sgn (si s j )s j = sgn si = si j =1 N j =1 j =1 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), pues, si wii es mayor que

w S
j =1 j i ij

(k ) (en alguna etapa k), como


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)) =
r r ( s1r ,s 2 ) viene dado por la siguiente expresin, despus de sustituir los pesos wij ,...,s N por los valores de la expresin (13):

hi (1) =

1 N

sik s kj S j ( 1 ) =
j =1 k =1

1 N 1 N

sik s kj s rj +
k =1 j =1 k r p N k =1 k r j =1

1 N

s
j =1

r i

s rj s rj

sik s kj s rj + sir

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,

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.
r r Veamos cmo se comporta la red si utilizamos como patrn de prueba (-s1r ,s 2 ) ,...,s N r r que es una versin con ruido del patrn ( s1r ,s 2 ). ,...,s N

El potencial sinptico es: hi ( 0 ) = 1 N =


N N k 1 r r r k r k r + + + s s ( s ) s s s s (-s ) s rj s rj i 1 1 1 i 1 j j j =2 k =1 j =2 N k r p

1 N

k r N k r 2 r k s si i -s1 s1 + s j s j + 1 N = 2 k =1 j k r
p

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 r r ,...,s N asignara dicha versin con ruido al patrn memorizado ( s1r ,s 2 ).
r r ,...,s N De manera similar, si el patrn utilizado difiere del patrn almacenado ( s1r ,s 2 ) en n componentes, se llega a la expresin:

1 hi (t) = N

s
k =1 k r

k i

n k r sj s j + j =1

j = n +1

k j

2n r s rj si 1 + N

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

C=

p 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
La capacidad mxima de una red de Hopfield est acotada por c = 1 . Es decir, 4 ln N

lim P(todas las componente de todos los patrones almacenados sean recuperada correctamente) = 1, siempre que p <
N . 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,
2/3 2/3 0 2 / 3 w = 2/3 0 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 p k k w = s s N k =1

( )

1 1 1 = 1 (1 1 1) + 1 ( 1 1 1). 3 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/3 3 Figura 12. Red de Hopfield. 2 -2/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)

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 1 w = 1 (1 1 1) 0 1 0 = 1 3 0 3 3 1 0 0 1 1 3 1 3 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 f (u i (k )) = u i (k ) - 1 si si u i (k ) 1 u i (k ) < 1

si - 1 < u i ( k ) < +1

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 r wij = s rj s ir wik s k (14) , r=1,2,...,p. k =1 donde 0 es una constante positiva prefijada. Esta regla corresponde a la minimizacin del error

r N r s j w jk s k r =1 j =1 k =1
p N

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
N r r r s s wik s k =0 j i r =1 k =1 p

Dicha ecuacin se verifica si

34

r s ir = wik s k . 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 si wij y j (k ) > i 1 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 y j (k + 1) = y j (k ) - 1 si si si

w x (k ) >
i =1 ij i

w x (k ) =
i =1 n ij i

, j =1,2,..,m

(16)

w x (k ) <
i =1 ij i

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:
E (k ) = wij xi (k ) y j (k ) + i xi (k ) + j y j (k )
i =1 j =1 i =1 j =1 n m n m

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

E (k + 1) E (k ) = wij xi (k ) y j (k + 1) + i xi (k ) + j y j (k + 1)
i =1 j =1 n m i =1 j =1

+ wij xi (k ) y j (k ) i xi (k ) j y j (k )
i =1 j =1 m i =1 j =1 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 m n = y j (k + 1) y j (k ) wij xi (k ) j j =1 i=1 0 n

pues si y si

w x (k ) w x (k )
i =1 ij i i =1 n ij i

>0 <0

entonces entonces

yi(k+1)=1 yi(k), yi(k+1)= 1 yi(k).

Por lo tanto, como la red slo cambia de configuracin cuando

w x (k )
i =1 ij i

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: k k k k x k = x1k , x 2 ,..., x n , y k = y1k , y 2 ,..., y m ; 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:
W = (x k ) T y k
k =1 p

(17)

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 0 2 2 2 0 2 2 2 0 W= 0 2 2 0 2 0 2 2 0 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 0 2 2 2 0 2 2 2 0 (1 1 1 1 1 1 1 1 1) 0 2 2 = (8 2 8) 0 2 0 2 2 0 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

2 0 2 0 0 2 4 2 4 2 0 2 2 1 4 2 0 1 = 4 2 0 2 0 2 0 1 2 2 4 2 0 2 0 2 0 2 0 4 2

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 0 2 2 2 0 2 2 2 0 (1 1 1 1 1 1 1 1 1) 0 2 2 = (12 6 12) 0 2 0 2 2 0 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

You might also like