• Aucun résultat trouvé

2.2 L’apprentissage artificiel

2.2.1 Apprentissage supervisé

2.2.1.4 Algorithmes génétiques

Développés par Holland 1975, les algorithmes génétiques sont une technique d’optimi- sation imitant de manière très simplifiée l’évolution des espèces au moyen de la sélection naturelle. L’adaptation ainsi obtenue peut être considérée comme le fruit d’un mécanisme d’apprentissage. Nous exposons ici les principes de base des algorithmes génétiques ainsi que leur application en apprentissage supervisé.

La première condition dans l’application d’un algorithme évolutionnaire (autre nom des algorithmes génétiques) est de disposer d’un découplage de l’espace des hypothèses. Il faut un espace phénotypique dans lequel les hypothèses peuvent être évaluées, et un espace génotypique dans lequel elles sont manipulables et transformables par des opérateurs spécifiques. Une hypothèse est donc représentée par son génotype qui est une chaîne de valeurs (par exemple une chaîne de bits). L’idée est ensuite de créer une population initiale d’hypothèses puis d’en croiser les individus pour faire évoluer leur génotype de génération en génération jusqu’à atteindre une hypothèse satisfaisante. Concrètement, la génération initiale est le plus souvent tirée au hasard, puis le processus d’évolution se déroule en quatre étapes répétées jusqu’à la satisfaction d’un critère d’arrêt.

Étape 1 : Évaluation. Évaluer la génération courante constitue la première étape. Cela passe en général par l’évaluation de chaque individu à l’aide d’une fonction particulière que l’on appelle fonction de fitness. Cette fonction s’applique sur un phénotype et retourne un score de performance. Dans le cas de l’apprentissage supervisé il s’agit de tester chaque hypothèse sur un ensemble de validation, mais de nombreuses fonctions d’évaluation sont possibles selon le problème traité et peuvent même prendre la forme de simulations (Jin 2005).

Étape 2 : Sélection. La deuxième étape est la sélection des individus qui seront procréateurs, c’est-à-dire dont les génotypes seront croisés pour obtenir de nouveaux phénotypes que l’on espère plus performants. Cette étape est le pendant artificiel de la pression environnementale. La solution la plus simple est de choisir les n meilleurs individus. Cependant, maintenir une certaine diversité est un avantage pour éviter les minimums locaux. Une solution couramment adoptée est donc d’attribuer une probabilité de sélection à chaque individu qui grandira avec son score à l’évaluation. Ainsi une chance de procréer est laissée à tous les individus tout en favorisant les plus aptes. Pour être moins sensible aux éventuelles erreurs de la fonction de fitness et s’épargner un coût de calcul important, une autre solution est la sélection par tournoi où les individus sont comparés par petits groupes dont on garde le meilleur (Filipovi ´c 2012).

Étape 3 : Croisement. Une fois les procréateurs sélectionnés, on procède à leur croisement (cross-over). Leurs génotypes sont alors mélangés à l’aide d’un opérateur de croisement qui produit deux nouveaux génotypes inédits à partir d’une paire de génotypes parents. Par exemple, un opérateur classique dit "croisement à un point" tire un point au hasard dans un génotype et intervertit les gènes des parents entre ce point et le bout de la chaîne. Une variante existe en sélectionnant deux points, comme illustré dans la figure 2.7. En croisant ainsi des individus supposés parmi les meilleurs, on espère aboutir à un nouvel individu combinant les avantages de ses deux parents. Si ce n’est pas le cas, il ne sera sans doute pas gardé lors de la prochaine étape de sélection. Au mécanisme de croisement s’ajoute une probabilité de mutation définie pour chaque gène. Celui-ci peut changer aléatoirement de valeur à chaque fois qu’un nouvel individu est généré. Cela peut permettre l’apparition de nouvelles propriétés phénotypiques qui seront gardées par le processus de sélection si

elles sont profitables, et jetées sinon. Toutefois, si ce taux de mutation est trop important, la conservation des bonnes propriétés déjà acquises est mise en péril.

Figure 2.7 – Opérateurs de croisement pour les algorithmes génétiques.

Étape 4 : Remplacement. Enfin, la dernière étape consiste à remplacer la population cou- rante par la nouvelle génération obtenue par croisement et mutation. Ces quatre étapes sont exécutées en boucle, créant des nouvelles générations dont les meilleurs individus sont de plus en plus adaptés, c’est-à-dire dont les scores sont de plus en plus élevés en regard de la fonction d’évaluation. L’algorithme se termine lorsqu’un critère d’arrêt dépendant du problème est atteint. Dans le cas de l’apprentissage supervisé, cela peut par exemple être la classification sans erreur d’un échantillon de validation par une hypothèse de la génération courante.

Parmi les spécialisations des algorithmes génétiques, on compte l’évolution d’automates qui consiste à utiliser des automates à états finis comme génotypes et d’utiliser des opérations sur les graphes comme opérateurs de mutation, les croisements étant abandonnés (Kauffman et Smith 1986). Plus connue, la programmation génétique (Genetic Programming) propose de produire des programmes à l’aide d’un algorithme génétique. Cela est possible notamment en représentant les programmes sous forme d’arbres en guise de génotypes. Si la grammaire du langage de programmation cible est suffisamment simple, il est possible de s’assurer que les opérations de croisement et de mutation sur un arbre conservent la validité du programme correspondant (McKay et al. 2010).

Une première limite importante de cette approche concerne son applicabilité. En effet, le choix de paramètres comme la taille et la composition de la population initiale, ou encore l’encodage des objets en génotype ne sont pas triviaux. De même, choisir l’opérateur de croisement et le taux de mutation est un enjeu crucial pour la performance de l’algorithme et il est très difficile de le faire a priori. C’est pourquoi les recherches se sont concentrées sur des mécanismes d’adaptation de ces paramètres en cours d’exécution (Kramer 2010). La technique la plus connue, CMA-ES, s’appuie sur l’adaptation de la matrice de co-variance de la distribution de probabilité régissant la mutation (Auger et Hansen 2005). Dans le même ordre d’idée, on parle de coévolution lorsque la fonction de fitness change au cours du temps voire diffère pour chaque individu ou groupe d’individus. Cette approche est utile lorsqu’on cherche à décomposer un problème en parties (Potter et De Jong 2000).

Enfin, pour donner de bons résultats, les algorithmes génétiques ont, entre autres, besoin d’une population suffisamment grande et d’un nombre de générations important. Aussi, ils sont rapidement coûteux en terme de calcul.