La descente coordonnée met à jour un paramètre à la fois, tandis que la descente en gradient tente de mettre à jour tous les paramètres à la fois.
Il est difficile de spécifier exactement quand un algorithme fera mieux que l'autre. Par exemple, j'ai été très choqué d'apprendre que la descente coordonnée était à la pointe de la technologie pour LASSO. Et je n'étais pas le seul; voir diapo 17 .
Cela dit, certaines caractéristiques peuvent rendre un problème plus modifiable pour coordonner la descente:
(1) Mises à jour conditionnelles rapides. Si, pour une raison quelconque, le problème permet d'optimiser individuellement très rapidement les paramètres, la descente de coordonnées peut en faire usage. Par exemple, on peut être en mesure de mettre à jour certains paramètres en utilisant uniquement un sous-ensemble des données, ce qui réduit considérablement le coût de calcul de ces mises à jour. Un autre cas est s'il existe une solution de forme fermée pour un paramètre individuel, conditionnelle aux valeurs de tous les autres paramètres.
(2) Modes relativement indépendants pour les paramètres. Si la valeur optimale d'un paramètre est complètement indépendante des autres valeurs des paramètres, alors un tour de descente de coordonnées conduira à la solution (en supposant que chaque mise à jour de coordonnées trouve le mode actuel). D'un autre côté, si le mode pour un paramètre donné dépend très fortement d'autres valeurs de paramètre, la descente de coordonnées est très susceptible de progresser, avec de très petites mises à jour à chaque tour.
Malheureusement, pour la plupart des problèmes, (2) ne tient pas, il est donc rare que la descente de coordonnées fasse bien par rapport aux algorithmes alternatifs. Je crois que la raison pour laquelle il fonctionne bien pour LASSO est qu'il existe de nombreuses astuces que l'on peut utiliser pour appliquer la condition (1).
Pour la descente de gradient, cet algorithme fonctionnera bien si la dérivée seconde est relativement stable, un bon est sélectionné et la hors diagonale de la Hesse est relativement petite par rapport aux entrées diagonales. Ces conditions sont également rares, de sorte qu'il fonctionne généralement moins bien que les algorithmes tels que L-BFGS.α