logo

Cos’è LSTM – Memoria a breve termine?

LSTM eccelle nelle attività di previsione delle sequenze, acquisendo dipendenze a lungo termine. Ideale per serie temporali, traduzione automatica e riconoscimento vocale grazie alla dipendenza dall'ordine. L'articolo fornisce un'introduzione approfondita a LSTM, coprendo il modello LSTM, l'architettura, i principi di funzionamento e il ruolo critico che svolgono in varie applicazioni.

Cos'è l'LSTM?

Memoria lunga a breve termine è una versione migliorata della rete neurale ricorrente progettata da Hochreiter & Schmidhuber.



Un tradizionale RNN ha un unico stato nascosto che viene passato nel tempo, il che può rendere difficile per la rete l'apprendimento delle dipendenze a lungo termine. Modello LSTM risolvere questo problema introducendo una cella di memoria, che è un contenitore in grado di conservare informazioni per un periodo prolungato.

Le architetture LSTM sono in grado di apprendere dipendenze a lungo termine in dati sequenziali, il che le rende adatte per attività come traduzione linguistica , riconoscimento vocale e previsione delle serie temporali .

Gli LSTM possono anche essere utilizzati in combinazione con altre architetture di reti neurali, come Reti neurali convoluzionali (CNN) per l'analisi di immagini e video.



Architettura LSTM

Le architetture LSTM coinvolgono la cella di memoria che è controllata da tre porte: la porta di ingresso, la porta di dimenticanza e la porta di uscita. Queste porte decidono quali informazioni aggiungere, rimuovere ed emettere dalla cella di memoria.

  • La porta di ingresso controlla quali informazioni vengono aggiunte alla cella di memoria.
  • Il cancello di dimenticanza controlla quali informazioni vengono rimosse dalla cella di memoria.
  • Il gate di uscita controlla quali informazioni vengono emesse dalla cella di memoria.

Ciò consente alle reti LSTM di conservare o scartare selettivamente le informazioni mentre fluiscono attraverso la rete, il che consente loro di apprendere dipendenze a lungo termine.

L'LSTM mantiene uno stato nascosto, che funge da memoria a breve termine della rete. Lo stato nascosto viene aggiornato in base all'input, allo stato nascosto precedente e allo stato corrente della cella di memoria.



Modello LSTM bidirezionale

LSTM bidirezionale (Bi LSTM/ BLSTM) è una rete neurale ricorrente (RNN) in grado di elaborare dati sequenziali sia in avanti che all'indietro. Ciò consente a Bi LSTM di apprendere dipendenze a lungo raggio nei dati sequenziali rispetto ai tradizionali LSTM, che possono elaborare dati sequenziali solo in una direzione.

  • I Bi LSTM sono costituiti da due reti LSTM, una che elabora la sequenza di input nella direzione in avanti e una che elabora la sequenza di input nella direzione all'indietro.
  • Gli output delle due reti LSTM vengono quindi combinati per produrre l'output finale.

I modelli LSTM, inclusi i Bi LSTM, hanno dimostrato prestazioni all'avanguardia in varie attività come la traduzione automatica, il riconoscimento vocale e il riepilogo del testo.

Le reti nelle architetture LSTM possono essere impilate per creare architetture profonde, consentendo l'apprendimento di modelli e gerarchie ancora più complessi nei dati sequenziali. Ciascun livello LSTM in una configurazione in pila cattura diversi livelli di astrazione e dipendenze temporali all'interno dei dati di input.

LSTM funzionante

L'architettura LSTM ha una struttura a catena che contiene quattro reti neurali e diversi blocchi di memoria chiamati cellule .

Le informazioni vengono conservate dalle cellule e le manipolazioni della memoria vengono eseguite dal cancelli. Ci sono tre porte –

Dimentica il cancello

Le informazioni che non sono più utili nello stato della cella vengono rimosse con il cancello di dimenticanza. Due ingressi X T (input al momento specifico) e H t-1 (uscita della cella precedente) vengono alimentati al gate e moltiplicati con matrici di peso seguite dall'aggiunta di bias. Il risultante viene passato attraverso una funzione di attivazione che fornisce un output binario. Se per un particolare stato della cella l'uscita è 0, l'informazione viene dimenticata e per l'uscita 1 l'informazione viene conservata per uso futuro. L'equazione per il cancello del dimenticatoio è:

f_t = σ(W_f · [h_{t-1}, x_t] + b_f)
Dove:

  • W_f rappresenta la matrice dei pesi associata al dimenticare gate.
  • [h_t-1, x_t] denota la concatenazione dell'input corrente e del precedente stato nascosto.
  • b_f è il bias con il dimenticare gate.
  • σ è la funzione di attivazione del sigmoide.

Architettura dell'LSTM

Cancello d'ingresso

L'aggiunta di informazioni utili allo stato della cella viene effettuata dalla porta di ingresso. Innanzitutto, le informazioni vengono regolate utilizzando la funzione sigmoide e filtrano i valori da ricordare in modo simile al Forget Gate utilizzando gli input H t-1 E X T .. Quindi, viene creato un vettore utilizzando di pesce funzione che fornisce un output da -1 a +1, che contiene tutti i possibili valori da ht-1E X T . Infine si moltiplicano i valori del vettore e quelli regolati per ottenere le informazioni utili. L'equazione per la porta di ingresso è:

i_t = σ(W_i · [h_{t-1}, x_t] + b_i)

Ĉ_t = tanh(W_c · [h_{t-1}, x_t] + b_c)

Moltiplichiamo lo stato precedente per fT, ignorando le informazioni che avevamo precedentemente scelto di ignorare. Successivamente, includiamo iT∗CT. Questo rappresenta i valori candidati aggiornati, adeguati all'importo che abbiamo scelto per aggiornare ciascun valore di stato.

C_t = f_t ⊙ C_{t-1} + i_t ⊙ Ĉ_t

Dove

  • ⊙ denota la moltiplicazione per elemento
  • tanh è la funzione di attivazione del tanh

Porta di uscita

Il compito di estrarre informazioni utili dallo stato corrente della cella da presentare come output è svolto dal gate di output. Innanzitutto, viene generato un vettore applicando la funzione tanh sulla cella. Quindi, le informazioni vengono regolate utilizzando la funzione sigmoide e filtrate in base ai valori da ricordare utilizzando gli input h_{t-1} Ex_t. Infine, i valori del vettore e i valori regolati vengono moltiplicati per essere inviati come output e input alla cella successiva. L'equazione per la porta di uscita è:

o_t = σ(W_o · [h_{t-1}, x_t] + b_o)

Applicazioni dell'LSTM

Alcune delle famose applicazioni di LSTM includono:

stringa comparabile
  • Modellazione del linguaggio: Gli LSTM sono stati utilizzati per attività di elaborazione del linguaggio naturale come la modellazione del linguaggio, la traduzione automatica e il riepilogo del testo. Possono essere addestrati a generare frasi coerenti e grammaticalmente corrette imparando le dipendenze tra le parole in una frase.
  • Riconoscimento vocale: Gli LSTM sono stati utilizzati per attività di riconoscimento vocale come la trascrizione del parlato in testo e il riconoscimento dei comandi vocali. Possono essere addestrati a riconoscere modelli nel parlato e ad abbinarli al testo corrispondente.
  • Previsione delle serie temporali: Gli LSTM sono stati utilizzati per attività di previsione di serie temporali come la previsione dei prezzi delle azioni, del tempo e del consumo di energia. Possono apprendere modelli nei dati delle serie temporali e usarli per fare previsioni su eventi futuri.
  • Rilevamento anomalie: Gli LSTM sono stati utilizzati per attività di rilevamento di anomalie come il rilevamento di frodi e intrusioni nella rete. Possono essere addestrati a identificare modelli nei dati che si discostano dalla norma e segnalarli come potenziali anomalie.
  • Sistemi di raccomandazione: Gli LSTM sono stati utilizzati per attività di raccomandazione come consigliare film, musica e libri. Possono apprendere modelli di comportamento degli utenti e utilizzarli per fornire consigli personalizzati.
  • Analisi video: Gli LSTM sono stati utilizzati per attività di analisi video come il rilevamento di oggetti, il riconoscimento delle attività e la classificazione delle azioni. Possono essere utilizzati in combinazione con altre architetture di reti neurali, come le reti neurali convoluzionali (CNN), per analizzare dati video ed estrarre informazioni utili.

LTSM contro RNN

Caratteristica

LSTM (memoria a breve termine)

RNN (Rete Neurale Ricorrente)

Memoria

Ha una speciale unità di memoria che gli consente di apprendere le dipendenze a lungo termine nei dati sequenziali

Non ha un'unità di memoria

Direzionalità

Può essere addestrato per elaborare dati sequenziali sia in avanti che all'indietro

Può essere addestrato solo per elaborare dati sequenziali in una direzione

Formazione

Più difficile da addestrare rispetto a RNN a causa della complessità delle porte e dell'unità di memoria

Più facile da addestrare rispetto a LSTM

Apprendimento in dipendenza a lungo termine

Limitato

Capacità di apprendere dati sequenziali

data dattiloscritta

Applicazioni

Traduzione automatica, riconoscimento vocale, riepilogo del testo, elaborazione del linguaggio naturale, previsione di serie temporali

Elaborazione del linguaggio naturale, traduzione automatica, riconoscimento vocale, elaborazione di immagini, elaborazione video

Problema con le dipendenze a lungo termine in RNN

Le reti neurali ricorrenti (RNN) sono progettate per gestire dati sequenziali mantenendo uno stato nascosto che cattura informazioni dai passaggi temporali precedenti. Tuttavia, spesso affrontano sfide nell’apprendimento delle dipendenze a lungo termine, in cui le informazioni provenienti da passi temporali distanti diventano cruciali per fare previsioni accurate. Questo problema è noto come problema del gradiente di fuga o problema del gradiente di esplosione.

Alcuni problemi comuni sono elencati di seguito:

Gradiente di fuga

Durante la propagazione all'indietro nel tempo, i gradienti possono diventare estremamente piccoli man mano che vengono moltiplicati attraverso la catena di connessioni ricorrenti, causando difficoltà al modello nell'apprendimento delle dipendenze separate da molti passaggi temporali.

Gradiente esplosivo

Al contrario, i gradienti possono esplodere durante la backpropagation, portando a instabilità numerica e rendendo difficile la convergenza del modello.

Diverse varianti sulla memoria a breve termine

Nel tempo sono state proposte diverse varianti e miglioramenti all'architettura LSTM originale.

Vaniglia LS™

Questa è l'architettura LSTM originale proposta da Hochreiter e Schmidhuber. Include celle di memoria con porte di input, dimenticanza e output per controllare il flusso di informazioni. L'idea chiave è consentire alla rete di aggiornare e dimenticare selettivamente le informazioni dalla cella di memoria.

Connessioni spioncino

Nello spioncino LSTM, le porte possono osservare lo stato della cella oltre allo stato nascosto. Ciò consente ai gate di considerare lo stato della cella quando prendono decisioni, fornendo maggiori informazioni sul contesto.

Unità ricorrente recintata (GRU)

GRU è un'alternativa a LSTM, progettata per essere più semplice e computazionalmente più efficiente. Combina le porte di input e dimenticanza in un'unica porta di aggiornamento e unisce lo stato della cella e lo stato nascosto. Sebbene i GRU abbiano meno parametri degli LSTM, nella pratica hanno dimostrato di funzionare in modo simile.

Conclusione

La memoria a breve termine (LSTM) è un potente tipo di rete neurale ricorrente (RNN) adatta per la gestione di dati sequenziali con dipendenze a lungo termine. Affronta il problema del gradiente evanescente, una limitazione comune delle RNN, introducendo un meccanismo di controllo che controlla il flusso di informazioni attraverso la rete. Ciò consente agli LSTM di apprendere e conservare informazioni del passato, rendendoli efficaci per attività come la traduzione automatica, il riconoscimento vocale e l'elaborazione del linguaggio naturale.

Controlla anche:

Domande frequenti (FAQ)

1. Cos'è LSTM e perché viene utilizzato?

LSTM, o memoria a lungo termine, è un tipo di rete neurale ricorrente progettata per attività di sequenza, eccellente nell'acquisizione e nell'utilizzo delle dipendenze a lungo termine nei dati.

2. Come funziona LSTM?

Gli LSTM utilizzano uno stato di cella per archiviare informazioni sugli input passati. Questo stato della cella viene aggiornato ad ogni passaggio della rete e la rete lo utilizza per fare previsioni sull'input corrente. Lo stato della cella viene aggiornato utilizzando una serie di porte che controllano la quantità di informazioni che possono entrare e uscire dalla cella.

3. Quali sono gli esempi LSTM?

Gli esempi di LSTM (Long Short-Term Memory) includono il riconoscimento vocale, la traduzione automatica e la previsione di serie temporali, sfruttando la sua capacità di acquisire dipendenze a lungo termine in dati sequenziali.

4. Qual è la differenza tra LSTM e Gated Recurrent Unit (GRU)?

LSTM ha uno stato della cella e un meccanismo di gate che controlla il flusso di informazioni, mentre GRU ha un meccanismo di aggiornamento a gate singolo più semplice. LSTM è più potente ma più lento da addestrare, mentre GRU è più semplice e veloce.

5. Qual è la differenza tra LSTM e RNN?

  • RNN hanno una struttura ricorrente semplice con flusso di informazioni unidirezionale.
  • LSTM hanno un meccanismo di controllo che controlla il flusso di informazioni e uno stato cellulare per la memoria a lungo termine.
  • LSTM generalmente superano le RNN in compiti che richiedono l'apprendimento di dipendenze a lungo termine.

6. LSTM è più veloce della CNN?

No, LSTM e CNN hanno scopi diversi. Gli LSTM sono per dati sequenziali; Le CNN servono per i dati spaziali.

7. LSTM è più veloce di GRU?

In generale sì. I GRU hanno meno parametri, il che può portare a un addestramento più rapido rispetto agli LSTM.