analisis de algoritmos evolutivos para redes

ANALISIS DE ALGORITMOS EVOLUTIVOS PARA REDES
NEURONALES
Joaquín A. Pacheco, Alberto Aragón
Dpto. Economía Aplicada
Universidad de BURGOS.
Resumen:
En este trabajo se proponen y analizan diferentes técnicas Metaheurísticas,
así como otras técnicas, en el aprendizaje de Redes Neuronales
Artificiales, más concretamente en el conocido Perceptrón Multicapa.
Concretamente se diseñan una serie de algoritmos evolutivos: Algoritmos
Meméticos y basados en Scatter Search. Con estos métodos se intentan
ofrecer alternativas a otros métodos, como los basados en el gradiante,
(como el de la Propagación hacia atrás), ya que han mostrado ser
inconsistentes debido al carácter local de su búsqueda. El objetivo de
nuestro trabajo es diseñar estrategias de aprendizaje que den valores bajos
en los errores cuadrátricos rápidamente de forma que puedan ser usados
como métodos “on-line”. A su vez estas estrategias deben ser consistentes
y mostrar su capacidad de mejora cuando se disponga de mayor tiempo de
computación.
Palabras clave: Redes Neuronales,
Algoritmos Meméticos, Scatter Search.
Aprendizaje, Metaheurísticos
Evolutivos,
Joaquín A. Pacheco y Alberto Aragón
Análisis de algoritmos evolutivos
1.- EL PROBLEMA
El perceptrón Multicapa es un modelo de red neuronal consistente en varias capas de
neuronas: una de entrada, 1 o más capas ocultas y una de salida. La información se
transmite de cada nodo a los nodos de la capa siguiente, desde la entrada a la salida. La
información que sale de un nodo a cada nodo de la capa siguiente se pondera por un
peso wji; de forma que la información total que llega a cada nodo j de la nueva capa es
∑iwji·xi , siendo xi el valor de salida de los nodos i de la capa anterior. Este valor de
entrada, para los nodos de las capas ocultas y la de salida, se transforma mediante una
función de transferencia f produciendo la salida del nodo j, xj = f(∑iwji·xi). Las funciones
de transferencia más usadas son la sigmoide
y=
1
, y la identidad o lineal y = x.
1 + e−x
Para el aprendizaje de una red se usan vectores de entrenamiento, consistentes cada uno
en un vector de entrada y un vector de salida. Para un determinados vector de pesos w y
cada vector de entrenamiento, la red lee el vector de entrada y se compara la salida
producida por la red (salida observada) con la con los valores del vector de salida
(salida esperada). El problema consiste en determinar los valores de los pesos wji de
forma que el Error Cuadrático Medio (E) en el conjunto de vectores de entrenamiento y
valores de salida sea mínima.
A continuación se muestra la notación formal y la formulación del problema. Sean n
y K los números de nodos respectivamente de las capas de entrada y salida; sea S el
conjunto de vectores de entrenamiento; ∀ (x, y) ∈ S x indica el vector de entrada e y el
de salida; sea ο = g(x, w) la salida producida en la red con el vector de pesos w cuando
lee el vector de entrada x. Entonces el problema se pude formular como
minimizar E(w)
siendo
1
E ( w) =
S
K
∑ ∑ (ο
( x, y )∈S k =1
k
− yk ) .
2
Los algoritmos basados en el gradiante como el método de Propagación hacia atrás
(Werbos, (1.974)) básicamente usan la siguiente fórmula de actualización de pesos
w ji = w ji − η
∂E
; donde es η conocido como parámetro de aprendizaje.
∂w ji
2
Joaquín A. Pacheco y Alberto Aragón
Análisis de algoritmos evolutivos
Precisamente una de las limitaciones de estos métodos, es la convergencia a óptimos
locales no globales y su dependencia de la solución inicial. Además no son aplicables a
modelos de redes que usan funciones de transferencia no derivables.
Se van a proponer algoritmos de aprendizaje basadas en la estrategia denominada
Scatter Search y se va a diseñar un Algoritmo Memético. Se hará una comparación con
otros métodos propuestos recientemente por otros autores. Nuestro objetivo es el
diseños de estrategias que obtengan pesos con buenos resultados de E en el conjunto de
aprendizaje. También interesa que los pesos obtenidos den valores bajos de E cuando se
presenta otro conjunto de vectores diferentes. (Para verificar que la red haya ‘aprendido’
y no ‘memorizado’). Un segundo objetivo es que estas estrategias sean rápidas, para que
puedan ser usadas, como métodos “on-line”. Por otra parte, sin dejar de lado la rapidez,
interesa que las estrategias obtenidas muestren su capacidad de mejorar cuando se
disponga de mayor tiempo de computación. Finalmente, es interesante que los métodos
sean consistentes y “robustos”, para que la dependencia de las soluciones iniciales (o
poblaciones) sea la menor posible.
2.- ARQUITECTURA DE RED NEURONAL
La redes neuronales con las que se va a trabajar va a estar compuesto por una capa
oculta. Se denota a n el número de neuronas de la capa de entrada (que lógicamente
coincide con el número de variables de entrada), y m el número de neuronas de la capa
oculta. Vamos a considerar una neurona en la capa de salida (i.e. una sola variable de
salida a predecir, K = 1). Cada neurona de la capa oculta, así como la de salida tiene un
elemento ‘bias’ (que funciona como constante). Una representación esquemática viene
dada por la siguiente figura
3
Joaquín A. Pacheco y Alberto Aragón
Análisis de algoritmos evolutivos
wn +1
1
1
w1
w2
wj
wm( n+1)+1
wn
2
j
wm( n+2)+1
w(k-1)(n+1)+ j
wk (n+1)
wm (n+1)+ k
o
k
w(k-1)(n +1)+n
n
w(m-1)(n +1)+n wm (n+1)
wm (n +1)+m
m
Figura 1.- Arquitectura de red neuronal usada (tomada de Laguna y Martí, (2.000))
En este trabajo se van a utilizar 6 neuronas en la capa oculta. Los pesos están
numerados secuencialmente, de forma que los pesos que enlazan la capa de entrada con
la primera neurona de la oculta son del w1 al wn y su término ‘bias’ wn+1 .
De esta forma la información de entrada de cada neurona k, k = 1, ...,m, de la capa
n
oculta, viene dada por
wk ( n +1) + ∑ w( k −1 )( n +1) + j x j y la neurona de salida recibe la
j =1
m
siguiente información wm ( n + 2 )+1 + ∑ wm ( n +1) +k a k donde ak son las salidas de las neuronas
k =1
ocultas.
En nuestro caso se usa la sigmoide como función de transferencia para la capa oculta
y la identidad para la neurona de salida. Un aspecto importante: en este trabajo, los
métodos de aprendizaje propuestos solo se aplican a los pesos asociados con la capa
oculta, i.e. de w1 a wm(n+1); los pesos de la neurona de salida se obtienen por mínimos
cuadrados ordinarios cada vez que se generan los de la capa oculta. Cuando se genera
un nuevo vector de pesos en la capa oculta, automáticamente se deben calcular los de la
capa de salida y evaluar el valor E (solución al problema de mínimos cuadrados). Esta
idea ha sido sugerida en Sexton y otros, (1.998), y (1.999), y Laguna y Martí, (2.000).
4
Joaquín A. Pacheco y Alberto Aragón
Análisis de algoritmos evolutivos
Finalmente se ha de indicar que para el entrenamiento los valores de cada una de las
variables de los vectores de entrada son escalados entre –1,0 (el menor valor en el
conjunto de entrenamiento) y +1,0 (el mayor); y los valores de la salida son escalados
entre –0,8 y +0,8.
3.- MEJORA POR ENTORNOS
Sea w una solución cualquiera de componentes wl y radio un número real
suficientemente pequeño, se definen los siguientes procedimientos
Procedimiento Perturbar_Peso(w, radio, w’)
Generar una solución w’ cuyos componentes wl’ toman valores aleatorios en el
intervalo (wl - radio wl + radio)
Así mismo sea w0 una solución cualquiera el parámetros entero n_vecinos, el
parámetro real radio se define el siguiente
Procedimiento Mejor_Vecino(w0 , radio, n_vecinos, w’)
min = ∞
Para i = 1 hasta n_vecinos hacer
Perturbar_Peso(w0 , radio, w’’)
Si E(w’) < min hacer: w’ = w’’ y min = E(w’’)
Un análisis sobre el efecto de los diferentes valores de radio en este último
procedimiento indica que valores altos dan lugar a descensos rápidos, y valores bajos
dan lugar a descensos más lentos y profundos. Por tanto se va a intentar diseñar una
estrategia que combine rápidez con ‘profundidad’ (calidad de la solución final). Sean w
una solución inicial, los parámetros reales radio0 (valor inicial de radio) y alfa, y los
parámetros entero n_vecinos y max_int, esta estrategia puede describirse en
seudocódigo como sigue
Procedimiento Mejora_Radio_Variable(w, radio0, alfa, n_vecinos, max_int)
5
Joaquín A. Pacheco y Alberto Aragón
Análisis de algoritmos evolutivos
Hacer radio = radio0, n_int = 0;
Repetir
Ejecutar Mejor_Vecino(w , radio, n_vecinos, w’)
Si E(w’) < E(w) hacer: w = w’, radio = radio*alfa y n_int = 0
en caso contrario hacer: radio = radio/alfa y n_int = n_int+1
hasta n_int = max_int
4.- SCATTER SEARCH
Scatter Seach es una estrategia poblacional-evolutiva caracterizada básicamente por
el uso de un Conjunto de Referencia (RefSet) de soluciones. Dicho conjunto esta
formado por dos Subconjuntos: Subconjunto de Calidad (RefSet1) formado por las
mejores soluciones y Subconjunto de Diversidad (RefSet2) formado por las soluciones
más diferentes con el resto de RefSet. En cada paso o ciclo se generan nuevas soluciones
a partir de las del Conjunto de Referencia que actualizan éste. Un tutorial sobre Scatter
Search se pueden encontrar en Glover, (1.998). Se ha diseñado una versión estática y
una versión dinámica de esta estrategia para este problema. La descripción en
seudocódigo de forma muy general es la siguiente
Procedimiento Scatter Search Estático
Generar un conjunto inicial de soluciones aleatorias
Mejorarlas mediante un método preestablecido
A partir de estas soluciones obtener RefSet inicial
Repetir
Construir subconjuntos de 2 y 3 elementos de RefSet
Obtener nuevas soluciones a partir de dichos subconjuntos
Aplicar a las nuevas soluciones el método de mejora
Actualizar RefSet con las nuevas soluciones, (una vez obtenidas todas)
Hasta que RefSet se estabilice (i.e. no haya nuevas soluciones)
(1)
El Procedimiento Scatter Search Dinámico es similar cambiando la sentencia (1) por
la siguiente
Cada vez que se obtiene una nueva solución actualizar RefSet
(1’)
En otras palabras: en la versión estática se generan las nuevas soluciones y, una vez
obtenidas, con las ya existentes en RefSet se actualiza este; en la dinámica, en el
momento que se genera una nueva solución se comprueba si mejora el valor de la
6
Joaquín A. Pacheco y Alberto Aragón
Análisis de algoritmos evolutivos
función objetivo E de alguna de las existentes en RefSet1 o aporta más diversidad que
alguna de RefSet2, en cuyo caso se incorpora sin esperar a generar las demás.
Como en los tutoriales de Scatter Search, antes mencionados, en la versión dinámica
para evitar realizar operaciones (generar nuevas soluciones, mejorarlas y actualizar el
conjunto de referencia) con subconjuntos con la misma composición de elementos que
en ciclos anteriores, se propone sólo considerar los subconjuntos que contienen algún
elemento nuevo, (es decir generado en el ciclo o iteración anterior).
Para medir la diversidad de una solución w respecto RefSet se usa la siguiente
función dmin(w) = min {d(w, w’) / w’ ∈ R}; donde d(w, w’) = Σ i |wi- wi’|.
Los subconjuntos de 2 elementos se forman con todos los pares de RefSet, y los de 3
elementos se forman al añadir a todos los subconjuntos de 2 el mejor elemento de
RefSet1 no presente.
La forma de generar nuevos soluciones está inspirada en Kelly y otros (1.996), y se
ilustra en la siguiente gráfica
nw3
W2
nw1
W1
nw2
nw1
W1
nw0
W2
W3
nw2
nw3
Figura 2.- Formas de generar nuevas soluciones con subconjuntos de 2 y 3
Se define TamRef = |RefSet|, análogamente TamRef1 = |RefSet1| y TamRef2 =
|RefSet2|. Inicialmente se toma TamRef1 = TamRef2 = 5.
7
Joaquín A. Pacheco y Alberto Aragón
Análisis de algoritmos evolutivos
Además de estas dos estrategias Estática y Dinámica analizaremos una variante de la
Dinámica que aparece propuesta en los tutoriales antes mencionados. Esta variante
consiste en, una vez obtenido el conjunto de referencia inicial, considerar RefSet1 =
RefSet, y RefSet2 = ∅ (i.e. TamRef1 = 10, en este caso y TamRef2 = 0). En otras
palabras, solo se consideraran incorporaciones a RefSet que mejoren la función objetivo
de alguno de sus elementos, y no se incorporarán soluciones por diversidad.
En nuestro caso el procedimiento de mejora es la ejecución del procedimiento
Mejora_Radio_Variable
inicialmente con radio = 0.1, alfa = 1, n_vecinos = 1,
max_int= 2.
5.- ALGORITMO MEMÉTICO
Los Algoritmos Meméticos también son procedimientos basados en población y se
han mostrado como técnicas más rápidas que los tradicionales Algoritmos Genéticos
para algunos tipos de problemas. Básicamente combinan procedimientos de búsqueda
local con operadores de cruce o mutación, por lo que algunos investigadores les han
visto como Algoritmos Genéticos Híbridos o Algoritmos Genéticos Paralelos (PGAs) o
métodos de Búsqueda Local Genética. El método, descrito originalmente en el trabajo
de Moscato, (1.989), está ganando amplia aceptación en particular en los bien conocidos
problemas de optimización combinatoria donde grandes ejemplos se han solventado
óptimamente y donde otros metaheurísticos han fallado.
En nuestro caso el Algoritmo Memético que se propone sigue un esquema muy
similar al algoritmo Genético propuesto en Sexton y otros, (1999). En este caso, se
añaden procedimientos de mejora cada vez que se genera una nueva solución. En
seudocódigo puede escribirse de la forma siguiente:
Procedimiento Memético
Generar una población inicial de soluciones
Mejorarlas mediante un método preestablecido
Repetir
- Seleccionar aleatoriamente un subconjunto de elementos (par) de la
población con una probabilidad proporcional a su bondad
8
Joaquín A. Pacheco y Alberto Aragón
Análisis de algoritmos evolutivos
-
Cruce Reproducción: Emparejar o cruzar estas soluciones (Padres)
para dar lugar a nuevos soluciones (Hijos). De cada pareja de
Padres se han den generar una nueva pareja de hijos.
- Mutación: Los soluciones hijas pueden cambiar con una
probabilidad pequeña alguno de sus elementos (genes)
- Aplicar el procedimiento de mejora a los hijos
- Sustituir las peores soluciones de la población por las nuevas
soluciones hijas
- Actualizar el parámetro de mutación
hasta conseguir algún criterio de parada
Como en la estrategias Scatter Search del apartado 3 el procedimiento de mejora es
Mejora_Radio_Variable con los mismos parámetros. La ‘bondad’ de cada elemento de
la población va a venir dado por el valor de la función objetivo E correspondiente. La
probabilidad de selección de una determinada solución w va a ser proporcional a Emax
– E(w) ; donde Emax es el máximo valor de los de E(w) en los elementos de la
población de esa población. El operador de cruce sigue el esquema ‘one-point crossing’,
es decir, sean w y w’ dos soluciones padres seleccionadas,
w = (w1 , w2 , ... wm(n+1)) y w’ = (w’1 , w’2 , ... w’m(n+1))
se genera aleatoriamente un ‘punto de cruce’ entre 1 y m(n+1)-1, (pto_cruce), de forma
que las nuevas soluciones hijas se definen como
w* = (w1 , w2 , ..., wpto_cruce , w’pto_cruce+1 , ..., w’m(n+1 ))
w** = (w’1 , w’2 , ..., w’pto_cruce , wpto_cruce+1 , ..., wm(n+1)).
Los pesos de cada nueva solución hija pueden cambiar o mutar con una pequeña
probabilidad, p_mut. Para decidir si un determinado peso cambia se genera un valor
aleatorio uniformemente en (0,1); si este valor es menor que p_mut se realiza el cambio.
Este consiste en asignarle un nuevo punto aleatoriamente en el intervalo (-5, +5),
(Mutación). Este proceso de mutación tiene por objeto dar diversidad al proceso y evitar
que este se encajone en una región entorno a un mínimo local.
Un aspecto relativamente novedoso es que el valor del parámetro p_mut no es fijo,
sino que varía entre dos valores prefijados p_mut_min y p_mut_max. Los valores
p_mut_min y p_mut_max representan probabilidades mínimas y máximas de mutación.
El objeto de esta estrategia es ‘Intensificar’ de la búsqueda en una región cuando se
9
Joaquín A. Pacheco y Alberto Aragón
Análisis de algoritmos evolutivos
encuentran mejores soluciones, y favorecer la búsqueda en otras regiones cuando no es
así. En este trabajo se utilizan los siguientes valores: p_mut_min = 0,05, p_mut_max =
0’1. Además de ello el número de elementos de la población (n_pob) es 100, y el
número de padres seleccionados (n_sel) es 20.
6.- RESULTADOS COMPUTACIONALES
Para contrastar la bondad de los métodos propuestos, y compararlos por otros
propuestos recientemente se han realizado una serie de pruebas que se describen a
continuación. En primer lugar se han considerado las siguientes funciones: 1 y = x1 + x2
2 y = x1 x 2 3 y =
x1
1+ x2
 0.2 y t −5

.
4 y = x12 + x 23 5 y = x13 + x 22 6 y t = y t −1 + 10.5
−
0
.
1
y
t
−
1
10

1
+
(
y
)

t −5

Para cada una de las 5 primeras funciones se considera un conjunto de entrenamiento
con 50 vectores: Los valores de entrada son enteros generados en [-100, +100] para x 1 y
en [-10, +10] para x 2 ; el valor de la salida y viene dado por la función correspondiente.
En los 5 casos se utilizan los mismos vectores de entrada. Para la sexta función se usan
5 nodos o variables de entrada, aunque claramente solo hacen falta 3. Los vectores de
entrenamiento en este caso han sido generados recursivamente a partir de los valores
(1,6, 0, 0, 0, 0). Estas funciones han sido propuestas en Sexton y otros, (1.998) y
(1.999), y utilizadas también en Laguna y Martí, (2.000). En este trabajo se usa, así
mismo, el mismo conjunto de vectores de entrada que en estas referencias 1 . Los
métodos que se van a utilizar en las pruebas son los siguientes: Scatter Search Estático
(ES), Scatter Search Dinámico (DI), Variante de Scatter Search Dinámico (VD) y
Algoritmo Memético (ME).
Se comparan con los siguientes: Propagación hacia atrás usado en Neural Works
Profession II/Plus de NeuralWare (BP); Algoritmo Búsqueda Tabú (TS) de Sexton y
otros (1.998); Algoritmo Temple Simulado (SA), Algoritmo Genético (GA) estos 2 de
Sexton y otros (1.999), Adaptación de Scatter Search de Laguna y Martí, (2.000)
1
Nuestro agradecimiento a los profesores R.Martí y M.Laguna por facilitarnos esta información
10
Joaquín A. Pacheco y Alberto Aragón
Análisis de algoritmos evolutivos
A continuación se muestra una tabla, tomada de Laguna y Martí, (2.000), en la que se
muestran los mejores resultados obtenidos por los algoritmos BP, SA, GA, TS y SS,
para cada uno de estos problemas:
Función ↓
1
2
3
4
5
6
BP
SA
GA
TS
SS
5.23E-01
1.05E-05
4.16E-07
1.42E-06
8.93E-08
1.10E+01
3.17E-02
1.27E-02
8.38E-02
5.97E-03
8.43E+00
1.76E+00
1.82E-01
2.45E-01
2.96E-03
1.88E+02
4.84E-01
4.09E-02
4.32E-01
2.31E+00
8.57E+03
4.39E-01
3.06E-03
2.56E-02
2.76E+02
1.55E-01
1.02E-02
2.53E-02
5.35E-02
3.34E-03
Tabla 2.- Mejores resultados obtenidos por BP, SA, GA, TS y SS
Según, Laguna y Martí, 2.000, Sexton, (1.998) y (1.999), SS limita el número de
evaluaciones a 50000; BP realiza 4,18 millones, SA entre 112501 y 12,6 millones, GA
100000, y TS entre 190021 y 928061. Por tanto estos, los métodos más rápidos son SS y
GS. Además SS obtiene los mejores resultados para las funciones 1, 2, 3 y 6 y GA para
las funciones 4 y 5. A continuación se muestra una tabla, en la que se muestran los
mejores resultados obtenidos por nuestros algoritmos con 100000 evaluaciones
DI
VD
ES
ME
Función ↓
1
1,65E-09
8,84E-09
5,60E-12
6,32E-13
2
1,95E-03
1,45E-04
1,01E-04
6,56E-05
3
1,58E-03
1,01E-03
3,00E-03
4,62E-04
4
5,28E-02
2,48E-02
5,27E-03
1,93E-03
5
8,39E-01
2,71E-01
7,33E-01
4,58E-03
6
2,04E-04
5,69E-05
2,47E-04
1,51E-03
Tabla 3.- Mejores resultados finales obtenidos por DI, VD, ES y ME
Posteriormente, se ha generado un conjunto test de 150 vectores donde los valores de
entrada se generan con la misma distribución que los del conjunto de entrenamiento.
Este conjunto test se va a usar para examinar la capacidad de la red de predecir valores
de y cuando los valores de x no están en el conjunto de entrenamiento. A continuación
se muestra un cuadro, tomado de Laguna y Martí, (2.000), en la que se señalan los
resultados conseguidos en el conjunto test por los pesos obtenidos por los algoritmos
BP, SA, GA, TS y SS
Función ↓
1
2
3
BP
1.76E+00
9.11E+01
2.34E+01
SA
1.56E-05
1.85E-01
5.53E+00
GA
3.68E-07
1.72E-02
1.38E+00
11
TS
2.79E-06
1.96E-01
1.69E+00
SS
9.37E-07
2.13E-01
1.55E+00
Joaquín A. Pacheco y Alberto Aragón
Análisis de algoritmos evolutivos
4
4.31E+02
2.73E+00
4.53E-02
1.15E+00
9.26E+00
5
5.28E+04
1.36E+00
2.02E-02
5.68E-02
5.98E+03
6
1.95E-01
2.69E-01
3.40E-02
6.75E-02
2.90E-01
Tabla 4.- Mejor valor de E obtenido por BP, SA, GA, TS y SS para el conjunto test
Finalmente se muestra una tabla con los mejores errores cuadráticos medios para el
conjunto test, de los pesos finales obtenidos por los algoritmos propuestos en este
trabajo
Función ↓
DI
VD
ES
ME
1
2,34E-09
9,26E-09
2,93E-11
1,13E-11
2
5,72E-03
6,26E-04
2,20E-04
1,45E-04
3
1,38E-01
7,59E-02
1,75E-01
9,89E-02
4
2,24E-01
4,11E-02
1,38E-02
6,52E-03
5
1,72E+00
7,08E-01
1,25E+00
2,43E-02
6
1,16E-01
1,02E-01
1,08E-01
8,64E-02
Tabla 5.- Mejor valor de E obtenido por BP, SA, GA, TS y SS para el conjunto test
8.- CONCLUSIONES FINALES
En este trabajo se han propuesto 4 métodos evolutivos que tienen en común la
aplicación de alguno de los procedimientos de mejora anterior cada vez que se generaba
una nueva solución. Los tres primeros de estos métodos (DI, VD y ES) propuestos
estaban basados en la estrategia Metaheurística denominada Scatter Search, mientras
que el cuarto es un Algoritmo Memético, (ME). Estos 4 métodos han destacado por lo
siguiente: 1) Generan buenas soluciones en poco tiempo; 2) Superan, en casi todos los
casos, a los resultados obtenidos por otras estrategias propuestas en trabajos recientes;
3) Mantienen la capacidad de obtener buenos resultados cuando se les presentan valores
de entrada diferentes a los utilizados en el aprendizaje.
9.- BIBLIOGRAFÍA
GLOVER, F. (1998) “A Template for Scatter Search and Path Relinking,” in
Artificial Evolution, Lecture Notes in Computer Science 1363, J.-K. Hao, E. Lutton, E.
Ronald, M. Schoenauer and D. Snyers (Eds.), Springer-Verlag, pp. 13-54.
12
Joaquín A. Pacheco y Alberto Aragón
Análisis de algoritmos evolutivos
KELLY, J. P., B. RANGASWAMY, and J. XU, (1.996): “A Scatter Search-Based
Learning Algorithm for Neural Networks Training”. Journal of Heuristics, vol.2, n.2,
129-146.
LAGUNA, M. y R. MARTÍ (2.000) “Neural Network Prediction in a System for
Optimizing Simulations”. Aceptada para su publicación en IEEE Transactions.
SEXTON, R. S., B. ALIDAEE, R. E. DORSEY and J. D. JOHNSON (1998) “Global
Optimization for Artificial Neural Networks: A Tabu search Application,” European
Journal of Operational Research, vol. 106, pp. 570-584.
SEXTON, R. S., R. E. DORSEY and J. D. JOHNSON (1999) “Optimization of
Neural Networks: A Comparative Analysis of the Genetic Algorithm and Simulated
Annealing,” European Journal of Operational Research, vol. 114, pp. 589-601.
WERBOS, P. (1.974): Beyond Regression: New tools for prediction and analisys in
the behavioral sciences. Tesis Doctoral. Harvard. Cambridge.
13