Algorithme de Frank-Wolfe

From Wikipedia, the free encyclopedia

L'algorithme de Frank-Wolfe, ou algorithme du gradient conditionnel, est une méthode itérative du premier ordre permettant de résoudre des problèmes d'optimisation convexe contraints à des ensembles compacts. Il a été proposé pour la première fois par Marguerite Frank et Philip Wolfe en 1956[1]. À chaque itération, l'algorithme utilise une direction de descente obtenue en minimisant un développement en série de Taylor au premier ordre de la fonction tout en restant dans le domaine de conraintes. Plusieurs variantes de l'algorithme existent; elles diffèrent notamment par le choix du pas d'optimisation, qui peut dépendre ou non de la fonction à optimiser.

Historique

L'algorithme a été introduit par Marguerite Frank et Philip Wolfe en 1956[1], et a été généralisé par Evgenii S. Levitin et Boris T. Polyak[2].

Présentation du problème

On cherche à minimiser une fonction convexe définie sur une partie compacte et convexe d'un espace vectoriel.


On veut donc trouver tel que .

Algorithme

Il existe de nombreuses variantes de l'algorithme de Frank-Wolfe. Nous en donnons ici une version pour laquelle le pas ne nécessite pas d'information a priori sur la fonction à minimiser.

 Entrée: Fonction , dictionnaire , nombre d'itérations  
 Sortie: Estimateur Initialisation:  (donné ou choisi aléatoirement) 
 Pour   
   Trouver  minimisant 
    
   
 FinPour
 Retourner 

La descente s'effectue donc à chaque itération dans la direction du dictionnaire la plus opposée au gradient.

Choix du pas

Dans l'algorithme ci-dessus, le pas ne dépend que de . Des variantes existent[3], par exemple lorsque est -Lipschitz pour une valeur de connue il est courant de choisir un paramètre dépendant de cette valeur. Une autre alternative, souvent plus coûteuse, consiste à ne pas fixer de pas a priori mais à directement construire .

Utilisation

Cet algorithme est notamment utilisé pour l'apprentissage des réseaux de neurones comme le codage parcimonieux.

Notes et références

Related Articles

Wikiwand AI