La programmation génétique (GP) est une technique de calcul évolutionnaire qui crée automatiquement des programmes informatiques ou des expressions mathématiques en imitant le processus de sélection naturelle. Les programmes sont représentés sous forme de structures arborescentes et évoluent via des opérateurs de sélection, de croisement et de mutation. Mes recherches sur la GP se sont concentrées sur la GP basée sur la grammaire pour la recherche d'architecture neuronale, la régression symbolique et le domaine plus large de l'apprentissage automatique évolutionnaire.

Fondements de la programmation génétique

GP pour l'apprentissage de fonctions et la régression symbolique

La programmation génétique peut découvrir automatiquement des expressions mathématiques (programmes) qui décrivent un ensemble de données, une tâche connue sous le nom de régression symbolique. Contrairement à d'autres méthodes de régression, la GP produit des expressions interprétables qui peuvent être analysées et validées par des experts du domaine.

La recherche sur la GP pour l'apprentissage de fonctions a examiné comment le choix de l'ensemble de fonctions, de l'ensemble de terminaux et des opérateurs évolutionnaires influence la capacité de la GP à découvrir des expressions compactes et précises à partir de données bruitées. Les sujets incluent le contrôle du gonflement (bloat), la pression de parcimonie et la relation entre la complexité de l'expression et la performance de généralisation.

Représentation et opérateurs de GP
Étude de différentes représentations pour la programmation génétique, incluant les représentations basées sur les arbres, linéaires et basées sur les graphes. Recherche sur les opérateurs de variation (croisement et mutation) qui préservent la sémantique du programme, réduisent le gonflement et améliorent l'efficacité de la recherche. Développement d'opérateurs basés sur la sémantique qui respectent le comportement fonctionnel des programmes plutôt que d'opérer purement sur leur structure syntaxique.

Programmation génétique basée sur la grammaire

Évolution grammaticale
L'évolution grammaticale (GE) est une variante de la GP qui utilise une grammaire formelle (généralement au format BNF) pour spécifier le langage des programmes à faire évoluer. La GE associe un génotype de chaîne binaire ou entière à un phénotype de programme via une dérivation guidée par la grammaire. Cette approche permet de contraindre l'espace de recherche à des programmes syntaxiquement valides et permet l'évolution de programmes dans n'importe quel langage de programmation.
GP basée sur la grammaire pour les réseaux de neurones profonds
Application de la programmation génétique basée sur la grammaire à la conception automatique d'architectures de réseaux de neurones profonds. Une grammaire formelle définit l'espace des architectures de réseau valides, et la programmation génétique explore cet espace pour trouver des architectures optimisées pour des tâches spécifiques telles que la segmentation et la classification d'images.

GP pour la recherche d'architecture neuronale

Conception de réseaux de neurones convolutifs avec la GP
Développement de méthodes de GP basées sur la grammaire pour la conception automatique d'architectures de réseaux de neurones convolutifs. La grammaire encode les choix de conception tels que les types de couches, le nombre de filtres, les tailles de noyau et les motifs de connectivité. La recherche évolutionnaire trouve des architectures qui atteignent une grande précision tout en restant efficaces sur le plan computationnel.
GP dans la conception d'architectures multi-tâches
Recherche sur l'utilisation de la GP au sein de méthodes évolutionnaires pour la conception d'architectures multi-réseaux pour l'apprentissage multi-tâche hétérogène. La GP fournit une représentation flexible pour spécifier comment les tâches partagent les composants des réseaux de neurones, permettant à la recherche évolutionnaire de découvrir des schémas de partage de paramètres efficaces.

Apprentissage automatique évolutionnaire (EML)

EML pour l'apprentissage non supervisé
Contribution au Handbook of Evolutionary Machine Learning : un chapitre dédié aux méthodes évolutionnaires pour les tâches d'apprentissage non supervisé, couvrant les approches évolutionnaires du clustering, de la réduction de dimensionnalité et de la modélisation générative. Le chapitre passe en revue l'état de l'art et identifie les questions de recherche ouvertes dans l'apprentissage non supervisé évolutionnaire.
Approches évolutionnaires dans d'autres optimisations basées sur la recherche
Contribution à l'ouvrage collectif de l'IEEE CIS "Introduction to Computational Intelligence" : un chapitre couvrant d'autres approches d'optimisation basées sur la recherche, incluant la programmation génétique, le recuit simulé, l'optimisation par colonies de fourmis et l'optimisation par essaim de particules, avec un accent sur leurs liens avec le calcul évolutionnaire.

Publications sélectionnées