La discesa coordinata aggiorna un parametro alla volta, mentre la discesa gradiente tenta di aggiornare tutti i parametri contemporaneamente.
È difficile specificare esattamente quando un algoritmo farà meglio dell'altro. Ad esempio, sono rimasto molto scioccato nell'apprendere che la discesa coordinata era all'avanguardia per LASSO. E non ero il solo; vedere la diapositiva 17 .
Detto questo, ci sono alcune caratteristiche che possono rendere un problema più modificabile per coordinare la discesa:
(1) Aggiornamenti condizionali rapidi. Se, per qualche motivo, il problema consente di ottimizzare i parametri individualmente molto rapidamente, la discesa delle coordinate può farne uso. Ad esempio, si potrebbe essere in grado di aggiornare determinati parametri utilizzando solo un sottoinsieme dei dati, riducendo notevolmente il costo computazionale di questi aggiornamenti. Un altro caso è se esiste una soluzione in forma chiusa per un singolo parametro, subordinata ai valori di tutti gli altri parametri.
(2) Modalità relativamente indipendenti per i parametri. Se il valore ottimale di un parametro è completamente indipendente dagli altri valori dei parametri, un giro di discesa delle coordinate porterà alla soluzione (supponendo che ciascun aggiornamento di coordinate trovi la modalità corrente). D'altra parte, se la modalità per un dato parametro è fortemente dipendente da altri valori di parametro, è molto probabile che la discesa delle coordinate proceda con il pollice, con aggiornamenti molto piccoli ad ogni giro.
Sfortunatamente, per la maggior parte dei problemi, (2) non regge, quindi è raro che la discesa delle coordinate sia ben comparata con algoritmi alternativi. Credo che la ragione per cui funziona bene per LASSO sia che ci sono molti trucchi che si possono usare per mettere in atto la condizione (1).
α