• Aucun résultat trouvé

2.2 Principaux algorithmes d’apprentissage

2.2.1 Algorithmes d’apprentissage supervisé

2.2.1.4 Les algorithmes génétiques

Le principe de fonctionnement des algorithmes génétiques, proposés par [Holland, 1975], se base sur le phénomène de sélection naturelle. Les différentes espèces dans le monde évoluent de génération en génération, la pérennité d’une espèce se faisant sur la base des principes darwinistes (en simplifié, la capacité pour un être vivant d’assurer la pérennité de son espèce). Cependant, au travers de l’agriculture et l’élevage, l’homme intervient direc- tement dans ce processus, favorisant l’évolution de certaines espèces sur des critères diffé- rents. Il ne s’agit plus de sélection naturelle, mais plutôt de sélection artificielle. Le principe inhérent aux algorithmes génétiques est basé sur ce phénomène.

Le génotype d’un individu représente l’information génétique associée à cet individu, et est modélisée sous la forme d’un chromosome. Un algorithme génétique génère donc des individus, chacun d’eux possédant son propre génotype, et fait évoluer cet ensemble d’individus pour produire, par un mécanisme basé sur la sélection artificielle, des individus considérés comme plus performants.

Comme nous l’avons souligné en section 2.1, un algorithme d’apprentissage a pour ob- jectif de construire un modèle de son environnement à partir d’exemples. [Cornuéjols et Miclet, 2011] parle d’apprentissage à deux espaces : l’espace des exemples d’où proviennent les exemples en entrées de l’algorithme, et l’espace des hypothèses qui constitue l’ensemble des modèles pouvant décrire l’environnement. Les algorithmes présentés jusqu’à présent fonc- tionnaient dans le but de construire progressivement ce modèle en s’enrichissant progressi- vement des exemples. Autrement dit, ils parcourent l’espace des hypothèses pour trouver le modèle décrivant au mieux les exemples perçus. Dans le cas des algorithmes génétiques, il s’agit d’un apprentissage à trois espaces : à l’espace des hypothèses est associé l’espace “gé- notypique”, chaque modèle étant associé à une expression génotypique, ou génotype. Pour appliquer un algorithme génétique, il suffit alors d’associer le format du modèle à celui du génotype. Un algorithme génétique ne cherche donc pas à trouver un modèle satisfaisant en parcourant l’espace des hypothèses, mais plutôt à faire évoluer des individus associés à différents modèles jusqu’à l’obtention d’un individu satisfaisant (autrement dit, un individu dont le génotype est associé à un modèle satisfaisant).

La représentation la plus classique pour un génome est une chaîne de bits, tout modèle étant alors transformable en chaîne de bits, et vice-et-versa. Bien sûr, le choix du nombre de bits, ou de façon générale la complexité d’un génotype, influence fortement les perfor- mances d’un algorithme génétique : un génotype trop simple limitera l’espace des hypo- thèses que pourra parcourir l’algorithme, tandis qu’un génotype trop complexe augmentera fortement le coût du parcours de l’espace des hypothèses.

En général, un algorithme génétique commence son traitement en générant un ensemble d’individus aléatoirement. Il entre ensuite dans un cycle à quatre étapes qu’il poursuit jus- qu’à l’obtention d’un modèle satisfaisant, les critères de satisfaction pouvant être l’obser- vation un gain inexistant entre deux générations successives, ou l’atteinte d’une limite en termes de ressources calculatoires.

1. Évaluation : Les modèles associés aux génotypes de chacun des génomes sont éva- lués vis-à-vis de la base d’exemples en entrée grâce à une fonction d’évaluation des performances, communément appelé fonction de fitness (fitness function). Cette étape d’évaluation affiche clairement l’appartenance des algorithmes génétiques à la famille des algorithmes d’apprentissage supervisé. C’est aussi cette étape qui est généralement la plus coûteuse, car l’évaluation des performances d’un modèle, à plus forte raison d’un ensemble de modèles, vis-à-vis d’un ensemble d’exemples s’avère généralement coûteuse en ressources.

2. Sélection : Cette étape consiste donc à choisir les individus qui mèneront à la créa- tion de nouveaux individus, ceux qui se limiteront à survivre et ceux qui disparaîtront. Conformément au processus de sélection naturelle, les individus considérés comme les “meilleurs” ont une probabilité plus forte d’être sélectionnés pour la survie et à la pro- création.

3. Création : Les individus sélectionnés peuvent être employés pour créer de nouveaux individus dotés de nouveaux génotypes. Les deux principales méthodes sont les croise- ments et les mutations de génotypes. Dans le cas du croisement, deux génotypes sont combinés dans l’espoir d’obtenir des individus possédant les meilleures caractéris-

tiques des deux individus parents. Pour cela, un ou plusieurs points des génotypes des deux individus parents sont sélectionnés, et la suite des génotypes est intervertie. Dans le cas de la mutation, une partie (généralement plutôt petite) du génotype d’un individu est changé aléatoirement.

4. Remplacement : Cette étape vise à remplacer l’ancienne génération d’individus par la nouvelle génération. Une fois encore, le choix du nombre d’anciens individus conservés et supprimés est un paramètre de l’algorithme fixé par le concepteur. Plusieurs straté- gies existent, mais la plus commune consiste à garder un nombre d’individus fixe en supprimant une partie des anciens individus. Un choix possible est alors de prendre l’ensemble des individus, anciens et nouveaux, de les évaluer et de conserver unique- ment les plus performants.

Les algorithmes génétiques nécessitent un traitement assez important dans leurs mises en place, les choix de modélisation des génotypes ayant un impact très important sur les performances de l’algorithme. Cependant, cette modélisation peut théoriquement inclure la possibilité que des données soient ajoutées ou supprimées. De plus, les algorithmes géné- tiques sont capables de tenir compte d’une évolution de la fonction à apprendre. Cela ne les rend cependant pas forcément applicables à l’apprentissage du comportement des uti- lisateurs en environnement ambiant. En effet, le traitement des algorithmes génétiques est généralement assez long, car il est nécessaire d’évaluer chaque modèle produit pour pouvoir converger vers des individus plus performants.