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?


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!


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.


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.

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


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ą.


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.


8
Jestem ciekawy. Czy możesz wyjaśnić, dlaczego GRU jest przestarzałą koncepcją?
random_user
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.