Modo corretto di utilizzare la rete neurale ricorrente per l'analisi delle serie storiche


67

Le reti neurali ricorrenti differiscono da quelle "normali" per il fatto che hanno un livello di "memoria". A causa di questo livello, le NN ricorrenti dovrebbero essere utili nella modellazione di serie temporali. Tuttavia, non sono sicuro di aver capito correttamente come usarli.

Diciamo che ho le seguenti serie temporali (da sinistra a destra) :, il [0, 1, 2, 3, 4, 5, 6, 7]mio obiettivo è prevedere i-th point usando i punti i-1e i-2come input (per ciascuno i>2). In una RNA "regolare", non ricorrente, i dati vengono elaborati come segue:

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

Vorrei quindi creare una rete con due nodi di input e uno di output e addestrarla con i dati sopra.

Come è necessario modificare questo processo (se non del tutto) nel caso di reti ricorrenti?


Hai scoperto come strutturare i dati per l'RNN (ad es. LSTM)? grazie
mik1904,

Risposte:


49

Quello che descrivi è in realtà un approccio a "finestra scorrevole" ed è diverso dalle reti ricorrenti. È possibile utilizzare questa tecnica con qualsiasi algoritmo di regressione. Esiste un'enorme limitazione a questo approccio: gli eventi negli ingressi possono essere correlati solo con altri ingressi / uscite che si trovano al massimo a intervalli di tempo, dove t è la dimensione della finestra.

Ad esempio, puoi pensare a una catena di ordini di Markov t. Gli RNN non ne soffrono in teoria, tuttavia in pratica l'apprendimento è difficile.

È meglio illustrare un RNN in contrasto con una rete feedfoward. Considera la (molto) semplice rete feedforward dove y è l'output, W è la matrice del peso e x è l'input.y=WxyWx

xiyi=Wxi+Wryi1

Wr

hi

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

σW1W2Wr

Ecco un diagramma della struttura:

schematico


2
Ho sbagliato a vedere qualche somiglianza delle reti ricorrenti con i filtri Kalman? Vedo questo perché l'output precedente influisce sull'output attuale. Qual è il vantaggio pratico delle reti ricorrenti?
Passa il

10
Stai scrivendo nel senso che entrambi sono modelli dello spazio degli stati. Tuttavia, ci sono molte differenze: i KF sono completamente probabilistici, nel senso che gli stati nascosti hanno un significato probabilistico adeguato. D'altra parte, gli RNN sono deterministici e solo gli output possono essere utilizzati per modellare una distribuzione in modo discriminatorio. Inoltre, i KF sono generalmente stimati con EM, mentre gli RNN sono stimati con metodi basati sul gradiente. Se vuoi maggiori dettagli, non esitare a postare una domanda e inviarmi il link, ma i commenti sono troppo limitati per questo.
Bayerj,

1
No, la finestra temporale scorrevole non pretende sull'output della rete, ma solo sull'input.
Bayerj,

2
@bayerj ottime informazioni, ma non credo che tu abbia risposto alla domanda. Come strutturare i vettori di output di input non in una finestra temporale scorrevole per RNNs? Potete fornire un paio di campioni con il set di dati del PO?
Levitikon,

1
Questa è una descrizione molto istruttiva degli RNN ma non riesco a trovare una risposta alla domanda dell'OP: come si deve modificare [formazione] nel caso di reti ricorrenti?
wehnsdaefflae,

9

Puoi anche considerare semplicemente l'uso di una serie di trasformazioni di serie temporali per i dati di input. Solo per un esempio, gli input potrebbero essere:

  1. il valore dell'intervallo più recente (7)
  2. il prossimo intervallo più recente (6)
  3. il delta tra il più recente e il successivo più recente (7-6 = 1)
  4. il terzo intervallo più recente (5)
  5. il delta tra il secondo e il terzo più recente (6-5 = 1)
  6. la media degli ultimi tre intervalli ((7 + 6 + 5) / 3 = 6)

Quindi, se i tuoi input in una rete neurale convenzionale fossero questi sei pezzi di dati trasformati, non sarebbe un compito difficile per un normale algoritmo di backpropagation apprendere il modello. Dovresti codificare le trasformazioni che accettano i dati non elaborati e trasformarli nei 6 input sopra indicati nella tua rete neurale.


1
In questo hai messo molta conoscenza del dominio. E se non riconoscessi tu stesso lo schema delle serie temporali? Come si costruisce quindi un modello che può, specialmente se dipende da input infinitamente lontani nel passato?
Bayerj

L'infinito sarebbe sicuramente complicato. Tuttavia, se si inseriscono trasformazioni dei dati che non sono rilevanti per questo dominio, l'algoritmo di apprendimento sarà facilmente in grado di capirlo e regolare i pesi di conseguenza, quindi non è un grosso problema finché si hanno trasformazioni di i dati rilevanti. Quindi, avere molte trasformazioni diverse disponibili migliora le tue probabilità di successo.
Rossdavidh,

01[0.1,0.1]101

2
Non vorrei dire che non dovresti mai usare reti neurali ricorrenti; al contrario. Tuttavia, se il compito (come indicato nella domanda) è prevedere l'ith dai punti (i-1) e (i-2), è possibile ottenere un risultato migliore più rapidamente utilizzando tale conoscenza. Non intendo suggerire che le RNN non siano mai una buona idea, ma va bene usare qualunque conoscenza del dominio tu abbia per accelerare il processo di addestramento (e ridurre la probabilità che l'allenamento venga catturato in un minimo locale, ecc.) .
Rossdavidh,

4

Un'altra possibilità sono le reti neurali coerenti storiche (HCNN) . Questa architettura potrebbe essere più appropriata per la configurazione sopra menzionata perché eliminano la distinzione spesso arbitraria tra variabili di input e output e cercano invece di replicare l'intera dinamica sottostante dell'intero sistema attraverso l'addestramento con tutti gli osservabili.

Quando lavoravo per Siemens, ho pubblicato un articolo su questa architettura in un libro di Springer Verlag: Zimmermann, Grothmann, Tietz, von Jouanne-Diedrich: modellizzazione del mercato, previsioni e analisi dei rischi con reti neurali coerenti

Giusto per dare un'idea del paradigma qui è un breve estratto:

In questo articolo, presentiamo un nuovo tipo di NN ricorrente, chiamato rete neurale coerente storica (HCNN). Gli HCNN consentono la modellazione di sistemi dinamici non lineari ad alta interazione su più scale temporali. Gli HCNN non fanno alcuna distinzione tra ingressi e uscite, ma osservabili del modello incorporati nella dinamica di un ampio spazio degli stati.

[...]

Yτ:=(yτ,uτ)

... e dalla conclusione:

La modellizzazione congiunta di variabili nascoste e osservate in grandi reti neurali ricorrenti offre nuove prospettive per la pianificazione e la gestione dei rischi. L'approccio ensemble basato su HCNN offre un approccio alternativo alla previsione di future distribuzioni di probabilità. Gli HCNN forniscono una descrizione perfetta della dinamica degli osservabili in passato. Tuttavia, l'osservabilità parziale del mondo si traduce in una ricostruzione non unica delle variabili nascoste e, quindi, in diversi scenari futuri. Poiché il vero sviluppo della dinamica è sconosciuto e tutti i percorsi hanno la stessa probabilità, la media dell'insieme può essere considerata la migliore previsione, mentre la larghezza di banda della distribuzione descrive il rischio di mercato. Oggi, usiamo le previsioni HCNN per prevedere i prezzi dell'energia e dei metalli preziosi per ottimizzare i tempi delle decisioni di approvvigionamento. I lavori attualmente in corso riguardano l'analisi delle proprietà dell'insieme e l'implementazione di questi concetti nella gestione pratica del rischio e nelle applicazioni del mercato finanziario.

Parti del documento possono essere visualizzate pubblicamente: qui


Hai un'implementazione disponibile per il download e il test?
Julien L,

@JulienL: Sfortunatamente non perché si trattava di un lavoro proprietario per Siemens.
vonjd,

Peccato, sembrava promettente.
Julien L,

@JulienL: ti incoraggio a contattare Georg, il mio coautore. La sua e-mail è sulla prima pagina del documento (vedi link sopra).
vonjd,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.