La pendenza del gradiente è centrale per ogni ottimizzatore?


Risposte:


28

No. La discesa del gradiente viene utilizzata negli algoritmi di ottimizzazione che utilizzano il gradiente come base del movimento del passo. Adam, Adagrade RMSProptutti usano una qualche forma di discesa gradiente, tuttavia non compongono tutti gli ottimizzatori. Gli algoritmi evolutivi come l' ottimizzazione dello sciame di particelle e gli algoritmi genetici sono ispirati ai fenomeni naturali non usano i gradienti. Altri algoritmi, come l'ottimizzazione bayesiana , traggono ispirazione dalle statistiche.

Dai un'occhiata a questa visualizzazione dell'ottimizzazione bayesiana in azione: Ottimizzazione bayesiana in azione

Esistono anche alcuni algoritmi che combinano concetti di ottimizzazione evolutiva e basata sul gradiente.

Gli algoritmi di ottimizzazione basati su derivati ​​non possono essere particolarmente utili in funzioni di costo non convesse irregolari, funzioni di costo non differenziabili o funzioni di costo con una derivata sinistra o destra diversa .

Per capire perché si può scegliere un algoritmo di ottimizzazione basato su non derivati. Dai un'occhiata alla funzione benchmark di Rastrigin . L'ottimizzazione basata sul gradiente non è adatta per l'ottimizzazione delle funzioni con così tanti minimi locali.

Funzione benchmark di Rastrigin


Grazie mille.
Ho adorato la

8

Secondo il titolo:
No. Solo tipi specifici di ottimizzatori si basano sulla discesa del gradiente. Un semplice controesempio è quando l'ottimizzazione è su uno spazio discreto in cui il gradiente non è definito.

Secondo il corpo:
Sì. Adam, Adagrad, RMSProp e altri ottimizzatori simili (Nesterov, Nadam, ecc.) Stanno tutti cercando di proporre una dimensione del passo adattiva (tasso di apprendimento) per la discesa del gradiente per migliorare la velocità di convergenza senza sacrificare le prestazioni (portando ad un minimo locale minimo / massimo).

Vale la pena notare che ci sono anche metodi di Newton, e allo stesso modo metodi quasi-Newton, che funzionano con la derivata del secondo ordine della funzione di perdita (la pendenza del gradiente funziona con la derivata del primo ordine). Questi metodi hanno perso il compromesso della velocità-scalabilità a causa della discesa gradiente a causa dell'elevato numero di parametri del modello in problemi pratici.

Alcune note extra

  1. La forma della funzione di perdita dipende sia dai parametri che dai dati del modello, quindi la scelta del metodo migliore dipende sempre dalle attività e richiede prove ed errori.

  2. La parte stocastica della discesa del gradiente si ottiene utilizzando un batch di dati anziché i dati completi. Questa tecnica è parallela a tutti i metodi citati, il che significa che tutti possono essere stocastici (utilizzando un batch di dati) o deterministici (utilizzando tutti i dati).

  3. La discesa del gradiente proiettata viene utilizzata quando alcune regioni di parametri sono impossibili (non valide, non consentite), quindi riportiamo (proiettiamo) un parametro in una regione fattibile quando si passa a una non fattibile. Ad esempio, supponiamo che lo consentiamo solow21, quando il parametro passa a (0,1.1), lo riportiamo a (0,1), o (0.43,0.9)o alcuni altri punti fattibili a seconda della traiettoria e del metodo specifico. Questa tecnica è anche in parallelo ai metodi citati, avremmo potuto proiettare Adam stocastico .


3

La risposta alla domanda potrebbe essere no. Il motivo è semplicemente dovuto ai numerosi algoritmi di ottimizzazione disponibili, ma sceglierne uno dipende fortemente dal contesto e dal tempo a disposizione per l'ottimizzazione. Ad esempio, genetico algoritmo è un noto approccio di ottimizzazione che non ha alcuna pendenza al suo interno. Ci sono anche altri approcci come il backtracking in alcuni contesti. Tutti possono essere usati che non sfruttano la discesa gradiente passo dopo passo.

D'altra parte, per attività come la regressione, è possibile trovare forme vicine per risolvere il problema per trovare gli estremi, ma il punto è che, a seconda dello spazio delle caratteristiche e del numero di input, è possibile scegliere l'equazione in forma stretta o il gradiente discesa per ridurre il numero di calcoli.

Mentre ci sono così tanti algoritmi di ottimizzazione, nelle reti neurali gli approcci basati sulla discesa del gradiente sono usati di più per diversi motivi. Prima di tutto, sono molto veloci. Nell'apprendimento profondo, è necessario fornire così tanti dati che non possono essere caricati contemporaneamente nella memoria. Di conseguenza, è necessario applicare metodi di gradiente batch per l'ottimizzazione. È un po 'statistico, ma puoi considerare che ogni campione che porti alla tua rete può avere una distribuzione approssimativamente simile ai dati reali e può essere abbastanza rappresentativo da trovare un gradiente che può essere vicino al gradiente reale della funzione di costo che dovrebbe essere costruito utilizzando tutti i dati in mano.

Secondo, la complessità di trovare gli estremi usando le matrici e il loro contrario è O(n3) per una semplice attività di regressione che i parametri possono essere trovati usando w=(XtX)-1(Xty). Si scopre che i semplici metodi basati sul gradiente possono avere prestazioni migliori. Va anche detto che nel primo caso, è necessario portare i dati contemporaneamente in memoria, il che non è possibile nelle occasioni in cui si affrontano attività relative ai big data.

Terzo, ci sono problemi di ottimizzazione che non hanno necessariamente una soluzione in forma ristretta. La regressione logistica è una di queste.


3

Bene, hai scelto degli ottimizzatori che vengono utilizzati nelle reti neurali, quegli ottimizzatori usano algoritmi basati sul gradiente. La maggior parte delle volte gli algoritmi basati sul gradiente vengono utilizzati nelle reti neurali. Perché? Bene, preferiresti provare a trovare il minimo conoscendo la pendenza di una curva o senza conoscerla? Quando non è possibile calcolare il gradiente, si tornerà all'ottimizzazione senza derivati . Detto questo, ci sono casi in cui anche se si hanno informazioni sul gradiente, è meglio usare un metodo privo di gradiente. Questo è generalmente il caso di funzioni che hanno molti minimi locali. Algoritmi basati sulla popolazione come strategie evolutive e algoritmi genetici hanno il sopravvento qui. E c'è anche il ramo dell'ottimizzazione combinatoria in cui viene utilizzato un insieme completamente diverso di strumenti.

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.