Właściwy sposób wykorzystania rekurencyjnej sieci neuronowej do analizy szeregów czasowych

67

Nawracające sieci neuronowe różnią się od „zwykłych” siecią tym, że mają warstwę „pamięci”. Z powodu tej warstwy rekurencyjne NN powinny być przydatne w modelowaniu szeregów czasowych. Nie jestem jednak pewien, czy dobrze rozumiem, jak ich używać.

Powiedzmy, że mam następujące szeregi czasowe (od lewej do prawej): [0, 1, 2, 3, 4, 5, 6, 7]moim celem jest przewidzenie i-tego punktu za pomocą punktów i-1i i-2jako danych wejściowych (dla każdego i>2). W „zwykłym”, niepowtarzalnym ANN I przetwarzałbym dane w następujący sposób:

 target| input
      2| 1 0
      3| 2 1
      4| 3 2
      5| 4 3
      6| 5 4
      7| 6 5 

Następnie stworzyłbym sieć z dwoma wejściami i jednym węzłem wyjściowym i trenowałem ją z powyższymi danymi.

Jak trzeba zmienić ten proces (jeśli w ogóle) w przypadku sieci powtarzających się?

Boris Gorelik
źródło
Czy wiesz, jak ustrukturyzować dane dla RNN (np. LSTM)? dziękuję
mik1904,

Odpowiedzi:

49

To, co opisujesz, jest w rzeczywistości podejściem „przesuwnego okna czasowego” i różni się od sieci powtarzających się. Możesz użyć tej techniki z dowolnym algorytmem regresji. Istnieje ogromne ograniczenie tego podejścia: zdarzenia na wejściach można korelować tylko z innymi wejściami / wyjściami, które leżą co najwyżej t kroków czasowych, gdzie t jest rozmiarem okna.

Np. Możesz pomyśleć o łańcuchu porządkowym Markowa t. RNN nie cierpią z tego powodu w teorii, jednak w praktyce nauka jest trudna.

Najlepiej zilustrować RNN w przeciwieństwie do sieci feedfaward. Rozważmy (bardzo) prostą sieć sprzężenia zwrotnego gdzie to wynik, to macierz wag, a to dane wejściowe.y=WxyWx

Teraz używamy sieci cyklicznej. Teraz mamy sekwencję danych wejściowych, więc oznaczymy dane wejściowe przez dla i-tego danych wejściowych. Odpowiednie wyjście i jest następnie obliczane przez .xiyi=Wxi+Wryi1

Mamy zatem inną macierz wag która włącza moc wyjściową z poprzedniego kroku do prądu wyjściowego.Wr

Jest to oczywiście prosta architektura. Najczęściej jest to architektura, w której masz ukrytą warstwę, która jest cyklicznie połączona ze sobą. Niech oznacza ukrytą warstwę w czasie i. Formuły to:hi

h0=0
hi=σ(W1xi+Wrhi1)
yi=W2hi

Gdzie jest odpowiednią funkcją nieliniowości / przenoszenia, taką jak sigmoid. i to wagi łączące między wejściem a ukrytym i ukrytym oraz wyjściową warstwą. reprezentuje powtarzające się wagi.W 1 W 2 WσW1W2Wr

Oto schemat struktury:

schematyczny

bayerj
źródło
2
Źle widzę podobieństwo powtarzających się sieci z filtrami Kalmana? Widzę to, ponieważ poprzednie wyjście wpływa na obecne wyjście. Jaka jest zatem praktyczna korzyść sieci Recurrent?
Vass,
10
Piszecie w tym sensie, że oba są modelami przestrzeni stanów. Istnieje jednak duża różnica: KF są w pełni probabilistyczne, w tym sensie, że stany ukryte mają właściwe znaczenie probabilistyczne. Z drugiej strony RNN są deterministyczne i tylko dane wyjściowe mogą być użyte do modelowania rozkładu w sposób dyskryminujący. Ponadto KF są zwykle szacowane za pomocą EM, podczas gdy RNN są szacowane metodami opartymi na gradiencie. Jeśli chcesz uzyskać więcej informacji, nie krępuj się opublikować pytanie i wysłać mi link, ale komentarze są na to zbyt ograniczone.
bayerj
1
Nie, przesuwne okno czasowe nie udaje na wyjściu sieci, tylko na wejściu.
bayerj
2
@bayerj świetne informacje, ale nie sądzę, że odpowiedziałeś na pytanie. Jak konstruujesz wejściowe wektory wyjściowe, które nie znajdują się w przesuwnym oknie czasowym dla RNN? Czy możesz podać kilka próbek z zestawem danych PO?
Levitikon,
1
Jest to bardzo pouczający opis RNN, ale nie znajduję odpowiedzi na pytanie OP: Jak trzeba zmienić [szkolenie] w przypadku sieci powtarzających się?
wehnsdaefflae
9

Możesz również rozważyć użycie po prostu szeregu przekształceń szeregów czasowych dla danych wejściowych. Dla przykładu, dane wejściowe mogą być:

  1. najnowsza wartość interwału (7)
  2. następna najnowsza wartość interwału (6)
  3. delta między najnowszym a następnym najnowszym (7-6 = 1)
  4. trzecia najnowsza wartość przedziału (5)
  5. delta między drugim a trzecim ostatnim (6-5 = 1)
  6. średnia z ostatnich trzech przedziałów ((7 + 6 + 5) / 3 = 6)

Tak więc, jeśli twoje dane wejściowe do konwencjonalnej sieci neuronowej byłyby tymi sześcioma transformowanymi danymi, zwykłe algorytm propagacji wstecznej nie byłby trudny do nauczenia się wzorca. Trzeba jednak zakodować transformacje, które pobierają nieprzetworzone dane i przekształcają je w powyższe 6 danych wejściowych do sieci neuronowej.

rossdavidh
źródło
1
Włożyłeś w to jednak dużą wiedzę o domenach. Co jeśli sam nie rozpoznasz wzoru szeregu czasowego? Jak zatem zbudować model, który może, zwłaszcza jeśli zależy od danych wejściowych, które były nieskończenie daleko w przeszłości?
bayerj
Nieskończoność z pewnością byłaby trudna. Jeśli jednak wprowadzisz transformacje danych, które nie są istotne dla tej domeny, algorytm uczenia się będzie w stanie łatwo to ustalić i odpowiednio dostosować wagi, więc nie jest to duży problem, dopóki masz transformacje dane, które są istotne. Zatem posiadanie wielu różnych transformacji zwiększa szanse na sukces.
rossdavidh
Wyobraź sobie następujące zadanie: Pierwsze wejście do sieci to lub . Następnie sieć odbiera szum z przedziału dla dowolnej liczby (10, 1000, 100000) kroków czasowych. Jak tylko otrzyma ponownie , musi zgasić lub , w zależności od tego, co widział wcześniej. Jest to tak zwany „wskaźnik zatrzaskowy”. Jest to dość typowe ustawienie w problemach z uczeniem się sekwencji. Wielką zaletą sieci powtarzalnych jest to, że cała transformacja samych danych wejściowych jest poznawana, a NIE przeprowadzana przez człowieka-eksperta lub inżyniera. 1 [ - 0,1 , 0,1 ] 1 0 101[0.1,0.1]101
bayerj
2
Nie chciałbym powiedzieć, że nigdy nie powinieneś używać powtarzających się sieci neuronowych; wręcz przeciwnie. Jeśli jednak zadaniem (jak podano w pytaniu) jest przewidzenie i-tej z punktów (i-1) i (i-2), wówczas można szybciej uzyskać lepszy wynik, wykorzystując tę ​​wiedzę. Nie chcę sugerować, że RNN nigdy nie są dobrym pomysłem, ale dobrze jest wykorzystać dowolną wiedzę domenową, aby przyspieszyć proces szkolenia (i zmniejszyć prawdopodobieństwo złapania treningu w lokalnym minimum itp.) .
rossdavidh
4

Inną możliwością są historyczne spójne sieci neuronowe (HCNN) . Architektura ta może być bardziej odpowiednia dla wyżej wspomnianej konfiguracji, ponieważ eliminują często arbitralne rozróżnienie między zmiennymi wejściowymi i wyjściowymi, a zamiast tego próbują odtworzyć pełną podstawową dynamikę całego systemu poprzez szkolenie ze wszystkimi obserwowalnymi.

Kiedy pracowałem dla Siemensa, opublikowałem artykuł na temat tej architektury w książce Springera Verlaga: Zimmermann, Grothmann, Tietz, von Jouanne-Diedrich: Modelowanie rynku, prognozowanie i analiza ryzyka za pomocą spójnych sieci neuronowych

Aby dać wyobrażenie o paradygmacie tutaj, jest krótki fragment:

W tym artykule przedstawiamy nowy typ rekurencyjnego NN, zwany historyczną spójną siecią neuronową (HCNN). HCNN umożliwiają modelowanie silnie oddziałujących nieliniowych układów dynamicznych w wielu skalach czasowych. HCNN nie rozróżniają między wejściami i wyjściami, ale obserwowalne modele osadzone w dynamice dużej przestrzeni stanów.

[...]

RNN służy do modelowania i prognozowania otwartego układu dynamicznego przy użyciu metody regresji nieliniowej. Wiele rzeczywistych zastosowań technicznych i ekonomicznych należy jednak rozpatrywać w kontekście dużych systemów, w których różne (nieliniowe) dynamiki oddziałują ze sobą w czasie. Rzutowany na modelu oznacza, że ​​nie rozróżniamy wejść i wyjść, ale mówimy o obserwowalnych. Ze względu na częściową obserwowalność dużych układów potrzebujemy stanów ukrytych, aby móc wyjaśnić dynamikę obserwowalnych. Obserwowalne i ukryte zmienne powinny być traktowane przez model w ten sam sposób. Termin obserwowalne obejmuje zmienne wejściowe i wyjściowe (tj.Yτ:=(yτ,uτ)). Jeśli uda nam się wdrożyć model, w którym można opisać dynamikę wszystkich obserwowalnych, będziemy w stanie zamknąć otwarty system.

... i na podstawie wniosku:

Wspólne modelowanie ukrytych i obserwowanych zmiennych w dużych nawracających sieciach neuronowych stwarza nowe perspektywy planowania i zarządzania ryzykiem. Podejście kompleksowe oparte na HCNN oferuje alternatywne podejście do prognozowania przyszłych rozkładów prawdopodobieństwa. HCNN dają doskonały opis dynamiki obserwowalnych w przeszłości. Jednak częściowa obserwowalność świata skutkuje nieuniknioną rekonstrukcją ukrytych zmiennych, a tym samym różnymi przyszłymi scenariuszami. Ponieważ prawdziwy rozwój dynamiki jest nieznany, a wszystkie ścieżki mają takie samo prawdopodobieństwo, średnią zestawu można uznać za najlepszą prognozę, podczas gdy przepustowość dystrybucji opisuje ryzyko rynkowe. Dzisiaj, wykorzystujemy prognozy HCNN do prognozowania cen energii i metali szlachetnych w celu optymalizacji terminów decyzji o zakupie. Obecnie trwają prace nad analizą właściwości zespołu i wdrożeniem tych koncepcji w praktycznym zarządzaniu ryzykiem i aplikacjach na rynku finansowym.

Części referatu można obejrzeć publicznie: tutaj

vonjd
źródło
Czy masz implementację do pobrania i przetestowania?
Julien L
@JulienL: Niestety nie dlatego, że była to praca zastrzeżona dla Siemensa.
vonjd
Szkoda, że ​​wyglądało to obiecująco.
Julien L
@JulienL: Zachęcam do kontaktu z Georgem, moim współautorem. Jego e-mail znajduje się na pierwszej stronie artykułu (patrz link powyżej).
vonjd