Il motivo principale per cui la discesa gradiente viene utilizzata per la regressione lineare è la complessità computazionale: in alcuni casi è più economico (più veloce) per trovare la soluzione utilizzando la discesa gradiente.
β=(X′X)−1X′Y
X′XX′XK×K
Pertanto, la discesa del gradiente consente di risparmiare molto tempo sui calcoli. Inoltre, il modo in cui viene eseguito consente una banale parallelizzazione, ovvero la distribuzione dei calcoli su più processori o macchine. La soluzione di algebra lineare può anche essere parallelizzata ma è più complicata e ancora costosa.
Inoltre, esistono versioni di discesa gradiente quando si mantiene in memoria solo una parte dei dati, riducendo i requisiti per la memoria del computer. Nel complesso, per problemi molto grandi è più efficiente della soluzione di algebra lineare.
Ciò diventa ancora più importante all'aumentare della dimensionalità, quando si hanno migliaia di variabili come nell'apprendimento automatico.
Nota . Sono rimasto sorpreso da quanta attenzione viene data alla discesa gradiente nelle lezioni di Ng. Trascorre una quantità non banale di tempo a parlarne, forse il 20% dell'intero corso. Per me è solo un dettaglio dell'implementazione, è esattamente come trovi l'ottimale. La chiave sta nel formulare il problema di ottimizzazione e come esattamente lo trovi non essenziale. Non me ne preoccuperei troppo. Lascialo alle persone di informatica e concentrati su ciò che è importante per te come statistico.
Detto questo, devo qualificarmi dicendo che è davvero importante comprendere la complessità computazionale e la stabilità numerica degli algoritmi di soluzione. Continuo a non pensare che tu debba conoscere i dettagli di implementazione e il codice degli algoritmi. Di solito non è il miglior uso del tuo tempo come statistico.
Nota 1 . Ho scritto che devi invertire la matrice per scopi didattici e non è come di solito risolvi l'equazione. In pratica, i problemi di algebra lineare vengono risolti utilizzando una sorta di fattorizzazione come QR, in cui non si inverte direttamente la matrice ma si eseguono altre manipolazioni matematicamente equivalenti per ottenere una risposta. Questo perché l'inversione della matrice è un'operazione costosa e numericamente instabile in molti casi.
Ciò porta un altro piccolo vantaggio dell'algoritmo di discesa gradiente come effetto collaterale: funziona anche quando la matrice di progettazione presenta problemi di collinearità. Il solito percorso di algebra lineare esploderebbe e la discesa del gradiente continuerà anche per i predittori collineari.