Pierre COLLET - Program mation Génétique Avancé e - Ecole d'Ete Evoluti 1 Programmation Génétique Avancée Pierre COLLET Laboratoire du Littoral - Calais Université du Littoral Côte d’Opale [email protected]Ecole d’Eté Evolution Artificielle Yravals 2007
28
Embed
Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 071 Programmation Génétique Avancée Pierre COLLET Laboratoire du Littoral.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Opérateurs mal protégésSolution : Interval Arithmetic. A tout nœud ou feuille, on
ajoute 2 paramètres, une borne inférieure et une borne supérieure.– Si la feuille est une constante, inf=sup=3.4– Si la feuille est une variable d’entrée x, inf=valeur inférieure de x et
sup=valeur supérieure de x.– Si le nœud est une addition entre x et y :
» inf=inf(x)+inf(y), sup=sup(x)+sup(y)
– Si le nœud est une multiplication entre x et y :» inf=min(inf(x)inf(y),inf(x)sup(y),sup(x)inf(y),sup(x)sup(y))» sup=sup(inf(x)inf(y),inf(x)sup(y),sup(x)inf(y),sup(x)sup(y))
– Si le nœud est une division entre x et y :» inf=min(inf(x)/inf(y),inf(x)/sup(y),sup(x)/inf(y),sup(x)/sup(y))» sup=sup(inf(x)/inf(y),inf(x)/sup(y),sup(x)/inf(y),sup(x)/sup(y))
Et maintenant pour en revenir à la division :Si l’on connaît les bornes des opérandes, on peut s’assurer que pour x/y, inf(y) est du même signe que sup(y) et que ni l’un ni l’autre ne valent 0.
Détection du surapprentissageC. Gagné, M. Schoenauer & al., « GP, Validation Sets and Parsimony Pressure », EuroGP’06
Surapprentissage : au delà d’un certain stade, la fitness continue à augmenter sur le jeu d’apprentissage, mais la fitness baisse sur un jeu de test : encore un pb de généralisation !
Cette belle formule donne la distribution de la taille des arbres d’une population de PG ayant évolué par croisement standard (sous-arbres) avec sélection uniforme des loci et sans sélection (fitness)
R. Poli & al., « Generalization of the Limiting Distribution of Program Sizes in Tree-Based
Genetic Programming and Analysis of its Effects on Bloat », GECCO’07
Comparaison entre la distribution théorique et empirique d’arbres d’arité mixte 1, 2, 3, 4 après 500 générations, taille moyenne initiale 25.37 (prof. 3, en full).
Modif de la taille initiale des ind.Distribution de probabilité pour tailles initiales de 5, 10, 20, 40, 200
De plus si on introduit une fitness après avoir fait évoluer une population par Xover seul… 55
1010
2020
200200
… un phénomène de bloat apparaît plus rapidement sur les populations déjà évoluées, si le problème requiert une taille supérieure aux individus créés majoritairement… (car les petits individus se font éliminer rapidement)
0 gen avant 0 gen avant intro de la fitnessintro de la fitness
Conclusion : si on a la chance de connaître la taille en dessous de laquelle les individus ne pourront pas donner de bonnes solutions (11 pour la fourmi artificielle, par ex…)
Il faut créer un croisement favorisant les individus de taille >= 11 sous peine de… bloat ! (ce qui va contre l’intuition), car sinon, tous les petits individus vont rapidement se faire éliminer au profit d’individus bien plus gros…
La PG converge très vite (dans les modèles panmictiques)…, d’où l’idée de créer des niches écologiques, mais comment ?Age Layered Population Structure (ALPS):– On découpe la population totale en n tranches d’âge.– La population initiale démarre à l’âge 0.– Un individu a l’âge de ses gènes : l’âge donné à un enfant est l’âge de son
plus vieux parent +1.– Chaque individu utilisé pour créer un enfant voit son âge incrémenté de 1
(une fois par génération).– Chaque tranche d’âge est déterminée de manière polynomiale, ou
exponentielle, ou … ex : 20, 40, 80, 160… pour un « age-gap » de 20.– Les individus ne peuvent se reproduire qu’avec d’autres individus de leur
même tranche d’âge ou de la tranche juste inférieure.
G. S. Hornby, « ALPS: The Age Layered Population Structure for Reducing the Problem of Premature Convergence », GECCO’06
ALPS : Fonctionnement Ex: 10 tranches de 100 individus (= population de 1000 individus). « Age-gap » de 20, et tranches « linéaires » (20, 40, 60,…), à partir
de la tranche 0. Au début, 100 individus créés, qui évoluent pendant 19
générations. A la 20è génération, la tranche 1 est ouverte : 100 enfants sont
créés utilisant les parents de la tranche 0, avec certains individus qui passent en tranche 1.
A la 21è génération, 100 nouveaux individus sont créés en tranche 0, et 100 enfants sont créés à partir des tranches 1 et 0.
A la 41è génération, 100 nouveaux individus sont créés en tranche 0, 100 enfants sont créés à partir des tranches 1 et 0, et 100 enfants sont créés à partir des tranches 2 et 1.
A la 201è génération, les 100 plus mauvais individus sont supprimés, et 100 nouveaux individus sont créés en tranche 0.
Stefan Voss, conférencier invité à EuroGP’06:« Les individus initiaux ont une grande importance pour la suite, donc, passez du temps à les choisir, voire, choisissez-les de manière exhaustive ! »
– Papier de Cyril Fillon et Alberto Bartoli à EuroGP’06… « Divide& Conquer Strategy for Improving Efficiency and Probability of Success in GP »
– Papier de Hammad Majeed & Conor Ryan à Gecco’06… « Using Context-Aware Xover to Improve the Performance of GP »
– 2) Faire évoluer pendant quelques générations (5) avec m individus dans chaque sous-population, avec m<p (si p = 500, m = 400) pour maintenir la diversité.
– 3) Sélectionner 500 parmi les 5 sous-populations, et continuer l’évolution avec une population de 500 individus
Quel est l’intérêt de ne pas mettre toutes les fonctions possibles et imaginables dans le jeu de fonctions utilisables par la PG ?
Les tests montrent que les performances sont moins bonnes pour un grand jeu de fonctions (raison probable : augmentation non nécessaire de l’espace de recherche).