RNN für unregelmäßige Zeitintervalle?

13

RNNs eignen sich bemerkenswert gut zur Erfassung der Zeitabhängigkeit sequentieller Daten. Was passiert jedoch, wenn die Sequenzelemente nicht zeitlich gleich verteilt sind?

Beispielsweise erfolgt die erste Eingabe in die LSTM-Zelle am Montag, dann keine Daten von Dienstag bis Donnerstag und schließlich neue Eingaben für jeden Freitag, Samstag, Sonntag. Eine Möglichkeit wäre, für Dienstag bis Donnerstag eine Art NULL-Vektor zu speisen, aber das scheint eine dumme Lösung zu sein, sowohl weil die NULL-Einträge die Daten kontaminieren als auch weil es eine Verschwendung von Ressourcen ist.

Irgendwelche Ideen? Wie gehen RNNs mit solchen Fällen um? Wenn es andere Methoden als RNNs gibt, begrüße ich diese Vorschläge ebenfalls.

Tfovid
quelle
Um welche Art von Daten handelt es sich? Wie können wir davon ausgehen, dass wir an manchen Tagen eine Messung eines Features erhalten, das kontinuierlich ist? Zum Beispiel die Temperatur an einem Ort?
user0
@ user99889 Ja, das könnte ein Beispiel sein, aber ich dachte eher an einen Zähler. Zum Beispiel erhalten Sie eine Zählung um 9:32 Uhr, dann nichts, die beiden Zählungen um 9:37 Uhr, dann nichts usw.
Tfovid

Antworten:

2

Wenn Sie zum Zeitpunkt , besteht die einfache Lösung darin, eine One-Hot-Codierung des Wochentags und dann einfach die Verkettung von und in das Netzwerkvttdtvtdt . Das Zeit / Datum-Codierungsschema kann komplizierter sein, wenn das Zeitformat komplizierter ist als nur der Wochentag.

Abhängig davon, wie spärlich und unregelmäßig die Daten sind, sollten NULL-Einträge eine vernünftige Lösung sein. Ich vermute, dass das Eingangsgatter eines LSTM es dem LSTM ermöglichen würde, die Informationen eines NULL-Eintrags richtig abzulesen, ohne die Daten (den Speicher / den verborgenen Zustand) zu kontaminieren, wie Sie es ausgedrückt haben.

Shimao
quelle
1
Warum nicht einfach einen einzelnen Eingabeknoten mit dem LSTM verketten, der das Datum oder besser noch die Zeit vor der "Gegenwart" enthält, wobei die Gegenwart das letzte Element in der Sequenz ist? In diesem Fall würden diese Knoten -5 (für Montag), -2 (für Freitag), -1 (für Samstag), 0 (für Sonntag, dh den letzten Tag) enthalten. Dies umgeht die Notwendigkeit von NULL-Werten und codiert gleichzeitig (hoffentlich), um wie viel das LSTM zwischen den Rekursionen "vergessen" sollte. Klingt das vernünftig?
Tfovid
Ja, das sollte funktionieren.
Shimao
1

yt=c+ϕyt- -1+εt
yt=cΔt+e- -γΔtyt- -Δt+ξtσΔt

ϕ

Aksakal
quelle
1

Ich denke es kommt auf die Daten an. Wenn Sie beispielsweise Zählungen verarbeiten und an einigen Tagen nur vergessen haben, diese zu messen, besteht die beste Strategie darin, die fehlenden Werte (z. B. durch Interpolation oder Gauß-Prozesse) zu unterstellen und dann die unterstellten Zeitreihen mit einem RNN zu verarbeiten. Durch die Anrechnung würden Sie Wissen einbetten.

Wenn das Fehlen von Bedeutung ist (es war zu heiß, um an einigen Tagen die Anzahl zu messen), ist es am besten, vielleicht zu unterstellen und auch einen Indikatorvektor anzuhängen, der 1 ist, wenn der Wert fehlt, und ansonsten 0.

user0
quelle