Prognozowanie szeregów czasowych za pomocą LSTM: Znaczenie unieruchomienia szeregów czasowych

20

W tym linku dotyczącym stacjonarności i różnicowania wspomniano, że modele takie jak ARIMA wymagają stacjonarnych szeregów czasowych do prognozowania, ponieważ jego właściwości statystyczne, takie jak średnia, wariancja, autokorelacja itp., Są stałe w czasie. Ponieważ sieci RNN mają lepszą zdolność do uczenia się relacji nieliniowych ( jak podano tutaj: Obietnica nawracających sieci neuronowych do prognozowania szeregów czasowych) i działają lepiej niż tradycyjne modele szeregów czasowych, gdy dane są duże, konieczne jest zrozumienie, w jaki sposób stacjonarne dane wpłynęłyby na jego wyniki. Pytania, na które muszę znać odpowiedź, są następujące:

  1. W przypadku tradycyjnych modeli prognozowania szeregów czasowych, stacjonarność w danych szeregów czasowych ułatwia przewidywanie, dlaczego i jak?

  2. Czy budując model prognozowania szeregów czasowych za pomocą LSTM , ważne jest, aby dane szeregów czasowych były nieruchome? Jeśli tak, to dlaczego?

Abhijay Ghildyal
źródło

Odpowiedzi:

28

Zasadniczo szeregi czasowe tak naprawdę nie różnią się od innych problemów związanych z uczeniem maszynowym - chcesz, aby zestaw testowy „wyglądał” jak zestaw treningowy, ponieważ chcesz, aby model, którego nauczyłeś się na zestawie treningowym, nadal był odpowiedni dla zestawu testowego. To ważna podstawowa koncepcja dotycząca stacjonarności. Szeregi czasowe mają dodatkową złożoność, ponieważ dane mogą mieć długoterminową strukturę, której model może nie być wystarczająco wyrafinowany do nauki. Na przykład, gdy korzystamy z autoregresyjnego opóźnienia N, nie możemy nauczyć się zależności w odstępach dłuższych niż N. Dlatego też, używając prostych modeli takich jak ARIMA, chcemy, aby dane były również lokalnie stacjonarne.

  1. Jak powiedziałeś, stacjonarne oznacza po prostu, że statystyki modelu nie zmieniają się w czasie (stacjonarne). Modele ARIMA są zasadniczo modelami regresji, w których wykorzystuje się poprzednie wartości N jako dane wejściowe do regresji liniowej w celu przewidywania wartości N + 1.. (Przynajmniej tak robi część AR). Kiedy uczysz się modelu, uczysz się współczynników regresji. Jeśli masz szereg czasowy, w którym uczysz się relacji między przeszłymi N punktami a następnym punktem, a następnie zastosujesz to do innego zestawu N punktów, aby przewidzieć następną wartość, domyślnie zakładasz, że ta sama relacja zachodzi między N punktów predykcyjnych i następujący N + 1 punkt, który próbujesz przewidzieć. To stacjonarność. Jeśli podzieliłeś zestaw treningowy na dwa przedziały i trenowałeś je osobno, i otrzymałem dwa bardzo różne modele - co byś z tego wywnioskował? Czy uważasz, że możesz czuć się pewnie, stosując te modele do przewidywanianowe dane? Którego byś użył? Problemy te powstają, jeśli dane są „niestacjonarne”.

  2. Moje podejście do RNN jest takie - wciąż uczysz się wzoru z jednego segmentu szeregu czasowego i nadal chcesz zastosować go do innej części szeregu czasowego, aby uzyskać prognozy. Model uczy się uproszczonej reprezentacji szeregów czasowych - a jeśli reprezentacja ta ma zastosowanie do zestawu treningowego, ale nie do zestawu testowego, nie będzie działał dobrze. Jednak w przeciwieństwie do ARIMA, sieci RNN są zdolne do uczenia się nieliniowości, a wyspecjalizowane węzły, takie jak węzły LSTM, są w tym jeszcze lepsze. W szczególności LSTM i GRU są bardzo dobre w uczeniu się długoterminowych zależności. Zobacz na przykład ten post na blogu . W rzeczywistości oznacza to, że to, co rozumie się przez „stacjonarność”, jest mniej kruche w przypadku RNN, więc jest nieco mniej niepokojące. Aby jednak nauczyć się długoterminowych zależności, potrzebujesz DUŻO danych do trenowania.

Ostatecznie dowodem jest pudding. Oznacza to, że wykonaj walidację modelu, tak jak w przypadku każdego innego projektu uczenia maszynowego. Jeśli Twój model dobrze przewiduje przewidywania dotyczące wstrzymania danych, możesz być pewny, że z niego korzystasz. Ale jak każdy inny projekt ML - jeśli twoje dane testowe będą się znacznie różnić od danych treningowych, twój model nie będzie działał dobrze.

Tomek
źródło
2
Ta odpowiedź jest doskonała. Przemyślany i dokładny.
StatsSressress
1
Minęło trochę czasu. Czy ktoś przetestował to założenie?
compguy24