Projet d’algorithme génétique sur les Abeilles Sommaire Thomas Schmitt 14 février 2014

publicité
Projet d’algorithme génétique sur les Abeilles
Thomas Schmitt
14 février 2014
Sommaire
1 Motivation
1
2 Implémentation
2.1 Cerveau des abeilles . . . . . . . . . . . . . . . . . . . . . . .
2.2 Population et Sélection . . . . . . . . . . . . . . . . . . . . . .
2
2
3
3 Résultats
3.1 Interprétation . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Résultats sur les jeux de paramètres . . . . . . . . . . . . . . .
3
4
6
4 Suite...
6
5 Annexe
7
1
Motivation
Je voulais simuler des populations, de façon non supervisé, pour observer une sélection naturelle conduisant à des phénomènes émergents. Ayant
entendu parler des réseaux de neurones, je voulais aussi faire un projet qui
me permettrai de les étudier, afin de m’en imprégner. Finalement, j’ai choisis Matlab, pour ses structures simple Dans ce projet, je me suis efforcé de
laisser tout mes paramètres variables. J’ai développé une interface graphique
à cette fin (cf Figure 2)
1
But du jeu
Dans cette simulation, les abeilles devront parcourir la carte pour chercher
du miel. Elles devront apprendre à éviter le feu et dans une seconde partie
(non aboutie) apprendre à ramener le miel à la ruche. Elle devront apprendre
cela sans supervision. Il n’y aura qu’une sélection entre chaque génération,
qui gardera les mieux adaptés.
2
2.1
Implémentation
Cerveau des abeilles
Le cerveau des abeilles est un réseau de neurones classique. Le nombre de
couches cachées est variable (nb_couches_cachees), ainsi que le nombre
de neurones de chaque couches.
Figure 1 – Réseau de neurones utilisé pour les cerveaux.
Il y a 4 neurones de rétine pour voir le miel (chacun codant une direction),
4 pour le feu, 4 pour la position de la ruche et 1 pour savoir s’il l’on transporte
déjà un miel. Les abeilles ne voient pas plus loin que dist_vision autours
d’elle (sauf la ruche). Il y a 4 neurones de sorties. L’abeille choisit alors le
max pour se diriger. L’apprentissage se fait par sélection naturelle (cf section
suivante).
2
2.2
Population et Sélection
Figure 2 – Interface lors d’un test de simulation.
Sur un damier de X × Y, il y a :
– nb_abeilles abeilles qui vont se déplacer chaque tours.
– nb_miel miel placé aléatoirement. Qui, une fois pris, réapparaissent
ailleurs.
– nb_feu feu placé aléatoirement. Répartit en plusieurs ilôt, qui seront
généré à chaque nouvelle génération d’abeilles(cf Remarque).
– La ruche, au centre de la carte. (Qui permet aux abeilles de ramener
leur miel).
A la première génération, les abeilles ont chacune un cerveau indépendant
et tiré au hasard (i.e. chaque coefficients synaptique est tiré au hasard). A la
première généraion, certaines sont attiré par le feu, d’autre continue toujours
en ligne droite etc.
A la fin d’une génération, (de nb_tours), on sélectionne les abeilles avec
le meilleur score (on en choisit exactement nb_selection %. On garde une
3
copie de chacune d’elles inchangés, puis on en créé de nouvelles copies, en
modifiant leurs génomes (avec un taux moyen de taux_mutation % et une
amplitude moyenne de amplitude).
Remarque Après observations, j’ai remarqué qu’il faut générer une nouvelle map à chaque génération, sinon c’est plus la connaissance de la carte,
que la capacité à chercher du miel, qui s’inscrit dans les neurones.
Score d’une abeille Le calcul du score se fait par trois paramètres :
score_miel, score_feu (négatif) et score_ruche (rapporté un miel à
la ruche). Il est intéressant de chercher à optimiser ses valeurs, qui servent à
la sélection naturelle et à l’évaluation de la fitness d’une population.
3
Résultats
Figure 3 – Fonction de score. En abscisse le nombre de génération, en
ordonnée le score (en rouge : pour la meilleur abeille, en vert : la moyenne
pour les meilleurs venant de l’ancienne génération et en bleu la moyenne sur
toutes les abeilles) Dans la suite, on ne s’intéressera qu’à la courbe verte
(moins bruité et plus significative - car ne tient pas compte des mutations
délétères créé).
4
• Le résultat qui nous intéresse est la courbe qui représente la fitness d’une
population au cours des générations. Soit : le score moyen, (cumulé sur
nb_tours) de chaque génération.
On observe alors plusieurs phénomènes :
– La vitesse de convergence vers un palier (τ ) : traduit le temps caractéristique d’apprentissage.
– La hauteur du palier (a) : fitness maximal.
– Un éventuel deuxième palier, traduisant l’apparition d’un nouveau saut
dans l’évolution.
3.1
Interprétation
Figure 4 – La courbe bleu présente deux palier
Deuxième palier L’existence de plusieurs palier dans le graphe du score
traduit un saut dans l’évolution, une mutation qui va se répandre dans la
population. (cf Figure 6, ligne 4, colonne 2 et 4) En observant des simulations
j’ai remarqué que dans une première phase, les abeilles ne se déplacent que
dans un direction privilégié (à droite par exemple) et éventuellement dans une
autre (en haut). Puis, elle apprennent (en équilibrant les poids synaptiques je
suppose) à aller aussi en bas. Une évolution notable arrive lorsqu’elle savent
faire demi tour.
Décroissance du score On observe parfois des décroissances dans la courbe
des score. Car nous n’analysons toujours qu’un pourcentage des meilleures
abeilles (celles qui existaient à la génération précédente). Lorsqu’une mutation favorable est trouvé, elle se répand et profite à toutes les abeilles. Les
5
Figure 5 – La courbe bleu présente des décroissances
miels sont donc plus rares, pour les quelques unes privilégiées qui possédaient
la mutation.
Approximation paramétrique Pour quantifier la "qualité" d’une configuration de paramètre, il faut comparer les courbe des score. Pour chaque
courbe obtenue à la fin d’une simulation, on tente d’ajuster une courbe paramétrique, avec les deux paramètre τ et a. (Ici on a choisit a ∗ (1 − exp(τ ∗ t)
cf Figure 6). On obtient alors un vecteur de dimension 2 pour chaque jeux
de paramètre, que l’on peut représenter sur une même figure (cf Figure 8)
3.2
Résultats sur les jeux de paramètres
Les paramètres que j’ai testé sont :
– Le taux de mutation.
– l’amplitude des mutations.
– le nombre d’abeilles sélectionnée pour se reproduire.
– Le nombre de couches cachées de neurones .
– Le nombre de neurones dans chaque couches cachées.
4
Suite...
Analyse des données Il reste à bien analyser la corrélation entre les paramètres que nous avons fait varier et les les mesures τ et a obtenue. (il faudrait
faire plus de simulations avec des paramètres qui varient plus.)
6
Optimisation de la fonction score Le score des abeilles augmente à
chaque fois qu’elle passe sur un miel. On pourrait imaginer un score qui ne
dépende que du nombre de miels ramenés à la ruche (et de feux traversés).
Mais des problèmes surviennent : le saut entre un cerveau aléatoire et un
cerveau adapté semble trop grand. (Le fait de récompenser le passage sur un
miel permet de "guider" la sélection).
Plusieurs espèces Dans le future, j’aimerai que plusieurs espèces puissent
évoluer simultanément, pour faire émerger des adaptations entre les espèces.
Car pour l’instant, au final, toutes les abeilles ont la même stratégie. Parfois,
il est plus intéressant d’avoir deux groupes avec des stratégie différentes.
5
Annexe
7
Figure 6 – 16 courbes de générations, approché par a ∗ (1 − exp(τ ∗ t).
8
Figure 7 – Vision des résultats d’ensemble, pour chaque jeux de paramètres.
(La taille de chaque symbole correspond au nombre de neurones, leur forme
à leur nombre de couches cachées.
Figure 8 – Moyenne des résultats d’ensemble, cf Figure 7
9
Figure 9 – Influence du nombre de neurones sur l’évolution
Figure 10 – Influence du taux de mutation sur l’évolution. On remarque que
plus taux_mutation est élevé, plus τ (la vitesse caractéristique)est faible.
10
Figure 11 – L’arbre généalogique des abeilles sur le terrain. A la 67ème
générations, trois lignées ont survécut.
11
Figure 12 – Après 1700 générations. En haut : les coefficients synaptiques
des deux couches cachées. En bas : leur variance dans la population (échelle
à 10−16 : l’ancêtre commun est proche, et les abeilles n’évoluent plus.)
Figure 13 – 16 arbres généalogiques (presque tous écrasés). A mettre en
rapport avec la Figure 12
12
Téléchargement