Ottieni il massimo dagli LSTM sul tuo problema di previsione delle sequenze

Ottieni il massimo dagli LSTM sul tuo problema di previsione delle sequenze

Le reti neurali ricorrenti con memoria a lungo termine (LSTM) sono un potente tipo di apprendimento profondo adatto per problemi di previsione delle sequenze.

Una possibile preoccupazione quando si utilizzano LSTM è se la complessità aggiunta del modello sta migliorando l'abilità del tuo modello o se in effetti si traduce in abilità inferiori rispetto ai modelli più semplici.

In questo post scoprirai semplici esperimenti che puoi eseguire per assicurarti di ottenere il massimo dagli LSTM sul tuo problema di previsione della sequenza.

Dopo aver letto questo post, saprai:

  • Come verificare se il modello sta sfruttando la dipendenza dall'ordine nei dati di input.
  • Come verificare se il tuo modello sta sfruttando la memoria nel tuo modello LSTM.
  • Come verificare se il tuo modello sta sfruttando BPTT durante l'adattamento del tuo modello.

Dai il via al tuo progetto con il mio nuovo libro Long Short-Term Memory Networks With Python, incluso tutorial passo passo e il Codice sorgente Python file per tutti gli esempi.

Immergiamoci.

Ottieni il massimo dagli LSTM sul tuo problema di previsione delle sequenze

Ottieni il massimo dagli LSTM sul tuo problema di previsione delle sequenze
Foto di DoD News, alcuni diritti riservati.

3 Capacità di LSTMS

La rete neurale ricorrente LSTM ha alcune funzionalità chiave che conferiscono al metodo la sua straordinaria potenza su un'ampia gamma di problemi di previsione delle sequenze.

Senza immergerci nella teoria degli LSTM, possiamo riassumere alcuni comportamenti discreti degli LSTM che possiamo configurare nei nostri modelli:

  • Dipendenza dall'ordine. I problemi di predizione di sequenza richiedono un ordine tra le osservazioni, mentre i problemi di apprendimento supervisionato più semplici non lo fanno, e questo ordine può essere randomizzato prima dell'addestramento e della previsione. Un problema di predizione di sequenza può essere trasformato nella forma più semplice randomizzando l'ordine delle osservazioni.
  • Memoria. Gli LSTM hanno una memoria interna attraverso le osservazioni nelle sequenze di input, mentre le reti neurali semplici come Multilayer Perceptrons no. Gli LSTM possono perdere questa memoria ripristinando lo stato interno dopo ogni osservazione di input.
  • BPTT. Le reti neurali ricorrenti utilizzano un algoritmo di addestramento che stima la direzione degli aggiornamenti del peso in tutte le fasi temporali di una sequenza di input, mentre altri tipi di reti sono limitati a singoli campioni (escludendo la media tra batch di input in entrambi i casi). Gli LSTM possono ignorare il contributo dell'errore da fasi temporali precedenti nelle stime del gradiente lavorando con sequenze di un'osservazione di lunghezza.

Queste tre capacità e la loro configurabilità in una forma più semplice forniscono la base per 3 esperimenti che puoi eseguire per vedere esattamente quali proprietà degli LSTM puoi e stai sfruttando sul tuo problema di previsione della sequenza.

Hai bisogno di aiuto con LSTM per Sequence Prediction?

Segui il mio corso di posta elettronica gratuito di 7 giorni e scopri 6 diverse architetture LSTM (con codice).

Fai clic per iscriverti e ottenere anche una versione gratuita in PDF ebook del corso.

Inizia subito il tuo mini-corso GRATUITO!

1. Stai sfruttando la dipendenza dagli ordini?

Una caratteristica fondamentale dei problemi di predizione di sequenza è che esiste una dipendenza dall'ordine tra le osservazioni.

Cioè, l'ordine delle osservazioni è importante.

Assunzione: L'ordine delle osservazioni dovrebbe essere importante per fare previsioni sui problemi di predizione di sequenza.

È possibile verificare se questa ipotesi è vera sviluppando una linea di base delle prestazioni con un modello che prende solo l'osservazione precedente come input e mescola i set di dati di test e addestramento.

Ciò potrebbe essere ottenuto in diversi modi. Due esempi di implementazioni includono:

  • Un Multilayer Perceptron (MLP) con training e set di test mescolati.
  • Un LSTM con addestramento casuale e set di test con aggiornamenti e reimpostazioni di stato dopo ogni campione (dimensione batch di 1).

Test: Se la dipendenza dall'ordine è importante per il problema di previsione, un modello che sfrutta l'ordine tra le osservazioni in ciascuna sequenza di input e tra le sequenze di input dovrebbe ottenere prestazioni migliori rispetto a un modello che non lo fa.

2. Stai sfruttando la memoria LSTM?

Una capacità chiave degli LSTM è che possono ricordare su lunghe sequenze di input.

Cioè, ogni unità di memoria mantiene uno stato interno che può essere pensato come variabili locali che vengono utilizzate quando si effettuano previsioni.

Assunzione: Lo stato interno del modello dovrebbe essere importante per modellare l'abilità.

È possibile verificare se questa ipotesi è vera sviluppando una linea di base delle prestazioni con un modello che non ha memoria da un campione all'altro.

Ciò può essere ottenuto ripristinando lo stato interno dell'LSTM dopo ogni osservazione.

Test: Se la memoria interna è importante per il problema di previsione, un modello che possiede memoria attraverso le osservazioni in una sequenza di input dovrebbe ottenere prestazioni migliori rispetto a un modello che non lo fa.

3. Stai sfruttando la backpropagation nel tempo?

Una chiave per il modo in cui vengono addestrate le reti neurali ricorrenti è l'algoritmo Backpropagation through time (BPTT).

Questo algoritmo consente di stimare il gradiente degli aggiornamenti di peso da tutte le osservazioni nella sequenza (o un sottoinsieme nel caso di BPTT troncato).

Assunzione: L'algoritmo di aggiornamento del peso BPTT dovrebbe essere importante per modellare le abilità sui problemi di previsione della sequenza.

Puoi verificare se questa ipotesi è vera sviluppando una linea di base delle prestazioni in cui le stime del gradiente si basano su un singolo passo temporale.

Ciò può essere ottenuto suddividendo le sequenze di input in modo che ogni osservazione rappresenti una singola sequenza di input. Ciò sarebbe indipendente da quando sono programmati gli aggiornamenti del peso e quando lo stato interno viene ripristinato.

Test: Se BPTT è importante per il problema di previsione, un modello che stima il gradiente per gli aggiornamenti del peso per più fasi temporali dovrebbe ottenere prestazioni migliori rispetto a un modello che utilizza una singola fase temporale.

Sommario

In questo post, hai scoperto tre funzionalità chiave degli LSTM che conferiscono alla tecnica il loro potere e come puoi testare queste proprietà sui tuoi problemi di previsione della sequenza.

Nello specifico:

  • Come verificare se il modello sta sfruttando la dipendenza dall'ordine nei dati di input.
  • Come verificare se il tuo modello sta sfruttando la memoria nel tuo modello LSTM.
  • Come verificare se il tuo modello sta sfruttando BPTT durante l'adattamento del tuo modello.

Avete domande?
Pubblica le tue domande nei commenti qui sotto e farò del mio meglio per rispondere.

Sviluppa oggi LSTM per la previsione delle sequenze!

Reti di memoria a lungo termine con Python

Sviluppa i tuoi modelli LSTM in pochi minuti

... con poche righe di codice Python

Scopri come nel mio nuovo ebook:
Reti di memoria a lungo termine con Python

Fornisce tutorial di autoapprendimento su argomenti come:
LSTM CNN, LSTM codificatore-decodificatore, modelli generativi, preparazione dati, elaborazione di previsioni e altro ancora...

Infine porta le reti neurali ricorrenti LSTM a
I tuoi progetti di previsioni di sequenza

Salta gli accademici. Solo risultati.

Guarda cosa c'è dentro

Potresti anche essere interessato