You are on page 1of 21

Cap tulo 7 Redes Neuronales en optimizaci on combinatoria

A las redes neuronales (conneccionismo, proceso paralelo distribuido, computaci on neuronal, redes adaptivas, computaci on colectiva) las podemos entender desde dos puntos de vista: Computacional: representar funciones usando redes de elementos con c alculo aritm etico sencillo, y m etodos para aprender esa representaci on a partir de ejemplos. La repesentaci on es u til para funciones complejas con salidas continuas y datos con ruido. Biol ogico: modelo matem atico de la operaci on del cerebro. Los elementos sencillos de c omputo corresponden a neuronas, y la red a una colecci on de estas. La neurona es la unidad funcional fundamental del sistema nervioso. Cada neurona tiene un cuerpo (soma) que tiene un n ucleo, tiene un grupo de bras (dendritas), una de las cuales es m as larga (ax on). El ax on se bifurca eventualmente en sinapses. Las se nales se propagan en una reacci on electroqu mica complicada. Las substancias qu micas transmisoras se liberan de las sinapses y entran a la dendrita, aumentando o disminuyendo el potencial el ectrico del cuerpo de la c elula. 116

Tabla 7.1: Comparaci on gruesa de las capacidades computacionales de cerebros y computadoras (1994). Computadora Cerebro Humano Unidades 1 CPU, 1011 neuronas Computacionales 105 compuertas Unidades de 109 bits RAM, 1011 neuronas, Almacenamiento 1010 bits disco 1014 sinapses Ciclo (tiempo) 108 seg. 103 seg. 9 Anchobanda 10 bits/seg. 1014 bits/seg. Actualizaciones/seg. 105 1014 Cuando el potencial alcanza un umbral se transmite un pulso el etrico o acci on potencial a trav es del ax on. Las sinapses que aumentan el potencial se llaman exitatorias y los que disminuyen, inhibidoras. La conecci on sin aptica es pl astica (cambia con la estimulaci on). Se pueden formar nuevas conecciones y las neuronas migran de un lugar a otro. Esto se cree que forman la base de aprendizaje en el cerebro. En general el mapeo de regiones con funciones puede ser m ultiple y cambiar cuando un a rea es da nada (pero no se sabe bien como se hace). Lo sorprendente es que una colecci on de c elulas simples puedan dar pensamiento, acci on y conciencia (cerebros causan mentes (Searle 92)). A pesar de que una computadora es millones de veces m as r apida por proceso individual, el cerebro nalmente es billones de veces m as r apido (ver table 7.1). Una de las atracciones, es construir un mecanismo que combine el paralelismo del cerebro con la velocidad de las m aquinas. Los cerebros son mucho m as tolerantes (en 70-80 a nos, no se tiene que reemplazar una tarjeta de memoria, llamar al servicio o hacer reboot ). La tercera atracci on es su degradaci on gradual. Las redes neuronales articiales son modelos muy simplicados de las redes neuronales biol ogicas. 117

7.0.1

Historia

Existi o mucho desarrollo en los primeros a nos de la computaci on: McCulloch y Pitts (43), Hebb (49), Minsky (51) (primera red), Ashby (52), Rosenblatt (57) (perceptr on), Selfridge (59) (pandemonium), Widrow y Ho (60) (adalines), Nilsson (65 - 90), Minsky y Papert (69). Despu es del libro de Minsky y Papert pr acticamente no se hizo nada durante los siguientes 10 a nos. El resurgimiento comenz o en la decada de los 80s: Hinton y Anderson (81), Hopeld (82), Hinton y Sejnowski (83 y 86) y los dos volumens de PDP (Parallel Distributed Processing) anthology (Rumelhart et al. 86). Una red neuronal articial est a compuesta por nodos o unidades, conectados por ligas. Cada liga tiene un peso num erico asociado. Los pesos son el medio principal para almacenamiento a largo plazo en una red neuronal, y el aprendizaje normalmente se hace sobre la actualizaci on de pesos. Algunas unidades est an conectadas al medio ambiente externo y pueden dise narse como unidades de entrada o salida. Los pesos se modican para tratar de hacer que el comportamiento entrada/salida se comporte como el del ambiente. Cada unidad tiene un conjunto de ligas de entrada (provenientes de otras unidades) y un conjunto de ligas de salida (hacia otras unidades), un nivel de activaci on, y una forma de calcular su nivel de activaci on en el siguiente paso en el tiempo, dada su entrada y sus pesos (cada unidad hace un c alculo local basado en las entradas de sus vecinos). En la pr actica, casi todas las implementaciones de RN son en software y utilizan un control s ncrono en su actualizaci on. Para el dise no uno debe de decidir: N umero de unidades. C omo se deben de conectar. 118

Qu e algoritmo de aprendizaje utilizar. C omo codicar los ejemplos de entradas y salidas. Cada unidad recibe se nales de sus ligas de entradas y calcula un nuevo nivel de activaci on que manda a trav es de sus ligas de salidas. La computaci on se hace en funci on de los valores recibidos y de los pesos. Se divide en dos: 1. Un componente lineal, llamado la funci on de entrada (ini ), que calcula la suma de los valores de entrada. 2. Un componente no lineal, llamado funci on de activaci on (g ), que transforma la suma pesada en una valor nal que sirve como su valor de activaci on (ai ). Normalmente, todas las unidades usan la misma funci on de activaci on. La suma pesada es simplemente las entradas de activaci on por sus pesos correspondientes: wj,iaj = wi ai ini =
j

wi : vector de los pesos que llegan a la unidad i ai : vector de los valores de activaci on de las entradas a la unidad i El nuevo valor de activaci on se realiza aplicando una funci on de activaci on g: ai g (ini ) = g ( wj,i aj )
j

Se obtienen modelos diferentes cambiando g . Las opciones m as comunes son (ver gura 7.1): Funci on escal on: escalont (x) = 119 1, 0, si x t si x < t

f(x) 1

Escalon t
f(x) 1 x

-1 f(x) 1
0.5

Signo

Sigmoide
x

Figura 7.1: Funciones de activaci on comunes para Redes Neuronales.

120

Signo: signo(x) = Sigmoide: sigmoide(x) = +1, 1, si x 0 si x < 0 1 1 + ex

Una de las motivaciones iniciales en el dise no de unidades individuales fu e la representaci on de funciones Booleanas b asicas (McCulloch y Pitts, 43). Esto es importante, porque entonces podemos usar estas unidades para construir una red que compute cualquier funci on Booleana. Los modelos de redes neorunales principalmente usados para resolver problemas de optimizaci on son: Las m aquinas de Boltzmann. Las redes de Hopeld. Los mapas auto-organizativos (SOM).

7.1

M aquinas de Boltzmann

Las redes neuronales se pueden caracterizar por sus: Valores binarios o continuos. Transiciones determin sticas o probabil sticas. Conecciones unidireccionales o bidireccionales. Representaciones distribuidas o locales. Aprendizaje supervisado o no supervisado. Unidades ocultas o no. 121

La m aquina de Boltzmann usa estados binarios, conecciones bidireccionales, transiciones probabil sticas y puede tener unidades ocultas. Para ajustar los estados de las unidades individuales se usa un mecanismo de transici on de estados que est a regido por el algoritmo de recocido simulado. El modelo matem atico de la M aquina de Boltzmann tiene dos atributos: 1. Se puede considerar como un modelo de implementaci on paralela en forma masiva del algoritmo de recocido simulado. 2. Permite el dise no de un algoritmo de aprendizaje basado en conceptos relativamente simples. Una m aquina de Boltzmann se puede ver como una red de varias unidades de dos estados (prendida = 1, apagada = 0) conectadas de cierta forma. El conjunto de conecciones normalmente incluye auto conecciones (conecciones de una unidad a s misma). Si se tiene una conecci on entre dos unidades u y v , entonces la conecci on entre ellas {u, v } est a prendida si: k (u) k (v ) = 1 (donde k (i) denota el estado de la unidad i). Con cada conecci on se asocia una fuerza (n umero real). La fuerza es una medidad cuantitativa de lo deseable de la conecci on. La fuerza de la conecci on {u, u} se llama el sesgo de la unidad u. Una conguraci on k est a dada por el estado global de una m aquina de Boltzmann (i.e., por los estados de cada unidad). La funci on de consenso asigna a cada conguraci on un n umero real dado como la suma de las fuerzas de las conecciones activadas C (k ) =
{u,v }C

w{u,v} k (u)k (v )

. donde: wu,v = la fuerza de conecci on y k (i) = la conguraci on de la unidad i. 122

El consenso es grande si est an activadas muchas de las conecciones exitatorias (y peque no si son las inhibitorias). El objetivo de la m aquina de Boltzmann es encontrar una conguraci on que alcance un m aximo global (i.e., una conguraci on de consenso m aximo). El ajuste est a determinada por una funci on estoc astica de los estados de los vecimos y sus fuerzas de conecci on. B asicamente usa el criterio de aceptaci on del recocido simulado. Existen dos modelos: M aquinas de Boltzmann sequenciales: las unidades cambian de estado una a la vez. M aquinas de Boltzmann paralelas: las unidades cambian de estado simultaneamente.

7.1.1

M aquinas de Boltzmann Secuenciales

Dada una m aquina de Boltzmann en una conguraci on k , la conguraci on vecina ku se dene como la conguraci on que se obtiene del estado k al cambiar el estado de una unidad u (de 0 a 1 o viceversa). k (v ) 1 k (v ) si v = u si v = u

ku (v ) =

La vecindad se dene como todos los estados de conguraciones vecinas a la conguraci on k . Si Cu denota todas las conecciones que inciden en la unidad u (eliminando {u, u}), y sea C = C Cu {u, u}. La diferencia de consenso entre las conguraciones k y ku se denota como: Ck (u) = C (ku ) C (k )

123

Dado que la contribuci on de las conecciones en C al consenso es igual para k que para ku , se obtiene:

Ck (u) =

ku (u)

{u,v }Cu

k (u)

2 w{u,v} ku (v ) + ku (u)w{u,u}

{u,v }Cu

w{u,v} k (v ) + k 2 (u)w{u,u}

que nos da al cambiar ku (v ) por 1 k (v ) y desarrollar:


Ck (u) = (1 2k (u))

{u,v }Cu

w{u,v} k (v ) + w{u,u}

B asicamente lo que dice es que el efecto del consenso, resultando de cambiar el estado de la unidad u, est a completamente determinado por los estados de los vecinos y de sus fuerzas de conecci on. Por lo mismo una unidad puede ser evaluada localmente, lo cual es muy importante por su potencial paralelizaci on. Una conguraci on de m aximo local es aquella en donde no se puede aumentar cambiando transiciones de un solo estado. Ejemplo: Las guras 7.2 y 7.3 muestra un ejemplo de una m aquina de Boltzmann. Como en el caso de recocido simulado, se puede usar el concepto de cadenas de Markov para describir las transiciones de estado de una m aquina de Boltzmann. En una m aquina secuencial consiste de dos pasos: 1. Dada una conguraci on k , seleccionar una unidad u en donde posiblemente se va a cambiar su estado y por lo tanto generar una conguraci on vecina ku . 124

1 -2 -2 -2 -2

1 -2 -2 1 -2 -2 -2 -2 1 -2

-2 1

-2

-2 1 -2

-2

Figura 7.2: Ejemplo de una m aquina de Boltzmann despu es de haber llegado a un m nimo.

Figura 7.3: Diferentes estados vecinos para el ejemplo de la m aquina de Boltzmann.

125

2. Evaluar si la conguraci on ku se acepta o no. Tambi en se introduce un par ametro de control c, que determina la probabilidad de aceptaci on de una transici on. La probabilidad de transici on Pkl (c) de la conguraci on k a la l se dene como: Pkl (c) = Pc {X (m) = l | X (m 1) = k }

G(u)Ak (u, c) Pkl (c) = 1 uU Pkku (c) 0

si l = ku si l = k de otra forma

donde G(u) denota la probabilidad de generar una transici on de estado de la unidad u, Ak (u, c) denota la probabilidad de aceptaci on de la transici on, y c denota el par ametro de control. La probabilidad de generaci on se escoge normalmente de forma uniforme sobre las posibles unidades e independiente de la conguraci on k o el par ametro de control c. La probabilidad de aceptaci on se escoge como: Ak (u, c) = 1 1 + exp(
Ck (u) ) c

Esto diere un poco de la probabilidad de aceptaci on del algoritmo de recocido simulado, pero en realidad muy poco. Ambas probabilidades dan la misma distribuci on estacionaria y tienen las mismas propiedades de convergencia. La gure 7.4 muestra esta funci on para varios valores de c. Se puede probar que las m aquinas de Boltzmann convergen asint oticamente al conjunto de conguraciones globales o ptimas basandose en la existencia de una distribuci on estacionaria. 126

A(u,c) 1 c=1 0.5 c= c=0 0 C(u)

Figura 7.4: Probabilidad de aceptaci on para diferentes valores de c. Como en recocido simulado, se tiene que hacer una aproximaci on en tiempo nito al especicar los par ametros que determinan el esquema de enfriamiento. El esquema es b asicamente el mismo que se sigue para el recocido simulado. Pesos positivos (negativos) en las autoconecciones indican una tendencia a estar las unidades prendidas (apagadas) y entre las conecciones con otras unidades indican que deben de estar las dos unidades conectadas prendidas.

7.1.2

M aquinas de Boltzmann Paralelas

Las m aquinas de Boltzmann facilitan el paralelismo ya que la evaluaci on de transici on puede hacerse localmente. Algunas posibilidades son: Paralelismo s ncrono: conjuntos de transiciones de estado se realizan en forma sucesiva, cada una haciendo transiciones individuales. Se actualiza la informaci on y se continua con el proceso. Este esquema requiere de un mecanismo de reloj global para controlar la sincronizaci on. Podemos tener paralelismo limitado (no cambiar al mismo tiempo unidades adyacentes), paralelismo ilimitado (como aut omatas celulares). 127

En paralelismo ilimitado puede existir un c alculo erroneo en la evaluaci on del concenso (e.g., se prenden dos unidades vecinas para incrementar el consenso, tomando en cuenta que sus vecinos est an apagado, que podr a decrementar el consenso al prenderse los dos). Sin embargo, estos errores decrecen al decrementar el par ametro c y en la pr actica se acepta. Paralelismo as ncrono: se hace la transici on pero no necesariamente con informaci on actualizada. No se requiere un mecanismo de reloj global.

7.1.3

Estrategia para usar M aquinas de Boltzmann en problemas de optimizaci on combinatoria

Para utilizar una m aquina de Boltzmann para resolver un problema de optimizaci on combinatoria, se dene una funci on bijectiva m : R S que mapea el conjunto de conguraciones R al conjunto de soluciones S , siguiendo la siguiente estrategia general: 1. Formula el problema de optimizaci on como un problema de programaci on de 0 y 1 (formula el problema tal que Xi = {0, 1}, para i = 1, . . . , n). 2. Dene una m aquina de Boltzmann tal que el estado en cada unidad determine el valor de una variable. 3. Dene el conjunto de conecciones y las fuerzas tal que la funci on de consenso sea factible y preserve el orden. Una funci on de consenso es factible si todos los m aximos locales de la funci on de consenso corresponden a soluciones factibles. Factibilidad implica que siempre se encuentra una soluci on factible. Una funci on de consenso se dice que preserva el orden si k, l R, con m(k ), m(l) S , tenemos que: f (m(k )) > f (m(l)) C (k ) > C (l) 128

. Para un problema de minimizaci on ser a: f (m(k )) < f (m(l)) C (k ) > C (l)

7.1.4

Ejemplo: el problema de Max Cut

El problema del Max Cut es el siguiente: Dado un grafo G = (V, E ) con pesos positivos en los arcos, el problema consiste en enconrar una partici on de V en conjuntos disjuntos V0 V1 , al que la suma de los pesos de los arcos que tienen un extremo en V0 y el otro en V1 sea m axima. Los pesos son sim etricos (wi,j = wj,i ) y podemos denir una variable xi binaria como sigue: 1 si i V1 xi = 0 si i V0 Entonces el problema Max Cut lo podemos formular como sigue:
n n

maxf (x) =
i=i j =i+1

wi,j {(1 xi )xj + xi (1 xj )}

Sea bi la suma de los pesos de todos los nodos que inciden en el nodo i, i.e., bi = n j =1 wi,j . Si Cb son las conecciones de sesgo (auto-conecciones) y Cw son las conecciones de peso (entre nodos), una funci on de consenso que preserva el orden es: ui , ui Cb : wui ,ui = bi ui , uj Cw : wui ,uj = 2wi,j En la gure 7.5 se ve un grafo de ejemplo y su m aquina de Boltzmann correspondiente.

129

7 1 4 2 2 5 6 3 -8 -2 -4 -4 9

-6 -10

Figura 7.5: Ejemplo de una grafo para resolver el problema de Max Cut y su m aquina de Boltzmann correspondiente.

7.1.5

Discusi on

Las m aquinas de Boltzmann tambien pueden usarse con nodos ocultos y pueden servir para clasicar objetos que se parezcan m as a alg un conocido. Por otro lado son muy tolerantes a ruido. Como en todo modelo neuronal, se tienen que contestar preguntas como: (i) cuantas unidades ocultas se necesitan, (ii) como se deben de conectar las unidades

7.2

Redes de Hopeld

Las redes de Hopeld son probablemente las mejor entendidas de redes recurrentes. Tienen conecciones bidireccionales con pesos sim etricos (i.e., Wi,j = Wj,i ). Todas las unidades son tanto unidades de entrada como de salida. La funci on de activaci on es la funci on signo, y los valores de activaci on pueden ser s olo 1. Una red de Hopeld funciona como una memoria asociativa. Despues de entrenarse con un conjunto de ejemplos, un nuevo est mulo causa la red a asentarse en un patr on de activaci on correspondiente al ejemplo de entrenamiento que se parece m as al nuevo est mulo.

130

Esto es, se alimenta un patr on de entrada y se observa su salida. La salida se vuelve a alimentar a la red y se ve la nueva salida. Este proceso continua hasta que no hay cambios en la salida. Uno de los resultados te oricos interesantes es que una red de Hopeld puede almacenar en forma conable hasta: 0.138N ejemplos de entrenamiento (donde N es el n umero de unidades de la red). Cada neurona tiene un estado interno ui y uno externo vi . Los valores internos son continuos y los externos binarios. La actualizaci on y relaci on entre estos valores es: n ui (t + 1) =
j =1

Wi,j vj (t) + Ii 1 si ui > 0 0 si ui 0

vi (t + 1) = f (ui ) =

donde Ii es una constante externa de entrada a la neurona i y f () es la funci on de transferencia entre los estados internos y externos. Las neuronas se actualizan es forma aleatoria. La siguiente funci on de energ a es la que se minimiza, esto es, el m nimo local de la funci on de energ a corresponde con la energ a del patr on almacenado. Ed = 1 2
n n n

Wi,j vi vj
i=1 j =1 i=1

Ii vi

Las funciones de actualizaci on hacen un gradiente decendiente en la funci on de energ a. Tamb en existe una versi on continua de redes de Hopeld.. Para aplicarla a un problema de optimizaci on combinatoria, se tienen que seleccionar pesos y entradas externas que representen en forma adecuada la funci on a minimizar. En el caso de TSP, se puede hacer la siguiente formulaci on: Xi,j = 1 si la ciudad i est a en la posici on j 0 de otra forma 131

La funci on objetivo y las restricciones las podemos expresar como:


N N N

minimizar
i=1 k =1,k =i j =1 N

dik Xij (Xj,j +1 + Xk,j i )

sujeto a:
i1 N

Xij = 1j

Xij = 1j
i1 N

Xij = 1i
j =1

Xij {0, 1}i, j Para aplicarlo, las restricciones del problema se a naden a la funci on objetivo. Una posible formulaci on para N ciudades es: E=
N N N k =1,k =i Xij Xkj i=1 j =1 B N N + 2 i=1 j =1 N l=1,l=j Xij Xil N N C + 2 ( i=1 j =1 Xij N )2 N N N +D i=1 k =1,k =i j =1 dik Xij (Xk,j +1 2 A 2

+ Xk,j 1 )

Los primeros dos t erminos dicen que no puede existir m as de un 1 por columna y por rengl on respectivamente, el tercer t ermino aseguro que existan N elementos prendidos en la matr z de soluci on y el u ltimo t ermino minimiza la longitud del circuito. En la formulaci on original de Hopeld y Tank (85) usaron los siguientes valores: A = B = D = 500 y C = 200. Para ponerlo en t erminos de la funci on de energ a de Hopeld, introducimos la funci on delta de Kronecker: ab = 1 si a = b 0 si a = b

132

y expresamos la funci on de energ a como:


1 E = 2 N i=1 N i=1 N j =1 N k =1 N l=1

[Aik (1 jl ) Bjl (1 ik ) C Dik (l,j +1 + l,j 1 )]Xij Xkl

N j =1 [CN ]Xij

CN 2 2

Lo que nos deja (ignorando la constante): Wijkl = Aik (1 jl ) Bjl (1 ik ) C Dik (l,j +1 + l,j 1 ) Iij = CN Una vez hecha la formulaci on, se usan valores aleatorios para los estados iniciales y se actualizan los valores internos y externos de acuerdo a las ecuaciones de actualizaci on de ui (t + 1) y vi (t + 1) descritas anteriormente, seleccionando la neurona a actualizar de forma aleatoria. Cl aramente es dif cil expresar problemas de optimizaci on e incorporar las restricciones del problema, adem as que al seguir un gradiente decendiente es f acil de caer en m nimos locales.

7.3

Mapas autorganizados de Kohonen

Es una alternativa para formar clusters o grupos, a partir de datos, cuando se conoce el n umero de grupos a formar. Se ajustan los pesos de un vector de entrada a nodos de salida organizados en una malla bidimensional (ver gura 7.6). Se requiere denir una vecindad alrededor de cada nodo, la cual se va reduciendo con el tiempo (ver gura 7.7). Las entradas se normalizan y se procesan una por una (ver tabla 7.2). Los resultados dependen del orden de los ejemplos para poco datos. La aplicaci on a problemas de optimizaci on se hace normalmente escogiendo una topolog a en los nodos de salida particular que reejen la posible soluci on del problema a resolver. 133

X0

X1

X N-1

Figura 7.6: Red t pica de Kohonen.

VEi(t0) VEi(t1)

VEi(t2)

VEi(t3)

Figura 7.7: Vecindad en una red de Kohonen.

134

Tabla 7.2: Algoritmo de Kohonen Inicializa aleatoriamente los pesos con valores bajos de las N entradas a las M salidas. Dada una nueva entrada: 1. Calcula la distancia entre la entrada y cada nodo de salida j :
N 1

dj =
i=0

(Xi (t) Wij (t))2

donde Xi (t) es la i- esima entrada al tiempo t y Wij es el peso del nodo i al nodo de salida j . 2. Selecciona el nodo con la distancia menor (j ). 3. Actualiza los pesos del nodo j y los de sus vecinos, de acuerdo al esquema de vecindad (ver gura 7.7): Wij (t + 1) = Wij (t) + (t)(Xi (t) Wij (t)) donde (t) (0 < (t) < 1) decrese con el tiempo.

135

Posiblemente la real ventaja de usar estas redes en lugar de alguna de las metaheur sticas propuestas en la literatura, es su facilidad de ser implementadas en hardware.

136

You might also like