Cos'è una RNN?

Una rete neurale ricorrente (RNN) è un modello di deep learning addestrato per elaborare e convertire un input di dati sequenziale in un output di dati sequenziale specifico. I dati sequenziali sono dati, come parole, frasi o dati di serie temporali, in cui i componenti sequenziali sono correlati in base a regole semantiche e sintattiche complesse. Una RNN è un sistema software costituito da molti componenti interconnessi che imitano il modo in cui gli umani eseguono conversioni sequenziali di dati, come la traduzione di testo da una lingua all'altra. Le RNN vengono in gran parte sostituite dall'intelligenza artificiale (IA) basata su trasformatori e dai modelli linguistici di grandi dimensioni (LLM), che sono molto più efficienti nell'elaborazione sequenziale dei dati.

Scopri di più sulle reti neurali

Scopri di più sul deep learning

Scopri di più sui trasformatori nell'intelligenza artificiale

Scopri di più sui modelli linguistici di grandi dimensioni

Come funziona una rete neurale ricorrente?

L'immagine seguente mostra il diagramma di una RNN.

Le RNN sono costituite da neuroni, vale a dire nodi di elaborazione dati che collaborano per eseguire attività complesse. I neuroni sono organizzati in livelli di input, output e livelli nascosti. Il livello di input riceve le informazioni da elaborare e il livello di output fornisce il risultato. L'elaborazione, l'analisi e la previsione dei dati avvengono nel livello nascosto. 

Livello nascosto

Le RNN funzionano trasmettendo i dati sequenziali che ricevono ai livelli nascosti un passaggio alla volta. Tuttavia, hanno anche un flusso di lavoro ricorrente o a ciclo automatico: il livello nascosto può ricordare e utilizzare gli input precedenti per le previsioni future in una componente di memoria a breve termine. Utilizza l'input corrente e la memoria archiviata per prevedere la sequenza successiva. 

Ad esempio, prendiamo in considerazione la sequenza La mela è rossa. Si desidera che la RNN preveda la parola rossa quando riceve la sequenza di input La mela è. Quando il livello nascosto elabora le parole La mela, ne memorizza una copia in memoria. Successivamente, quando vede la parola è, richiama La mela dalla sua memoria e comprende l'intera sequenza La mela è per il contesto. Può quindi prevedere la parola rossa per una maggiore precisione. Ciò rende le RNN utili nel riconoscimento vocale, nella traduzione automatica e in altre attività di modellazione linguistica.

Scopri di più sulla traduzione automatica

Formazione

Gli ingegneri del machine learning (ML) addestrano reti neurali profonde come le RNN alimentando il modello con dati di addestramento e perfezionandone le prestazioni. Nel ML, i pesi del neurone sono parametri che determinano l'influenza delle informazioni apprese durante l'addestramento nella previsione dell'output. Ogni livello in una RNN condivide lo stesso peso. 

Gli ingegneri ML regolano i pesi per migliorare l'accuratezza delle previsioni. Utilizzano una tecnica chiamata backpropagation through time (BPTT) per calcolare l'errore del modello e regolarne il peso. La BPTT ripristina l'output alla fase temporale precedente e ricalcola il tasso di errore. In questo modo può identificare quale stato nascosto nella sequenza sta causando un errore significativo e riadattare il peso per ridurre il margine di errore.

Scopri di più sul machine learning

Quali sono i tipi di reti neurali ricorrenti?

Le RNN sono spesso caratterizzate da un'architettura uno a uno in cui una sequenza di input è associata a un output. Tuttavia, possono essere facilmente adattate a diverse configurazioni per scopi specifici. Di seguito sono riportati alcuni tipi di RNN comuni.

Uno a molti

Questo tipo di RNN indirizza un input verso vari output. Attiva applicazioni linguistiche come la didascalia delle immagini, generando una frase a partire da una singola parola chiave.

Molti a molti

Il modello utilizza più input per prevedere più output. Ad esempio, con una RNN è possibile creare un traduttore linguistico in grado di analizzare una frase e strutturare correttamente le parole in un'altra lingua. 

Molti a uno

Diversi input sono mappati su un output. Ciò è utile in applicazioni come l'analisi del sentiment, in cui il modello prevede i sentiment dei clienti come positivi, negativi e neutri in base alle testimonianze in entrata.

Quali sono le differenze tra le reti neurali ricorrenti e le altre reti di deep learning?

Le RNN sono una delle varie architetture di reti neurali.

Rete neurale ricorrente e rete neurale feed-forward

Analogamente alle RNN, le reti neurali feed-forward sono reti neurali artificiali che trasmettono informazioni da un'estremità all'altra dell'architettura. Una rete neurale feed-forward può eseguire semplici attività di classificazione, regressione o riconoscimento, ma non è in grado di ricordare l'input precedente che ha elaborato. Ad esempio, dimentica la parola "mela" quando il neurone elabora la parola "è". La RNN risolve questa limitazione della memoria includendo nel neurone uno stato di memoria nascosto.

Rete neurale ricorrente e reti neurali convoluzionali

Le reti neurali convoluzionali sono reti neurali artificiali progettate per elaborare dati temporali. È possibile utilizzare le reti neurali convoluzionali per estrarre informazioni spaziali da video e immagini, facendole passare attraverso una serie di livelli convoluzionali e di raggruppamento nella rete neurale. Le RNN sono progettate per acquisire dipendenze a lungo termine nei dati sequenziali

Quali sono i limiti delle reti neurali ricorrenti?

Dall'introduzione delle RNN, gli ingegneri di machine learning hanno compiuto progressi significativi nelle applicazioni di elaborazione del linguaggio naturale (NLP) con le RNN e le loro varianti. Tuttavia, la serie di modelli RNN presenta diverse limitazioni.

Scopri di più sull'elaborazione del linguaggio naturale

Gradiente esplosivo

Una RNN può prevedere erroneamente l'output dell'addestramento iniziale. È necessario effettuare diverse iterazioni per regolare i parametri del modello e ridurre il tasso di errore. La sensibilità del tasso di errore corrispondente al parametro del modello può essere descritta come un gradiente. Si può immaginare un gradiente come la pendenza che si percorre per discendere da una collina. Un gradiente più ripido consente al modello di apprendere più velocemente, mentre uno più lieve riduce il tasso di apprendimento.

Il gradiente esplosivo si verifica quando il gradiente aumenta esponenzialmente fino a rendere instabile la RNN. Quando i gradienti diventano eccessivamente grandi, l'RNN si comporta in modo irregolare, con conseguenti problemi di prestazioni come l'overfitting. L'overfitting è un fenomeno in cui il modello è in grado di prevedere con accuratezza utilizzando i dati di addestramento, ma non è in grado di fare lo stesso con i dati del mondo reale. 

Scomparsa del gradiente

Il problema della scomparsa del gradiente è una condizione in cui il gradiente del modello si avvicina allo zero durante l'addestramento. Quando il gradiente scompare, l'RNN non riesce ad apprendere efficacemente dai dati di addestramento, causando underfitting. Un modello underfit non può funzionare bene nelle applicazioni reali perché i suoi pesi non sono stati regolati adeguatamente. Per le RNN c'è il rischio di incorrere nei problemi di scomparsa ed esplosione del gradiente quando elaborano lunghe sequenze di dati. 

Tempo di addestramento lento

Una RNN elabora i dati in modo sequenziale, il che limita la sua capacità di elaborare un gran numero di testi in modo efficiente. Ad esempio, un modello RNN può analizzare il sentiment di un acquirente a partire da un paio di frasi. Tuttavia, richiede un'enorme potenza di calcolo, spazio di memoria e tempo per riassumere una pagina di un saggio. 

Quali sono alcune delle varianti dell'architettura delle reti neurali ricorrenti?

L'architettura RNN ha posto le basi per i modelli di machine learning dotati di capacità di elaborazione del linguaggio. Sono emerse diverse varianti che ne condividono il principio di conservazione della memoria e ne migliorano la funzionalità originale. Di seguito sono riportati alcuni esempi.

Reti neurali ricorrenti bidirezionali

Una rete neurale ricorrente bidirezionale (BRNN) elabora sequenze di dati con livelli forward e backward di nodi nascosti. Il livello forward funziona in modo simile all'RNN,memorizzando l'input precedente nello stato nascosto e lo utilizza per prevedere l'output successivo. Al contempo, il livello backward funziona nella direzione opposta prendendo sia l'input corrente che lo stato nascosto futuro per aggiornare lo stato nascosto attuale. La combinazione dei due livelli consente alla BRNN di migliorare l'accuratezza delle previsioni considerando i contesti passati e futuri. Ad esempio, è possibile utilizzare la BRNN per prevedere la parola alberi nella frase Gli alberi di mele sono alti

Memoria a lungo e breve termine

La memoria a lungo e breve termine (Long short-term memory - LSTM) è una variante di RNN che consente al modello di espandere la propria capacità di memoria per adattarsi ad un arco temporale più lungo. Una RNN può ricordare solo l'input passato immediato. Non può utilizzare gli input di diverse sequenze precedenti per migliorare la previsione. 

Prendiamo in considerazione le seguenti frasi: Tom è un gatto. Il cibo preferito di Tom è il pesce. Quando si utilizza una RNN, il modello non ricorda che Tom è un gatto. Può generare vari alimenti quando predice l'ultima parola. Le reti LSTM aggiungono un blocco di memoria speciale chiamato celle nel livello nascosto. Ogni cella è controllata da una porta di ingresso, una porta di uscita e una porta di dimenticanza, che permettono al livello di ricordare le informazioni utili. Ad esempio, la cella ricorda le parole Tom e gatto, consentendo al modello di prevedere la parola pesce

Unità ricorrenti recintate

Un'unità ricorrente recintata (GRU) è una RNN che consente la conservazione selettiva della memoria. Il modello aggiunge un aggiornamento e dimentica la porta al livello nascosto che può memorizzare o rimuovere informazioni nella memoria. 

In che modo i trasformatori superano i limiti delle reti neurali ricorrenti?

I trasformatori sono modelli di deep learning che utilizzano meccanismi di auto-attenzione in una rete neurale feed-forward codificatore-decodificatore. Possono elaborare dati sequenziali allo stesso modo di RNN. 

Auto-attenzione

I trasformatori non utilizzano stati nascosti per acquisire le interdipendenze delle sequenze di dati. Utilizzano, invece, un'unità di auto-attenzione per elaborare sequenze di dati in parallelo. Ciò consente ai trasformatori di addestrare ed elaborare sequenze più lunghe in minor tempo rispetto a una RNN. Grazie al meccanismo di auto-attenzione, i trasformatori superano i limiti di memoria e le interdipendenze di sequenza che le RNN devono affrontare. I trasformatori possono elaborare sequenze di dati in parallelo e utilizzare la codifica posizionale per ricordare come ciascun input si relaziona agli altri. 

Parallelismo

I trasformatori risolvono i problemi di gradiente delle RNN abilitando il parallelismo durante l'addestramento. Elaborando tutte le sequenze di input contemporaneamente, un trasformatore non è soggetto a restrizioni di retropropagazione perché i gradienti possono fluire liberamente verso tutti i pesi. Sono anche ottimizzati per il calcolo parallelo che le unità di elaborazione grafica (GPU) offrono per gli sviluppi di IA generativa. Il parallelismo consente ai trasformatori di dimensionare notevolmente e gestire attività di NLP complesse costruendo modelli più grandi. 

In che modo AWS può supportare i requisiti di RNN?

L'IA generativa su Amazon Web Services (AWS) fornisce servizi, strumenti e risorse che è possibile utilizzare per creare, gestire e dimensionare applicazioni di intelligenza artificiale tradizionali con una tecnologia avanzata basata su trasformatori. Ad esempio:

  • Amazon SageMaker è un servizio completamente gestito che può essere utilizzato per preparare dati e creare, addestrare e implementare modelli di machine learning per qualsiasi caso d'uso. Dispone di infrastrutture, strumenti e flussi di lavoro completamente gestiti.
  • Amazon Bedrock semplifica lo sviluppo dell'IA generativa consentendo la personalizzazione e l'implementazione di modelli di fondazione (FM) leader del settore in modo sicuro ed efficiente.
  • AWS Trainium è un acceleratore di machine learning che può essere utilizzato per addestrare e dimensionare modelli di deep learning nel cloud a costi contenuti. 

Inizia subito a utilizzare l'IA generativa su AWS registrando un account.

Fasi successive su AWS

Registrati e crea un account gratuito

Ottieni accesso istantaneo al Piano gratuito di AWS.

Registrati 
Inizia a lavorare nella console

Inizia subito a creare nella Console di gestione AWS.

Accedi