Perché è richiesta la discesa gradiente?


10

Quando possiamo differenziare la funzione di costo e trovare parametri risolvendo equazioni ottenute attraverso una differenziazione parziale rispetto a ciascun parametro e scoprire dove la funzione di costo è minima. Inoltre penso che sia possibile trovare più luoghi in cui i derivati ​​sono zero, quindi possiamo verificare tutti questi posti e trovare minimi globali

perché viene eseguita la discesa gradiente?


2
Come si impostano genericamente le derivate su 0 per una funzione? Con algoritmi, come la discesa del gradiente.
Cliff AB,

3
Puoi pensare alla discesa del gradiente come al metodo usato per risolvere le equazioni a cui ti riferisci. Se sei convinto di poter risolvere genericamente tali equazioni con un'abile manipolazione algebrica, ti invito a provare a farlo per la regressione logistica.
Matthew Drury,



non puoi risolvere tutto analiticamente. Anche se tu potessi, se si dicesse, un numero non numerabile di zeri, allora ci vorresti molto tempo per controllare tutti i punti critici.
Pinocchio,

Risposte:


8

Anche nel caso, per esempio, di modelli lineari, in cui si dispone di una soluzione analitica, potrebbe essere comunque preferibile utilizzare un tale solutore iterativo.

Ad esempio, se consideriamo la regressione lineare, la soluzione esplicita richiede di invertire una matrice con complessità . Ciò diventa proibitivo nel contesto dei big data.O(N3)

Inoltre, molti problemi nell'apprendimento automatico sono convessi, quindi l'uso dei gradienti assicura che arriveremo all'estremo.

Come già sottolineato, esistono ancora rilevanti problemi non convessi, come le reti neurali, in cui i metodi a gradiente (backpropagation) forniscono un risolutore efficiente. Ancora una volta, questo è particolarmente rilevante nel caso dell'apprendimento profondo.


2
Inversione di una matrice è un po 'un pagliaccio qui poiché la decomposizione QR con rotazione parziale è più accurata e più veloce, ma sì, QR è ancora . Sono d'accordo che per sistemi sufficientemente grandi (ad es.> 10.000 variabili) che possono iniziare a diventare un problema. L'approccio moderno e ad alta tecnologia è quindi quello di approssimare la soluzione con metodi iterativi del sottospazio di Krylov (es. Gradiente coniugato, GMRES). O(n3)
Matthew Gunn,

1
Un punto che alcune persone potrebbero trovare confuso è come risolvere un sistema lineare è un problema di ottimizzazione? La risposta ovviamente è che risolvere un sistema lineare può essere riformulato come minimizzare un obiettivo quadratico. Alcuni metodi iterativi per risolvere i sistemi lineari sono più facili da capire dal punto di vista che stanno minimizzando un obiettivo quadratico in modo iterativo. (Ad esempio, il metodo del sottospazio di Krylov coniuga la direzione del gradiente del gradiente si basa sul gradiente ... è vagamente correlato alla discesa del gradiente.)
Matthew Gunn,

12

Non è richiesta la discesa gradiente. Si scopre che la discesa gradiente è spesso un algoritmo di ottimizzazione orribilmente inefficiente! Per i metodi iterativi, è spesso possibile trovare una direzione migliore in cui spostarsi rispetto a dove il gradiente è più ripido.

Questa è una risposta un po 'capovolta. La tua domanda dovrebbe essere davvero: "perché abbiamo bisogno di metodi iterativi?" Per esempio. perché non andare direttamente alla soluzione se il problema è convesso, le condizioni di Slater sono valide e le condizioni del primo ordine sono necessarie e sufficienti per un ottimale? Cioè, quando la soluzione può essere descritta come la soluzione di un sistema di equazioni, perché non semplicemente risolvere il sistema? La risposta è che:

  • Per un problema di ottimizzazione quadratica, la condizione del primo ordine è un sistema di equazioni lineari e possiamo andare quasi direttamente alla soluzione perché i sistemi lineari possono essere risolti in modo efficiente! Noi facciamo utilizziamo le condizioni del primo ordine e risolvere il sistema (ad es. Con decomposizione QR, avvertimento di seguito).
  • Più in generale, tuttavia, le condizioni del primo ordine definiscono un sistema non lineare di equazioni e un sistema non lineare può essere abbastanza difficile da risolvere! In effetti, il modo in cui risolvi spesso un sistema di equazioni non lineari numericamente è che lo riformuli come un problema di ottimizzazione ...
  • Per sistemi lineari estremamente grandi , la soluzione diretta del sistema con decomposizione QR e rotazione parziale diventa impossibile. Cosa fanno le persone?! Metodi Iterativi! (es. metodi iterativi del sottospazio di Krylov ...)

7

Nel calcolo 101 abbiamo imparato come ottimizzare una funzione usando il "metodo analitico": dobbiamo solo ottenere la derivata della funzione di costo e impostare la derivata su 0, quindi risolvere l'equazione. Questo è davvero un problema con i giocattoli e non accadrà quasi mai nel mondo reale.

X7+X3-52+eX+log(X+X2)+1/X=0X=1,4786, ma non conosco la soluzione analitica). Dobbiamo usare alcuni metodi numerici (controlla perché qui sui casi polinomiali il teorema di Abel Ruffin ).

f(X)=X2X=0X=1,1234×10-20

f(X1,X2)=X12+X22+|X1+X2|(1,1)4.0(X1,X2)X1 X2Xy(1,1)(3,3)α=0.001(-0.003,-0.003)1,1(0,997,0,997)


maggiori informazioni possono essere trovate in questo post correlato
Haitao Du,

4

L'approccio che hai citato può essere utilizzato solo per risolvere un insieme di equazioni lineari, ad esempio nel caso della regressione lineare, ma dire per risolvere un insieme di equazioni non lineari, in casi come reti neurali con attivazioni sigmoide, la discesa del gradiente è l'approccio scegliere. Pertanto la discesa del gradiente è un approccio più generico.

Anche per le equazioni lineari, la dimensione delle matrici data dall'insieme di equazioni lineari è enorme e può essere difficile limitare il requisito di memoria.

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.