1. Introduction 2. Our approach 3. Experiment

Anuncio
Parameter Control of Genetic Algorithms by Learning and
Simulation of Bayesian Networks
1.
Introduction
2.
Our approach
3.
Experiment
Desarrollamos una propuesta para predecir los parámetros un algoritmo genético (GA) que
muestra mejores resultados al optimizar un problema.
El procedimiento parte de la hipótesis de que es muy probable que una configuración se manifieste
como buena o mala tras la ejecución del GA con un número ”muy reducido”de generaciones (r) y
un tamaño pequeño de población (m) con ”muy pocos individuos”. Está hipótesis la encontramos
en la literatura como racing”?. Es decir, que podemos discriminar entre configuraciones con una
ejecución muy ligera del GA.
Ilustramos el procedimiento con dos instancias del problema de Bertin. Se trata de reordenar las
filas y columnas de una tabla de datos para minimizar el stress (suma de las diferencias absolutas
de los datos B(i,j) a sus 8 vecinos i=1:rows, j=1:cols).
A continuación mostramos evidencia experimental del interés de la propuesta:
3.1.
Experimento N’/N
Consideramos 3 tablas: bertin8 (36x32) bertin32 (72x64) y Bertin128 (144x128). El AG de optimización tiene 7 parametros y 14200 configuraciones.
Parametros
población inicial
criterio
polı́tica
tasa muacion
operador mutación
tasa cruce
operador cruce
dominio
popini < − ( random, heuris)
stop < − ( fix, var, lock)
select < − ( ETS, EXS, FSB)
pmut < − ( pr.50, pr.10, pr.05, pr.01)
omut < − ( opt2, dm, em, ism, tim, ivm, sm)
pcross < − ( pr.50, pr.85, pr.90, pr.95)
ocross < − ( rxc, pmx, ap2, cx, ox1, ox2, vr)
cardinal
#1-2
#2-3
#3-3
#4-4
#5-7
#6-4
#7-7
Con ambas tablas realizamos el experimento de racingçon 150 (N) configuraciones tomadas al
azar y 16 pares de valores (r,m).
R < − ( 5, 10, 15, 20) ## generations
M < − ( 5, 8, 13, 21) ## population size
Comparamos con las mismas 150 configuraciones de la base datos del experimento de Magerit,
que realizó la ejecución completa hasta alcanzar el óptimo de todas las posibles configuraciones,
donde seleccionamos los 46(N 0 ) mejores. Ası́ corroboramos la hipótesis y determinamos valores de
r y m adecuados.
Por tanto, el procedimiento tiene los siguientes hiperparámetros, que son parámetros del GA: r –
generaciones y m – tamaño de población. Aclaramos que r determina las generaciones que se realizan
de forma tentativa. El criterio de parada (stop) puede cambiar el número efectivo de generaciones
si es var o lock, cuando la población es muy homogénea y la varianza del fitnness es pequeña o si
no se produce mejora tras un número determinado de generaciones.
Para la optimizacion completa con el GA r es 2 ∗ (rows + cols) y m es (rows + cols).
tablas
bertin8:
bertin32:
bertin128:
tamaño
36x32
72x64
144x128
generaciones
r=136
r=272
r=544
1
población
m=68
m=136
m=272
Cuadro 1: Characteristics of the set of tables
Table
Bertin8
Bertin32
Bertin128
No.
rows
36
72
144
No.
columns
32
64
128
Initial fb Best fb
in (?)
3952
550
16096
2010
64960
15704
Best fb
in (?)
474
978
1986
Time (in s)
in (?)
Time (in s)
in (?)
(número de filas y columnas de las tablas problema)
Ilustramos los resultados del experimento, Figuras 1, 2 y 3:
Hipotesis Bertin8: — Datos — ROC — PLOT config.key X config.fitness (∼ 1 hora)
Hipotesis Bertin32: — Datos — ROC — PLOT config.key X config.fitness (∼ 2 horas)
Hipotesis Bertin128: — Datos — ROC — PLOT config.key X config.fitness (∼ 6 horas)
1. Datos: las 150(N ) configuraciones con (r, m) la clase (1: está entre al 46(N 0 ) mejores, 0: esta
entre las N-N’ peores), r = 0, m = 0 es el valor de la serie de 150 de la base de datos.
2. ROC: series de 16 (x: 1-especificidad (E), y: sensibilidad (S), r, m), no dibujo la çurva”.
3. PLOT; 16 diagramas de dispersión del fittnes (config.fitness) de las 150 configuraciones ordenadas según la base de datos (config.key) que determina la clasificacion de las 46 mejores y
las 104 peores.
La leyenda incluye r, m, S, E. Se observa la lı́nea diagonal con los datos de Magerit, ordenados
decreciente y dos grupos de diferenciados en cada caso (r, m). Las configuraciones manifiestan el
comportamiento esperado y se aprecia que las malas (nube inferior) y las buenas (nube superior)
tienen un sesgo hacia la diagonal. Esperamos que este sesgo sea suficiente para que unas pocas
iteraciones del EDA puedan filtrar las mejores, lo cual confirma la hipotesis de racing”. Se toma
r = 10, m = 21.
Seguidamente describimos el algoritmo que implementa la propuesta mediante el racing”.
3.2.
EDA+racing+MDL
La(s) configuracion(es) mejor(es) se obtiene(n) a partir del filtrado iterativo que promueve un
algortimo de estimación de distribución (EDA) en un conjunto incial de configuraciones tomadas al
azar que son evaluadas por el GA. Con los datos de las N’ configuraciones de mejor fitness (stress)
se aprende una red bayesiana cuyas variables son los parámetros.
El EDA es estándar y tiene los siguientes hiperparámetros: N: tamaño de la población que
simulamos con la red bayesiana (la primera se toma al azar). N=150 N’: tamaño de la subpoblación
de individuos mejores para aprender la red bayesiana, N’ ¡N, cita, N’=46 El número máximo de
pasos: 16 y termina antes si determina una única configuración y converge.
La implementación contempla también el ajuste de: Para el aprendizaje del modelo utilizamos el
score de MDL (número de parámetros del modelo de probabilidad y divergencia entre las distribuciones de los datos y de la red bayesiana). El alcance de la búsqueda del modelo de red bayesiana
que se aprende en cada paso (grado máximo en la red, número de matrices de adyacencia, ...) Hemos
restringido la búsqueda de las redes a un máximo grado de 3 padres en cualquier variable. Tomamos
una muestra de tamaño del 3de la matriz de adyacencia de la red basado en la información mutua
entre pares de variables. Tamaño del cache para almacenar valores de fitness-stress: permutaciones
de fila-columna, fijado en 7, con una tasa de acierto de (0.2, 0.3). Hay dos niveles de cache: GA
y EDA La eficienciencia del cache apenas mejora con tamaños más grandes y el coste de acceso a
la cache del nivel EDA es muy alto (7*(rows+cols)). Se podrı́a indexar con una función hash. La
cache del nivel GA esta vinculada a la propia población de permutaciones filas-columna en curso de
evolución y el acceso no requiere búsqueda.
El procedimiento termina con las configuraciones que se ajustan mejor al problema y se lanza un
optimización completa de algunas. Mostramos la traza del EDA en cada paso (0:16) para las tablas
bertin32 y bertin128.
2
150
50
100
150
0
50
100
2000
config fitness
R: 5 M: 21 S: 0.370 E: 0.721
0
2000
config fitness
0
0
2000
config fitness
100
R: 5 M: 13 S: 0.391 E: 0.731
150
0
50
100
150
R: 10 M: 5 S: 0.391 E: 0.731
R: 10 M: 8 S: 0.413 E: 0.74
R: 10 M: 13 S: 0.457 E: 0.76
R: 10 M: 21 S: 0.435 E: 0.75
100
150
0
50
100
150
0
50
100
0
2000
0
2000
0
2000
50
2000
config key
config fitness
config key
config fitness
config key
config fitness
config key
0
150
0
50
100
150
R: 15 M: 5 S: 0.413 E: 0.74
R: 15 M: 8 S: 0.391 E: 0.731
R: 15 M: 13 S: 0.348 E: 0.712
R: 15 M: 21 S: 0.370 E: 0.721
50
100
150
0
50
100
150
0
50
100
0
2000
0
2000
0
2000
0
2000
config key
config fitness
config key
config fitness
config key
config fitness
config key
0
150
0
50
100
150
R: 20 M: 5 S: 0.391 E: 0.731
R: 20 M: 8 S: 0.370 E: 0.721
R: 20 M: 13 S: 0.370 E: 0.721
R: 20 M: 21 S: 0.435 E: 0.75
50
100
150
0
config key
50
100
150
0
config key
50
100
0
2000
0
2000
2000
0
0
2000
config key
config fitness
config key
config fitness
config key
config fitness
config key
0
config fitness
50
0
config fitness
0
config fitness
R: 5 M: 8 S: 0.370 E: 0.721
0
2000
0
config fitness
R: 5 M: 5 S: 0.435 E: 0.75
150
config key
0
50
100
150
config key
Figura 1: Betin8: PLOT config.key X config.fitness (∼ 1 hora).
3.3.
TABLA Bertin128
La Bertin128 es objeto del procedimiento y muestra una traza de evolucion de los parametros
en la Figura 4. Esta figura refleja todos los resumenes univariantes de la población del EDA en cada
paso.
La Figura 5 muestra la evolución del modelo de red aprendido en cada paso del EDA.
Se hace la optimización completa de una configuración
(40, heuris, f ix, EXS, pr,50, tim, pr,95, rxc)
del resultado con 16 réplicas y se ve que llegan 9 al óptimo con entre 50 y 60 generaciones. En el
experimento de Magerit, con esta tabla Bertin128, el GA alcanzó el óptimo (fitness -1986) en 60
configuraciones con 128 individuos, y entre 186 y 256 generaciones (media 248)
El Cuadro 2 es una muestra aleatoria de la población final de 150 configuraciones.
3
150
50
100
150
0
50
100
10000
config fitness
R: 5 M: 21 S: 0.543 E: 0.798
0
10000
config fitness
0
0
10000
config fitness
100
R: 5 M: 13 S: 0.522 E: 0.788
150
0
50
100
150
R: 10 M: 5 S: 0.565 E: 0.808
R: 10 M: 8 S: 0.565 E: 0.808
R: 10 M: 13 S: 0.543 E: 0.798
R: 10 M: 21 S: 0.543 E: 0.798
100
150
0
50
100
150
0
50
100
0
10000
0
10000
0
10000
50
10000
config key
config fitness
config key
config fitness
config key
config fitness
config key
0
150
0
50
100
150
R: 15 M: 5 S: 0.609 E: 0.827
R: 15 M: 8 S: 0.522 E: 0.788
R: 15 M: 13 S: 0.543 E: 0.798
R: 15 M: 21 S: 0.478 E: 0.769
50
100
150
0
50
100
150
0
50
100
0
10000
0
10000
0
10000
0
10000
config key
config fitness
config key
config fitness
config key
config fitness
config key
0
150
0
50
100
150
R: 20 M: 5 S: 0.609 E: 0.827
R: 20 M: 8 S: 0.543 E: 0.798
R: 20 M: 13 S: 0.522 E: 0.788
R: 20 M: 21 S: 0.565 E: 0.808
50
100
150
config key
0
50
100
150
0
config key
50
100
0
10000
0
10000
10000
0
0
10000
config key
config fitness
config key
config fitness
config key
config fitness
config key
0
config fitness
50
0
config fitness
0
config fitness
R: 5 M: 8 S: 0.5 E: 0.779
0
10000
0
config fitness
R: 5 M: 5 S: 0.565 E: 0.808
150
config key
0
50
100
150
config key
Figura 2: Betin32: PLOT config.key X config.fitness (∼ 2 horas).
4.
Conclusions
Por último, presentamos los resultados obtenidos con dos tablas y las conclusiones.
El experimento muestra que es posible extraer informacion sobre un conjunto de configuraciones
del GA
para filtrar un numero significativo de malas configuraciones para un problema concreto.
El EDA es un algoritmo eficaz, pues en pocas iteraciones y en pocas HORAS puede discriminar
las configuraciones más prometodoras
con recursos computacionales asequibles, comparado con la evaluacion completa de gran numero
de configuraciones.
Los resultados son: obtenemos un GA que alcanza el óptimo en pocas generaciones con alta
probabilidad
Observamos que el racing es más sensible al tamaño de la población que al número de generaciones
Futuro:
incorporar el fitness al conjunto de variables de las redes bayesianas,
ampliar la parametrizacion de GA,
4
150
50
100
150
0
50
100
30000
config fitness
R: 5 M: 21 S: 0.587 E: 0.817
0
30000
config fitness
0
0
30000
config fitness
100
R: 5 M: 13 S: 0.457 E: 0.76
150
0
50
100
150
R: 10 M: 5 S: 0.326 E: 0.702
R: 10 M: 8 S: 0.478 E: 0.769
R: 10 M: 13 S: 0.5 E: 0.779
R: 10 M: 21 S: 0.587 E: 0.817
100
150
0
50
100
150
0
50
100
0
30000
0
30000
0
30000
50
30000
config key
config fitness
config key
config fitness
config key
config fitness
config key
0
150
0
50
100
150
R: 15 M: 5 S: 0.478 E: 0.769
R: 15 M: 8 S: 0.457 E: 0.76
R: 15 M: 13 S: 0.457 E: 0.76
R: 15 M: 21 S: 0.435 E: 0.75
50
100
150
0
50
100
150
0
50
100
0
30000
0
30000
0
30000
0
30000
config key
config fitness
config key
config fitness
config key
config fitness
config key
0
150
0
50
100
150
R: 20 M: 5 S: 0.543 E: 0.798
R: 20 M: 8 S: 0.478 E: 0.769
R: 20 M: 13 S: 0.543 E: 0.798
R: 20 M: 21 S: 0.522 E: 0.788
50
100
config key
150
0
50
100
150
0
config key
50
100
0
30000
0
30000
30000
0
0
30000
config key
config fitness
config key
config fitness
config key
config fitness
config key
0
config fitness
50
0
config fitness
0
config fitness
R: 5 M: 8 S: 0.478 E: 0.769
0
30000
0
config fitness
R: 5 M: 5 S: 0.435 E: 0.75
150
config key
Figura 3: Bertin128: PLOT config.key X config.fitness (∼ 6 horas).
aplicar a otros problemas de optimizacion combinatoria,
mejorar la implementacion del cache (nivel del EDA y del GA),
.........
5
0
50
100
config key
150
heur heur heur heur heur heur heur heur heur heur heur heur heur heur heur heur heur
fix fix fix
fix
lock lock lock lock
fix fix fix fix
fix lock
lock lock
fix var lock
var
lock
lock lock
fix fix
fix lock
lock
fix var
fix
fix
var lock lock var
lock lock
fix var
var var
var var var
var var var var
var var
10
0.3
Frecuency
pmut
10
15
.50
.50
.10
.01 .05
.05 .10 .10
.01 .05
.10 .01
.05
.05
.01 .01
.01
.01
.01
.01
.01
.01
.01
.01
.01
.01
.01
.01
.10 .05
.10 .05
.10 .05
.10 .05
.10 .05
.10 .05
.10 .05
.10 .05
.10 .05
.10 .05
.10 .05
.10 .05
.10
0
5
10
omut
pcross
tim tim tim
ivm
tim opt2
ivm
dm
dm
ivm
em
sm opt2
ivm
ivm
opt2
dm
opt2
em
em
tim
opt2 opt2
sm opt2
ivm
sm sm ism
sm opt2
em
dm
ism
tim ism
sm opt2
em
ivm
ivm
ivm
sm opt2
dm
dm
ism
ivm
ivm
sm ivm
sm ivm
sm opt2
sm opt2
sm opt2
sm opt2
sm opt2
sm opt2
sm opt2
sm
em
em
em
em
em
em
em
em
em
em
em
em
dm
dm
dm
dm
dm
dm
dm
dm
dm
dm
ism dm
ism
ism
ism
ism
ism
ism
ism
ism
ism
ism
ism
ism
ivm
ivm
ivm
ivm
5
10
15
0.4
Replica: 1
Frecuency
Replica: 1
tim tim tim tim tim tim
tim tim tim tim
.85
.85
.85
.90
.90
.90
.95
.50 .95 .95
.50 .50
0
Replica: 1
15
.50 .50 .50 .50 .50 .50 .50 .50 .50 .50 .50 .50 .50 .50 .50
0.8
0.4
0.0
Frecuency
select
5
0
5
Replica: 1
EXS EXS
ETS
FSB
ETS FSB ETS
FSB
FSB FSB
ETS ETS
FSB ETS
FSB ETS
FSB ETS
FSB ETS
FSB ETS
FSB ETS
FSB ETS
FSB ETS
FSB ETS
FSB ETS
FSB
ETS ETS FSB
tim
0.1
0
EXS EXS EXS EXS EXS EXS EXS EXS EXS EXS EXS EXS
0.8
0.4
Frecuency
15
EXS
EXS
0
0.0
10
Replica: 1
0.1
1.0
Frecuency
0.6
5
EXS
0.8
0.4
0.0
Frecuency
0
0.5
stop
1.4
popini
.90
.85
.50
.95
15
.50
.85
.85
.85 .85
.85 .85 .85 .85 .85
.85 .85 .85
.90
.90
.90
.90
.50 .50
.50 .50
.90 .50
.90
.50 .90
.90 .50 .90
.90 .85
.90 .50
.50
.90 .95 .90
.95 .95 .95 .95 .95
.95 .95 .95 .95 .50 .50
.95
.50
.95 .95
5
10
15
Replica: 1
ocross
0.4
0.0
Frecuency
vr
rxc rxc
rxc rxc
vr vr
pmx
vr
rxc pmx
rxc
vr
ox2 rxc rxc pmx
vr pmx
vr pmx pmx
rxc
pmx
ap2
rxc
rxc pmx
vr rxc rxc pmx
vr rxc
ox2
ap2 pmx
ap2 pmx
cx
vr pmx
ox2
cx
rxc
vr pmx
vr pmx
vr pmx
ox1
ox1
ox1
ox1
ap2
ap2
cx rxc
cx
cx ap2
rxc
ox2
ap2
ap2
ap2
cx
ox1
ap2
cx pmx
cx ap2
vr cx
vr
ox2
ox2
ox2
ox2
ox1
cx ap2
cx pmx
cx ap2
cx
ox2
ox2
ox2
ox2
ox1 ap2
ox1
cx ap2
cx ox2
cx
vr ox2
ox1
ox1
ox1
ap2
ap2
cx
ox2
ox2
ox2
ox1
ox1
ox1
ox1
ox1
ox1
vr
0
5
10
15
Replica: 1
Figura 4: TRAZA EDA Bertin128 (∼ 20 horas), Evolución del conjunto de parámetros.
BIB
library(minet): Mutual Information Network
Patrick E. Meyer, Frederic Lafitte, and Gianluca Bontempi. minet:
A R/Bioconductor Package for Inferring Large Transcriptional Networks Using Mutual Information.
BMC Bioinformatics, Vol 9, 2008.
library(combinat): Generate all combinations of the elements of x taken m at a time.
Code by Scott Chasalow, R package and doc prep by Vince Carey, stvjc@channing.harvard.edu
Nijenhuis, A. and Wilf, H.S. (1978) Combinatorial Algorithms for Computers and Calculators. NY:
Academic Press.
Lam, Bacchus,
LBBN. An approach on the MDL Priciple
6
Figura 5: Evolución de la red bayesiana.
Bousquet, Boucheron, Lugosi,
Introduction to Statistical Learning Theory
7
Cuadro 2:
popini
40
73
126
9
8
109
75
7
16
90
134
35
95
10
51
109.1
stop
heuris
heuris
heuris
heuris
heuris
heuris
heuris
heuris
heuris
heuris
heuris
heuris
heuris
heuris
heuris
heuris
select
fix
fix
fix
fix
fix
lock
fix
lock
fix
fix
lock
fix
fix
lock
fix
lock
pmut
EXS
EXS
EXS
EXS
EXS
EXS
EXS
EXS
EXS
EXS
EXS
EXS
EXS
EXS
EXS
EXS
omut
pr.50
pr.50
pr.50
pr.50
pr.50
pr.50
pr.50
pr.50
pr.50
pr.50
pr.50
pr.50
pr.50
pr.50
pr.50
pr.50
8
pcross
tim
tim
tim
tim
tim
tim
tim
tim
tim
tim
tim
tim
tim
tim
tim
tim
ocross
pr.95
pr.95
pr.95
pr.95
pr.95
pr.95
pr.95
pr.95
pr.95
pr.95
pr.95
pr.95
pr.95
pr.95
pr.95
pr.95
rxc
rxc
rxc
pmx
rxc
cx
pmx
cx
rxc
pmx
rxc
rxc
pmx
rxc
vr
cx
Descargar