Una rete neurale ricorrente (RNN) è una rete neurale di deep learning che viene formata per convertire gli input sequenziali in output sequenziali specifici. Una rete neurale tradizionale non è in grado di ricordare i dati storici ed è questo a rendere utile l'RNN.
Una rete neurale è un sistema computazionale ispirato alla struttura del cervello umano, composto da neuroni artificiali. Queste reti sono progettate per replicare i processi decisionali umani. Le reti neurali tradizionali, tuttavia, elaborano ogni input in modo indipendente, senza la capacità di considerare la sequenza o il contesto dei dati. Ad esempio, elaborando le parole "mela rossa", una rete neurale standard non riuscirebbe a riconoscere "rosso" come attributo che descrive la mela, perdendo completamente il collegamento contestuale tra le due parole.
Ciò rappresenta un limite importante, che potrebbe facilmente impedire alle macchine di sviluppare qualcosa che si avvicini anche solo lontanamente a ciò che potrebbe essere considerato "intelligenza". Per colmare questa lacuna, i ricercatori hanno sviluppato le reti neurali ricorrenti (RNN). A differenza dei modelli tradizionali, le reti RNN incorporano meccanismi per conservare le informazioni nel tempo, consentendo loro di conservare una memoria degli input precedenti. Questa funzionalità consente alle RNN di comprendere sequenze e contesti all'interno dei dati e ciò le rende particolarmente utili per attività in cui l'ordine è fondamentale, come l'elaborazione del linguaggio o l'analisi delle serie temporali.
Una rete neurale ricorrente è progettata come una forma di intelligenza artificiale in grado di riconoscere e conservare la sequenza in cui compaiono i dati. Si tratta di una funzionalità fondamentale per l'elaborazione di informazioni sequenziali quali testi, numeri o dati di serie temporali. A differenza delle reti neurali tradizionali, che trattano ogni input in modo indipendente, le RNN sono in grado di collegare le informazioni precedenti agli input presenti, consentendo una comprensione delle sequenze di dati più ricca di sfumature.
Sebbene il concetto di rete neurale ricorrente abbia rappresentato un punto di svolta quando è stato introdotto, gettando le basi per la creazione di modelli di deep learning, è stato ampiamente sostituito dall'intelligenza artificiale basata sui trasformatori e dai modelli estensivi di linguaggio (LLM). Questi nuovi sviluppi sono più efficienti nell'elaborazione dei dati sequenziali.
Le RNN si distinguono per la capacità di elaborare sequenze di dati riconoscendo le relazioni e le dipendenze tra i singoli elementi. Sebbene tutte le RNN condividano questa caratteristica di base, ciascuna delle categorie indicata di seguito è progettata per affrontare tipi specifici di sfide relative all'elaborazione dei dati. Ecco quali sono le quattro tipologie principali:
Uno-a-uno
La forma più semplice di una RNN, uno-a-uno, descrive le reti in cui un input viene elaborato per generare un output. Questo modello funge da base per architetture RNN più complesse.Uno-a-molti
In questa configurazione, un singolo input genera molteplici output. Questo tipo di RNN è ideale per attività in cui un input può attivare una serie di output correlati ma distinti, come la generazione di una frase da una singola parola descrittiva o la produzione di una melodia da una nota musicale.Molti-a-uno
Il modello "uno-a-molti" elabora più punti di dati input per produrre un unico output. Viene comunemente utilizzato in applicazioni come l'analisi della percezione, in cui varie parole (input) contribuiscono a determinare la percezione complessiva (output) di una frase o di un documentoMolti-a-molti
Quest'ultima variante gestisce le sequenze sia negli input che negli output. È adatta per attività quali la traduzione di lingue, in cui una sequenza di parole in input in una lingua viene convertita in una sequenza di parole in output in un'altra lingua. Questo modello è in grado di gestire anche situazioni in cui le sequenze di input e output hanno una lunghezza diversa.
Una rete neurale che non ha nodi di looping viene chiamata rete neurale feed-forward. Queste tipologie di reti sono simili alle RNN in quanto entrambi i modelli cercano di elaborare i dati in modo simile a quello umano, con molti nodi interconnessi. Tuttavia, una rete neurale feed-forward trasmette solo informazioni in avanti e il modello non è in grado di ricordare le informazioni di input passate. Utilizzando l'esempio precedente, questo modello non ricorderebbe il rosso nel momento in cui ha elaborato il termine mela.
La rete neurale feed-forward, invece, funziona spostando le informazioni dal livello di input a quello di output, compresi gli eventuali livelli nascosti. Questo tipo di modello funziona bene per la classificazione delle immagini in cui l'input e l'output sono indipendenti. Tuttavia, questa rete è diversa dalle reti RNN perché non è in grado di ricordare la sequenza come fa una rete ricorrente.
L'architettura RNN ha tre varianti principali, ciascuna adattata dalla struttura di base per migliorare funzionalità e prestazioni per attività specifiche. Questa flessibilità nella progettazione contribuisce a soddisfare le esigenze specifiche di varie attività di elaborazione di sequenze di dati. Le varianti riportate di seguito modificano il modo in cui i dati vengono elaborati e trasformati in output, consentendo applicazioni più specializzate in un'ampia gamma di settori:
Una rete neurale ricorrente bidirezionale (BRNN) elabora le sequenze di dati in avanti e indietro. Il livello successivo funziona in modo molto simile al primo livello RNN, ma il livello precedente funziona in modo diverso per spostare le informazioni in una seconda direzione. La combinazione di entrambi i livelli aumenta la precisione della previsione.
La memoria a lungo e breve termine (LSTM) è un modello progettato per contenere dati di memoria più lunghi. Una RNN di base è in grado di ricordare solo l'ultimo input immediato. La LSTM può utilizzare input provenienti da sequenze precedenti per migliorarne l'accuratezza della previsione. Considera questo esempio semplificato di immissione di dati: La mela è rossa. Ad Ann piacciono solo le mele rosse. Una LSTM ricorderebbe che la mela è rossa quando si elaborano informazioni su quali tipi di mele sono importanti in questa situazione. Una RNN non ricorderebbe che la mela è rossa, perché tali informazioni sono state presentate in una sequenza precedente.
Un'unità ricorrente gated (GRU) è una variante sofisticata della rete neurale ricorrente standard, progettata per risolvere alcune delle limitazioni legate alla conservazione della memoria. Le GRU incorporano delle porte, meccanismi che regolano il flusso di informazioni. Questi includono la porta di aggiornamento, che determina quante informazioni passate (dai passaggi precedenti) debbano essere conservate, e la porta di ripristino, che decide quante informazioni passate dimenticare. Questa caratteristica permette alle GRU di conservare o scartare le informazioni in modo mirato, rendendole estremamente efficaci per attività in cui è fondamentale una comprensione approfondita del contesto o della sequenza degli eventi.
Le RNN sono estremamente versatili nella gestione dei dati in sequenze, caratteristica che li rende adatti per un'ampia gamma di applicazioni. Ecco alcuni degli usi più comuni:
Modellazione linguistica e generazione di testo
Le reti RNN sono in grado di prevedere la parola successiva in una frase basandosi sulle parole precedenti, il che è fondamentale per attività come il completamento automatico nei motori di ricerca o la generazione automatica di testo leggibile.Riconoscimento vocale
Queste reti possono elaborare dati audio nel tempo, il che le rende ideali per riconoscere le parole pronunciate in tempo reale e convertirle in testo, come avviene negli assistenti virtuali e nelle applicazioni mobili di conversione voce-testo.Traduzione automatica
Le RNN sono in grado di analizzare sequenze di parole in una lingua e di convertirle in un'altra lingua, mantenendo la precisione grammaticale e contestuale nel processo di traduzione.Riconoscimento delle immagini
Sebbene non siano comuni come altri modelli, come le CNN, per questo compito le RNN possono essere utilizzate per analizzare sequenze all'interno di immagini, ad esempio per leggere testi scritti a mano o elaborare fotogrammi video in sequenza.Previsione delle serie temporali
Le RNN sono particolarmente adatte per prevedere i valori futuri in una serie sulla base di dati storici, applicabili in campi quali previsioni del mercato azionario, previsioni meteorologiche e previsioni della domanda nel settore retail.
L'utilizzo di una RNN presenta alcune sfide, che rientrano nella logica alla base della loro sostituzione con reti neurali più recenti e relative varianti. Di seguito sono riportati quattro dei principali ostacoli all'utilizzo di una rete neurale ricorrente:
Gradiente esplosivo
Il gradiente fa riferimento alla sensibilità del tasso di errore corrispondente ai parametri del modello. Se il gradiente aumenta esponenzialmente, può diventare instabile. Quando ciò accade, viene considerato un gradiente esplosivo. Questo tipo di errore può portare al sovradattamento, un fenomeno per cui il modello riesce a fare previsioni accurate con i dati di addestramento ma non con i dati del mondo reale.Gradiente di scomparsa
Questa difficoltà sorge quando i valori del gradiente si riducono quasi a zero durante la formazione, rallentando in modo significativo il processo di apprendimento o bloccandolo completamente. Un gradiente di scomparsa rende difficile per la RNN catturare e apprendere efficacemente dai dati di addestramento, portando spesso a un sottoadattamento, per cui il modello non riesce a generalizzarsi bene ai nuovi dati.Difficoltà nell'elaborazione di sequenze lunghe
Le RNN possono avere difficoltà nell'elaborazione di lunghe sequenze di dati. Questo limite si verifica perché le informazioni rilevanti possono essere diluite su sequenze lunghe, ostacolando la capacità del modello di apprendere in modo efficace da tali dati.Tempi di formazione lunghi.
Dal momento che una RNN elabora i dati in modo sequenziale, non è in grado di elaborare grandi quantità di informazioni contemporaneamente. L'elaborazione sequenziale delle RNN comporta tempi di formazione più lunghi e una minore efficienza rispetto ad altri modelli che sono in grado di elaborare i dati in parallelo, come i trasformatori.
Oltre alla capacità di elaborare le informazioni in modo sequenziale, vi sono alcuni altri vantaggi importanti derivanti dall'utilizzo di una rete neurale ricorrente:
Le reti RNN sono dotate di strutture come unità LSTM (Long Short-Term Memory) che consentono di ricordare le informazioni per periodi prolungati. Questa funzione è fondamentale per le attività in cui è necessario comprendere il contesto passato per effettuare previsioni accurate sugli eventi futuri.
Le RNN possono essere combinate con reti neurali convoluzionali (CNN) per migliorarne la capacità di elaborazione dei dati spaziali, come immagini e video. Questa combinazione consente alle RNN non solo di riconoscere modelli nel tempo, ma anche di estendere il loro "campo visivo" in termini di dati pixel, migliorando l'analisi delle sequenze negli input visivi.
A differenza di molte altre architetture di rete neurale, le RNN sono in grado di gestire sequenze di input di lunghezze diverse senza necessità di rimodellamento o ridimensionamento dell'input. Ciò le rende estremamente versatili per applicazioni come il riconoscimento vocale in cui la durata dei dati di input può variare in modo significativo.
Le RNN sono intrinsecamente progettate per elaborare sequenze in cui la tempistica tra gli eventi è fondamentale. Ciò le rende particolarmente adatte per applicazioni quali la previsione del prezzo delle azioni, la composizione musicale e altre analisi sensibili al fattore tempo in cui la sequenza e la tempistica dei punti dati storici sono fondamentali per prevedere il futuro.
Come precisato, le RNN sono costituite da neuroni artificiali progettati per imitare il processo decisionale umano. I neuroni artificiali sono nodi di elaborazione dei dati che lavorano insieme per eseguire attività complesse. I neuroni sono organizzati in diversi livelli principali: input, output e livelli nascosti. Il livello di input riceve le informazioni da elaborare e il livello di output fornisce il risultato. L'elaborazione dei dati, l'analisi e la previsione avvengono nel livello nascosto.
Una RNN funziona passando i dati sequenziali che riceve attraverso i livelli nascosti un passaggio alla volta. Tuttavia, nel livello nascosto è presente un flusso di lavoro ricorrente o una funzione di auto-loop. Il livello nascosto può ricordare e utilizzare gli input precedenti per le previsioni future nella sua memoria a breve termine. L'input corrente viene memorizzato per prevedere la sequenza successiva.
Prendiamo ad esempio questa sequenza: La pioggia è bagnata. Gli utenti vogliono che una RNN preveda l'idea di bagnato quando riceve l'input pioggia. Il livello nascosto elaborerebbe e memorizzerebbe l'idea della pioggia. Ne viene memorizzata una copia nella sua memoria. Quindi, quando riceve il termine bagnato, può richiamare il termine pioggia dalla sua memoria e creare una sequenza completa. Queste informazioni possono quindi essere utilizzate per migliorare la precisione. Grazie a questa funzione, una RNN è utile nel riconoscimento vocale, nella traduzione e in altre attività di modellazione linguistica.
Gli ingegneri specializzati nel machine learning spesso addestrano reti neurali come le RNN alimentando il modello con dati di addestramento e poi perfezionandone le prestazioni. Nei modelli neurali, ai neuroni vengono assegnati dei “pesi” che segnalano quanto le informazioni apprese durante l’addestramento siano influenti nel prevedere l’output. Inizialmente, tutti i livelli di una RNN avranno lo stesso peso.
Gli ingegneri regolano quindi i pesi man mano che il modello impara a determinare l'accuratezza delle previsioni. Per fare ciò, si affidano a una tecnica chiamata Backpropagation Through Time (BPTT) per calcolare l'errore del modello e adattarne di conseguenza il peso. Gli ingegneri possono fare questo per identificare quale stato nascosto nella sequenza sta causando un errore significativo e regolare nuovamente il peso per ridurre il margine di errore.
Gli ingegneri di machine learning creano una rete neurale ricorrente utilizzando i loro linguaggi di codifica preferiti, come Python. Indipendentemente dal modo in cui scelgono di farlo, questi sono i passaggi generali necessari per implementare una RNN:
Creazione del livello di input
Il primo passo consiste nel creare un livello in grado di raccogliere i dati di input. Questo livello è composto da neuroni artificiali.Creazione di livelli nascosti
I modelli RNN possono avere più livelli nascosti che effettuano l'effettiva elaborazione per la rete neurale. Questi livelli sono composti inoltre da neuroni artificiali interconnessi. Ciò consente di simulare le capacità di previsione umane e rende possibile il sequenziamento.Creazione del livello di output
Questo livello finale prevede i risultati. Alcuni modelli potrebbero presentare anche ulteriori livelli downstream.Formazione con i pesi
Dopo che gli ingegneri hanno formato il modello con i dati, vengono creati i parametri esatti e i margini di errore. Potrebbe essere necessario del tempo per regolare con precisione i pesi ed evitare che i gradienti scompaiano o esplodano.
Le reti neurali ricorrenti hanno gettato una solida base per l'elaborazione sequenziale dei dati. Tuttavia, hanno dei limiti che hanno portato molte società a fare affidamento su modelli più recenti e più avanzati e sull'intelligenza artificiale per soddisfare le proprie esigenze. Ecco perché la Now Platform® di ServiceNow utilizza il machine learning e l'intelligenza artificiale generativa. Ciò include framework di machine learning, comprensione del linguaggio naturale, ricerca e automazione, analisi e process mining: tecnologie di intelligenza artificiale innovative e all'avanguardia che lavorano insieme per far crescere la tua attività.
Guarda la demo di ServiceNow oggi stesso per scoprire come le nuove soluzioni di rete neurale possono rappresentare il prossimo passo verso il successo.