2014-11-07 12 views
6

In alcune lezioni di apprendimento automatico che ho seguito di recente, ho coperto la discesa del gradiente per trovare la linea di adattamento migliore per la regressione lineare.Perché utilizziamo la discesa del gradiente nella regressione lineare?

In alcune classi di statistiche, ho imparato che possiamo calcolare questa linea utilizzando l'analisi statistica, utilizzando la media e la deviazione standard - this page covers this approach in detail. Perché questa tecnica apparentemente più semplice non è utilizzata nell'apprendimento automatico?

La mia domanda è, la discesa del gradiente è il metodo preferito per il montaggio di modelli lineari? Se è così, perché? Oppure il professore usava semplicemente la discesa del gradiente in un contesto più semplice per introdurre la classe alla tecnica?

risposta

11

L'esempio che hai dato è unidimensionale, che di solito non è il caso in machine learning, in cui hai più funzionalità di input. In tal caso, è necessario invertire una matrice per utilizzare il loro approccio semplice, che può essere difficile o mal condizionato.

In genere il problema è formulato come un problema con un minimo quadrato, che è leggermente più semplice. Esistono solver quadrati minimi standard che potrebbero essere utilizzati al posto della discesa del gradiente (e spesso lo sono). Se il numero di punti dati è molto alto, l'uso di un solver dei minimi quadrati standard potrebbe essere troppo costoso e la discesa del gradiente (stocastica) potrebbe fornire una soluzione altrettanto valida in termini di errore del set di test come soluzione più precisa, con un tempo di esecuzione di ordini di grandezza inferiore (see this great chapter by Leon Bottou)

Se il problema è piccolo e può essere risolto in modo efficiente con un risolutore dei minimi quadrati off-the-shelf, probabilmente non si deve eseguire la discesa del gradiente.

+0

Grazie Anreas, sono d'accordo con te su SGD - Recentemente lo sto implementando su Hadoop per set di formazione più ampi. Non capivo proprio perché avremmo usato un approccio così potente come la discesa del gradiente per un piccolo problema come ad esempio installare un modello lineare semplice, grazie per averlo chiarito. –

1

In sostanza, l'algoritmo di "discesa del gradiente" è una tecnica di ottimizzazione generale e può essere utilizzato per ottimizzare QUALSIASI funzione di costo. Viene spesso utilizzato quando il punto ottimale non può essere stimato in una soluzione di forma chiusa.

Quindi supponiamo di voler ridurre al minimo una funzione di costo. Quello che finisce per accadere nella discesa del gradiente è che partiamo da un punto iniziale casuale e proviamo a spostarci nella "direzione del gradiente" per diminuire la funzione di costo. Ci spostiamo passo dopo passo fino a quando non c'è diminuzione della funzione di costo. In questo momento siamo al punto minimo. Per rendere più facile la comprensione, immagina una ciotola e una palla. Se lasciamo cadere la palla da un punto iniziale sulla ciotola, essa si muoverà fino a quando non si sarà sistemata sul fondo della ciotola.

Poiché la discesa del gradiente è un algoritmo generale, è possibile applicarlo a qualsiasi problema che richiede l'ottimizzazione di una funzione di costo. Nel problema di regressione, la funzione di costo che viene spesso utilizzata è l'errore quadratico medio (MSE). Trovare una soluzione di forma chiusa richiede l'inversione di una matrice che nella maggior parte del tempo è mal condizionata (il suo determinante è molto vicino allo zero e quindi non fornisce una matrice inversa robusta). Per aggirare questo problema, le persone spesso adottano l'approccio di discesa gradiente per trovare la soluzione che non soffre di problemi mal condizionati.

+0

Sina, grazie per la spiegazione, tuttavia capisco perfettamente la discesa del gradiente e il suo vantaggio. La mia domanda era più in giro non è l'utilizzo di questo per il montaggio di un modello lineare semplice, in particolare su un piccolo set che si inserisce nella memoria principale, utilizzando un martello per un chiodo minuscolo? –

+0

Perché non il metodo di Newton allora? –

Problemi correlati