Qual è la lunghezza di sequenza possibile per un modello RNN da modellare?


15

Sto esaminando l'utilizzo di una versione LSTM ( memoria a breve termine ) di una rete neurale ricorrente (RNN) per la modellazione dei dati di serie temporali. All'aumentare della lunghezza della sequenza dei dati, aumenta la complessità della rete. Sono quindi curioso di sapere quale lunghezza delle sequenze sarebbe possibile modellare con una buona precisione?

Vorrei usare una versione relativamente semplice di LSTM senza alcun approccio di difficile attuazione. Ogni osservazione nella mia multiproprietà avrebbe probabilmente 4 variabili numeriche e il numero di osservazioni sarebbe compreso tra 100.000 e 1.000.000.

Risposte:


8

Dipende totalmente dalla natura dei tuoi dati e dalle correlazioni interne, non esiste una regola empirica. Tuttavia, dato che si dispone di una grande quantità di dati, un LSTM a 2 livelli può modellare un gran numero di problemi / benchmark di serie storiche.

Inoltre, non esegui il backpropagate nel tempo di tutta la serie ma di solito (200-300) ultimi passi. Per trovare il valore ottimale è possibile convalidare in modo incrociato utilizzando la ricerca della griglia o l'ottimizzazione bayesiana. Inoltre, puoi dare un'occhiata ai parametri qui: https://github.com/wojzaremba/lstm/blob/master/main.lua .

Quindi, la lunghezza della sequenza non influisce davvero sull'allenamento del modello, ma è come avere più esempi di allenamento, che mantieni lo stato precedente invece di ripristinarlo.


Di 'che devo fare un'analisi del sentiment, che è un approccio molti-a-uno (vedi karpathy.github.io/2015/05/21/rnn-efficacia ). Ognuna di queste frasi è molto lunga (> 200 parole). Se eseguissi il backpropagate-through-time dei soliti 35 passaggi, non sarebbe un problema? Dal momento che è sotto la supervisione di apprendimento Suppongo che si può solo backpropagate quando "colpi" il bersaglio classificazione binaria, y. In questo modo in che modo l'RNN regolerebbe mai i pesi in base a qualcosa prima dei 35 passi selezionati per BPTT?
pir

1
Bene, non sarebbe un problema in quanto gli stessi pesi vengono riutilizzati nella fase di allenamento successiva. Inoltre, se vedi il codice sorgente nel passaggio 36 (diciamo) il vettore di inizializzazione non è zero, ma gli stati del passaggio 35. Quindi, facendo piccoli passi, ottimizzi la tua funzione di costo usando BPTT.
Yannis Assael,

1
Solo per chiarire: il BPTT viene eseguito una sola volta o più volte per una singola frase? Se viene eseguito una sola volta, i modelli che interessano solo le prime due parole della frase influenzeranno solo lo stato nascosto, giusto? Voglio dire ... i gradienti non verranno mai calcolati rispetto a quella parte dell'input.
pir

1
Ho fatto questa domanda separata che spero che guarderai :) stats.stackexchange.com/questions/167482/…
pir

2
"dato che disponi di una grande quantità di dati, un LSTM a 2 livelli può modellare praticamente qualsiasi serie temporale." dov'è la prova?
nbro,
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.