3. Introducción
En la práctica los valores de los parámetros se
eligen:
Por convención (ej: mutación baja),
Elecciones ad-hoc (usemos crossover
uniforme!)
Comparativas experimentales a escala
limitada (testear 3 combinaciones de tres
tasas de crossover y 3 de mutación)
4. Afinamiento Vs. Control
PARAMETER SETTING
ANTES DE LA EJECUCIÓN DURANTE LA EJECUCIÓN
PARAMETER TUNING PARAMETER CONTROL
DETERMINISTIC SELF-ADAPTATIVE
ADAPTATIVE
5. Afinamiento Vs. Control
PARAMETER SETTING
ANTES DE LA EJECUCIÓN DURANTE LA EJECUCIÓN
PARAMETER TUNING PARAMETER CONTROL
DETERMINISTIC SELF-ADAPTATIVE
ADAPTATIVE
6. Objetivos del artículo
Discutir la noción de un parámetro de un EA y su
relación con los EAs y las instancias de un EA
Considerar los aspectos más importantes del
problema de afinar los parámetros
Resumen de los métodos de afinamiento de
parámetro existentes
Detalles sobre metodología y recomendaciones
para próximas investigaciones
7. EAs, Parámetros e
instancias de algoritmos
Parámetros cuantitativos y cualitativos (aunque
otros autores los nombran distinto)->Dos niveles
Instanciar un parámetro es darle un valor
El número de parámetros para un EA no es fijo.
Ejemplo: elegir torneo implica elegir tamaño
(sub-parámetro).
Dos algoritmos son diferentes si difieren en uno
de los parámetros cualitativos.
8. Diseño de algoritmos y
afinamiento de parámetros
Un EA con buenos valores para los parámetros
puede ser ordenes de magnitud mejor que uno
con valores mal elegidos
Design layer Design layer
OPTIMIZES ALGORITHM QUALITY
Algorithm layer Algorithm layer
OPTIMIZES SOLUTION QUALITY
Application Application
9. Vocabulario
Problem Solving Parameter Tuning
Method at work evolutionary tuning procedure
Search space algorithms
solution vectors parameter vectors
Quality fitness (determinístico) utility (depende)
Asessment evaluation testing
10. Formalización del
problema
El problema del afinamiento de parámetros se
puede resumir en un problema de búsqueda
<S,u> en el espacio de parámetros:
S=Q1 x ⋅⋅⋅ × Qm × R1 × ⋅⋅⋅ × Rn
ESTRUCTURAL PARAMÉTRICO
Utilidad: u(p) p∈S
Espacio de utilidad
11. Utilidad, rendimiento del
algoritmo y funciones test
Hay dos medidas atómicas para los EAs:
Calidad de la solución
Esfuerzo de búsqueda: tiempo, número de evaluaciones, etc.
Se pueden combinar. P.ej:
Dado un máximo tiempo obtener la mejor solución
Dado un mínimo nivel de fitness obtener el tiempo en llegar a él
Dado un máximo de tiempo y un mínimo fitness determinar si
llega (true o false)
13. Afinadores especialistas
vs. generalistas
Afinador especialista: un EA es muy bueno
resolviendo una instancia de un problema.
Sin embargo se buscan instancias EA robustas,
por lo que se usa un conjunto de
funciones→afinador generalista. (NFL!)
Al usar varios fitness la utilidad no es un sólo
número→multiobjetivo o media de utilidades (o
usando pesos o ordenes lexicográficos o lo que
sea)
14. Resumen de terminología
1. Los vectores solución tienen valores de fitness, basados en la
función objetivo relacionado con la instancia del problema a resolver
2. Las instancias de los EAs tienen valores de rendimiento, basados
en la información relacionada con el fitness y tiempo de ejecución de
una o más instancias del problema (funciones objetivo)
3. Los vectores de parámetros tienen valores de utilidad, definidas
por el rendimiento de las instancias de EA correspondientes y las
instancias del problema (funciones objetivo) usadas para afinar.
Función de
utilidad
Conjunto de
Afinador
Algoritmo buenos
Evolutivo valores de los
parámetros!
Problema(s)
de test
15. Aproximaciones algorítmicas
al afinamiento de parámetros
Afinadores iterativos
vs. no iterativos
Procedimientos multi-
etapa vs. mono-etapa
Cómo medir el
esfuerzo de la
búsqueda
16. Afinadores iterativos vs.
no iterativos
No Iterativos: generan un conjunto fijo de
vectores en la inicialización. Cada uno de esos
vectores se testea durante la fase TEST para
encontrar el mejor vector de ese conjunto.
Iterativos:empiezan con un conjunto inicial
(aleatorio, grid sistemático o abarcando el
espacio de búsqueda) y crean nuevos vectores
durante la ejecución.
17. Mono y multi-etapa
Mono-etapa: realizan el mismo número de test
para cada vector dado
Multi-etapa: seleccionan los vectores más
prometedores para hacer test más exhaustivos
18. Midiendo el esfuerzo
AxBxC
A. Número de vectores de parámetros a usar por el
afinador
B. Número de tests (ej, ejecuciones del EA) por vector
C.Número de evaluaciones de una función fitness en cada
ejecución. Relacionado con la estimación del
rendimiento antes de terminarlo.
Se usa para la Clasificación de los métodos de
afinamiento
19. Reducir número de
vectores de parámetros
Suelen usarse métodos iterativos→Apropiados para parámetros
cuantitativos
Meta-EAs →Sólo existen en la literatura meta-EAs con GA, ES,
EDA (Estimation Distribution Algorithm) (no hay PSO ni DE)
meta-GA y meta-ES son parecidos, es con EDA donde se obtiene
más información al distribuir por el espacio de búsqueda.
REVAC (Relevance Estimation and Value Calibration) method
(Eiben, muchas citas). Crea distribuciones de probabilidad
implícitas de acuerdo a los parámetros para que los parámetros
que han demostrado ser buenos tienen más posibilidades que
los peores. Al terminar se obtiene el rango de los parámetros
prometedores y la relevancia de cada uno.
20. Reducir el número de
tests (B)
Realizar sólo unos pocos test al principio e incrementar este número al
nivel mínimo para obtener comparaciones entre parámetros
estadísticamente significativo: statistical screening, ranking y selection.
Maron et al. introducen racing. Método no iterativo dado un conjunto P
de vectores y un número B máximo:
1. Testear todos los vectores p una vez (es decir, ejecutar un EA)
2. Determinar cual es mejor p con utilidad media mejor (pmejor)
3. Determinar P' los vectores cuya utilidad no es significativamente peor
que pmejor (¿cómo?)
4. P = P'
5. if P >1 y numTest<B ir a 1
21. Midiendo las diferencias
significativas de la utilidad
En el paso 3. es donde difieren los métodos de racing. La
diferencia significativa se mide con:
ANOVA
Kruskal-Wallis
Hoeffding's bound
Unpaired Student T-Test
Multi-etapa (se eligen los más prometedores para realizar
tests más exhaustivos) y se pueden usar para parámetros
cuantitativos y cualitativos
22. Utilizando un número pequeño de
vectores de parámetros y tests
(A y B)
Yuan et al. combinan racing con meta-EAs en dos métodos:
A. Los parámetros cuantitativos se evolucionan con una meta-
(1+ λ )-ES, y en cada creación λ vectores se crean
utilizando una distribución Gausiana centrada en el mejor.
Luego se usa racing para ver cual tiene la mayor utilidad
(así no hay que evaluarlos todos B veces, ya que algunos
de ellos se eliminan después de unos pocos tests)
B. Utilizan mutación, selección y recombinación pero se
evalúan los vectores cuantitativos con todas las
combinaciones de los parámetros cualitativos. También
usa racing.
23. Utilizando un número pequeño de
vectores de parámetros y tests
(A y B)
SPOT: procedimiento iterativo. Vectores de parámetros distribuidos
(ej LHD, Latin Hypercube Design).
Se testean B0 veces para estimar la utilidad y se crea un modelo
de predicción.
Se crean l nuevos vectores y su utilidad se estima usando el
modelo sin ejecuciones adicionales del EA. Usan estimaciones de
predicción y error. Los puntos más prometedores se evalúan B
veces (valor bajo que puede ir subiendo si no se encuentra una
buena utilidad). En el paso inicial hay pocos vectores (1 a 4).
Puede combinarse con racing.
REVAC++: REVAC + sharpening + racing (como add-ons) Cita a un
artículo que se muestran las ventajas de racing y sharpening.
24. Utilizando un número
pequeño de evaluaciones (C)
En verano de 2009 no hay ninguno en la
literatura (?) Sólo un tipo deja fijos parámetros
salvo tamaño de población y los ejecuta en
paralelo y cancela los EAs que van peor (la
utilidad es el fitness en este caso).
Idea: terminar la ejecución si no se va a
encontrar un umbral de utilidad. Parecido a
racing, pero reduciendo el número de
evaluaciones (C) en lugar de tests (B).
25. Casos exitosos en el
afinamiento de EAs
Comparativas de algoritmos afinados vs a mano
o con fuerza bruta.
Estudios indican que no todos los EAs requieren
el mismo coste para afinarlos.
SA y ES afinados con DACE y regresión
simbólica
Otros afinadores para otros algoritmos
26. Consideraciones para
afinar EAs
Problemas repetitivos Vs. una-vez (en unos prima el coste
computacional y en otros la calidad de la solución). Los
primeros se usan más en el mundo académico.
Beneficios del afinamiento para profesionales que se
enfrentan a problemas reales y académicos que quieran
avanzar el mundo de los EAs en general.
Para ambos: "Afina tus algoritmos con un algoritmo afinador
(e informa de los efectos de la afinación)".
El problema de las "constantes mágicas" escondidas en el
código. Por ejemplo en CMA-ES descendencia=4+3*log(n) y
poblacion = desc/2. → también deberían tunearse
27. Consideraciones finales
“Mi nuevo algoritmo es mejor que el antiguo en algunos
casos” ☹
Gastando X esfuerzo en tunear mi nuevo algoritmo, tenemos
una instancia que es mejor que el viejo sin tunear.☺
La mejor instancia del nuevo algoritmo es mejor que la mejor
instancia del viejo algoritmo, donde las mejores de estas
instancias se han obtenido con X esfuerzo en tunearlas.☺☺
Así nos enfocamos mejor en los operadores que en las
instancias
28. Conclusiones
Hay que usar afinadores y gastar un día extra en
afinar tus algoritmos. Hay software disponible!
P. Ej. MOBAT (Java y paralelo) Meta-Heuristic
Optimizer Benchmark and Analysis Tool
Rendimiento
Rendimiento
EA1 EA2 EA1 EA2
Parámetros ad-hoc sin afinamiento Parámetros óptimos con afinamiento
29. Bibliografía
Eiben A. E. and Smit S. K., Parameter Tuning for Configuring and Analyzing
Evolutionary Algorithms , Swarm andEvolutionary Computation , 2011
Eiben A. E. and Smit S. K., Evolutionary Algorithm Parameters and Methods
to Tune them , Y. Hamadi E. Monfroy and Saubion F. (eds.) , Autonomous
Search , Springer , 2011
Smit S. K. and Eiben A. E., Beating the 'world champion' evolutionary
algorithm via REVAC tuning , IEEE Congress on Evolutionary Computation ,
IEEE Press , 2010 , pp. 1-8
Eiben A. E. and Smith J.E., Parameter Control in Evolutionary Algorithms,
Introduction to Evolutionary Comuting, Springer, 2005, pp. 129-151.
Kang P. et al. Dynamic Tuning of Algorithmic Parameters of Parallel
Scientific codes, International Conference on Computational Science, ICCS
2010, 2010, pp. 145-153.