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
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.