Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 071...

28
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

Transcript of Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 071...

Page 1: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

1

Programmation Génétique Avancée

Pierre COLLETLaboratoire du Littoral - Calais

Université du Littoral Côte d’Opale

[email protected]

Ecole d’Eté Evolution ArtificielleYravals 2007

Page 2: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

2

Présentation de 9 papiers récents

Opérateurs mal protégés (2004)

Détection du surapprentissage (2006)

Lutte contre le bloat par op. gén. multiples (2005)

Sur la spécialisation du Xover pour lutter contre le bloat (2007, à paraître)

Lutte contre la convergence prématurée par découpage de la population en tranches d’âge (ALPS) (2006)

Exploration exhaustive (2006, 2006)

Accélération par gestion de cache (2004)

Optimisation du jeu de primitives utilisé (2004)

Page 3: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

3

Opérateurs mal protégésM. Keijzer, « Improving Symb. Regression with Interval Arithmetic and

Linear Scaling », EuroGP’04

Programmation génétique standard :– Racine carrée = |x|– Logarithme = ln(|x|)– …– Mais : division protégée = 1 si dénominateur nul

x/y sinon

Ce n’est pas sans conséquences possibles…

Page 4: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

4

Opérateurs mal protégés

La protection simple des opérateurs peut conduire à des problèmes de généralisation :

Page 5: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

5

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))

Page 6: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

6

Opérateurs bien protégés

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.

Page 7: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

7

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 !

Page 8: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

8

Détecter le surapprentissage et évaluer le meilleur individu

Il faut 3 jeux de données indépendants :1. Un jeu d’apprentissage2. Un jeu de test3. Un jeu d’évaluation

Faire évoluer les individus sur le jeu d’apprentissage.

Tester le surapprentissage sur le jeu de test. Lors de la détection du surapprentissage,

évaluer le meilleur individu sur le jeu d’évaluation

(qui n’a pas participé à la détermination du meilleur individu)

Page 9: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

9

Lutte constructive contre le bloat

J. Stevens, R. Heckendorn, T. Soule, « Exploiting Disruption Aversion to Control Code Bloat », Gecco’05

Représentation de taille variable = apparition possible de bloat. Interprétation :– Au début de l’évolution, il est plus simple d’améliorer des

petits individus, car moins de matériel génétique à optimiser. » Résultat : individus pas très bons mais généralisant bien.

– Puis, plus possible d’améliorer simplement les individus : la PG crée des verrues pour approximer chaque point : surapprentissage / bloat.

– Le bloat permetrait aux individus de se protéger du Xover (mais aussi d’autres raisons probabilistes à son apparence, cf. présentation suivante)…

Page 10: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

10

Lutter contre le bloat (parcimonie) Beaucoup de propositions destructrices :

– Pas d’arbres de profondeur > 17 (pourquoi 17 ?)

– Tarpeian GP (R. Poli) : on donne une très mauvaise note aux gros individus.

– …

Pourquoi pas une lutte constructive ?– Les opérateurs génétiques font évoluer les

individus, mais sont destructeurs…

– Proposition : application d’opérateurs génétiques avec une probabilité par nœud (= plusieurs croisements possibles pour 1 seul enfant !)

Page 11: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

11

Distrib. de la taille des individus en PG.

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).

Axe des Y : fréquence (échelle log).

Axe des X : Nb de nœuds (0 à 100).

Page 12: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

12

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

2020

5050

Page 13: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

13

Créer un croisement spécifique

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…

Page 14: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

14

Lutte contre la convergence prématurée

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

Page 15: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

15

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.

Page 16: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

16

Résultats sur l’optimisation d’antennes

ALPS : Age-Layered Population Structure AHFC: Adaptive Hierarchical Fair Competition. La différence

avec ALPS est que les tranches sont basées sur la fitness (et pas sur l’âge).

Le résultat continue à évoluer bien après que les méthodes standard (et même adaptatives) aient convergé.

Page 17: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

17

Et l’exploration exhaustive ?

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 »

Page 18: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

18

Divide & Conquer pour plus de diversité

Pour faire évoluer une population de p individus avec un jeu de fonction F={+,-,,} :– 1) Si Card F=n, créer n sous-populations avec un

opérateur manquant. (Fs1={+, - , }, Fs2={+, - , }, Fs3={+, , }, Fs4={- , , })

– 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

Page 19: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

19

Divide & Conquer : résultats

Page 20: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

20

Context-Aware Xover, pour la performance

Idée simple pour ce Xover : 2 parents.1. Dans le 2eme parent, on sélectionne aléatoirement

un sous-arbre.

2. On va chercher exhaustivement où le greffer dans l’arborescence du premier parent.

Page 21: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

21

Context-Aware Xover

En grisé, tous les points de greffe possible pour ne pas dépasser la prof. max autorisée

On crée tous les enfants potentiels, et le résultat de ce Xover est le meilleur de tous.

Page 22: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

22

Context-Aware Xover

Pct_00,_10, _50, _70, _90 : On démarre le CA-Xover après 0%, 10%, 50%, 70%, 90% des évaluations

Troublant, non ?

Page 23: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

23

Accélération de la PGM. Keijzer, « Alternatives in Subtree Caching for Genetic Programming », EuroGP’04

Propositions intéressantes :– Vectorisation de l’évaluation d’un individu

– Mise en cache des sous-arbres.

Page 24: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

24

Vectorisation de l’évaluation Evaluation standard d’un individu pour de la

régression symbolique sur un ensemble d’apprentissage de n points :– Si l’individu comporte m nœuds, on évalue

l’ensemble des nœuds n fois.– Mais comme l’ensemble des points d’apprentissage

est fini (Card = n), pourquoi ne pas créer un vecteur de n valeurs, et évaluer l’arbre une seule fois pour le vecteur complet ?

– Gain énorme sur le parcours de l’arbre (1 fois au lieu de n fois)

Page 25: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

25

Mise en cache des sous-arbres Ensuite, pourquoi ne pas mettre les sous-arbres

rencontrés dans un cache, sachant que :– A partir d’un pool d’individus initial, la PG crée de

nouveaux individus par croisement de sous-arbres.Manipulation incessante des mêmes sous-arbres !

Sur la régression symbolique, gain de 50% observé pour un cache de 20 sous-arbres.

Pour 500 à 1000 sous-arbres, gain observé de l’ordre de 90% !

Utilisation de ces idées avec les GPU ?

Page 26: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

26

Optimisation du jeu de fonctions

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).

Question : quelles fonctions supprimer, quelles fonctions garder ?

Page 27: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

27

Optimisation du jeu de fonctionsG. Wang & T. Soule, « How to Choose Appropriate Functions Sets for

Genetic Programing », EuroGP’04

Intuitivement, certaines fonctions font partie d’une même classe d’équivalence (sin cos, + -, * /).

Soule montre que de tels groupes existent : Soient, pour 1 pb donné, 4 fonctions A B C D.– Si performance identique pour {A,B}, {A,C}, {A,B,C} alors B

et C appartiennent au même groupe.

– Si la performance est différente pour {A,B} {A,D} alors B et D n’appartiennent pas au même groupe.

Page 28: 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.

Pierre COLLET - Programmation Génétique Avancée - Ecole d'Ete Evolution Artificielle 07

28

Optimisation du jeu de fonctions

Conclusions du papier :– Jeu de fonctions optimal : une seule fonction par

groupe (dépend du pb à résoudre).

Pour un nouveau problème, commencer par déterminer les groupes de fonctions…