Evolutionary Algorithms
Explore comment les algorithmes évolutionnaires utilisent la sélection naturelle pour résoudre des problèmes d’IA. Apprends à optimiser les hyperparamètres d’Ultralytics YOLO26 et à améliorer les performances du modèle.
Les algorithmes évolutionnaires (EAs) constituent une famille puissante d'algorithmes d'optimisation qui imitent les principes biologiques de la sélection naturelle et de la génétique pour résoudre des problèmes informatiques complexes. Contrairement aux techniques mathématiques traditionnelles qui reposent sur des dérivées fondées sur le calcul différentiel, comme la descente de gradient stochastique (SGD), les EAs sont conçus pour parcourir des espaces de recherche vastes, accidentés ou mal compris. Ils fonctionnent en maintenant une population de solutions potentielles qui se livrent concurrence, se reproduisent et mutent au fil du temps. Cette approche les rend particulièrement efficaces pour les tâches d'intelligence artificielle (AI) où il est difficile de déterminer analytiquement la « meilleure » solution, permettant aux systèmes d'évoluer itérativement vers un résultat optimal.
Inspiration biologique et mécanismes fondamentaux#
Le fonctionnement d'un algorithme évolutionnaire repose sur le concept de la survie du plus apte. Le processus suit un cycle d'opérateurs conçus pour imiter l'évolution génétique naturelle, en affinant progressivement les solutions candidates :
-
Initialisation : Le système génère une population initiale de candidats aléatoires. Dans le contexte de l'apprentissage automatique (ML), ces candidats peuvent représenter différents ensembles de paramètres du modèle.
-
Évaluation de l'aptitude : Chaque candidat est évalué par rapport à un objectif spécifique, appelé fonction d'aptitude. Pour un modèle de vision par ordinateur (CV), cette fonction évalue généralement des métriques telles que l'exactitude ou la précision moyenne (mAP).
-
Sélection : Les candidats ayant les scores d'aptitude les plus élevés sont sélectionnés de manière probabiliste pour servir de parents, afin de garantir la préservation des caractéristiques performantes pour la génération suivante.
-
Reproduction et variation : De nouvelles solutions sont créées par croisement (recombinaison des caractéristiques de deux parents) et par mutation (introduction de changements aléatoires). Cette introduction de diversité génétique est essentielle, car elle empêche l'algorithme de stagner dans un optimum local et l'aide à explorer l'espace de recherche pour atteindre le maximum global.
Applications concrètes dans l'IA#
Les algorithmes évolutionnaires sont polyvalents et ont été appliqués avec succès à divers domaines de l'apprentissage profond (DL) et de l'ingénierie.
Optimisation automatisée des hyperparamètres#
L'une des applications les plus pratiques des EAs est l'optimisation des hyperparamètres. Les réseaux neuronaux modernes nécessitent la configuration de dizaines de paramètres — tels que le taux d'apprentissage, la décroissance des poids et l'impulsion — qui ont un impact significatif sur les performances. Les EAs peuvent automatiser ce processus fastidieux d'essais et d'erreurs en faisant évoluer les paramètres de configuration. Par exemple, la méthode tune() de la bibliothèque Ultralytics utilise un algorithme génétique pour découvrir les meilleurs hyperparamètres d'entraînement pour les modèles YOLO26 sur des jeux de données personnalisés.
Recherche d'architecture neuronale (NAS)#
Les EAs constituent un pilier de la recherche d'architecture neuronale (NAS). Au lieu que des ingénieurs conçoivent manuellement la structure d'un réseau neuronal (NN), un algorithme évolutionnaire peut « faire croître » l'architecture. Il teste différentes combinaisons de couches, de neurones et de connexions, en faisant évoluer des structures efficaces qui équilibrent vitesse et exactitude. Cette technique a permis de créer des backbones très efficaces, tels qu'EfficientNet, optimisés pour des contraintes matérielles spécifiques.
Algorithmes évolutionnaires et intelligence en essaim#
Bien qu'il s'agisse dans les deux cas de stratégies d'optimisation inspirées de la nature, il est utile de distinguer les EAs de l'intelligence en essaim (SI).
- Algorithmes évolutionnaires : reposent sur le changement générationnel. Les individus (solutions) vivent, se reproduisent en fonction de leur aptitude, puis meurent et sont remplacés par leur descendance. Les principaux moteurs sont des opérateurs génétiques tels que la mutation et le croisement.
- Intelligence en essaim : imite les interactions sociales au sein d'un groupe, comme une volée d'oiseaux ou un banc de poissons. Des algorithmes tels que l'optimisation par essaim particulaire (PSO) font intervenir une population d'agents qui se déplacent dans l'espace de recherche et ajustent leur position en fonction de leur propre expérience et de la réussite de leurs voisins, sans remplacement générationnel.
Mettre en œuvre l'optimisation avec Ultralytics#
Les praticiens peuvent exploiter directement des algorithmes génétiques pour optimiser leurs modèles de détection d'objets. La méthode tune d'Ultralytics exécute un processus évolutionnaire qui fait muter les hyperparamètres sur plusieurs générations, en identifiant automatiquement les paramètres offrant les meilleures performances sur tes données de validation.
from ultralytics import YOLO
# Load the standard YOLO26 model
model = YOLO("yolo26n.pt")
# Run hyperparameter tuning using a genetic algorithm approach
# The tuner evolves parameters (lr, momentum, etc.) over 30 generations
model.tune(data="coco8.yaml", epochs=10, iterations=30, plots=False)Ce raffinement automatisé permet aux développeurs d'aller au-delà des conjectures manuelles. Pour les équipes qui développent leurs opérations, la gestion de ces expériences et le suivi de l'évolution des performances des modèles peuvent être simplifiés grâce à l'Ultralytics Platform, qui visualise les métriques d'entraînement et facilite le déploiement des modèles.









