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, [email protected] 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