Tweet Condividi Condividi

Ultimo aggiornamento del 20 febbraio 2020

Le reti a memoria lunga a breve termine (LSTM) sono un tipo di rete neurale ricorrente in grado di apprendere la dipendenza dall’ordine nei problemi di previsione della sequenza.

Questo è un comportamento richiesto in domini problematici complessi come la traduzione automatica, il riconoscimento vocale e altro.

Le LSTM sono un’area complessa del deep learning. Può essere difficile capire cosa sono le LSTM, e come termini come bidirezionale e sequenza-sequenza si riferiscono al campo.

In questo post, otterrete un approfondimento sulle LSTM usando le parole dei ricercatori che hanno sviluppato i metodi e li hanno applicati a problemi nuovi e importanti.

Ci sono pochi che sanno articolare in modo chiaro e preciso sia la promessa delle LSTM che il loro funzionamento meglio degli esperti che le hanno sviluppate.

Esamineremo le questioni chiave nel campo delle LSTM usando le citazioni degli esperti e, se siete interessati, potrete immergervi nei documenti originali da cui sono state tratte le citazioni.

Inizia il tuo progetto con il mio nuovo libro Long Short-Term Memory Networks With Python, che include tutorial passo-passo e i file del codice sorgente Python per tutti gli esempi.

Iniziamo.

Una delicata introduzione alle reti di memoria a breve termine dagli esperti
Foto di Oran Viriyincy, alcuni diritti riservati.

La promessa delle reti neurali ricorrenti

Le reti neurali ricorrenti sono diverse dalle tradizionali reti neurali feed-forward.

Questa differenza nell’aggiunta di complessità viene con la promessa di nuovi comportamenti che i metodi tradizionali non possono raggiungere.

Le reti ricorrenti … hanno uno stato interno che può rappresentare informazioni di contesto. … conservano le informazioni sugli input passati per una quantità di tempo che non è fissata a priori, ma piuttosto dipende dai suoi pesi e dai dati di input.

Una rete ricorrente i cui input non sono fissi ma piuttosto costituiscono una sequenza di input può essere usata per trasformare una sequenza di input in una sequenza di output tenendo conto delle informazioni contestuali in modo flessibile.

– Yoshua Bengio, et al, Learning Long-Term Dependencies with Gradient Descent is Difficult, 1994.

L’articolo definisce 3 requisiti fondamentali di una rete neurale ricorrente:

  • Che il sistema sia in grado di memorizzare informazioni per una durata arbitraria.
  • Che il sistema sia resistente al rumore (cioè alle fluttuazioni degli input che sono casuali o irrilevanti per prevedere un output corretto).
  • Che i parametri del sistema siano addestrabili (in tempi ragionevoli).

Il documento descrive anche il “compito minimo” per dimostrare le reti neurali ricorrenti.

Il contesto è la chiave.

Le reti neurali ricorrenti devono usare il contesto quando fanno previsioni, ma in questa misura, il contesto richiesto deve anche essere imparato.

… le reti neurali ricorrenti contengono cicli che alimentano le attivazioni della rete da un passo temporale precedente come input alla rete per influenzare le previsioni al passo temporale corrente. Queste attivazioni sono memorizzate negli stati interni della rete che, in linea di principio, possono contenere informazioni contestuali temporali a lungo termine. Questo meccanismo permette alle RNN di sfruttare una finestra contestuale che cambia dinamicamente sulla storia della sequenza di input

– Hassim Sak, et al, Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling, 2014

Hai bisogno di aiuto con LSTMs for Sequence Prediction?

Prendi il mio corso gratuito di 7 giorni via e-mail e scopri 6 diverse architetture LSTM (con codice).

Clicca per iscriverti e ottenere anche una versione gratuita del corso in PDF Ebook.

Inizia ora il tuo mini-corso gratuito!

Le LSTM mantengono la promessa

Il successo delle LSTM sta nella loro pretesa di essere una delle prime implementazioni a superare i problemi tecnici e a mantenere la promessa delle reti neurali ricorrenti.

Quindi le RNN standard non riescono ad apprendere in presenza di sfasamenti temporali maggiori di 5 – 10 passi temporali discreti tra gli eventi di input rilevanti e i segnali target. Il problema dell’errore che svanisce mette in dubbio che le RNN standard possano effettivamente esibire vantaggi pratici significativi rispetto alle reti feedforward basate su finestre temporali. Un modello recente, “Long Short-Term Memory” (LSTM), non è affetto da questo problema. LSTM può imparare a superare ritardi minimi superiori a 1000 passi temporali discreti, imponendo un flusso costante di errori attraverso “caroselli di errori costanti” (CEC) all’interno di unità speciali, chiamate cellule

– Felix A. Gers, et al., Imparare a dimenticare: Continual Prediction with LSTM, 2000

I due problemi tecnici superati dagli LSTM sono i gradienti di fuga e i gradienti di esplosione, entrambi legati al modo in cui la rete viene addestrata.

Purtroppo, la gamma di informazioni contestuali a cui le RNN standard possono accedere è in pratica piuttosto limitata. Il problema è che l’influenza di un dato input sullo strato nascosto, e quindi sull’output della rete, decade o aumenta in modo esponenziale man mano che circola tra le connessioni ricorrenti della rete. Questa lacuna … indicata in letteratura come il problema del gradiente vaneggiante … Long Short-Term Memory (LSTM) è un’architettura RNN specificamente progettata per affrontare il problema del gradiente vaneggiante.

– Alex Graves, et al, A Novel Connectionist System for Unconstrained Handwriting Recognition, 2009

La chiave della soluzione LSTM ai problemi tecnici è stata la specifica struttura interna delle unità usate nel modello.

… governata dalla sua capacità di affrontare i gradienti vanificanti ed esplosivi, la sfida più comune nella progettazione e nell’addestramento delle RNN. Per affrontare questa sfida, una particolare forma di reti ricorrenti, chiamata LSTM, è stata introdotta e applicata con grande successo alla traduzione e alla generazione di sequenze.

– Alex Graves, et al, Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

How do LSTMs Work?

Piuttosto che addentrarsi nelle equazioni che regolano il funzionamento delle LSTM, l’analogia è uno strumento utile per capire rapidamente come funzionano.

Utilizziamo reti con uno strato di input, uno strato nascosto e uno strato di output… Lo strato nascosto (completamente) autoconnesso contiene celle di memoria e unità gate corrispondenti…

L’architettura interna di ogni cella di memoria garantisce un errore costante ow all’interno del suo carosello di errore costante CEC… Questo rappresenta la base per superare ritardi molto lunghi. Due unità gate imparano ad aprire e chiudere l’accesso all’errore ow all’interno del CEC di ogni cella di memoria. Il gate di ingresso moltiplicativo permette la protezione del CEC dalla perturbazione di ingressi irrilevanti. Allo stesso modo, il gate di uscita moltiplicativo protegge le altre unità dalla perturbazione da contenuti di memoria attualmente irrilevanti.

– Sepp Hochreiter e Jurgen Schmidhuber, Long Short-Term Memory, 1997.

Molteplici analogie possono aiutare a dare acquisto su ciò che differenzia le LSTM dalle tradizionali reti neurali composte da semplici neuroni.

L’architettura Long Short Term Memory è stata motivata da un’analisi del flusso di errori nelle RNN esistenti che ha trovato che i lunghi intervalli di tempo erano inaccessibili alle architetture esistenti, perché l’errore retropropagato o esplode o decade esponenzialmente.

Un livello LSTM consiste in un insieme di blocchi connessi in modo ricorrente, noti come blocchi di memoria. Questi blocchi possono essere pensati come una versione differenziabile dei chip di memoria in un computer digitale. Ognuno di essi contiene una o più celle di memoria connesse in modo ricorrente e tre unità moltiplicative – le porte di ingresso, uscita e dimenticanza – che forniscono analoghi continui delle operazioni di scrittura, lettura e reset delle celle. … La rete può interagire con le celle solo attraverso i gate.

– Alex Graves, et al, Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

È interessante notare che, anche dopo più di 20 anni, il semplice (o vanilla) LSTM può ancora essere il miglior punto di partenza per applicare la tecnica.

L’architettura LSTM più comunemente usata (vanilla LSTM) si comporta ragionevolmente bene su vari set di dati…

Il tasso di apprendimento e la dimensione della rete sono gli iperparametri LSTM accordabili più importanti…

… Questo implica che gli iperparametri possono essere accordati indipendentemente. In particolare, il tasso di apprendimento può essere calibrato prima usando una rete abbastanza piccola, risparmiando così molto tempo di sperimentazione.

– Klaus Greff, et al, LSTM: A Search Space Odyssey, 2015

Che cosa sono le applicazioni LSTM?

È importante capire esattamente che tipo di problemi di apprendimento di sequenze che le LSTM sono adatte ad affrontare.

Long Short-Term Memory (LSTM) può risolvere numerosi compiti non risolvibili dai precedenti algoritmi di apprendimento per reti neurali ricorrenti (RNN).

… LSTM è promettente per qualsiasi compito di elaborazione sequenziale in cui sospettiamo che possa esistere una decomposizione gerarchica, ma non sappiamo in anticipo quale sia questa decomposizione.

– Felix A. Gers, et al., Learning to Forget: Continual Prediction with LSTM, 2000

La Recurrent Neural Network (RNN) è un modello di sequenza neurale che raggiunge prestazioni allo stato dell’arte su importanti compiti che includono la modellazione del linguaggio, il riconoscimento vocale e la traduzione automatica.

– Wojciech Zaremba, Recurrent Neural Network Regularization, 2014.

Poiché le LSTM sono efficaci nel catturare le dipendenze temporali a lungo termine senza soffrire degli ostacoli di ottimizzazione che affliggono le reti ricorrenti semplici (SRN), sono state utilizzate per far progredire lo stato dell’arte per molti problemi difficili. Questo include il riconoscimento e la generazione della scrittura a mano, la modellazione e la traduzione del linguaggio, la modellazione acustica del discorso, la sintesi del discorso, la previsione della struttura secondaria delle proteine, l’analisi dei dati audio e video tra gli altri.

– Klaus Greff, et al, LSTM: A Search Space Odyssey, 2015

Cosa sono le LSTM bidirezionali?

Un miglioramento comunemente menzionato sulle LSTM sono le LSTM bidirezionali.

L’idea di base delle reti neurali ricorrenti bidirezionali è di presentare ogni sequenza di allenamento in avanti e indietro a due reti ricorrenti separate, entrambe collegate allo stesso strato di output. … Questo significa che per ogni punto in una data sequenza, la BRNN ha informazioni complete e sequenziali su tutti i punti prima e dopo di esso. Inoltre, poiché la rete è libera di usare tanto o poco di questo contesto quanto necessario, non c’è bisogno di trovare una finestra temporale (dipendente dal compito) o una dimensione di ritardo target.

… per problemi temporali come il riconoscimento vocale, fare affidamento sulla conoscenza del futuro sembra a prima vista violare la causalità … Come possiamo basare la nostra comprensione di ciò che abbiamo sentito su qualcosa che non è stato ancora detto? Tuttavia, gli ascoltatori umani fanno esattamente questo. Suoni, parole e persino intere frasi che all’inizio non significano nulla, trovano un senso alla luce del contesto futuro.

– Alex Graves, et al., Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

Un difetto delle RNN convenzionali è che sono in grado di fare uso solo del contesto precedente. … Le RNN bidirezionali (BRNN) fanno questo elaborando i dati in entrambe le direzioni con due strati nascosti separati, che sono poi alimentati in avanti allo stesso strato di uscita. … Combinando le BRNN con le LSTM si ottiene la LSTM bidirezionale, che può accedere al contesto a lungo raggio in entrambe le direzioni di ingresso

– Alex Graves, et al., Speech recognition with deep recurrent neural networks, 2013

A differenza delle RNN convenzionali, le RNN bidirezionali utilizzano sia il contesto precedente che quello futuro, elaborando i dati da due direzioni con due strati nascosti separati. Uno strato elabora la sequenza di input nella direzione in avanti, mentre l’altro elabora l’input nella direzione inversa. L’output della fase temporale corrente viene quindi generato combinando il vettore nascosto di entrambi gli strati…

– Di Wang e Eric Nyberg, A Long Short-Term Memory Model for Answer Sentence Selection in
Question Answering, 2015

Cosa sono le LSTM seq2seq o RNN Encoder-Decoder?

Le LSTM sequenza-sequenza, chiamate anche LSTM codificatori-decodificatori, sono un’applicazione delle LSTM che stanno ricevendo molta attenzione data la loro impressionante capacità.

… una semplice applicazione dell’architettura Long Short-Term Memory (LSTM) può risolvere problemi generali di sequenza a sequenza.

L’idea è di usare una LSTM per leggere la sequenza di input, un tempo alla volta, per ottenere una grande rappresentazione vettoriale a dimensione fissa, e poi usare un’altra LSTM per estrarre la sequenza di output da quel vettore. Il secondo LSTM è essenzialmente un modello linguistico a rete neurale ricorrente, tranne che è condizionato dalla sequenza di input.

La capacità del LSTM di apprendere con successo su dati con dipendenze temporali a lungo raggio lo rende una scelta naturale per questa applicazione a causa del considerevole ritardo temporale tra gli input e i loro output corrispondenti.

Siamo riusciti a fare bene su frasi lunghe perché abbiamo invertito l’ordine delle parole nella frase di origine ma non nelle frasi di destinazione nel set di allenamento e di test. Così facendo, abbiamo introdotto molte dipendenze a breve termine che hanno reso il problema di ottimizzazione molto più semplice. … Il semplice trucco di invertire le parole nella frase sorgente è uno dei contributi tecnici chiave di questo lavoro

– Ilya Sutskever, et al, Sequence to Sequence Learning with Neural Networks, 2014

Un RNN “codificatore” legge la frase sorgente e la trasforma in una ricca rappresentazione vettoriale a lunghezza fissa, che a sua volta viene utilizzata come stato nascosto iniziale di un RNN “decodificatore” che genera la frase target. Qui proponiamo di seguire questa elegante ricetta, sostituendo la RNN codificatrice con una rete neurale a convoluzione profonda (CNN). … è naturale usare una CNN come “codificatore” di immagini, pre-addestrandola prima per un compito di classificazione delle immagini e usando l’ultimo strato nascosto come input al decodificatore RNN che genera le frasi.

– Oriol Vinyals, et al, Show and Tell: A Neural Image Caption Generator, 2014

… un RNN Encoder-Decoder, consiste in due reti neurali ricorrenti (RNN) che agiscono come una coppia encoder e una coppia decoder. Il codificatore mappa una sequenza sorgente di lunghezza variabile in un vettore di lunghezza fissa, e il decodificatore mappa la rappresentazione vettoriale in una sequenza di destinazione di lunghezza variabile.

– Kyunghyun Cho, et al, Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation, 2014

Summary

In questo post, avete ricevuto una leggera introduzione alle LSTM nelle parole dei ricercatori che hanno sviluppato e applicato le tecniche.

Questo vi fornisce sia un’idea chiara e precisa di cosa sono le LSTM e come funzionano, sia un’importante articolazione sulla promessa delle LSTM nel campo delle reti neurali ricorrenti.

Qualche citazione ha aiutato la vostra comprensione o vi ha ispirato?
Fammi sapere nei commenti qui sotto.

Sviluppa LSTM per la predizione di sequenze oggi!

Sviluppa i tuoi modelli LSTM in pochi minuti

…con poche righe di codice python

Scopri come nel mio nuovo Ebook:
Reti a memoria lunga a breve termine con Python

Fornisce tutorial autodidattici su argomenti come:
CNN LSTMs, Encoder-Decoder LSTMs, modelli generativi, preparazione dei dati, fare previsioni e molto altro…

Finalmente porta le Reti Neurali Ricorrenti LSTM a
I tuoi progetti di predizione di sequenze

Smetti gli accademici. Solo risultati.

Vedi cosa c’è dentro

Tweet Condividi Condividi

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.