Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Long Short-Term Memory (LSTM)

Una LSTM è una rete ricorrente il cui stato della cella, controllato da porte, trasporta informazioni attraverso sequenze lunghe. Panoramica delle porte, delle equazioni, del confronto con GRU e del codice.

La memoria a lungo e breve termine (LSTM) è un'architettura di rete neurale ricorrente (RNN) che affianca allo stato nascosto di una RNN semplice una memoria regolata da gate, lo stato della cella, così da poter conservare informazioni per centinaia o migliaia di passi temporali. Sepp Hochreiter e Jürgen Schmidhuber la introdussero nel 1997 per superare il problema del gradiente evanescente, che impedisce alle RNN semplici di apprendere dipendenze a lungo raggio; il loro articolo riferiva di aver colmato intervalli temporali superiori a 1.000 passi. Negli anni 2010, le LSTM hanno alimentato il riconoscimento vocale, la traduzione automatica e il riconoscimento della scrittura, finché i transformer non hanno preso il sopravvento sulla maggior parte dei compiti linguistici. Restano comuni nell'analisi delle serie temporali, nei flussi di dati dei sensori e nei modelli eseguiti sul dispositivo, dove sono importanti uno stato di dimensione costante e un costo costante per passo.

Come funziona una cella LSTM#

A ogni passo temporale t, una LSTM legge l'input xₜ e lo stato nascosto precedente hₜ₋₁, quindi calcola tre gate e un candidato, ciascuno con i propri pesi. I gate usano la funzione sigmoide, quindi ogni elemento è compreso tra 0 e 1; il candidato usa tanh, quindi è compreso tra −1 e 1:

  • Gate di dimenticanza: fₜ = σ(W_f xₜ + U_f hₜ₋₁ + b_f) decide quanta parte di ogni elemento del vecchio stato della cella conservare.
  • Gate di input: iₜ = σ(W_i xₜ + U_i hₜ₋₁ + b_i) decide quanta parte del candidato scrivere.
  • Candidato: gₜ = tanh(W_g xₜ + U_g hₜ₋₁ + b_g) propone nuovi contenuti.
  • Gate di output: oₜ = σ(W_o xₜ + U_o hₜ₋₁ + b_o) decide quanta parte della cella rendere visibile.

I due stati si aggiornano quindi come cₜ = fₜ ⊙ cₜ₋₁ + iₜ ⊙ gₜ e hₜ = oₜ ⊙ tanh(cₜ), dove ⊙ indica la moltiplicazione elemento per elemento. Lo stato della cella è la memoria a lungo termine, mentre lo stato nascosto è l'output a breve termine che alimenta il layer e il passo successivi.

L'aggiornamento della cella è additivo. Il gradiente di cₜ rispetto a cₜ₋₁ è fₜ, elemento per elemento, quindi quando il gate di dimenticanza resta vicino a 1 il segnale di errore si propaga all'indietro attraverso molti passi quasi invariato: il percorso che l'articolo originale chiamava carosello dell'errore costante. La LSTM del 1997 non aveva un gate di dimenticanza e le sue celle potevano solo accumulare informazioni. Nel 2000, Felix Gers, Schmidhuber e Fred Cummins aggiunsero il gate di dimenticanza affinché le celle potessero azzerarsi; oggi ogni LSTM standard ne è dotata. Inizializzare a 1 il bias del gate di dimenticanza, come consigliato da Rafal Jozefowicz e colleghi nel 2015, mantiene aperto il gate nelle prime fasi dell'addestramento, così la rete inizia ricordando.

LSTM in PyTorch#

nn.LSTM di PyTorch esegue la cella su un'intera sequenza e restituisce lo stato nascosto a ogni passo, oltre agli stati nascosto e della cella finali. Lo snippet qui sotto classifica brevi clip video usando vettori di caratteristiche per frame, come quelli estratti da una rete neurale convoluzionale (CNN) da ogni frame:

import torch
from torch import nn

# 8 video clips, 16 frames each, 512 features per frame: (batch, time, features)
clips = torch.randn(8, 16, 512)

# One LSTM layer with a 128-dim hidden state, and a classifier over 5 actions
lstm = nn.LSTM(input_size=512, hidden_size=128, batch_first=True)
classifier = nn.Linear(128, 5)

# output holds h at every step; h_n and c_n are the final hidden and cell states
output, (h_n, c_n) = lstm(clips)
logits = classifier(h_n[-1])
print(f"output {tuple(output.shape)}, h_n {tuple(h_n.shape)}, c_n {tuple(c_n.shape)}, logits {tuple(logits.shape)}")

# Each weight matrix stacks four blocks of 128 rows: input gate, forget gate, candidate, output gate
print(f"Input weights {tuple(lstm.weight_ih_l0.shape)}, recurrent weights {tuple(lstm.weight_hh_l0.shape)}")

Stampa output (8, 16, 128), h_n (1, 8, 128), c_n (1, 8, 128), logits (8, 5) e Input weights (512, 512), recurrent weights (512, 128). Lo stato nascosto finale riassume ogni clip di 16 frame per il classificatore a cinque classi, e ogni matrice dei pesi ha 4 × 128 = 512 righe perché PyTorch memorizza i quattro blocchi dei gate in un'unica matrice.

  • RNN semplice: Riscrive l'intero stato attraverso un unico layer tanh a ogni passo, quindi i gradienti diminuiscono o aumentano geometricamente con la lunghezza della sequenza e le dipendenze a lungo raggio sono difficili da apprendere.
  • GRU: Fonde gli stati della cella e nascosto e usa due gate invece di tre, con tre blocchi di pesi anziché quattro e il 75% dei parametri della LSTM a parità di larghezza. Nessuna delle due prevale costantemente su tutti i compiti.
  • Transformer: Elabora tutte le posizioni in parallelo con la self-attention, consentendo un addestramento molto più rapido sulle GPU e l'accesso diretto al contesto distante; per questo i transformer hanno sostituito le LSTM nella modellazione del linguaggio e nella traduzione. Il costo dell'attenzione cresce con la lunghezza del contesto, mentre una LSTM usa la stessa quantità di calcolo e memoria per ogni nuovo passo.
  • xLSTM: xLSTM, sviluppata dal gruppo di Hochreiter nel 2024, aggiunge gate esponenziali e una memoria a matrice che consente l'addestramento parallelo. Il suo modello linguistico da 7 miliardi di parametri, xLSTM 7B, è stato presentato a ICML 2025 con prestazioni paragonabili a quelle di transformer di dimensioni simili e inferenza più rapida.

Applicazioni#

  • Riconoscimento vocale: Nel 2015 Google è passata a modelli acustici LSTM per la ricerca vocale, addestrati con la classificazione temporale connessionista (CTC); i riconoscitori eseguiti sul dispositivo hanno fatto affidamento a lungo su LSTM sovrapposte.
  • Traduzione automatica: Google Neural Machine Translation, lanciato nel 2016, sovrapponeva otto layer LSTM nell'encoder e otto nel decoder.
  • Previsione delle piene: Il sistema di Google per la previsione delle piene, descritto su Nature nel 2024, usa reti LSTM per prevedere la portata dei fiumi dai dati meteorologici e anticipa le piene estreme nei bacini non monitorati fino a cinque giorni prima.
  • Riconoscimento delle azioni: Una CNN codifica ogni frame video e una LSTM legge la sequenza delle caratteristiche dei frame per classificare la clip: è la struttura seguita dallo snippet qui sopra.
  • Previsione delle traiettorie: Social LSTM esegue una LSTM per ogni pedone e aggrega gli stati nascosti delle persone vicine per prevedere i percorsi tra la folla. YOLO26 in modalità track assegna a ogni persona un ID persistente tra i frame video, trasformando le rilevazioni per frame nelle cronologie di posizione usate da un sistema di previsione di questo tipo.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning