Stratégie d'évolution naturelle - Natural evolution strategy

Les stratégies d'évolution naturelle ( NES ) sont une famille d' algorithmes d' optimisation numérique pour les problèmes de boîte noire . Semblables dans l'esprit des stratégies d'évolution , ils mettent à jour de manière itérative les paramètres (continus) d'une distribution de recherche en suivant le gradient naturel vers une plus grande aptitude attendue.

Méthode

La procédure générale est la suivante: la distribution de recherche paramétrée est utilisée pour produire un lot de points de recherche, et la fonction d'aptitude est évaluée à chacun de ces points. Les paramètres de la distribution (qui incluent les paramètres de stratégie ) permettent à l'algorithme de capturer de manière adaptative la structure (locale) de la fonction de fitness. Par exemple, dans le cas d'une distribution gaussienne , celle-ci comprend la moyenne et la matrice de covariance . À partir des échantillons, NES estime un gradient de recherche sur les paramètres vers une plus grande aptitude attendue. NES effectue ensuite une étape d'ascension du gradient le long du gradient naturel , une méthode du second ordre qui, contrairement au gradient simple, renormalise la mise à jour par rapport à l'incertitude. Cette étape est cruciale, car elle évite les oscillations, la convergence prématurée et les effets indésirables provenant d'une paramétrisation donnée. L'ensemble du processus se répète jusqu'à ce qu'un critère d'arrêt soit satisfait.

Tous les membres de la famille NES fonctionnent selon les mêmes principes. Ils diffèrent par le type de distribution de probabilité et la méthode d' approximation du gradient utilisée. Différents espaces de recherche nécessitent des distributions de recherche différentes; par exemple, en faible dimensionnalité, il peut être très avantageux de modéliser la matrice de covariance complète. Dans les dimensions élevées, en revanche, une alternative plus évolutive consiste à limiter la covariance à la diagonale uniquement. De plus, les espaces de recherche hautement multimodaux peuvent bénéficier de distributions plus lourdes (comme Cauchy , par opposition à la Gaussienne). Une dernière distinction apparaît entre les distributions où nous pouvons calculer analytiquement le gradient naturel et les distributions plus générales où nous devons l'estimer à partir d'échantillons.

Rechercher des dégradés

Laissez désigner les paramètres de la distribution de la recherche et la fonction de fitness évaluée à . NES poursuit alors l'objectif de maximiser l' adéquation attendue sous la distribution de recherche

par ascension de gradient . Le dégradé peut être réécrit comme

soit la valeur attendue de fois les dérivés de log- à . En pratique, il est possible d'utiliser l' approximation de Monte Carlo basée sur un nombre fini d' échantillons

.

Enfin, les paramètres de la distribution de recherche peuvent être mis à jour de manière itérative

Ascension de gradient naturel

Au lieu d'utiliser le gradient stochastique simple pour les mises à jour, NES suit le gradient naturel , dont il a été démontré qu'il possède de nombreux avantages par rapport au gradient simple ( vanille ), par exemple:

  • la direction du gradient est indépendante du paramétrage de la distribution de recherche
  • les amplitudes des mises à jour sont automatiquement ajustées en fonction de l'incertitude, accélérant à leur tour la convergence sur les plateaux et les crêtes.

La mise à jour NES est donc

,

où est la matrice d'information de Fisher . La matrice de Fisher peut parfois être calculée exactement, sinon elle est estimée à partir d'échantillons, en réutilisant les log-dérivés .

Mise en forme du fitness

NES utilise la mise en forme de la forme physique basée sur le rang afin de rendre l'algorithme plus robuste et invariant sous des transformations monotones croissantes de la fonction de fitness. À cette fin, la forme physique de la population est transformée en un ensemble de valeurs d' utilité . Soit le i ème meilleur individu. En remplaçant la forme physique par l'utilité, l'estimation du gradient devient

.

Le choix de la fonction d'utilité est un paramètre libre de l'algorithme.

Pseudocode

input: 

1  repeat
   
2     for   do                                              // λ is the population size
       
3         draw sample 
       
4         evaluate fitness 
       
5         calculate log-derivatives 
       
6     end
   
7     assign the utilities                                           // based on rank
   
8     estimate the gradient 
   
9     estimate            // or compute it exactly 
   
10    update parameters                         // η is the learning rate

11 until stopping criterion is met

Voir également

Bibliographie

Liens externes