10

Concevoir un plan d'expérience d'optimisation bi-niveau

AI999第5课:方法演化:从优化解到优化算法本身
00:00

Le plan d'expérience d'optimisation bi-niveau doit répondre à une question précise :quelle valeur donner au facteur de mutation F de l'évolution différentielle (DE). Sa démarche ne consiste pas à poursuivre le réglage manuel, mais à élever F du statut d'hyperparamètre fixe à celui d'objet évolutif de la boucle externe, en considérant « exécuter une tâche de résolution DE avec un certain réglage de F » comme leprocessus d'évaluation de la boucle interne; la boucle externe met à jour la configuration en fonction des performances de la boucle interne. Ce plan fonctionne parce qu'il repose sur le socle de calcul moderne d'EvoX : populations, résultats d'évaluation et états d'algorithme sont organisés entenseurscalculables en bloc, ce qui permet aux configurations candidates d'être mutées et évaluées par lots et d'entrer dans le graphe de calcul pour bénéficier des optimisations de compilation, puis d'être distribuées par le planificateur Runtimevers les GPU, les accélérateurs ou les clusters distribués, compressant ainsi le long cycle expérimental série en une fenêtre temporelle acceptable.

Plan d'expérience d'optimisation bi-niveauBoucle externe : évolution de la stratégie F · Boucle interne : évaluation des performances de la tâche DEÉvaluation par lots sous forme de tenseurs · Distribution RuntimeFBoucle externeÉvolution de la stratégie F, mise à jour de la configuration à chaque génération1Encodage du génotype FConstante / par phases / fonction de planification2Sélection · Mutation · Croisement · Mise à jourItération de la population externe génération par génération, mise à jour de la configuration F3Agrégation de la fitness externeMoyenne / Médiane / Pénalité de varianceDETâche interneÉvaluation des performances de DE avec ce réglage de F1Fixer le benchmark, la dimension et le jeu de grainesVerrouiller la structure DE, ne faire varier que le F transmis par la boucle externe2Exécution DE + évaluation par lots sur GPUDistribution parallèle des configurations candidates sous forme de tenseurs3Synthèse des indicateursMeilleure valeur / Convergence / Taux de réussite / VarianceMappage de configurationGénotype → F à l'exécutionIndicateurs → Fitness externeRetour de tâcheBoucle fermée bi-niveauChamps obligatoires du planJournaux obligatoires : Graine · Budget · ID de tâche · Matériel · Condition d'arrêtObjectif de la tâche interneBenchmark · Budget · Jeu de grainesObjet de stratégie externeConstante · Par phases · ÉtatMode de mappage de FExplicite · ReproductibleIndicateurs d'évaluationMoyenne · Quantile · HypervolumeParallélisme et budgetÉvaluation par lots sur GPURéférence et ablationF fixe = 0.5DE adaptatif classique

Tâche interne : transformer les performances en signal comparable

La boucle interne est uneexpérience reproductible. On choisit d'abord une tâche d'optimisation ou un ensemble de fonctions de référence, puis on verrouille entièrement la structure principale de DE, la dimension, le budget d'évaluation et le jeu de graines aléatoires — la seule quantité qui varie est la configuration F transmise par la boucle externe. Chaque exécution doit enregistrer : la meilleure valeur, la vitesse de convergence (nombre de générations nécessaires pour atteindre le seuil), le taux de réussite, la violation des contraintes, les indicateurs multi-objectifs (comme l'hypervolume) et la diversité des candidats. Ces enregistrements constituent toute l'information que la boucle externe peut « voir », et la seule base sur laquelle elle juge de la qualité. L'évaluation s'exécute par lots sous forme de tenseurs, une même grappe de candidats partageant un graphe de calcul, ce qui évite le coût d'une évaluation sérielle individu par individu.

Objet de stratégie externe : F n'est plus une constante

La boucle externe ne recherche pas une valeur numérique, mais une stratégie F. Les encodages courants sont de trois types : F constante ; constante par phases, par exemple le gène [F1, F2, F3] commuté selon des intervalles de générations ; une fonction de planification contrôlée par un petit nombre de gènes, déclenchant différents F selon le taux de réussite courant, la variance de la population ou la proportion de générations. Pour un encodage de type stratégie, outre les gènes eux-mêmes, il faut préciser les caractéristiques d'entrée et les règles de sortie, sinon le même segment de gènes produira des résultats totalement différents selon l'implémentation.

Mode de mappage : du génotype à la configuration d'exécution

Le mappage du génotype de la boucle externe vers la configuration d'exécution de la boucle interne doit êtreexplicite et reproductible. Par exemple, le gène [Fdébut, Ffin, décroissance] se mappe vers une planification décroissante selon les générations : F(t) = Fdébut + (Ffin − Fdébut) × e^(−décroissance × t / T), où t est la génération courante et T le nombre total de générations ; le gène [F1, F2, F3] se mappe vers une commutation en trois segments constants. Un même génotype doit toujours se mapper vers la même configuration d'exécution, sinon les « bons gènes » appris par la boucle externe sont inexplicables et ne peuvent pas être transférés à de nouvelles tâches.

Processus en boucle fermée et journaux obligatoires

La boucle complète est la suivante : la population externe génère un lot de configurations F → le planificateur Runtime distribue en parallèle les tâches DE internes par lots sous forme de tenseurs → évaluation par lots sur GPU → synthèse des indicateurs → sélection, mutation, croisement et mise à jour de la boucle externe → passage au tour suivant. On reprend ici l'organisation en couches d'EvoX : la couche algorithme porte l'évolution externe et la logique DE interne, les modules de problème fournissent les tâches de référence, le planificateur Runtime se charge de distribuer les calculs par lots vers les GPU ou les clusters distribués, et les modules de surveillance récupèrent les indicateurs. La boucle fermée doit laisser des enregistrements rejouables : graine aléatoire, budget d'évaluation, ID de tâche, modèle de matériel et condition d'arrêt. Toute conclusion de « victoire de la boucle externe » doit pouvoir être reproduite dans les mêmes conditions.

Conditions aux limites et référence : triple protection

Protection contre le bruit :Lorsque l'évaluation interne est très fluctuante, le résultat d'une seule exécution n'est pas fiable ; il faut répéter les exécutions indépendantes et rapporter les intervalles de confiance. La fitness peut être agrégée par moyenne, médiane ou quantile le plus défavorable, tout en séparant les tâches d'entraînement et de validation, afin d'éviter que la boucle externe ne s'ajuste qu'à quelques graines chanceuses.Protection contre les coûts :Lorsque les tâches internes sont coûteuses, on effectue d'abord un pré-tri avec des modèles de faible fidélité ou des évaluations substitutives, puis on réévalue à haute fidélité un petit nombre de candidats.Protection par la référence :F fixe = 0.5 et le DE adaptatif classique doivent être comparés sur un pied d'égalité, et une expérience d'ablation doit confirmer que le gain provient de l'évolution externe elle-même, et non d'un plus grand nombre d'évaluations. Si l'espace de recherche externe est trop restreint, l'optimisation bi-niveau dégénère en réglage manuel ; il faut alors élargir l'espace d'encodage plutôt que d'augmenter simplement le budget.