• No se han encontrado resultados

Modelado de sistemas dinámicos utilizando técnicas evolutivas y redes neuronales modulares

N/A
N/A
Protected

Academic year: 2021

Share "Modelado de sistemas dinámicos utilizando técnicas evolutivas y redes neuronales modulares"

Copied!
26
0
0

Texto completo

(1)

Capítulo 4

Modelado de sistemas dinámicos utilizando técnicas evolutivas

y redes neuronales modulares

En este capítulo se consideran las redes neuronales modulares para modelar sistemas dinámicos no lineales. Se describe un mecanismo de modelado que utiliza las técnicas evolutivas para crear modelos neuronales formados por módulos neuronales.

En la primera sección se centra el tipo de redes modulares que se manejará, además de repasar las tendencias más interesantes en este sentido. El problema del aprendizaje en redes modulares merece un tratamiento especial, que le será dado en la segunda sección. La tercera sección presenta las técnicas evolutivas y su adecuación al problema de la optimización de redes modulares. Finalmente, la última sección describe la herramienta de modelado.

4.1 Modelado de sistemas dinámicos con redes neuronales modulares

4.1.1 Redes modulares

Las redes neuronales modulares (Modular Artificial Neural Networks, MANN) se han estudiado y utilizado desde el inicio de la historia de las redes neuronales (ver, por ejemplo, los trabajos de Albus y de Fukushima). Sin embargo, no ha sido hasta recientemente que han empezado a recibir un tratamiento diferenciado de las ANN sencillas. De hecho, en los últimos años han sido protagonistas de números especiales en revistas ([Shar-96] y [Shar-97]) y de libros dedicados ([Petri-98] y [Shar-99]).

Dentro de las MANN se diferencian, principalmente, dos grupos operacionales: los ensembles de redes y las redes modulares. En los primeros, cada módulo obtiene una solución del

(2)

problema que se está tratando (por ejemplo: aproximación de funciones, clasificación de patrones, etc.) y la solución global consiste en alguna forma de agregación de todas ellas. Las redes modulares, por el contrario, resuelven el problema fragmentándolo en problemas más sencillos, cada uno de los cuales es tratado enteramente por un módulo.

Los ensembles de redes están fuertemente enraizados en métodos estadísticos conocidos y estudiados bajo el nombre de combinación de estimadores. En ellos, se busca la mejor forma de combinar un conjunto de respuestas de manera que el resultado final sea más parecido al deseado que el de cada una por separado. Las respuestas son las que dan las redes neuronales y la combinación tiene como principal objetivo minimizar la correlación entre los errores de los estimadores. Como se puede ver, el propósito de realizar este tipo de combinación es, principalmente, mejorar el rendimiento global.

En este trabajo nos interesa más el segundo tipo de MANN, las que dividen para vencer. Estas también pueden clasificarse según el método de partición del problema, que puede ser explícito o automático. En el primer caso, un conocimiento profundo del problema permite subdividirlo en tareas conceptualmente separadas y asignarle una ANN a cada una de ellas. Las aplicaciones más corrientes de partición explícita se dan en el ámbito de la clasificación, y en concreto en reconocimiento del habla (ver [Chen-98], [Ben-92] y [Wai-89] por ejemplo).

Los métodos automáticos de partición del problema, por otro lado, representan el área en la que parece quedar más por explorar. El método que más atención ha atraído es el de la combinación de expertos (mixture of experts) en sus múltiples versiones, de las que [Jac-94] es, seguramente, la más conocida.

Una MANN de combinación de expertos (ver figura 4.1) es una red formada por módulos expertos y un módulo administrador (gating module, en inglés). Los expertos realizan aproximaciones precisas en subespacios de la entrada, de tal manera que cada uno se especializa sólo en una parte del problema a resolver. El módulo administrador es quien se encarga de decidir, en función de las entradas o de otros parámetros, qué experto o expertos generarán la salida. Las diferentes maneras de combinar expertos no sólo varían en el tipo de ANN que forman tanto los expertos como el administrador (redes supervisadas o no, recurrentes o no, funciones de activación gausianas o sigmoidales, etc.) sino que también varían en el algoritmo que utilizan para dividir el problema y realizar la asignación de crédito a los expertos.

(3)

x1 yd x2 xny1 ym w1 wm Módulo administrador Módulo experto 1 Módulo experto m

Fig. 4.1: esquema de una red de combinación de expertos

Por último, las técnicas evolutivas se utilizan también como métodos automáticos de partición del problema. En [Hap-94] se utilizan módulos que modelan el comportamiento de las microcolumnas biológicas, consideradas frecuentemente como módulos funcionales elementales. La estructura y los pesos de conexión entre módulos se optimizan mediante técnicas evolutivas.

4.1.2 Redes modulares e identificación de sistemas dinámicos

Anteriormente se ha apuntado que los campos de aplicación más frecuentes de las MANN estaban en problemas de clasificación.

Efectivamente, existen muy pocas aplicaciones de identificación con redes modulares. Las más destacables se describen en [Jac-93] y [Nar-97] y ambas están más relacionadas con el control que con la identificación. La primera consiste en un sistema de control de trayectorias en un robot de dos articulaciones, utilizando combinaciones de expertos. La segunda es un mecanismo de control, también basado en combinaciones de expertos, similar al gain scheduling.

4.2 Aprendizaje en redes neuronales modulares

El aprendizaje en redes modulares neuronales puede llevarse a cabo de forma secuencial o cooperativa. El aprendizaje secuencial consiste en entrenar cada módulo por separado y, cuando

(4)

todos han adaptado sus pesos a valores óptimos de reconocimiento, unirlos en la red modular. Este procedimiento tiene dos inconvenientes importantes. El primero es que el resultado global no tiene por qué ser óptimo y el segundo, y más importante en este trabajo, es que, para poder realizarlo, son necesarios los valores deseados en puntos intermedios de la red modular. Esto quiere decir que se necesitan los valores esperados de las activaciones de cada uno de los módulos, cosa que no siempre está disponible.

El aprendizaje cooperativo, por otro lado, consiste en el entrenamiento global de toda la red modular. Su mayor inconveniente estriba en la dificultad de mezclar algoritmos diferentes para obtener uno único que permita el cálculo de los pesos de cada módulo en una red con arquitecturas neuronales diversas.

En el contexto del modelado de sistemas dinámicos es evidente que un algoritmo secuencial es inaplicable. Para ello se precisarían medidas de señales internas al sistema que generalmente no están disponibles y, por otro lado, tampoco tienen por qué existir. Es necesario, por tanto, utilizar un algoritmo cooperativo.

Los algoritmos cooperativos de aprendizaje en redes modulares descritos hasta el momento, especialmente el expectation-maximization, [Jac-94], y otros menos conocidos ([Elsh-94], por ejemplo) están fuertemente condicionados por los tipos de módulos y sus formas de interconexión.

El algoritmo presentado en [Cat-94] y [Cat-97] permite mezclar redes de propagación directa y recurrente. Tiene la ventaja de utilizar, en los módulos recurrentes, el Real Time Recurrent Learning (RTRL), que es un algoritmo que no precisa información sobre las dependencias temporales entre los datos utilizados para el entrenamiento. Su principal desventaja es que sólo es aplicable si los módulos tienen una estructura determinada, es decir, si están distribuidos según una primera capa neuronal recurrente y las siguientes de propagación directa. Además, el RTRL es un algoritmo de aprendizaje de alto coste computacional (O(n4), siendo n el número de neuronas).

Por otro lado, existen descripciones de métodos para generar algoritmos de aprendizaje que, aunque no están específicamente orientados a las redes modulares, pueden adaptarse a ellas. Por ejemplo, en [Wan-96] se utiliza una transformación gráfica que, de forma sencilla, permite la creación de algoritmos de aprendizaje (de descenso del gradiente) para estructuras neuronales arbitrarias. El mayor inconveniente que plantea es que, en el caso de aplicarse a estructuras no descritas de antemano, es necesario incorporar las reglas de transformación en el algoritmo.

(5)

En [Bot-91], se describe un método genérico para la creación de algoritmos de aprendizaje cooperativos en redes modulares, planteado a partir de restricciones de la operación de cada módulo en forma lagrangiana. En él, los módulos pueden tomar formas muy diferentes, desde redes feedforward hasta módulos de programación dinámica u otros métodos no necesariamente relacionados con las ANN. Los principales requisitos para poder aplicar esta metodología son dos: el patrón de conexiones en la red modular no puede contener conexiones hacia atrás (recurrencia) y la función que realiza cada módulo ha de ser diferenciable, para realizar un descenso de gradiente sobre la función de coste.

Un resultado interesante es que, cuando cada módulo de la MANN corresponde a una neurona, el algoritmo de aprendizaje cooperativo resulta ser backpropagation. Esta metodología se aplica en [Fogel-93] de forma parcial. Es decir, primero se entrenan los módulos secuencialmente y después en forma cooperativa. Los resultados que obtienen en aplicaciones de reconocimiento de caracteres y caras humanas son muy positivos.

El algoritmo que se propone en este trabajo se divide en dos niveles: el nivel intermodular y el nivel intramodular. Respecto al aprendizaje intramodular se utilizan los algoritmos clásicos. En redes de propagación directa se puede utilizar backpropagation (BP), o cualquiera de sus variantes: delta-bar-delta (DBD), quickprop (QBP), etc; y para las redes recurrentes se puede utilizar backpropagation through time (BPTT) o cualquiera de sus variantes.

El aprendizaje intermodular se lleva a cabo mediante una extensión de BP a las redes de módulos, tal y como se explica seguidamente.

4.2.1 Conceptos básicos de BP y BPTT

Se resumen aquí los conceptos fundamentales de BP y BPTT para entender el funcionamiento del algoritmo global de aprendizaje. En la figura 4.2 aparece un fragmento de una red neuronal, útil para comprender el orden de precedencia entre las variables de los cálculos y los símbolos que se emplean a continuación.

x

i

n

i

w

ji

n

j

n

k

x

j

w

kj

(6)

En las redes feedforward existen dos fases diferenciadas: la propagación hacia delante y la propagación hacia atrás. En la primera se calcula la activación de cada neurona según

( )

j j I i i ji j j

f

w

x

f

s

x

=

=

∈ (4.1)

siendo fj la función de activación de cada neurona (sigmoidal, identidad, etc.) e I el conjunto de índices de las neuronas que entregan su salida a la neurona j.

La fase de propagación hacia atrás consiste en el cálculo de “las deltas”, factor relacionado con el gradiente del error:

( )

=

K k kj k j j j

f

s

δ

w

δ

'

(4.2)

siendo ahora K el conjunto de índices a los que la neurona j entrega su salida. Existe un caso en el que δj toma valores especiales, las neuronas de salida, y se calcula según:

( )

j j j

( ) (

j j j

)

j

j

f

s

e

f

s

xd

x

out

=

'

=

'

δ

(4.3)

Es decir, en las neuronas de salida se utiliza el error, que es la diferencia entre la salida deseada, xdj, y la salida real, xj.

Finalmente es posible modificar los pesos, siguiendo la dirección contraria al gradiente del error utilizando: i j ji ji

x

w

E

w

η

=

ηδ

=

(4.4)

En BPTT el algoritmo es similar. La única diferencia estriba en que la red sobre la que se calculan tanto las deltas como los demás parámetros es una versión “desplegada en el tiempo” de la red recurrente. La figura 4.3 muestra una red recurrente de dos neuronas y su versión desplegada en el tiempo. Puesto que las ecuaciones del algoritmo de aprendizaje son análogas a las de BP, se ilustrarán con un ejemplo los cambios que introduce contemplar el tiempo. Vamos a calcular la derivada del error, en el instante k, con respecto al peso w2,in, el que conecta la entrada con la neurona 2.

(7)

x(k) y(k) x2(k-1)

x1(k)

x(k-2) x(k-1) x(k)

y(k-2) y(k-1) y(k)

k-2

x2(k-2) x2(k-1) x2(k)

k-1 k

Fig. 4.3: red recurrente y su versión desplegada en el tiempo

La activación x2(k) se calcula a partir de la entrada y de la activación en el instante anterior:

(

(

)

(

1

)

)

(

(

)

)

)

(

2 2, 22 2 2 2

2

k

f

w

x

k

w

x

k

f

s

k

x

=

in

in

+

=

En vez de una delta se calculan D+1 deltas:

(

(

)

)

(

)

0

'

)

(

2 2 ,2 2

=

=

i i i

k

w

k

s

f

k

δ

δ

(

)

(

s

k

n

) (

k

n

w

k

n

w

)

n

D

f

w

n

k

w

n

k

n

k

s

f

n

k

j j j i i i

..

1

)

1

(

)

1

(

0

)

(

'

)

1

(

)

(

)

(

'

)

(

22 2 12 1 2 2 2 , 2 , 2 2 2

=

+

+

+

+

=

=





+

+

=

δ

δ

δ

δ

δ

El parámetro D indica el orden de la dependencia temporal entre datos. Finalmente, en la derivada del error contribuyen todas las deltas:

=

=

D n in in

n

k

x

n

k

w

E

.. 0 2 , 2

)

(

)

(

δ

Queda claro, por tanto, que la variación de un peso depende de las activaciones y errores en el instante k y de las activaciones en los instantes anteriores.

Así como la comprensión conceptual de BPTT es sencilla, si se entiende lo que se hace en BP, la realización algorítmica es algo confusa y se remite al lector a las fuentes originales para más detalles, [Rum-86].

(8)

4.2.2 Aprendizaje modular (Modular BackPropagation, MBP)

MBP, Modular BackPropagation, es un algoritmo diseñado a propósito en este estudio que permite el aprendizaje en redes neuronales modulares. Su tarea es la de gestionar el aprendizaje de los módulos, que utilizan algoritmos de descenso de gradiente.

MBP está especialmente indicado para entrenar redes en las que se sigue un patrón de conexiones entre módulos hacia adelante. Éstos pueden ser, internamente, recurrentes o de propagación directa. Se suponen módulos con una entrada y una salida, pero extender el algoritmo a múltiples entradas y salidas es inmediato.

M1

M2

M3

M4 M5

Fig. 4.4: red modular de 5 módulos, los módulos 3 y 4 son recurrentes

MBP se basa, igual que BP, en una fase de propagación hacia delante y otra de propagación hacia atrás. Dada una red modular (por ejemplo la de la figura 4.4), se requiere, en primer lugar, calcular el orden de precedencia entre módulos (ver figura 4.5). Para ello se crea la lista

[

p

p

p

M

]

P

=

1

,

2

,

K

, que indica que es necesario conocer la salida del módulo pi para obtener la entrada de cualquier módulo pj con j > i.

M1 M3 M2 M4 M5

Fig. 4.5: la misma red ordenada dispuesta en un posible orden de precedencia

Un módulo Mj realiza una transformación (estática o dinámica) de sus entradas mediante la

siguiente relación

)

(

pj pj pj

F

in

out

=

y la entrada se calcula según

(9)

<

=

pj pi pi pj pi pj

out

a

in

,

La matriz A = {aij} es la matriz de adyacencia de la red modular y aij = 1 si Mj entrega su salida a Mi, sino vale cero.

Puesto que, para cada patrón de entrada a la red existe un patrón de salida deseada, es posible calcular el error asociado a la salida de cada módulo:



<

=

=

> M j pj pk pj pk pk M j pj pj

k

a

p

p

p

p

k

out

k

target

k

error

,

)

(

)

(

)

(

)

(

y ∆pk(k) es la delta equivalente en la entrada del módulo pk que, recordemos, se obtiene con:

∑ ∑

= ∈ =

=

=

D n j J in j j D n in pj

k

k

n

k

n

w

.. 0 , .. 0

)

(

)

(

)

(

δ

δ

es decir, a partir de las deltas de las neuronas que reciben la entrada, calculadas con BP o BPTT. MBP, sin embargo, no lleva a cabo los cálculos del aprendizaje. La tarea de MBP es gestionar toda esta información y permitir el correcto aprendizaje de una red modular, utilizando como herramientas de cálculo los algoritmos BP, BPTT y sus modificaciones más habituales (delta-bar-delta, quickprop, alopex, etc.)

Un módulo neuronal lleva asociada la siguiente información: – La matriz de pesos: W = {wij}

– La matriz de derivadas del error respecto a cada peso: ∂E = {E/wij} – Las activaciones de las neuronas: xi(k), ..., xi(k-D)

– Las derivadas de las activaciones: fi’(si(k)), ..., fi’(si(k-D)) – Las deltas: δi(k), ..., δi(k-D)

– Otra información dependiente del algoritmo de aprendizaje

Se define contexto(m, t) a la información necesaria para calcular la salida, outm, de un módulo y la delta equivalente a su entrada en un paso de propagación atrás, δin(k-t)

{

(

),

'

(

(

)),

(

),

(

1

),

(

)

}

)

,

(

m

t

x

k

t

f

s

k

t

k

t

k

t

W

k

(10)

Así pues, la tarea de MBP consiste en escoger en cada momento el contexto a tratar, generar los datos necesarios para calcular la propagación directa o la inversa y activar el algoritmo de aprendizaje correspondiente sobre ese módulo.

Consideremos una red modular de cinco módulos (como la de las figuras 4.4 y 4.5) con D = 2, es decir, con una dependencia temporal de dos muestras entre datos. Pues bien, para entrenar esta red es necesario manejar simultáneamente la información de 5·(2+1) = 15 contextos. La propagación hacia adelante, para un patrón k, se resume en el siguiente algoritmo:

para j desde 1 hasta M

< ⋅ = pj pi pi pj pi pj out a

in , (el módulo de entrada cumple outp1 = entrada)

Activar contexto(pj, 0)

)

(

pj pj pj

F

in

out

=

fpara

La propagación hacia atrás se realiza desplegando la red modular en el tiempo y se resume en el siguiente algoritmo:

para t desde 0 hasta D

para j desde M hasta 1

       < ⋅     − = > = = − =

∑ ∑

>pj j M pk pj pk pk in M j M j pj pj p p a t k p p t p p t k out k target t error para ) ( , 0 para 0 , 0 para ) ( ) ( ) ( , ) ( δ Activar contexto(pj, t)

δin(pj) = propagación atrás(Mpj) fpara

(11)

Continuando con el ejemplo anterior, veamos como se calculan algunos valores interesantes para ilustrar el funcionamiento de MBP. En la figura 4.6 aparece la red modular, en el patrón k, desplegada en el tiempo hacia atrás dos veces. Como ya se ha comentado y se puede observar, esta red utiliza la información de 15 módulos.

t=0 t=-1 t=-2 Conexiones recurrentes Conexiones recurrentes M1 M3 M2 M4 M5 Patrón k

Fig. 4.6: red modular desplegada en el tiempo desde k-2 hasta k

El orden de precedencia, según la disposición propuesta, es P = [1, 3, 2, 4, 5], pero también sería válido P = [1, 2, 3, 4, 5]. La propagación hacia adelante calcula la salida de la red según:

(

)

(

(

)

(

)

)

(

(

(

)

(

(

)

(

(

)

)

)

(

k

out

5

F

5

F

2

F

1

in

k

F

4

F

2

F

1

in

k

F

3

F

1

in

k

out

=

=

+

+

En t = -1, error3(-1) = δin(4)(-1). Pero, puesto que M3 es un módulo recurrente, para calcular δin(3)(-1), el algoritmo de aprendizaje necesita tener acceso a las deltas de las neuronas del módulo en t = -1 y en t = 0, tal como se indica en la figura 4.6 con las flechas claras.

Por otro lado, en t = -2,

error2(k) = δin(4)(-2) + δin(5)(-2)

Sin embargo, como que error5(-2) = 0 δin(5)(-2) = 0 forzosamente, por tanto, error2(k) = δin(4)(-2)

(12)

4.2.2.1 Coste computacional de MBP

En este apartado se compara el coste computacional (en cálculo y memoria) del algoritmo MBP con el de BP, para redes de propagación directa, y BPTT, para redes recurrentes. En esta comparación se consideran MANN y, con los algoritmos clásicos, se supone la interconexión de todos los módulos como una sola red global. La ANN global es, en general, recurrente (por contener algún módulo recurrente) y debe simularse utilizando BPTT o RTRL (o cualquier otro algoritmo de aprendizaje que permita recurrencia). Con MBP, por otro lado, se simula cada módulo utilizando el algoritmo de aprendizaje más adecuado para su caso.

Dada una red modular de N neuronas, el coste computacional, en cálculo y memoria, de backpropagation es: N N N N N N N N 3 2 : memoria , 2 : cálculo total 2 2 3 : atrás hacia n propagació 2 2 : adelante hacia n propagació 2 2 2 2 + +       + +

La misma red entrenada con backpropagation through time, con dependencia temporal de D periodos de muestreo entre los datos, tiene los siguientes costes computacionales:

N N N D N D N D N D N N 11 2 : memoria total ) 2 ( ) 2 2 ( : cálculo total ) 1 ( ) 1 2 ( : atrás hacia n propagació : adelante hacia n propagació 2 2 2 2 + + + +    + + + +

El cálculo de los costes con MBP es más difícil de establecer, porque depende del número, tamaño y tipo de los módulos de la red modular. Para obtener cotas superiores e inferiores de los costes se han tenido en cuenta dos casos. En el primero, todos los módulos son de propagación directa (y se entrenan con BP) y en el segundo todos son recurrentes (y utilizan BPTT). Se considera, ahora, que la red tiene m módulos, que ni es el número de neuronas de cada módulo y que se cumple, consecuentemente que

N

=

n

i . El coste computacional en el primer caso es N N m n N m n n m m n n m m m i m i i m i i 5 2 3 : memoria total 2 2 : cálculo total 2 3 2 3 2 2 : atrás hacia n propagació 2 2 2 2 : adelante hacia n propagació 2 2 2 2 2 2 2 + + + +       + + + + + +

y en el segundo caso es

(13)

N D N m n D N D m n n D m m n n m m m i m i i m i i ) 5 2 ( 2 3 : memoria total ) 2 2 ( ) 3 2 ( : cálculo 2 2 ) 1 ( 2 2 2 2 2 2 2 2 2 2 2 + + + + + + +       + + + + + + +

Resulta complicado extraer, de estas expresiones, resultados cuantitativos respecto a la eficiencia de uno u otro método. Sin embargo, es posible dar conclusiones de tipo cualitativo observando que m puede variar desde 1 hasta N.

Para m = 1 tenemos una red compuesta por un solo módulo. En este caso el coste de MBP para entrenar una red monolítica es

BPTT módulo un para ) 2 2 ( ) 3 2 ( ) 2 2 ( ) 3 2 ( 1 BP módulo un para 2 2 2 2 1 2 2 2 2 N D N D n D N D N N n N m i m i + + + = + + + + + = + +

que, asintóticamente (N →∞), tiene el mismo coste que el algoritmo monolítico.

Cuando m = N tenemos una red con módulos de una sola neurona. El coste de MBP ahora es

BPTT módulos para ) 5 4 ( 1 ) 2 2 ( ) 3 2 ( BP módulos para 4 1 2 2 2 2 2 2 2 2 N N D N D N D N N N N N N N N + + = + + + + + = + +

Aquí se observa que el peso de cálculo recae principalmente en la gestión de MBP, más que en los algoritmos que éste pueda llamar, como era de esperar por el hecho de tener tantos módulos en la red. Por otro lado, es computacionalmente más eficiente que la ejecución como una única red.

Aparte de estos casos extremos, en los que la diferencia no parece justificar plenamente la utilización de MBP, la figura 4.7 refleja la diferencia entre MBP y BP para diferentes valores de N y m, suponiendo que la red es toda de propagación directa.

(14)

5 10 15 20 25 30 35 40 2 4 6 8 10 12 14 16 18 20 200 100 100 0 0 -100 -100 -200 -200 -400 -400

Fig. 4.7: diferencia entre MBP y BP, el diagrama de contornos refleja la curva cero Se observa en la gráfica tridimensional que ésta toma, en general, valores negativos. El diagrama de contornos destaca con más nitidez la curva que separa la parte negativa de la positiva, y se observa que, solamente para números de neuronas pequeños y cantidades de módulos grandes, es menos eficiente la implementación de MBP. Por otro lado, estos casos son poco significativos, puesto que no tiene sentido una red con más módulos que neuronas.

5 10 15 20 25 30 35 40 2 4 6 8 10 12 14 16 18 20 0 0 -100 -100 -200 -400

Fig. 4.8: diferencia entre MBP y BPTT, el diagrama de contornos refleja la curva cero En la figura 4.8 se observan unos resultados similares, más acusados, para el caso de redes modulares compuestas por módulos recurrentes.

Para finalizar este apartado de comparación entre algoritmos de aprendizaje clásicos y MBP falta comentar que la situación típica es la de una red modular mixta, en la que conviven módulos recurrentes y módulos de propagación directa. En ese caso, MBP es más eficiente, todavía, porque los módulos recurrentes aprenden con BPTT y los no recurrentes con BP. En la implementación monolítica toda la red resultante sería recurrente y utilizaría BPTT.

(15)

Por todo ello, el método de simulación y aprendizaje escogido es MBP: módulo a módulo y cada uno con el algoritmo más adecuado a su estructura.

4.3 Técnicas evolutivas como herramientas de optimización y MANN

En el capítulo 2 se ha justificado la utilización de redes neuronales para la modelado e identificación de sistemas dinámicos. Se han sugerido las redes modulares como una alternativa interesante para minimizar algunos de los efectos menos deseables de las redes simples. También se ha descrito, en este capítulo, un algoritmo de aprendizaje, MBP, capaz de entrenar redes de módulos neuronales eficientemente.

Sin embargo, queda por resolver un problema fundamental para poder plantear un método integral de modelado de sistemas no lineales mediante MANN. Se trata de la determinación de la estructura modular del modelo. Es decir, queda por saber cuáles serán los NM que formarán parte del modelo y cómo estarán conectados entre ellos. Este problema es, probablemente, el más complejo de los que se plantean en este estudio. El espacio de búsqueda es enorme y la hipersuperficie de error poco regular, multimodal y difícil de caracterizar analíticamente. Es, en definitiva, el clásico problema en el que no existen métodos de búsqueda eficientes.

En esta sección se introducen las técnicas evolutivas de optimización, que son métodos frecuentemente útiles ante problemas como el planteado. También se esbozan las aplicaciones más frecuentes de las técnicas evolutivas en el diseño de redes neuronales y, finalmente, se describe la programación evolutiva como método para optimizar estructuras de redes modulares.

4.3.1 Introducción a las técnicas evolutivas de optimización

Las técnicas evolutivas son métodos de optimización inspirados en la evolución natural. Sus principales características son: operan sobre puntos del espacio de búsqueda (o codificaciones de éstos) en vez de operar sobre la función objetivo; utilizan simultáneamente la información asociada a un conjunto de posibles soluciones; son técnicas con reglas de transición estocásticas; y, por último, no garantizan la optimalidad de la solución final (en tiempo finito). Los primeros trabajos que describen técnicas evolutivas se publicaron a finales de los años 50 y principios de los 60, pero tuvieron poca repercusión debido, esencialmente, a la escasa potencia computacional del momento, que dificultaba la realización de experimentos. Durante los años 70 se dieron, de forma independiente, las bases de dos de las técnicas más conocidas actualmente: los algoritmos genéticos (Genetic Algorithms, GA) y las estrategias evolutivas

(16)

(Evolution Strategies, ES). Los resultados más interesantes, al respecto, son la demostración de convergencia en una solución óptima para ES, [Born-78], y el schema theorem para GA, [Hol-75]. Éste último fue reinterpretado en lo que se ha venido a llamar el principio del paralelismo implícito de los GA [Gol-89], en que se afirma que la evaluación de m soluciones candidatas está procesando paralela, e implícitamente, m3 soluciones candidatas.

En la actualidad, las técnicas evolutivas están bien fundamentadas (por ejemplo, todas tienen la convergencia demostrada) y son motivo de publicaciones periódicas y conferencias internacionales enteramente dedicadas a ellas. Se remite al lector a alguno de los libros sobre el tema (como [Bäck-96] y [Dav-91]) para profundizar en los resultados teóricos y aplicaciones usuales de las diferentes técnicas.

Seguidamente se explica el funcionamiento básico de un algoritmo genético. En primer lugar, es necesaria una función a optimizar, f(x), en la que x, que en este contexto se suele llamar individuo, puede tomar múltiples formas y representa un candidato a solución, o lo que es lo mismo, un punto del espacio de búsqueda. En los GA, x se codifica utilizando un vector binario o real. El conjunto Χ mantiene un número prefijado de soluciones y se suele denominar población de soluciones. El algoritmo consiste en la ejecución de los siguientes pasos:

Crear aleatoriamente la población inicial(Χ) Evaluar todos los individuos(f, x)

mientras condición de fin<>FALSO hacer Χ := selección(Χ)

Χ := recombinación(Χ) Χ := mutación(Χ)

Evaluar todos los individuos(f, x) Evaluar condición de fin

fmientras

En este algoritmo se destacan dos procesos diferentes: la evaluación de individuos y la aplicación de operadores genéticos. La evaluación consiste en obtener un índice de comportamiento, la bondad, asociado a cada individuo a partir de la función de evaluación f. Una característica muy interesante de las técnicas evolutivas es que la función de evaluación no está restringida en forma alguna, es decir, no necesita ser derivable o analítica como en otros métodos de optimización.

(17)

Los operadores genéticos de selección, mutación y recombinación tienen reglas de transición estocásticas y realizan las siguientes tareas: la selección escoge los individuos de mayor bondad para participar en la siguiente iteración, la mutación altera características de las soluciones; por ejemplo, en una codificación binaria cambiaría ceros por unos, y viceversa, en posiciones aleatorias de cada individuo; la recombinación permite combinar dos soluciones (padres) y obtener otras dos que contienen características de sus progenitoras.

4.3.2 Utilización de técnicas evolutivas en la optimización de redes neuronales

Las técnicas evolutivas se pueden aplicar en la optimización de redes neuronales a tres niveles conceptuales diferentes. El nivel más bajo es el paramétrico, que determina el comportamiento instantáneo de la red. El segundo nivel es el topológico, que define el rango de comportamientos alcanzable. Estos dos niveles corresponden a características estáticas de una ANN, pesos y topología. El tercero es el dinámico, que describe el mecanismo de adaptación de la red a su entorno, el conjunto de entradas y salidas que debe aprender. Este nivel se refiere al algoritmo o mecanismo de aprendizaje.

La utilización de técnicas evolutivas en la optimización de redes neuronales despertó gran interés a principios de los años 90. Se aplicaban algoritmos genéticos, más frecuentemente que las otras técnicas evolutivas, para substituir a los algoritmos de aprendizaje clásicos. Los resultados nunca fueron desalentadores, pero estudios más recientes ([Yao-93] y [Koehn-94]) demuestran que los algoritmos genéticos no superan a los algoritmos de aprendizaje basados en gradiente, sobre todo en problemas no triviales.

La optimización de topologías con algoritmos genéticos es un tema que se ha tratado largamente (tres ejemplos clásicos son [Harp-91], [McD-93], [Mil-89] y uno de los diversos repasos del estado del tema se da en [Kus-94]). Sin embargo, la optimización de topologías con este tipo de técnicas evolutivas da lugar a un problema de difícil solución. Es el problema de codificar la red neuronal de forma que el operador de recombinación genética tenga pleno sentido. Este problema, descrito en [Koehn-94], se ha estudiado (por ejemplo, en [Rad-93]) sin llegar a resultados concluyentes suficientemente generales. Aún así, existen otros métodos de codificación, como los que utilizan reglas para generar las ANN, con resultados positivos. Una aplicación que se ha estudiado poco, a pesar de su gran interés, es la optimización de algoritmos de aprendizaje con algoritmos genéticos. El experimento descrito en [Chal-90] fue, casi con certeza, el primero que se realizó al respecto, dando lugar a resultados muy interesantes, como el “redescubrimiento” de la conocida delta rule, aunque también se trata el tema en otros artículos, como [Yao-93].

(18)

4.3.3 Programación evolutiva

El problema de la codificación de las redes neuronales y, en general, de las estructuras de grafos dirigidos, ha planteado grandes controversias respecto a la aplicación de operadores de recombinación en estos tipos de estructuras, como se comenta en el precedente apartado. Ante esta situación, la programación evolutiva (EP, Evolutionary Programming) ha ido emergiendo como una alternativa válida a los algoritmos genéticos, puesto que ésta tiene como únicos operadores genéticos la selección y la mutación. La EP surgió a mediados de los años 60 ([Fog-66]) como un método de “adquisición de inteligencia” en el que, de forma automática, se diseñaban autómatas de estado finito para reconocer secuencias de un alfabeto.

Un algoritmo de EP tiene como característica principal que no codifica las soluciones candidatas, sino que trabaja directamente con ellas. Por esta razón es, generalmente, más complicado plantear el operador de recombinación genética, de manera que el algoritmo resultante es el siguiente:

Crear aleatoriamente la población inicial(Χ) Evaluar todos los individuos(f, x X) mientras condición de fin<>FALSO hacer

ΧNueva := mutación(Χ)

Evaluar todos los individuos(f, x XNueva) Χ := selección(Χ, XNueva)

Evaluar condición de fin fmientras

Como se puede observar, toda la potencia de búsqueda se deja en manos del operador de mutación.

La EP se ha utilizado, con éxito, en la optimización de redes neuronales, especialmente en la optimización topológica porque resuelve, de forma natural, el problema de la codificación de la estructura neuronal.

En [McD-94] se propone un sistema, basado en EP, de optimización de los pesos de perceptrones (conectados entre sí de forma recurrente para formar filtros IIR) capaz de hacer predicción en series temporales. En [Ange-94] se describe un sistema que diseña redes

(19)

recurrentes (tanto la topología como los pesos) y se comprueba su funcionamiento en 3 problemas de creciente complejidad. Otro ejemplo interesante es [Fog-93]. Finalmente, es interesante mencionar [Yao-98] como un paso más allá en la optimización de redes neuronales con EP puesto que aquí se diseñan redes modulares, de tipo ensemble.

El operador de selección se realiza de diferentes formas pero, en general, parte de dos conjuntos de soluciones, de tamaño M, y devuelve un conjunto nuevo, de igual tamaño. Recordemos que, en este punto, las soluciones que recibe el operador de selección han sido evaluadas y, por tanto, es posible compararlas utilizando la bondad obtenida para cada una. Los dos métodos de selección típicos son el elitista y el competitivo. En el primero, se reciben 2·M soluciones, se ordenan, y se escogen las M mejores; el resto es descartado. El segundo consiste en generar M competiciones, de las que los ganadores formarán el conjunto seleccionado. Una competición se realiza comparando la bondad de dos o más soluciones extraídas al azar entre las 2·M iniciales. El operador de mutación suele comprender dos pasos: determinación de la severidad de la mutación y la propia mutación. La severidad se puede calcular como una función de la bondad óptima, de manera que para bondades lejanas a la óptima las mutaciones sean grandes y para bondades cercanas a la óptima las mutaciones sean pequeñas. Cuando el problema a optimizar es de tipo numérico, tanto la severidad como la mutación son calculables de forma directa. Por ejemplo, la mutación puede realizarse sumando a cada parámetro un valor aleatorio extraído de una distribución gaussiana centrada en cero y con desviación estándar proporcional a la severidad. Sin embargo, en otros tipos de problemas, como el de la optimización de topologías neuronales, es más complicado establecer una relación clara entre bondad y severidad.

En la siguiente sección se describe un algoritmo de programación evolutiva para la modelado e identificación de sistemas dinámicos no lineales con redes neuronales modulares. En ella se precisa cómo se han implementado tanto la selección como la mutación y cómo se evalúan las redes modulares resultantes.

4.4 Descripción de la herramienta de modelado de sistemas no lineales

con redes neuronales modulares

En este estudio se ha desarrollado, expresamente, una herramienta para comprobar la viabilidad de los módulos neuronales como mecanismos de modelado de sistemas dinámicos no lineales. La herramienta de modelado que se describe a continuación está especialmente indicada en la obtención de modelos, basados en redes neuronales, de sistemas construidos a partir de conexiones en serie y en paralelo de características no lineales y sistemas con dinámica lineal.

(20)

Los tipos de características no lineales a los cuales se adapta mejor la identificación con esta herramienta corresponden a las clásicas no-linealidades duras (hard nonlinearities) o a combinaciones de éstas, aunque no se excluyen otros comportamientos.

El proceso de modelado es particularmente útil cuando existe información previa acerca del sistema, porque la búsqueda es esencialmente estocástica y sesgarla en un sentido u otro no plantea ningún inconveniente. Sin embargo, la única información necesaria para realizar el modelado consiste en un conjunto suficientemente amplio y significativo de datos de entrada y salida. En este trabajo no se trata explícitamente la metodología de obtención de datos y se aprovecharán otras ya desarrolladas ([Codi-96] y [Esco-97]). El conjunto de datos, S, hay que dividirlo en dos partes disjuntas, SI y SV, que corresponden a los datos de identificación y

validación, respectivamente. Además, cuando sea posible, el primer subconjunto se dividirá también en datos para realizar la fase de aprendizaje, SA, y datos para la fase de reconocimiento

o test, ST.

Esta herramienta está indicada en sistemas de una entrada y una salida. Los modelos resultantes son redes neuronales modulares, que representan sistemas dinámicos en tiempo discreto y cuyos módulos serán directamente interpretables como funciones conocidas.

4.4.1 Funcionamiento general de la herramienta de modelado

La herramienta de modelado se basa en dos mecanismos: el entorno de optimización evolutiva y el simulador de MANN. El funcionamiento general, esquematizado en la figura 4.9, se explica a continuación.

El entorno de optimización evolutiva es el encargado de generar y evaluar soluciones candidatas a resolver el problema de modelado. Estas soluciones son redes neuronales modulares. La tarea del simulador de MANN es doble. Por un lado, calcula las bondades de cada red de la población y, por otro, realiza un corto aprendizaje para adaptar, si es necesario, los pesos modificables de los módulos neuronales.

El simulador de MANN utiliza el algoritmo MBP para gestionar las fases de reconocimiento y aprendizaje en redes neuronales modulares.

Esta herramienta está formada por algoritmos y estructuras de datos programados en C y en MATLAB conjuntamente. En esta sección, más que describir los programas que se han realizado, se describen los objetos abstractos que subyacen tras ellos, que son:

(21)

– El simulador de MANN

– El simulador de redes neuronales – La población de soluciones Aprendizaje módulo a módulo

mutación

selección

evaluación

Algoritmo EP

Simulador MANN

Conversión a MANN

Conversión a grafo de módulos

Fig. 4.9: esquema de funcionamiento de la herramienta de modelado con MANN

4.4.2 Entorno de optimización evolutiva

El entorno de optimización evolutiva, programado en MATLAB, sigue las características de un algoritmo de programación evolutiva y los objetos que utiliza para representar las soluciones candidatas son grafos acíclicos dirigidos. Estos grafos realizan alguna operación sobre un conjunto fijo de entradas, que depende de la estructura del grafo y de los tipos de nodos que lo componen.

Los grafos que aquí se tratan constan de un nodo de entrada, uno de salida y cero o más nodos intermedios. Los nodos intermedios realizan alguna función sobre el conjunto de entradas que reciben. Los arcos relacionan las salidas de un nodo con las entradas de otro, de forma que un

(22)

nodo al que le llega más de un arco recibe la suma de las salidas de los nodos emisores. Es evidente que, en este trabajo, los nodos corresponden a módulos neuronales y los grafos a redes de módulos, sin embargo, se seguirá empleando la nomenclatura de los grafos puesto que el entorno de optimización evolutiva es genérico, en este sentido.

Aunque el algoritmo genérico de EP ya ha sido explicado, existen ciertas operaciones que, por tratar con grafos, requieren aclaraciones adicionales. En concreto la mutación y la inicialización se explican seguidamente.

La mutación es el motor de exploración en la EP. Así como los algoritmos genéticos clásicos disponen de dos operadores diferentes (mutación y recombinación) para descubrir nuevas regiones del espacio de búsqueda y para explorar las conocidas, los EP solamente disponen del operador de mutación para ambas tareas. Por ello, este operador es más potente que en los GA, realizando cambios a nivel estructural (modificando la estructura del grafo), además de a nivel paramétrico (modificando parámetros de los nodos). En concreto, las operaciones que puede llevar a cabo, con probabilidades ajustables son:

– inserción de un nodo: mutación estructural que añade un nodo al grafo; no modifica el comportamiento del grafo puesto que inserta un nodo que no hace nada.

– supresión de un nodo o arco: mutación estructural que elimina un nodo o un arco del grafo; un nodo es eliminable si solamente tiene un arco de entrada y otro de salida; y un arco es eliminable si los nodos que une no quedan “huérfanos”.

– modificación de la operación de un nodo: cambia la función que realiza uno de los nodos del grafo por otra de las funciones permitidas para los nodos.

– modificación de algún parámetro de un nodo: las funciones que realizan los nodos tienen parámetros y esta mutación altera uno de estos valores en un porcentaje prefijado.

En la figura 4.10 se observan ejemplos de mutaciones estructurales válidas e inválidas. Las transformaciones 1, 2 y 3 corresponden a ejemplos válidos y las transformaciones 4, 5 y 6 corresponden a ejemplos no válidos.

La función de inicialización se encarga de generar el conjunto inicial de soluciones, a partir del cual comienza el proceso de optimización. Puesto que es importante que este conjunto sea diverso, la inicialización utiliza las mutaciones estructurales y paramétricas para construir grafos de tamaños y funcionalidades aleatorias.

En la inicialización, cada solución, que consiste en un grafo vacío (con un nodo de entrada y uno de salida que no realizan ninguna función), sufre un número de inserciones de nodos, que a

(23)

su vez son modificados en las funciones que realizan y en los valores de sus parámetros. Puesto que el número de nodos que se inserta es un valor aleatorio y la selección de la función que realizan los nodos y los parámetros que se modifican son procesos aleatorios, los grafos resultantes cumplen los requisitos de diversidad que se requieren en la población inicial.

mutación 1: inserción de un nodo

mutación 2: supresión de un nodo

mutación 3: supresión de un arco

mutación 4: inserción de un nodo

mutación 5: supresión de un nodo

mutación 6: supresión de un arco

Fig. 4.10: ejemplos de mutaciones permitidas y no permitidas

Finalmente, la evaluación es la función que enlaza el proceso de optimización de grafos con el mundo de las redes neuronales modulares. Para comprender mejor cómo se lleva a cabo la evaluación a través del aprendizaje y simulación de MANN es conveniente conocer mejor como es el simulador de redes neuronales.

Los operadores (selección, mutación y evaluación) de este entorno de optimización evolutiva están parametrizados para hacerlos más flexibles. Los parámetros de que consta cada operador son:

Comunes a todos:

(24)

Selección:

TournSize: número de individuos que compiten en cada “torneo” de la selección. Valores pequeños favorecen las poblaciones diversas, mientras que valores grandes tienden a estancar la búsqueda, puesto que en pocas iteraciones toda la población es idéntica.

Mutación:

TipoMutacion: los tres tipos de mutaciones permitidos (añadir un nodo o conexión, eliminar un nodo o conexión y modificar las características de un nodo) tienen probabilidades fijas asignadas (respectivamente, 0.25, 0.25 y 0.5). pMutarFuncion: la mutación que modifica las características del nodo puede

variar la función que realiza el nodo (el tipo de NM) o sus parámetros. Este parámetro permite dar más peso a uno u otro tipo de mutación.

pMutarParametros: es 1 – pMutarFuncion.

maxIncParametro: cuando se modifica un parámetro de un nodo se obtiene su valor nuevo a partir de una distribución uniforme centrada en el valor antiguo y de anchura 2·maxIncParametro·valorAntiguo.

Evaluación:

fErrorEP: este parámetro permite escoger el criterio de evaluación de los individuos. Algunos de sus posibles valores son: ISE (suma de errores cuadráticos), IAE (suma de los valores absolutos del error), ITAE (IAE ponderada en el tiempo), AIC (Akaike’s Information theoretic Criterion), FPE (Final Prediction Error criterion), MDL (Minimum Description Length criterion), etc.

4.4.3 Simulador de MANN

El simulador de MANN es el programa que implementa el algoritmo MBP. Su tarea principal es crear las redes modulares, gestionar sus fases de aprendizaje y reconocimiento y destruirlas. Cuando se crea una red modular se genera, además, la información acerca del orden de recorrido para propagar un patrón y los contextos que permiten el flujo correcto de datos entre módulos.

Una red de módulos neuronales existe, como objeto de información, en el entorno de optimización evolutiva y en el simulador de MANN, pero en cada uno recibe un tratamiento diferente.

(25)

En el entorno de programación evolutiva la información asociada a cada red de módulos neuronales es un grafo acíclico dirigido, es decir, las conexiones que enlazan los nodos y una descripción de cada nodo. Esta descripción consiste en el nombre de la función que realiza el nodo y en dos listas con los parámetros fijos y variables de éste. Por ejemplo, un relé con histéresis requiere, según la ecuación 2.23, 4 parámetros para ser instanciado, por lo tanto, la información que contendrá un nodo de tipo relé con histéresis es:

– tipo de función: RELENM

– parámetros variables: α1, α2

– parámetros no modificables: wd, ws

En el simulador de MANN, un grafo se convierte en un conjunto de redes neuronales. La obtención de estas redes se realiza mediante una tabla estática que asocia la información de un nodo con la del módulo neuronal correspondiente. Cabe recordar que en el capítulo 2 se describe cómo son los NMs que se tratan en este estudio y que la transformación de una a otra representación es biunívoca, precisándose únicamente los parámetros fijos, los modificables y la estructura de la red neuronal.

Finalmente, las fases de aprendizaje y reconocimiento se realizan mediante sucesivas llamadas al simulador de redes neuronales. El algoritmo MBP tiene, en este punto, especial relevancia, puesto que su tarea consiste en gestionar los contextos de cada NM para que el simulador de redes neuronales funcione correctamente.

4.4.4 Simulador de redes neuronales

El simulador de redes neuronales es un programa escrito en C que permite la simulación de redes neuronales en las fases de aprendizaje y reconocimiento. En él se llevan a cabo las fases de aprendizaje y reconocimiento intramodular.

El simulador es capaz de trabajar con redes discretas tanto de propagación directa (feedforward) como recurrentes. Los algoritmos de aprendizaje que incorpora son los ya mencionados BP, DBD, QBP, BPTT, RTRL y otros como alopex (aprendizaje estocástico).

Este simulador no impone restricciones topológicas a las redes que trata; de la misma manera que es posible definir una red típica de tres capas, es posible definir una red con todas las neuronas conectadas entre sí o una red más atípica con conexiones poco estructuradas. Tampoco impone restricciones en las funciones de activación de las neuronas, aunque las únicas necesarias para simular NMs son la lineal y la sigmoidal.

(26)

4.4.5 Poblaciones de redes neuronales modulares

Para terminar esta descripción del entorno de modelado cabe simplemente mencionar que, en el entorno de optimización evolutiva existe, en cualquier momento de un experimento, un conjunto de MANN. Este conjunto es la población de soluciones que, mediante el mecanismo previamente descrito, pasarán al simulador de redes neuronales y serán evaluadas.

Esta puntualización se hace para poder valorar la complejidad que conlleva un experimento. Para hacernos una idea, una población habitual suele albergar 15 redes modulares. Si cada red comprende, en media, 8 NMs el simulador neuronal tiene que simular 120 redes neuronales cada generación.

Referencias

Documento similar

4.5. El sistema de ayuda ... Procedimiento para un análisis con ANSYS ... Técnicas para el modelado ... Ventajas del modelado sólido ... Planificación del trabajo. Sistemas

En este capítulo se consideran las redes neuronales como modelo para describir sistemas dinámicos y se introduce una clase particular, los módulos neuronales, con

En Redes Neuronales, se utilizó todos los datos (101 exportaciones), para la obtención del mejor modelo se empleó la opción de Redes Neuronales &gt; perceptrón multicapa, en la

Este gráfico evidencia el predominio de los proveedores de Kubota (Japón) y Zenon (Canadá). Sus tecnologías basadas en módulos de filtración sumergidos han sido un éxito

Como ya se habló en el capítulo 2 las redes neuronales convolucionales se usan para resolver problemas relacio- nados con clasificación de imágenes, para lo cual cuentan con dos

Para las capas convolucionales es algo más complicado, ya que el tamaño de los filtros es menor al del input fmap, requiere usar matrices de Toeplitz, que extiende la matriz del

• Desarrollo de un modelo global en TRNSYS para asistir al diseño de este tipo de sistemas. • Desarrollo de un modelo basado en redes neuronales para caracterizar el

El estudio de estas técnicas para las dos tablas de datos en función de sus parámetros internos (número de capas de red neuronal, número de iteraciones), del índice de compresión,