Robocikowo>ROBOCIKOWO

Sieci neuronowe od podstaw do nowoczesnej AI · Sekwencje: RNN, LSTM i GRU

GRU: uproszczony wariant LSTM

Sekwencje: RNN, LSTM i GRU

Wprowadzenie

GRU (Gated Recurrent Unit) to architektura zaproponowana przez Kyunghyun Cho et al. w 2014 ("Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation") jako uproszczenie LSTM. Główna idea: zamiast 3 bramek + osobnego cell state, mamy 2 bramki (reset r_t i update z_t) oraz pojedynczy hidden state h_t pełniący rolę i pamięci, i outputu. Update gate z_t to "coupled" forget+input gate: h_t = (1-z_t) ⊙ h_{t-1} + z_t ⊙ h̃_t — gdy z_t=0, zachowujemy stary stan; gdy z_t=1, przyjmujemy nowy kandydat. Reset gate r_t kontroluje ile poprzedniego stanu wpływa na kandydata: h̃_t = tanh(W_h·[r_t ⊙ h_{t-1}, x_t] + b_h). Dla r_t=0 kandydat ignoruje historię (przydatne dla zaczynania nowej sekwencji), dla r_t=1 normalnie ją uwzględnia. Zysk: 3× macierze wag zamiast 4× (25% mniej parametrów), brak osobnego cell state (mniej stanu do propagacji), prostsza implementacja. Koszt: brak output gate (każdy aspekt h_t jest emitowany), brak peephole, ograniczenia wyrazistości w niektórych zadaniach (Weiss, Goldberg, Yahav 2018 pokazali że LSTM > GRU dla counting tasks). Empirycznie Chung et al. 2014 ("Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling") pokazali że LSTM i GRU dają porównywalne wyniki na większości zadań — GRU wygrywa szybkością treningu i mniejszym memory footprint, LSTM wygrywa gdy zadanie wymaga precyzyjnej kontroli emisji (selektywny output). W praktyce GRU jest dziś preferowany w mniejszych modelach (mobile, IoT, streaming), LSTM w większych encoderach.