Quando utilizzare GRU su LSTM?


95

La differenza chiave tra un GRU e un LSTM è che un GRU ha due gate ( reset e update gate) mentre un LSTM ha tre gate (vale a dire input , output e dimenticare gate).

Perché utilizziamo il GRU quando abbiamo chiaramente un maggiore controllo sulla rete attraverso il modello LSTM (dato che abbiamo tre porte)? In quale scenario GRU è preferito rispetto a LSTM?


1
Un GRU è leggermente meno complesso ma è approssimativamente buono come un LSTM dal punto di vista delle prestazioni. Un'implementazione in TensorFlow è disponibile qui: data-blogger.com/2017/08/27/gru-implementation-tensorflow .
www.data-blogger.com

Risposte:


64

GRU è correlato a LSTM in quanto entrambi utilizzano un modo diverso se si attivano le informazioni per evitare il problema del gradiente di scomparsa. Ecco alcuni spunti su GRU vs LSTM-

  • Il GRU controlla il flusso di informazioni come l'unità LSTM, ma senza dover utilizzare un'unità di memoria . Espone semplicemente il contenuto nascosto completo senza alcun controllo.
  • Il GRU è relativamente nuovo e, dal mio punto di vista, le prestazioni sono alla pari con LSTM, ma computazionalmente più efficienti ( struttura meno complessa come sottolineato ). Quindi stiamo vedendo che viene utilizzato sempre di più.

Per una descrizione dettagliata, è possibile esplorare questo documento di ricerca - Arxiv.org . L'articolo spiega tutto in modo brillante.

Inoltre, puoi anche esplorare questi blog per un'idea migliore-

Spero che sia d'aiuto!


1
Oltre alla tua risposta, c'è un bel documento che valuta le prestazioni tra GRU e LSTM e le loro varie permutazioni "Un'esplorazione empirica di architetture di rete ricorrenti" di Google
minerali,

38

* Per completare già ottime risposte sopra.

  • In base alla mia esperienza, i GRU si allenano più velocemente e hanno prestazioni migliori degli LSTM con meno dati di formazione se si sta eseguendo la modellazione del linguaggio (non si è sicuri di altre attività).

  • I GRU sono più semplici e quindi più facili da modificare, ad esempio aggiungendo nuove porte in caso di input aggiuntivo alla rete. È solo meno codice in generale.

  • In teoria, gli LSTM dovrebbero ricordare sequenze più lunghe rispetto alle GRU e superarle in compiti che richiedono la modellizzazione delle relazioni a distanza.

* Alcuni articoli aggiuntivi che analizzano GRU e LSTM.


9

Questa risposta si trova in realtà sul set di dati e sul caso d'uso. È difficile dire definitivamente quale sia la migliore.

  • GRU espone la memoria completa a differenza di LSTM, quindi le applicazioni che fungono da vantaggio potrebbero essere utili. Inoltre, aggiungendo perché usare GRU - è più semplice dal punto di vista computazionale di LSTM poiché ha solo 2 porte e se le sue prestazioni sono alla pari con LSTM, allora perché no?
  • Questo documento dimostra in modo eccellente con i grafici la superiorità delle reti gated su un semplice RNN ma menziona chiaramente che non può concludere quale delle due sia migliore. Quindi, se sei confuso su quale utilizzare come modello, ti suggerirei di allenarti entrambi e di avere la meglio.

8

Unità GRU COMPLETO

c~t=tanh(Wc[Grct1,xt]+bc)

Gu=σ(Wu[ct1,xt]+bu)

Gr=σ(Wr[ct1,xt]+br)

ct=Guc~t+(1Gu)ct1

at=ct

Unità LSTM

c~t=tanh(Wc[at1,xt]+bc)

Gu=σ(Wu[at1,xt]+bu)

Gf=σ(Wf[at1,xt]+bf)

Go=σ(Wo[at1,xt]+bo)

ct=Guc~t+Gfct1

at=Gotanh(ct)

Come si può vedere dalle equazioni, gli LSTM hanno un gate di aggiornamento separato e dimenticano il gate. Ciò rende gli LSTM più sofisticati ma allo stesso tempo anche più complessi. Non esiste un modo semplice per decidere quale utilizzare per il proprio caso d'uso. Devi sempre fare prove ed errori per testare le prestazioni. Tuttavia, poiché il GRU è più semplice dell'LSTM, i GRU impiegheranno molto meno tempo ad allenarsi e saranno più efficienti.

Crediti: Andrew Ng


Nella diapositiva successiva dopo quelle scritte a mano, l'ultima equazione è diversa: . Questa formula è confermata corretta qui . a<t>=Γotanh(c~<t>)
Tom Hale,

1

GRU è migliore di LSTM in quanto è facile da modificare e non richiede unità di memoria, quindi è più veloce da addestrare rispetto a LSTM e offre prestazioni.


12
si prega di supportare la dichiarazione di prestazione con riferimenti equi
Kari,

1

In realtà, la differenza chiave risulta essere più di questo: i perctroni a lungo termine (LSTM) sono costituiti usando gli algoritmi di momentum e discesa del gradiente. Quando riconcili i percettroni LSTM con le loro controparti ricorsive RNNs, ti viene in mente GRU che è in realtà solo un'unità ricorrente generalizzata o Gradient Recurrent Unit (a seconda del contesto) che integra più da vicino gli algoritmi di momentum e discesa del gradiente. Se fossi in te, farei ulteriori ricerche su AdamOptimizers.

A proposito, GRU è un concetto obsoleto. Tuttavia, posso capirti se lo stai cercando se desideri una conoscenza approfondita moderatamente avanzata della TF.


8
Sono curioso. Potresti spiegare perché GRU è un concetto obsoleto?
random_user
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.