Quali sono i vantaggi di impilare più LSTM?


25

Quali sono i vantaggi, perché si dovrebbero usare più LSTM, accatastati uno accanto all'altro, in una rete profonda? Sto usando un LSTM per rappresentare una sequenza di input come un singolo input. Quindi una volta che ho quella singola rappresentazione, perché dovrei passarla di nuovo?

Lo sto chiedendo perché l'ho visto in un programma di generazione del linguaggio naturale.


1
Intendevi davvero LSTM accatastati fianco a fianco come in orizzontale (lungo i passi del tempo) o intendevi in ​​pila verticale (più celle LSTM per ogni passo del tempo)?
wabbit

Risposte:


18

Penso che ti riferisci ai livelli LSTM impilati verticalmente (supponendo che gli assi orizzontali siano l'asse del tempo.

In tal caso il motivo principale per impilare LSTM è consentire una maggiore complessità del modello. Nel caso di una semplice rete feedforward impiliamo i livelli per creare una rappresentazione gerarchica delle caratteristiche dei dati di input da utilizzare per alcune attività di apprendimento automatico. Lo stesso vale per gli LSTM in pila.

Ogni volta che passi un LSTM, oltre all'ingresso ricorrente. Se l'input è già il risultato di un layer LSTM (o di un feedforward), l'attuale LSTM può creare una rappresentazione di funzionalità più complessa dell'input corrente.

Ora la differenza tra avere un livello feedforward tra l'input della funzione e il livello LSTM e avere un altro livello LSTM è che un livello feed forward (diciamo un livello completamente connesso) non riceve feedback dal suo precedente passaggio temporale e quindi non può tenere conto di alcuni modelli. Avere un LSTM al posto (ad es. Usando una rappresentazione LSTM in pila) modelli di input più complessi possono essere descritti su ogni livello


4
Le celle LSTM all'interno di uno strato sono già completamente, ricorrentemente connesse tra loro (le uscite di uno strato hanno connessioni a tutti gli ingressi dello stesso strato). Pertanto, le singole celle possono già combinare le caratteristiche sopra gli output di altre celle, tutte all'interno di un livello. Potresti approfondire il motivo per cui più livelli risultano in schemi più complessi, per favore?
danijar,

6

Da {1}:

Sebbene non sia teoricamente chiaro quale sia la potenza aggiuntiva acquisita dall'architettura più profonda, è stato osservato empiricamente che gli RNN profondi funzionano meglio di quelli meno profondi in alcuni compiti. In particolare, Sutskever et al (2014) riportano che un'architettura profonda a 4 strati è stata cruciale per ottenere buone prestazioni di traduzione automatica in un framework encoder-decoder. Anche Irsoy e Cardie (2014) riportano risultati migliorati passando da un BI-RNN a un livello a un'architettura a più livelli. Molti altri lavori riportano risultati usando architetture RNN a strati, ma non si confrontano esplicitamente con RNN a 1 strato.

FYI:


Riferimenti:


2

Dal giocare con LSTM per la classificazione delle sequenze ha avuto lo stesso effetto dell'aumento della capacità del modello nelle CNN (se si ha familiarità con esse). In questo modo otterrai sicuramente guadagni soprattutto se i tuoi dati sono insufficienti.

Ovviamente a doppio taglio, poiché puoi anche adattarti eccessivamente e peggiorare le prestazioni. Nel mio caso sono passato da 1 LSTM a uno stack di 2 e ho ottenuto un miglioramento praticamente istantaneo.

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.