Przesuwne okno prowadzi do przeregulowania w LSTM?


15

Czy zmieści się mój LSTM, jeśli będę go trenował przy użyciu okna przesuwnego? Dlaczego ludzie nie używają go do LSTM?

W uproszczonym przykładzie załóżmy, że musimy przewidzieć kolejność znaków:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Czy to źle (czy lepiej?), Jeśli nadal trenuję mój LSTM z następującymi minibatchem:

A B C D E F G H I J K L M N, backprop, erase the cell

B C D E F G H I J K L M N O, backprop, erase the cell

 .... and so on, shifting by 1 every time?

Wcześniej zawsze trenowałem to jako:

A B C D E F G H I J K L M N,  backprop, erase the cell

O P Q R S T U V W X Y Z,  backprop, erase the cell

Czy zamiast przesuwać się o jeden, lepiej byłoby przesunąć okno o 2 wpisy, itp.? Co to by znaczyło (pod względem precyzji / nadmiernego dopasowania)?


Ponadto, jeśli miałbym zastosować podejście polegające na przesuwaniu okien w sieci feed-forward, czy spowodowałoby to nadmierne dopasowanie? Zakładam, że tak, ponieważ sieć jest bardzo narażona na te same regiony informacyjne. Na przykład jest narażonyE F G H I J K na długi czas.


Edytować:

Pamiętaj, że stan komórki jest usuwany między partiami treningowymi, więc LSTM będzie miał wtedy „młotek do głowy”. Nie można zapamiętać, co było przed OPQRSTUVWXYZ. Oznacza to, że LSTM nie jest w stanie nigdy dowiedzieć się, że „O” następuje po „M”.

Pomyślałem więc (więc całe moje pytanie), dlaczego nie dać mu pośredniej (nakładającej się) partii pomiędzy ... a w takim razie dlaczego nie zastosować wielu nakładających się minibatek - dla mnie zapewniłoby to płynniejsze szkolenie? Ostatecznie oznaczałoby to przesuwane okno dla LSTM.


Kilka przydatnych informacji, które znalazłem po odpowiedzi, zostało zaakceptowanych:

stąd

Pierwsze słowo w tłumaczeniu na angielski jest prawdopodobnie silnie skorelowane z pierwszym słowem zdania źródłowego. Ale to oznacza, że ​​dekoder musi wziąć pod uwagę informacje sprzed 50 kroków, a informacje te muszą być w jakiś sposób zakodowane w wektorze. Wiadomo, że powtarzające się sieci neuronowe mają problemy z radzeniem sobie z takimi zależnościami dalekiego zasięgu. Teoretycznie architektury takie jak LSTM powinny być w stanie sobie z tym poradzić, ale w praktyce zależności dalekiego zasięgu są nadal problematyczne.

Na przykład naukowcy odkryli, że odwrócenie sekwencji źródłowej (podawanie jej wstecz do enkodera) daje znacznie lepsze wyniki, ponieważ skraca ścieżkę od dekodera do odpowiednich części enkodera. Podobnie dwukrotne wprowadzenie sekwencji wejściowej wydaje się również pomagać sieci w lepszym zapamiętywaniu rzeczy.Na przykład, jeśli jednym z przykładów szkolenia jest „John poszedł do domu”, podałbyś „John poszedł do domu John poszedł do domu” jako jeden sygnał wejściowy.

Edytuj po zaakceptowaniu odpowiedzi:

Kilka miesięcy później jestem bardziej skłonny do stosowania okna przesuwnego, ponieważ lepiej wykorzystuje dane. Ale w takim przypadku prawdopodobnie nie chcesz trenować BCDEFGHIJKLMNO zaraz po ABCDEFGHIJKLMNO. Zamiast tego przetasuj przykłady, aby stopniowo i równomiernie „ wkleić ” wszystkie informacje do LSTM. Daj mu HIJKLMNOPQRSTU po ABCDEFGHIJKLMNO itp. Jest to bezpośrednio związane z katastrofalnym zapominaniem. Jak zawsze, uważnie monitoruj zestaw Sprawdzanie poprawności i Test i zatrzymaj się, gdy tylko zauważysz, że ich błędy stale rosną

Ponadto można poprawić problem „młota w głowę” za pomocą gradientów syntetycznych. Zobacz jego zalety tutaj: (połączona odpowiedź omawia zalety długich sekwencji) /datascience//a/32425/43077

Odpowiedzi:


9

Chociaż poprzednia odpowiedź @Imran jest poprawna, uważam za konieczne dodanie zastrzeżenia: istnieją aplikacje, w których ludzie wprowadzają przesuwane okno do LSTM. Na przykład tutaj do prognozowania ramek jako nadzorowanego problemu uczenia się.

4(mn+n2)+n)mn

Ponieważ LSTM nie wymagają wprowadzania danych o stałym rozmiarze, mogą samodzielnie znaleźć optymalny czas ważności. Jeśli jednak wcześniej przeprowadziłeś autoregresyjną analizę i zdecydowałeś, że na przykład bieżący krok czasowy jest najbardziej skorelowany z 10. poprzednim krokiem czasowym i nie jest skorelowany z 11. lub jakimkolwiek krokiem w przeszłości w przeszłości, możesz być może zaoszczędzisz trochę czasu na trening, karmiąc się sekwencjami o stałej długości. Jednak ten rodzaj pokonuje cel LSTM.

Jeśli twoje dane nie są wystarczająco bogate dla LSTM, zaleciłbym wypróbowanie czegoś znacznie prostszego, takiego jak model autoregresyjny, i pójście dalej.

EDYCJA (w odpowiedzi na komentarz):

Nakładające się sekwencje są używane jako dane wejściowe, szczególnie gdy sekwencja jest bardzo długa (chociaż oczywiście „długa” jest względna). Chociaż LSTM są lepsze niż waniliowy RNN dla długich sekwencji, mogą nadal mieć problemy z zapamiętywaniem kroków czasowych od początku sekwencji, jeśli sekwencja jest bardzo długa. Doprowadziło to do takich rzeczy, jak dwukierunkowy LSTM, który odczytuje sekwencję do przodu i do tyłu, poprawiając ekspozycję sieci na początku i na końcu każdej sekwencji wejściowej. Zasada jest taka sama w przypadku nakładających się sekwencji, chociaż argumentowałbym, że nakładające się sekwencje są bardziej intuicyjne.


Dziękuję, nadal nie wiem, czy LSTM powinien / nie powinien być szkolony z nie nakładającymi się partiami. Post, który lubisz, jest cenny, ale omawia tylko sieci Feed-Forward i nie zajmuje się korzyściami / zagrożeniami z nakładających się minibatek LSTM podczas treningu. @Imran nie omawiał też „anty recepty” przeciwko nakładającym się minibatchem - mój pierwszy komentarz do jego postu.
Kari

Zredagowałem swoje pytanie, aby dodać komentarz
Kari

Wiele świetnych informacji!
Imran

@Kari Zmodyfikowałem swoją odpowiedź. To pomaga?
StatsSorceress

5

LSTM nie wymagają przesuwanego okna danych wejściowych. Mogą zapamiętać to, co widzieli w przeszłości, a jeśli podasz przykłady szkoleń pojedynczo, wybiorą odpowiednie okno wielkości danych do zapamiętania samodzielnie.

LSTM są już podatne na nadmierne dopasowanie, a jeśli wprowadzisz wiele zbędnych danych za pomocą przesuwanego okna, to tak, prawdopodobnie się przeregulują.

Z drugiej strony, przesuwne okno jest konieczne do prognozowania szeregów czasowych za pomocą sieci neuronowych Feedforward, ponieważ sieci FNN wymagają danych wejściowych o stałym rozmiarze i nie mają pamięci, więc jest to najbardziej naturalny sposób zasilania ich danymi szeregów czasowych.

To, czy FNN się dopasuje, zależy od jego architektury i twoich danych, ale wszystkie standardowe techniki regularyzacji będą miały zastosowanie, jeśli tak się stanie. Na przykład możesz spróbować wybrać mniejszą sieć, regularyzację L2, rezygnację itp.


Dzięki! Twierdziłbym, że stan komórki jest usuwany między partiami treningowymi, więc LSTM będzie miał wtedy „młotek do głowy”. Nie można zapamiętać, co było przed OPQRSTUVWXYZ. Oznacza to, że LSTM nie jest w stanie nigdy dowiedzieć się, że „O” następuje po „M”. Pomyślałem więc, dlaczego nie dać mu pośredniej (nakładającej się) partii pomiędzy ... a w takim razie dlaczego nie zastosować wielu nakładających się minibatek - dla mnie zapewniłoby to płynniejszy trening?
Kari

Ostatecznie oznaczałoby to przesuwane okno dla LSTM
Kari

Kasowanie stanu komórki pomiędzy partiami treningowymi nie jest konieczne, choć propagacja wsteczna dalej wstecz nie jest oczywiście możliwa.
Jan van der Vegt

Próbowałem i nawet przy zerowym współczynniku uczenia się błąd skakał w niewielkim stopniu, ponieważ nieprawidłowe stany komórek były ponownie używane jako „dziedzictwo” podczas treningu. Przy takim podejściu nie mogłem układać więcej niż 6 warstw - stało się to zbyt chaotyczne i nie zbiegało się. Jednak zresetowanie stanu komórki do zera po każdym Backpropie pozwoliło mi na ułożenie 150 warstw z 64 neuronami w każdej warstwie i trenowanie z szybkością uczenia 0,001 i pędem 0,9 (używam Normalizacji Warstwy, dlatego w moim przypadku szybkość uczenia się jest tak duża)
Kari

1
Oznacza to, że z „starszymi stacjami komórkowymi” LSTM staje się niestabilny i zawodny - rozpoczyna pracę nad nowym minibatchem, opierając swoje decyzje na ostatnim stanie komórki (poprzedniego minibatchu), który nie został w pełni poprawiony. Więc wymazanie stanu komórki usuwa tę wadę fundamentalną, ale powoduje amnezję LSTM
Kari
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.