Perché usare la discesa gradiente per la regressione lineare, quando è disponibile una soluzione matematica a forma chiusa?


74

Sto seguendo i corsi di Machine Learning online e ho appreso la Discesa del gradiente per il calcolo dei valori ottimali nell'ipotesi.

h(x) = B0 + B1X

perché dobbiamo usare la pendenza del gradiente se riusciamo a trovare facilmente i valori con la formula seguente? Questo sembra semplice e anche facile. ma GD ha bisogno di più iterazioni per ottenere il valore.

B1 = Correlation * (Std. Dev. of y/ Std. Dev. of x)

B0 = Mean(Y) – B1 * Mean(X)

NOTA: preso come in https://www.dezyre.com/data-science-in-r-programming-tutorial/linear-regression-tutorial

Ho controllato le seguenti domande e per me non era chiaro da capire.

Perché è richiesta la discesa gradiente?

Perché l'ottimizzazione viene risolta con la discesa del gradiente piuttosto che con una soluzione analitica?

Le risposte di cui sopra confrontano GD rispetto all'utilizzo di derivati.


5
Non è necessaria la discesa gradiente per stimare i coefficienti di regressione lineare.
Ripristina Monica

8
@Sycorax "non è necessario" è una dichiarazione forte. Il metodo iterativo può essere utile per dati enormi. Supponiamo che la matrice di dati sia molto grande e non possa adattarsi alla memoria.
Haitao Du,

8
@ hxd1011 Grazie per aver chiarito questa dimensione pratica del problema. Stavo pensando in termini puramente matematici.
Ripristina Monica

Risposte:


90

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.

β=(XX)1XY
XXXXK×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.


17
Ma Ng è una persona di informatica.
ameba dice di reintegrare Monica

21
Per quanto riguarda il tuo commento: Come matematico, ero d'accordo. Ma la mia comprensione ora è che nel moderno machine learning, il metodo di ottimizzazione è intrinsecamente legato all'ottimizzazione dell'obiettivo. Alcune forme di regolarizzazione, come il dropout, sono espresse in modo più chiaro in termini di algoritmo anziché di obiettivo. In breve: se prendi una rete profonda, mantieni la funzione obiettivo ma cambi il metodo di ottimizzazione, potresti ottenere prestazioni molto diverse. In effetti, a volte un miglior ottimizzatore produce risultati peggiori in pratica ...
A. Rex,

14
XXXXβ=Xyβ

3
La soluzione @AnderBiguri con fattorizzazione QR, d'altra parte, è stabile all'indietro, quindi offre una soluzione il più accurata possibile data l'incertezza nei dati di input.
Federico Poloni,

7
β=(XtX)1XtyXtXβ=Xty

21

Innanzitutto, ti consiglio vivamente di leggere i seguenti due post (se non duplicati)

Controlla la risposta di JM in

Quale algoritmo viene utilizzato nella regressione lineare?

Controlla la risposta di Mark (dal punto di vista della stabilità numerica) in

Abbiamo bisogno della discesa del gradiente per trovare i coefficienti di un modello di regressione lineare?


minimize Axb2
2AT(Axb)0
ATAx=ATb

ATAx=ATbminimize Axb2

Confronto con i metodi diretti (dire decomposizione QR / LU ). I metodi iterativi presentano alcuni vantaggi quando disponiamo di una grande quantità di dati o i dati sono molto scarsi.

D'altra parte, credo che uno dei motivi per cui Andrew Ng lo enfatizzi sia perché è un metodo generico (il metodo più utilizzato nell'apprendimento automatico) e può essere utilizzato in altri modelli come la regressione logistica o la rete neurale.


Hai assolutamente ragione. SGD è molto utile durante la gestione di una grande quantità di dati. Il metodo che il Prof Ng sta dimostrando è il più classico e puro. Si dovrebbe partire da quel punto per avere un'idea chiara. Se uno può capirne il motto, allora l'intera stima lineare gli sarà chiara.
Sandipan Karmakar,

1
XTX=xixiTXTXXTyX

6

Sycorax ha ragione a dire che non è necessario scendere in pendenza quando si stima la regressione lineare. Il tuo corso potrebbe utilizzare un semplice esempio per insegnarti la discesa gradiente per prefigurare versioni più complicate.

Una cosa chiara che voglio aggiungere, tuttavia, è che al momento esiste una piccola nicchia di ricerca che prevede di terminare in anticipo la pendenza del gradiente per prevenire l'adattamento eccessivo di un modello.


2
Per una dichiarazione di overfitting, potresti fornire il link? aggiungere il termine di regolarizzazione è meglio che limitare il numero delle iterazioni?
Haitao Du,

Potresti guardare il capitolo 7 di Deep learning di Goodfellow et al, che menziona l'interruzione precoce per prevenire un eccesso di adattamento nelle reti neurali.
Batman,

2
La regolarizzazione mediante arresto anticipato non è affatto una nuova tecnica; è una tecnica ben nota, per esempio, nell'iterazione di Landweber: en.wikipedia.org/wiki/Landweber_iteration
cfh

3

(XTX)1XTy

Il metodo che hai citato, ovvero usando la correlazione, è applicabile solo per un predittore e una quantità di intercettazione. Notare solo il modulo. Quindi, quando il numero di predittori è più di uno in numero, qual è la via d'uscita? Quindi si deve ricorrere ad altri metodi, ovvero l'equazione normale o l'ottimizzazione.

O(N3)NXX

Il mio consiglio è di non limitarsi a risolvere semplicemente un problema. Cerca di capire la teoria. Prof Ng è uno dei migliori professori in questo mondo che insegna gentilmente l'apprendimento automatico in MOOC. Quindi, quando istruisce in questo modo, allora deve avere alcune intenzioni latenti. Spero che non ti dispiaccia per le mie parole.

Ti auguro il meglio.


5
"Inversione di una matrice" NON è fortemente raccomandato. QR è numericamente più stabile per risolvere un sistema lineare.
Haitao Du,

1
Sono d'accordo con l'argomento computazionale. Tuttavia, il sovra o il sottoutilizzo non ha nulla a che fare con l'uso dell'equazione GD rispetto all'equazione normale, ma piuttosto con la complessità del modello (regressione). Entrambi i metodi (GD se funziona correttamente) trovano la stessa soluzione dei minimi quadrati (se esiste) e pertanto sovra o sottoadattano i dati della stessa quantità.
Ruben van Bergen,

2

Primo, sì, la vera ragione è quella data da Tim Atreides; questo è un esercizio pedagogico.

Tuttavia, è possibile, sebbene improbabile, che si voglia fare una regressione lineare su, diciamo, diversi trilioni di punti dati in streaming da un socket di rete. In questo caso, la valutazione ingenua della soluzione analitica sarebbe impossibile, mentre alcune varianti della discesa gradiente stocastica / adattiva converrebbero alla soluzione corretta con un sovraccarico minimo di memoria.

(si potrebbe, per la regressione lineare, riformulare la soluzione analitica come sistema di ricorrenza, ma questa non è una tecnica generale.)


2

Un altro motivo è che la discesa del gradiente è un metodo più generale. Per molti problemi di apprendimento automatico la funzione di costo non è convessa (ad es. Fattorizzazione a matrice, reti neurali), pertanto non è possibile utilizzare una soluzione a forma chiusa. In questi casi la discesa gradiente viene utilizzata per trovare alcuni buoni punti locali ottimali. Oppure, se si desidera implementare una versione online di nuovo, è necessario utilizzare un algoritmo basato sulla discesa gradiente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.