Kiedy używać GRU przez LSTM?

95

Kluczowa różnica między GRU a LSTM polega na tym, że GRU ma dwie bramki (bramki resetowania i aktualizacji ), podczas gdy LSTM ma trzy bramki (mianowicie bramki wejścia , wyjścia i zapomnienia ).

Dlaczego korzystamy z GRU, skoro mamy wyraźniejszą kontrolę nad siecią dzięki modelowi LSTM (ponieważ mamy trzy bramki)? W którym scenariuszu preferowana jest GRU niż LSTM?

Sayali Sonawane
źródło
1
GRU jest nieco mniej skomplikowany, ale jest mniej więcej tak dobry jak LSTM pod względem wydajności. Implementacja w TensorFlow znajduje się tutaj: data-blogger.com/2017/08/27/gru-implementation-tensorflow .
www.data-blogger.com

Odpowiedzi:

64

GRU jest związane z LSTM, ponieważ oba wykorzystują inny sposób, jeśli bramkowanie informacji, aby zapobiec problemowi znikania gradientu. Oto niektóre kluczowe punkty dotyczące GRU vs. LSTM-

  • GRU kontroluje przepływ informacji, takich jak jednostka LSTM, ale bez konieczności korzystania z jednostki pamięci . Po prostu ujawnia całą ukrytą zawartość bez żadnej kontroli.
  • GRU jest stosunkowo nowy i z mojego punktu widzenia wydajność jest na równi z LSTM, ale bardziej wydajna obliczeniowo ( mniej złożona struktura, jak wskazano ). Widzimy więc, że jest coraz częściej wykorzystywany.

Szczegółowy opis można znaleźć w tym dokumencie badawczym - Arxiv.org . Artykuł doskonale to wszystko wyjaśnia.

Ponadto możesz przeglądać te blogi, aby uzyskać lepszy pomysł-

Mam nadzieję, że to pomoże!

Abhishek Jaiswal
źródło
1
Oprócz twojej odpowiedzi jest miły artykuł oceniający wydajność między GRU i LSTM i ich różnymi permutacjami „Empiryczna eksploracja powtarzających się architektur sieciowych” przez Google
minerały
38

* Aby uzupełnić już świetne odpowiedzi powyżej.

  • Z mojego doświadczenia wynika , że GRU trenują szybciej i osiągają lepsze wyniki niż LSTM przy mniejszej ilości danych szkoleniowych, jeśli wykonujesz modelowanie języka (nie jestem pewien co do innych zadań).

  • GRU są prostsze, a zatem łatwiejsze do modyfikacji, na przykład dodając nowe bramki w przypadku dodatkowego wejścia do sieci. Ogólnie jest to po prostu mniej kodu.

  • LSTM powinny teoretycznie pamiętać dłuższe sekwencje niż GRU i przewyższać je w zadaniach wymagających modelowania relacji na duże odległości.

* Niektóre dodatkowe dokumenty analizujące GRU i LSTM.

minerały
źródło
9

Ta odpowiedź w rzeczywistości leży w zestawie danych i przypadku użycia. Trudno jednoznacznie stwierdzić, co jest lepsze.

  • GRU udostępnia całą pamięć w przeciwieństwie do LSTM, więc aplikacje, które działają jak przewaga, mogą być pomocne. Ponadto, dodając do tego, dlaczego używać GRU - jest obliczeniowo łatwiejszy niż LSTM, ponieważ ma tylko 2 bramki, a jeśli jego wydajność jest na równi z LSTM, to dlaczego nie?
  • Ten artykuł doskonale pokazuje na wykresach wyższość bramkowanych sieci nad prostym RNN, ale wyraźnie wspomina, że ​​nie można stwierdzić, które z nich są lepsze. Tak więc, jeśli jesteś zdezorientowany co do tego, którego użyć jako modelu, proponuję ci trenować oba, a następnie uzyskać lepsze z nich.
Hima Varsha
źródło
8

FULL GRU Unit

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

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

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

ct=Guc~t+(1Gu)ct1

at=ct

Jednostka 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)

Jak widać z równań, LSTM mają osobną bramkę aktualizacji i bramę zapomnienia. To wyraźnie czyni LSTM bardziej wyrafinowanymi, ale jednocześnie bardziej złożonymi. Nie ma prostego sposobu, aby zdecydować, którego użyć dla konkretnego przypadku użycia. Zawsze musisz wykonać próbę i błąd, aby przetestować wydajność. Ponieważ jednak GRU jest prostsze niż LSTM, treningi zajmują znacznie mniej czasu i są bardziej wydajne.

Kredyty: Andrew Ng

balboa
źródło
a<t>=Γotanh(c~<t>)
1

GRU jest lepszy niż LSTM, ponieważ jest łatwy do modyfikacji i nie wymaga jednostek pamięci, dlatego jest szybszy w trenowaniu niż LSTM i daje zgodnie z wydajnością.

Vivek Khetan
źródło
12
proszę poprzeć oświadczenie o wydajności uczciwymi referencjami
Kari
1

Właściwie kluczowa różnica wydaje się być czymś więcej: perceptrony długookresowe (LSTM) są tworzone przy użyciu algorytmów pędu i gradientu gradientu. Po uzgodnieniu perceptronów LSTM z ich rekurencyjnymi odpowiednikami RNN, pojawia się GRU, który jest tak naprawdę tylko uogólnioną jednostką rekurencyjną lub jednostką gradientu rekurencyjnego (w zależności od kontekstu), która ściślej integruje algorytmy spadku i pędu. Gdybym to Ty, zrobiłbym więcej badań nad AdamOptimizerami.

Nawiasem mówiąc, GRU jest przestarzałą koncepcją. Rozumiem jednak, że badasz go, jeśli chcesz umiarkowanie zaawansowanej dogłębnej wiedzy na temat TF.

Andre Patterson
źródło
8
Jestem ciekawy. Czy możesz wyjaśnić, dlaczego GRU jest przestarzałą koncepcją?
random_user