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-1
i i-2
jako 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ę?
time-series
machine-learning
neural-networks
Boris Gorelik
źródło
źródło
Odpowiedzi:
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=Wx y W x
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 .xi yi=Wxi+Wryi−1
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
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σ W1 W2 Wr
Oto schemat struktury:
źródło
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ć:
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.
źródło
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:
[...]
... i na podstawie wniosku:
Części referatu można obejrzeć publicznie: tutaj
źródło