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.
classification
neural-networks
deep-learning
lstm
rnn
wordSmith
źródło
źródło
Odpowiedzi:
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
źródło
Od 1}:
FYI:
Referencje:
źródło
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ę.
źródło