Numero di parametri in un modello LSTM


43

Quanti parametri ha un singolo LSTM in pila? Il numero di parametri impone un limite inferiore al numero di esempi di allenamento richiesti e influenza anche il tempo di allenamento. Pertanto, conoscere il numero di parametri è utile per i modelli di training che utilizzano LSTM.

Risposte:


29

LSTM ha un set di 2 matrici: U e W per ciascuna delle (3) porte. Il simbolo (.) Nel diagramma indica la moltiplicazione di queste matrici con l'ingresso x uscita h .

  • U ha dimensioni n×m
  • W ha dimensioni n×n
  • esiste una serie diversa di queste matrici per ciascuna delle tre porte (come Uforget per la porta dell'oblio , ecc.)
  • esiste un'altra serie di queste matrici per l'aggiornamento dello stato della cella S
  • in cima alle matrici menzionate, è necessario contare i pregiudizi (non nella foto)

Quindi # parametri totali = 4(nm+n2+n)

Blocco astratto LSTM


2
Ho affrontato questa domanda da solo quando ho preso decisioni pratiche sulla stima dei requisiti hardware e sulla pianificazione del progetto per un progetto di apprendimento profondo. PS: Non ho risposto alla mia domanda per guadagnare punti reputazione. Voglio sapere se la mia risposta è giusta dalla comunità.
wabbit

1
Hai ignorato le unità di polarizzazione. Vedi la risposta di Adam Oudad di seguito.
arun

1
I pregiudizi non ci sono. Ho modificato la risposta.
Escachator,

21

mn

4(nm+n2)

Tuttavia, nel caso in cui il tuo LSTM includa vettori di polarizzazione ( ad esempio , questo è il valore predefinito in keras ), il numero diventa:

4(nm+n2+n)

2
Questa è l'unica risposta completa. Ogni altra risposta appare contenta per ignorare il caso dei neuroni di polarizzazione.
Ripristina Monica il

1
Per fare un esempio concreto, se il vostro ingresso ha m = 25 dimensioni e si utilizza uno strato LSTM con n = 100 unità, quindi il numero di params = 4 * (100 * 25 + 100 ** 2 + 100) = 50400.
Arun

1
Supponiamo che io stia utilizzando i dati di data / ora, la mia comprensione di seguito è corretta? n = 100: significa che avrò 100 timestep in ciascun campione (esempio) quindi ho bisogno di 100 unità. m = 25 media ad ogni timestep, ho 25 caratteristiche come [peso, altezza, età ...].
Jason Zhang,

2
@jasonzhang Il numero di timestep non è rilevante, poiché la stessa cella LSTM verrà applicata in modo ricorsivo ai vettori di input (un vettore per ogni timestep). ciò che arun chiama "unità" è anche la dimensione di ciascun vettore di output, non il numero di timestep.
Adam Oudad

12

Secondo questo :

Struttura cellulare LSTM

Struttura cellulare LSTM

Equazioni LSTM

Equazioni LSTM

Ingegnerizzazione delle non linearità

Ingegnerizzazione delle non linearità

Se l'ingresso x_t ha dimensioni n × 1 e sono presenti celle di memoria d , la dimensione di ciascuna di W ∗ e U ∗ è d × n e d × d resp. La dimensione di W sarà quindi 4d × (n + d) . Si noti che ciascuna delle celle di memoria dd ha i propri pesi W ∗ e U ∗ e che l'unica volta in cui i valori delle celle di memoria vengono condivisi con altre unità LSTM è durante il prodotto con U ∗ .

Grazie ad Arun Mallya per l'ottima presentazione.

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.