Differenza tra campioni, fasi temporali e caratteristiche nella rete neurale


17

Sto esaminando il seguente blog sulla rete neurale LSTM: http://machinelearningmastery.com/understanding-stateful-lstm-recurrent-neural-networks-python-keras/

L'autore rimodella il vettore di input X come [campioni, intervalli di tempo, funzionalità] per diverse configurazioni di LSTM.

L'autore scrive

In effetti, le sequenze di lettere sono fasi temporali di una funzione anziché una fase temporale di funzioni separate. Abbiamo dato più contesto alla rete, ma non più sequenza come previsto

Cosa significa questo?

Risposte:


16

Ho trovato questo appena sotto i [campioni, time_steps, caratteristiche] che ti interessano.

X = numpy.reshape(dataX, (len(dataX), seq_length, 1))

Esempi - Questa è la len (dataX) o la quantità di punti dati che hai.

Fasi temporali: equivale alla quantità di fasi temporali che si esegue sulla rete neurale ricorrente. Se vuoi che la tua rete abbia una memoria di 60 caratteri, questo numero dovrebbe essere 60.

Funzionalità: questa è la quantità di funzionalità in ogni passaggio. Se stai elaborando immagini, questa è la quantità di pixel. In questo caso sembra che tu abbia 1 funzione per passaggio temporale.


1
puoi spiegare la differenza tra: X = numpy.reshape (dataX, (len (dataX), 3, 1)) e X = numpy.reshape (dataX, (len (dataX), 1, 3)) In che modo influisce lstm?
Vipul Jain,

1
(len (dataX), 3, 1) esegue LSTM per 3 iterazioni, immettendo un vettore di input di forma (1,). (len (dataX), 1, 3) esegue LSTM per 1 iterazione. Ciò significa che è abbastanza inutile persino avere connessioni ricorrenti poiché non ci può essere alcun feedback dalle iterazioni precedenti. In questo caso la forma di input in RNN è di forma (3,)
Joonatan Samuel,

"(len (dataX), 3, 1) esegue LSTM per 3 iterazioni" non usiamo l'epoca per questo. significa uguale a epoca = 3?
Vipul Jain,

1
Un'epoca nella traduzione approssimativa significa che ci siamo formati una volta per ogni punto di dati nel nostro set di dati. Durante l'allenamento, dopo aver esaminato gli esempi di len (dataX) vale 1 epoca. Tuttavia, gli RNN accettano i dati in sequenza. Su ogni esempio di addestramento, devi fornire i dati su più iterazioni. Ad esempio, ho una parola "macchina" e ad ogni iterazione le do una lettera, le faccio completare il calcolo e poi nutro la lettera successiva. Per completare l'elaborazione della parola "auto" sono necessarie 3 iterazioni per elaborare l'intera parola lettera per lettera.
Joonatan Samuel,

@JoonatanSamuel ciao, so che è passato molto tempo ma ho molti problemi a capire lo stesso argomento. La tua risposta è molto chiara, ma sono ancora un po 'confuso. Immagine abbiamo avuto una serie temporale che descriveva le vendite ogni mese per diversi anni (diciamo). Immagina len (data) = 3000, data.shape = (3000,1) per esempio, quindi abbiamo 3000 mesi registrati. Prevedi il prossimo : se voglio usare N osservazione precedente per predire il prossimo (solo il prossimo!), Quale dovrebbe essere la forma dei dati di input in LSTM? Ad esempio, se volessimo utilizzare t-n,..., t-2, t-1per prevedere t.
Euler_Salter,

0

È un po 'troppo tardi, ma per ogni evenienza;
Un campione può fare riferimento a singoli esempi di allenamento. Una variabile "batch_size" è quindi il conteggio dei campioni inviati alla rete neurale. Cioè, quanti diversi esempi si alimentano contemporaneamente alla rete neurale.

TimeSteps sono segni di spunta del tempo. È quanto tempo è ciascuno dei tuoi campioni. Ad esempio, un campione può contenere passi di 128 tempi, in cui ogni passo può essere un trentesimo di secondo per l'elaborazione del segnale. In Natural Language Processing (NLP), un passaggio temporale può essere associato a un carattere, una parola o una frase, a seconda della configurazione.

Le caratteristiche sono semplicemente il numero di dimensioni che alimentiamo ad ogni passaggio temporale. Ad esempio in PNL, una parola potrebbe essere rappresentata da 300 funzioni usando word2vec. Nel caso dell'elaborazione del segnale, facciamo finta che il tuo segnale sia 3D. Cioè, hai un segnale X, Y e Z, come le misure di un accelerometro su ciascun asse. Questo significa che avresti 3 funzioni inviate ad ogni passaggio per ciascun campione.

Di Guillaume


0

La mia risposta con un esempio: ["ciao, questo è xyz", "come stai", "grande uomo ..."]

in questo caso "[campioni, fasi temporali, caratteristiche]" significa:

  • esempio: 3 perché ci sono 3 elementi nell'elenco
  • passi temporali: qui puoi prendere max_length = 4 lunghezza ("ciao, questo è xyz") = 4; lunghezza ("come stai") = 4; lunghezza ("great man ...") = 2 (dopo aver rimosso la punteggiatura "."). La ragione per dire che questo è un passo temporale è, nel primo elemento "ciao, questo è xyz" ==> t0 ("ciao"), t1 ("questo"), t2 ("is") e t3 ("xyz")
  • caratteristiche: la dimensione dell'incorporamento per ogni parola. ad es. "ciao": array 50D, "this": array 50D e così via
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.