Una RNN, o rete neurale ricorrente, è una rete neurale costruita per sequenze come testo, parlato o serie temporali. A ogni passaggio combina l'input corrente con uno stato nascosto del passaggio precedente, così l'output può dipendere da ciò che è arrivato prima.
Questa è l'idea chiave: una RNN ha una memoria progressiva. Una LSTM è un tipo di RNN con porte che gestisce quella memoria in modo più attento quando informazioni importanti devono sopravvivere per molti passaggi.
Cosa fa una RNN a ogni passo temporale
Al passo temporale , una RNN semplice aggiorna il suo stato nascosto con una regola come
Qui è l'input corrente, è lo stato nascosto precedente e è il nuovo stato nascosto. Le matrici e e il bias vengono appresi durante l'addestramento.
Se il modello produce anche un output a ogni passaggio, una forma comune è
La regola esatta dell'output dipende dal compito. Alcuni problemi richiedono un output per ogni passaggio, mentre altri usano solo lo stato nascosto finale.
Perché lo stato nascosto è importante
Una rete feedforward vede un input e poi passa oltre. Una RNN riutilizza parte del suo calcolo precedente. È proprio questo riuso che la rende utile per testo, parlato, serie temporali e altri dati ordinati.
Puoi pensare allo stato nascosto come a una nota compatta che il modello scrive a sé stesso dopo ogni passaggio. Il passaggio successivo legge quella nota, la aggiorna e inoltra la versione rivista.
Se cambi l'ordine degli stessi input, di solito cambiano anche gli stati nascosti. L'ordine della sequenza conta.
Esempio svolto di RNN
Le RNN reali usano di solito vettori e attivazioni non lineari. Per mantenere i calcoli leggibili, usa uno stato giocattolo con un solo numero:
Ora elabora la sequenza , , .
Primo passaggio:
Secondo passaggio:
Terzo passaggio:
Qui non conta la formula esatta. Conta la dipendenza dallo stato precedente. Al passaggio 2, l'aggiornamento non usa solo ; usa anche ciò che è stato portato avanti dal passaggio 1. Questa è l'idea centrale di una RNN.
Se inverti l'ordine e usi , , , allora
Lo stato finale è diverso anche se compaiono gli stessi numeri. È proprio per questo che le RNN sono modelli di sequenza e non modelli a sacco di input.
Perché le RNN di base faticano con sequenze lunghe
In una RNN di base, le vecchie informazioni devono sopravvivere attraverso molti aggiornamenti ripetuti. Se la sequenza è lunga, questo può essere difficile. I segnali utili possono attenuarsi e, durante l'addestramento, anche i gradienti possono ridursi troppo o esplodere lungo molti passaggi.
Per questo le RNN semplici spesso faticano quando il compito dipende da informazioni molto lontane nella sequenza. Il problema non è che la ricorrenza sia sbagliata. Il problema è che mantenere memoria a lungo raggio è difficile con un semplice aggiornamento dello stato nascosto.
Come la LSTM migliora la memoria delle RNN
Una LSTM, abbreviazione di long short-term memory, è una RNN con porte. Introduce un percorso di memoria più strutturato, di solito chiamato stato di cella, più porte che controllano quali informazioni vengono dimenticate, quali nuove informazioni vengono scritte e quale parte viene esposta come output.
Non serve conoscere tutte le equazioni delle porte per capire il punto. Questa struttura dà al modello più controllo sulla memoria. Se un dettaglio deve sopravvivere per molti passaggi, una LSTM è più adatta di una RNN semplice a conservarlo.
Questo non significa che una LSTM ricordi tutto per sempre. Significa che l'architettura è più adatta a imparare quando preservare l'informazione e quando scartarla.
RNN vs. LSTM in parole semplici
Una RNN di base ha un solo stato progressivo e lo aggiorna ripetutamente. Una LSTM aggiunge a questa idea un meccanismo di memoria più forte.
Se la sequenza è breve e la dipendenza è locale, una RNN semplice può bastare. Se il compito dipende da informazioni molto precedenti nella sequenza, una LSTM è spesso la scelta più sicura.
Errori comuni su RNN e LSTM
Pensare che una RNN veda tutta la sequenza in una volta
Di solito non è così. L'immagine standard è un'elaborazione passo dopo passo, con lo stato portato in avanti.
Supporre che la LSTM risolva perfettamente il problema della memoria
Aiuta con le dipendenze a lungo raggio, ma resta comunque un modello addestrato con capacità finita e limiti pratici.
Ignorare l'ordine della sequenza
Le RNN sono costruite per dati ordinati. Mescolare gli elementi della sequenza cambia il calcolo.
Trattare lo stato nascosto come una memoria leggibile da un umano
Lo stato nascosto è una rappresentazione numerica appresa, non un riassunto pulito simile a una frase.
Quando si usano RNN e LSTM
Si usano per problemi di sequenza come modellazione del linguaggio, parlato, scrittura a mano, flussi di sensori e previsione di serie temporali. Oggi molti compiti linguistici usano invece i transformer, ma RNN e LSTM restano importanti perché insegnano in modo chiaro la memoria nelle sequenze e possono ancora essere utili in contesti più piccoli o specializzati.
Prova una tua versione
Scrivi una sequenza di quattro passaggi e applica la regola giocattolo . Poi scambia l'ordine di due input e confronta lo stato finale. Questo piccolo esperimento rende il ruolo della ricorrenza molto più chiaro del solo acronimo.
Se vuoi esplorare un altro caso, confronta questa pagina con una spiegazione su transformer o catene di Markov e osserva cosa fa ciascun modello con le informazioni passate.
Hai bisogno di aiuto con un problema?
Carica la tua domanda e ottieni una soluzione verificata, passo dopo passo, in pochi secondi.
Apri GPAI Solver →