Rozważam dwie strategie „powiększania danych” w prognozowaniu szeregów czasowych.
Najpierw trochę tła. Predyktor do prognozowania następnego kroku szeregu jest funkcją, która zazwyczaj zależy od dwóch rzeczy, przeszłych stanów szeregu czasowego, ale także przeszłych stanów predyktora:
Jeśli chcemy dostosować / wyszkolić nasz system w celu uzyskania dobrego , będziemy potrzebować wystarczającej ilości danych. Czasami dostępne dane nie wystarczą, dlatego rozważamy przeprowadzenie rozszerzenia danych.
Pierwsze podejście
Załóżmy, że mamy szeregi , z . Załóżmy także, że mamy który spełnia następujący warunek: .
Możemy skonstruować nowy szereg czasowy , gdzie jest realizacją rozkładu .
Następnie, zamiast minimalizować funkcję utraty tylko na , robimy to również na . Tak więc, jeśli proces optymalizacji zajmie kroków, musimy „zainicjować” predyktor razy razy i obliczyć około stanów wewnętrznych predyktora.
Drugie podejście
Obliczamy jak poprzednio, ale nie aktualizujemy stanu wewnętrznego predyktora za pomocą , ale . Używamy tylko dwóch serii razem podczas obliczania funkcji straty, więc obliczymy w przybliżeniu wewnętrznych stanów predyktora.
Oczywiście jest tu mniej pracy obliczeniowej (choć algorytm jest nieco brzydszy), ale na razie nie ma to znaczenia.
Wątpliwość
Problemem jest: z statystycznego punktu widzenia, która opcja jest „najlepsza”? I dlaczego?
Moja intuicja mówi mi, że pierwsza jest lepsza, ponieważ pomaga „regularyzować” wagi związane ze stanem wewnętrznym, podczas gdy druga pomaga tylko regularyzować wagi związane z przeszłością szeregów czasowych.
Dodatkowy:
- Jakieś inne pomysły na zwiększenie danych do prognozowania szeregów czasowych?
- Jak zważyć dane syntetyczne w zestawie treningowym?
źródło