Wykorzystaj w pełni LSTM podczas rozwiązywania problemu z przewidywaniem sekwencji

Wykorzystaj w pełni LSTM podczas rozwiązywania problemu z przewidywaniem sekwencji

Długoterminowa pamięć (LSTM) Rekurencyjne sieci neuronowe to potężny rodzaj głębokiego uczenia, odpowiedni do problemów z przewidywaniem sekwencji.

Możliwym problemem podczas korzystania z LSTM jest to, czy dodatkowa złożoność modelu poprawia umiejętności Twojego modelu lub w rzeczywistości skutkuje niższymi umiejętnościami niż prostsze modele.

W tym poście odkryjesz proste eksperymenty, które możesz przeprowadzić, aby zapewnić maksymalne wykorzystanie LSTM w rozwiązaniu problemu z przewidywaniem sekwencji.

Po przeczytaniu tego posta będziesz wiedział:

  • Jak sprawdzić, czy model wykorzystuje zależność od kolejności w danych wejściowych.
  • Jak sprawdzić, czy model wykorzystuje pamięć w modelu LSTM.
  • Jak sprawdzić, czy Twój model wykorzystuje BPTT podczas dopasowywania modelu.

Rozpocznij swój projekt z moją nową książką Long-Short-Term Memory Networks With Python, w tym samouczki krok po kroku i Kod źródłowy Pythona pliki dla wszystkich przykładów.

Zanurzmy się.

Wykorzystaj w pełni LSTM podczas rozwiązywania problemu z przewidywaniem sekwencji

Wykorzystaj w pełni LSTM podczas rozwiązywania problemu z przewidywaniem sekwencji
Zdjęcie: DoD News, niektóre prawa zastrzeżone.

3 Możliwości LSTMS

Powracająca sieć neuronowa LSTM ma kilka kluczowych możliwości, które nadają tej metodzie imponującą moc w szerokim zakresie problemów z przewidywaniem sekwencji.

Bez zagłębiania się w teorię LSTM, możemy podsumować kilka dyskretnych zachowań LSTM, które możemy skonfigurować w naszych modelach:

  • Zależność porządkowa. Problemy z przewidywaniem sekwencji wymagają uporządkowania między obserwacjami, podczas gdy prostsze nadzorowane problemy z uczeniem się nie wymagają, a kolejność ta może być randomizowana przed uczeniem i prognozowaniem. Problem przewidywania sekwencji można przekształcić w prostszą postać przez losowanie kolejności obserwacji.
  • Pamięć. LSTM mają pamięć wewnętrzną między obserwacjami w sekwencjach wejściowych, podczas gdy proste sieci neuronowe, takie jak wielowarstwowe perceptrony, nie. LSTM mogą utracić tę pamięć, resetując stan wewnętrzny po każdej obserwacji wejścia.
  • BPTT. Powtarzające się sieci neuronowe używają algorytmu uczącego, który szacuje kierunek aktualizacji wagi we wszystkich krokach czasowych sekwencji wejściowej, podczas gdy inne typy sieci są ograniczone do pojedynczych próbek (z wyłączeniem uśredniania z partii danych wejściowych w obu przypadkach). LSTM mogą zignorować wkład błędu z poprzednich kroków czasowych w estymacjach gradientu, pracując z sekwencjami o długości jednej obserwacji.

Te trzy możliwości i ich konfigurowalność do prostszej postaci stanowią podstawę dla 3 eksperymentów, które można przeprowadzić, aby zobaczyć dokładnie, jakie właściwości LSTM można i które wykorzystują do problemu z przewidywaniem sekwencji.

Potrzebujesz pomocy z LSTMs for Sequence Prediction?

Weź udział w moim bezpłatnym 7-dniowym kursie e-mail i odkryj 6 różnych architektur LSTM (z kodem).

Kliknij, aby się zarejestrować i otrzymać bezpłatną wersję kursu w formacie PDF Ebook.

Rozpocznij teraz BEZPŁATNY minikurs!

1. Czy wykorzystujesz zależność od porządku?

Kluczową cechą problemów z przewidywaniem sekwencji jest zależność między obserwacjami.

Oznacza to, że kolejność obserwacji ma znaczenie.

Założenie: Oczekuje się, że kolejność obserwacji będzie ważna w prognozowaniu problemów z przewidywaniem sekwencji.

Możesz sprawdzić, czy to założenie jest prawdziwe, opracowując linię bazową wydajności z modelem, który przyjmuje tylko wcześniejszą obserwację jako dane wejściowe i tasuje zestawy danych uczących i testowych.

Można to osiągnąć na wiele sposobów. Dwie przykładowe implementacje obejmują:

  • Wielowarstwowy perceptron (MLP) z tasowanymi zestawami treningowymi i testowymi.
  • LSTM z tasowanymi zestawami treningowymi i testowymi z aktualizacjami i resetami stanu po każdej próbce (wielkość partii 1).

Test: Jeśli zależność kolejności jest ważna dla problemu predykcji, to model, który wykorzystuje porządek między obserwacjami w każdej sekwencji wejściowej i między sekwencjami wejściowymi, powinien osiągnąć lepszą wydajność niż model, który tego nie robi.

2. Czy używasz pamięci LSTM?

Kluczową cechą LSTM jest to, że mogą zapamiętywać długie sekwencje wejściowe.

Oznacza to, że każda jednostka pamięci utrzymuje stan wewnętrzny, który można traktować jako zmienne lokalne używane podczas prognozowania.

Założenie: Oczekuje się, że stan wewnętrzny modelu będzie ważny dla umiejętności modelowania.

Możesz sprawdzić, czy to założenie jest prawdziwe, opracowując linię bazową wydajności z modelem, który nie ma pamięci, z jednej próbki do drugiej.

Można to osiągnąć, resetując stan wewnętrzny LSTM po każdej obserwacji.

Test: Jeśli pamięć wewnętrzna jest ważna dla problemu predykcji, to model, który posiada pamięć między obserwacjami w sekwencji wejściowej, powinien osiągnąć lepszą wydajność niż model, który jej nie posiada.

3. Czy wykorzystujesz propagację wsteczną w czasie?

Kluczem do sposobu uczenia się powtarzających się sieci neuronowych jest algorytm wstecznej propagacji w czasie (BPTT).

Algorytm ten umożliwia oszacowanie gradientu aktualizacji wagi ze wszystkich obserwacji w sekwencji (lub podzbiorze w przypadku obciętego BPTT).

Założenie: Oczekuje się, że algorytm aktualizacji wagi BPTT będzie ważny dla modelowania umiejętności w zakresie problemów z przewidywaniem sekwencji.

Możesz sprawdzić, czy to założenie jest prawdziwe, opracowując linię bazową wydajności, w której oszacowania gradientu są oparte na pojedynczym kroku czasowym.

Można to osiągnąć, dzieląc sekwencje wejściowe tak, aby każda obserwacja reprezentowała pojedynczą sekwencję wejściową. Byłoby to niezależne od tego, kiedy zaplanowano aktualizacje wagi i kiedy resetowany jest stan wewnętrzny.

Test: Jeśli BPTT jest ważny dla problemu z prognozowaniem, to model, który szacuje gradient aktualizacji wagi dla wielu kroków czasowych, powinien osiągnąć lepszą wydajność niż model, który używa pojedynczego kroku czasowego.

Podsumowanie

W tym poście odkryłeś trzy kluczowe możliwości LSTM, które nadają tej technice ich moc i jak możesz przetestować te właściwości na własnych problemach z przewidywaniem sekwencji.

Konkretnie:

  • Jak sprawdzić, czy model wykorzystuje zależność od kolejności w danych wejściowych.
  • Jak sprawdzić, czy model wykorzystuje pamięć w modelu LSTM.
  • Jak sprawdzić, czy Twój model wykorzystuje BPTT podczas dopasowywania modelu.

Czy masz jakieś pytania?
Opublikuj swoje pytania w komentarzach poniżej, a ja postaram się odpowiedzieć.

Opracuj LSTM dla prognozowania sekwencji już dziś!

Sieci pamięci długoterminowej z Pythonem

Opracuj własne modele LSTM w kilka minut

... za pomocą zaledwie kilku wierszy kodu w Pythonie

Dowiedz się, jak w moim nowym ebooku:
Sieci pamięci długoterminowej z Pythonem

To zapewnia samouczki do samodzielnej nauki na tematy takie jak:
CNN LSTM, koder-dekoder LSTM, modele generujące, przygotowanie danych, prognozowanie i wiele więcej...

Na koniec przenieś powtarzające się sieci neuronowe LSTM do
Twoje projekty prognozowania sekwencji

Pomiń akademików. Tylko wyniki.

Zobacz, co jest w środku

Możesz być również zainteresowany