GRU, określane również jako Gated Recurrent Unit, zostały wprowadzone w 2014 roku w celu rozwiązania powszechnego problemu znikającego gradientu, z którym borykali się programiści. Wielu uważa GRU za zaawansowaną odmianę LSTM ze względu na podobną konstrukcję i doskonałe wyniki.
Gated Recurrent Units – jak działają?
Jak wspomniano wcześniej, Gated Recurrent Units są zaawansowaną odmianą SRRN (standardowej rekurencyjnej sieci neuronowej). Można się jednak zastanawiać, dlaczego GRU są tak skuteczne. Dowiedzmy się tego.
GRU używają bramek update i reset get do rozwiązania problemu znikającego gradientu w standardowej sieci RNN. Są to zasadniczo dwa wektory, które decydują o rodzaju informacji przekazywanej na wyjście. To, co czyni te wektory wyjątkowymi, to fakt, że programiści mogą je trenować do przechowywania informacji, zwłaszcza tych pochodzących z odległych czasów. Na poniższym diagramie przedstawiono matematykę związaną z tym procesem:
Poniżej znajduje się bardziej szczegółowe omówienie GRU
Jak działają te GRU
Wiele osób często zastanawia się, jak działa Siri czy wyszukiwarka głosowa Google. Odpowiedź jest dość prosta – to rekurencyjna sieć neuronowa. Sieci RNN mają skomplikowane algorytmy, które działają na tych samych zasadach, co neurony w ludzkim mózgu. Algorytm RNN zapamiętuje wszystkie dane wejściowe dzięki pamięci wewnętrznej, co czyni go idealnym rozwiązaniem dla każdego problemu uczenia maszynowego z danymi chronologicznymi.
Chociaż algorytmy RNN są niezwykle wytrzymałe, często borykają się z problemami związanymi z pamięcią krótkoterminową. Mimo że są to długie serie danych, RNN mają problemy z przenoszeniem danych ze starszych etapów do nowszych. Na przykład, jeśli akapit został przetworzony w celu uzupełnienia przewidywań, RNN może być narażona na ryzyko pominięcia istotnych informacji z początku.
Warto również pamiętać, że rekurencyjna sieć neuronowa z propagacją wsteczną boryka się z problemem zanikającego gradientu, w którym gradienty są wartościami wykorzystywanymi do aktualizacji wag systemu neuronowego.
Wyjaśnienie problemów z zanikającym gradientem
Dla tych, którzy się zastanawiają, problemy z zanikającym gradientem występują, gdy gradient ma tendencję do zmniejszania się po propagacji wstecznej w czasie i nie oferuje wartości w procesie uczenia. Dlatego w zarejestrowanych sieciach neuronowych, jeśli poprzednie poziomy uzyskają najmniejszy gradient, ich proces uczenia się zostaje przerwany. Ponieważ te warstwy nie uczą się, RNN nie zapamiętują niczego z dłuższych serii danych i mają problemy z pamięcią krótkotrwałą.
LSTM i GRU są idealnymi rozwiązaniami tego problemu.
Jak GRU rozwiązuje ten problem?
Jak wspomniano wcześniej, GRU, czyli bramkowane jednostki prądowe, są odmianą konstrukcji RNN. Wykorzystują one proces bramkowania do zarządzania i kontrolowania przepływu automatyki między komórkami sieci neuronowej. Jednostki GRU ułatwiają wychwytywanie zależności bez ignorowania informacji z przeszłości z ogromnych porcji danych sekwencyjnych.
GRU osiąga to wszystko dzięki wykorzystaniu bramek, które pomagają rozwiązać problemy znikającego/wypływającego gradientu, często spotykane w tradycyjnych zarejestrowanych sieciach neuronowych. Bramki te są pomocne przy kontrolowaniu informacji, które mają być zachowywane lub odrzucane w każdym kroku. Warto również pamiętać, że bramkowane jednostki rekurencyjne korzystają z bramek resetowania i aktualizacji. Oto ich omówienie.
Funkcja bramki aktualizującej
Główną funkcją bramki aktualizacji jest określenie idealnej ilości wcześniejszych informacji, które są ważne dla przyszłości. Jednym z głównych powodów, dla których funkcja ta jest tak ważna, jest to, że model może kopiować każdy szczegół z przeszłości, aby wyeliminować problem zanikającego gradientu.
Funkcja bramki resetującej
Głównym powodem, dla którego bramka resetująca jest tak ważna, jest to, że określa ona, jak wiele informacji powinno być ignorowanych. Bramkę resetowania można porównać do bramki zapominania LSTM, ponieważ ma ona tendencję do klasyfikowania niepowiązanych danych, po czym model ignoruje je i postępuje bez nich.
Co odróżnia GRU od LSTM?
LSTM, przez wielu nazywana również pamięcią długotrwałą krótkotrwałą, jest sztuczną architekturą sieci RNN, często wykorzystywaną w głębokim uczeniu. Sieci z pamięcią długotrwałą nadają się do prognozowania, klasyfikowania i przetwarzania danych na podstawie ciągu czasowego. Dzieje się tak dlatego, że zawsze istnieje możliwość wystąpienia luk w niezidentyfikowanych okresach w ciągu istotnych zdarzeń występujących w ciągach czasowych.
W 2014 roku wprowadzono bramkowane jednostki rekurencyjne w celu rozwiązania problemów z gradientem, z którymi borykały się sieci RNN. GRU i LSTM mają wiele wspólnych właściwości. Na przykład oba te algorytmy wykorzystują metodę bramkowania do zarządzania procedurami zapamiętywania. Mimo to GRU nie są tak złożone jak LSTM, a ich obliczenie nie zajmuje zbyt wiele czasu.
Istnieje kilka różnic między LSTM a GRU, ale najważniejsza z nich polega na tym, że pamięć długotrwała krótkotrwała ma trzy bramki wejściowe: zapomnij, wyjście i wejście. Z drugiej strony, w GRU są tylko dwie bramki: update i reset. Ponadto GRU nie są zbyt skomplikowane, a głównym powodem tego jest mniejsza liczba bramek w porównaniu z LSTM.
Dlaczego GRU są lepsze
Jednostki GRU są uważane za lepsze od LSTM, ponieważ ich modyfikacja jest stosunkowo prosta, gdyż nie wymagają one jednostek pamięci. Dzięki temu proces uczenia GRU jest znacznie szybszy niż LSTM. Na GRU często polega się w przypadku małych serii danych. Jednak w przypadku dużych serii danych preferowanym wyborem są moduły LSTM.
Nie trzeba dodawać, że GRU i LSTM są potrzebne w wielu skomplikowanych dziedzinach, takich jak rozumienie maszyn, przewidywanie cen akcji, analiza nastrojów, synteza mowy, rozpoznawanie mowy, tłumaczenie maszynowe i wiele innych.
Gated Recurrent Units są istotną częścią nauki o danych, a poznanie ich jest niezbędne, aby móc je odpowiednio wykorzystać. Ze względu na zdolność do rozwiązywania problemu znikającego gradientu, jednostki GRU okazały się wybawieniem w świecie nauki o danych, a programiści szkolą się i właściwie wykorzystują je w skomplikowanych scenariuszach.