Jakie są zalety układania wielu LSTM?

25

Jakie są zalety, dlaczego warto korzystać z wielu LSTM, ułożonych jeden obok drugiego, w sieci głębokiej? Używam LSTM do reprezentowania sekwencji danych wejściowych jako pojedynczego wejścia. Więc kiedy mam tę pojedynczą reprezentację - dlaczego miałbym ją powtórzyć?

Pytam o to, ponieważ widziałem to w programie generowania języka naturalnego.

wordSmith
źródło
1
Czy naprawdę miałeś na myśli LSTM ułożone obok siebie jak w poziomie (wzdłuż kroków czasowych) czy miałeś na myśli ułożone pionowo (wiele komórek LSTM dla każdego kroku czasowego)?
wabbit

Odpowiedzi:

18

Myślę, że masz na myśli pionowo ułożone warstwy LSTM (zakładając, że osie poziome są osią czasu).

W takim przypadku głównym powodem układania LSTM w stos jest umożliwienie większej złożoności modelu. W przypadku prostej sieci przesyłania danych stosujemy warstwy, aby utworzyć hierarchiczną reprezentację funkcji danych wejściowych, która zostanie następnie wykorzystana do wykonania zadania uczenia maszynowego. To samo dotyczy skumulowanych LSTM.

Na każdym kroku LSTM, oprócz cyklicznych danych wejściowych. Jeśli dane wejściowe są już wynikiem warstwy LSTM (lub warstwy przekazywania), bieżący LSTM może utworzyć bardziej złożoną reprezentację funkcji bieżącego wejścia.

Teraz różnica między posiadaniem warstwy przekazywania do przodu między wejściem funkcji a warstwą LSTM i posiadaniem innej warstwy LSTM polega na tym, że warstwa przekazywania dalej (powiedzmy w pełni połączona warstwa) nie otrzymuje informacji zwrotnej z poprzedniego kroku czasowego, a zatem nie może uwzględniać pewnych wzory. Posiadanie LSTM zamiast (np. Za pomocą stosu reprezentacji LSTM) bardziej złożone wzorce wejściowe można opisać na każdej warstwie

Sjoerd
źródło
4
Komórki LSTM w warstwie są już w pełni, cyklicznie połączone ze sobą (wyjścia warstwy mają połączenia ze wszystkimi wejściami tej samej warstwy). Dlatego poszczególne komórki mogą już łączyć funkcje na wyjściach innych komórek, wszystkie w obrębie jednej warstwy. Czy mógłbyś wyjaśnić, dlaczego wiele warstw skutkuje bardziej złożonymi wzorami?
danijar
6

Od 1}:

Chociaż teoretycznie nie jest jasne, jaka jest dodatkowa moc uzyskana przez głębszą architekturę, zaobserwowano empirycznie, że głębokie RNN działają lepiej niż płytsze w niektórych zadaniach. W szczególności Sutskever i wsp. (2014) podają, że 4-warstwowa głęboka architektura była kluczowa dla osiągnięcia dobrej wydajności tłumaczenia maszynowego w środowisku kodera-dekodera. Irsoy i Cardie (2014) również zgłosili lepsze wyniki przejścia z jednowarstwowego BI-RNN do architektury z kilkoma warstwami. Wiele innych prac zgłasza wyniki przy użyciu warstwowych architektur RNN, ale nie porównuje wprost z 1-warstwowymi RNN.

FYI:


Referencje:

Franck Dernoncourt
źródło
2

Od zabawy z LSTM do klasyfikacji sekwencji miało to ten sam efekt, co zwiększenie pojemności modelu w CNN (jeśli jesteś z nimi zaznajomiony). Zdecydowanie zyskujesz, zwłaszcza jeśli nie wykorzystujesz swoich danych.

Oczywiście obosieczny, ponieważ można również dopasować i uzyskać gorszą wydajność. W moim przypadku przeszedłem z 1 LSTM na stos 2 i otrzymałem prawie natychmiastową poprawę.

InKodeWeTrust
źródło