Una breve storia delle reti neurali

Un breve viaggio nella storia delle reti neurali

 

Le reti neurali, i mattoni fondamentali dell’intelligenza artificiale, hanno rivoluzionato il modo in cui elaboriamo le informazioni, offrendo uno sguardo al futuro della tecnologia. Questi complessi sistemi computazionali, ispirati alle intricazioni del cervello umano, sono diventati fondamentali in compiti che vanno dal riconoscimento delle immagini e alla comprensione del linguaggio naturale alla guida autonoma e alla diagnosi medica. Mentre esploriamo l’evoluzione storica delle reti neurali, scopriremo il loro straordinario percorso di come si sono evolute per plasmare il paesaggio moderno dell’IA. 

 

Come Tutto Ebbe Inizio?

 

Le reti neurali, i componenti fondamentali del deep learning, devono le loro radici concettuali alle intricate reti biologiche di neuroni presenti nel cervello umano. Questo concetto straordinario ha avuto inizio con un’analoga fondamentale, che traccia dei paralleli tra i neuroni biologici e le reti computazionali.

Questa analogia si concentra sul cervello, composto approssimativamente da 100 miliardi di neuroni. Ogni neurone mantiene circa 7000 connessioni sinaptiche con altri neuroni, creando una complessa rete neurale che sta alla base dei processi cognitivi umani e delle prese di decisione.

Individualmente, un neurone biologico opera attraverso una serie di semplici processi elettrochimici. Riceve segnali da altri neuroni attraverso le sue dendriti. Quando questi segnali in ingresso raggiungono un certo livello (una soglia predeterminata), il neurone si attiva e invia un segnale elettrochimico lungo il suo assone. Questo, a sua volta, influisce sui neuroni collegati ai suoi terminali di sinapsi. La cosa principale da notare qui è che la risposta di un neurone è come un interruttore binario: si attiva o rimane in silenzio, senza stati intermedi.  

Le reti neurali artificiali, impressionanti come sono, sono ancora lontane dall’avvicinarsi anche lontanamente alle incredibili intricazioni e complessità profonde del cervello umano. Tuttavia, hanno dimostrato notevole capacità nel risolvere problemi che sono sfidanti per i computer convenzionali ma appaiono intuitivi per la cognizione umana. Alcuni esempi sono il riconoscimento delle immagini e l’analisi predittiva basata sui dati storici.

Ora che abbiamo esplorato i principi fondamentali di come i neuroni biologici funzionano e della loro ispirazione per le reti neurali artificiali, intraprendiamo un viaggio attraverso l’evoluzione dei framework delle reti neurali che hanno plasmato il panorama dell’intelligenza artificiale. 

 

FFNN – Rete Neurale Feed-Forward

 

Le reti neurali feed-forward, spesso indicate come perceptron multistrato, sono un tipo fondamentale di reti neurali, la cui operazione è profondamente radicata nei principi del flusso delle informazioni, dei livelli interconnessi e dell’ottimizzazione dei parametri.

Alla loro base, le FFNN orchestrano un viaggio unidirezionale delle informazioni. Tutto comincia con il livello di input contenente n neuroni, dove i dati vengono inizialmente inseriti. Questo livello funge da punto di ingresso per la rete, agendo come un recettore per le caratteristiche di input che devono essere elaborate. Da lì, i dati intraprendono un viaggio trasformativo attraverso i livelli nascosti della rete.

Un aspetto importante delle FFNN è la loro struttura connessa, il che significa che ogni neurone in un livello è intricate connesso a ogni neurone in quel livello. Questa interconnettività consente alla rete di eseguire calcoli e catturare relazioni all’interno dei dati. È come una rete di comunicazione in cui ogni nodo svolge un ruolo nel processo di informazioni.

Mentre i dati passano attraverso i livelli nascosti, subiscono una serie di calcoli. Ogni neurone in un livello nascosto riceve input da tutti i neuroni nel livello precedente, applica una somma pesata a questi input, aggiunge un termine di bias e quindi passa il risultato attraverso una funzione di attivazione (comunemente ReLU, Sigmoid o tanH). Queste operazioni matematiche consentono alla rete di estrarre pattern rilevanti dall’input e catturare complesse relazioni non lineari all’interno dei dati. Questo è dove le FFNN eccellono veramente rispetto a modelli ML più superficiali.  

Tuttavia, non è qui che finisce. La vera potenza delle FFNN risiede nella loro capacità di adattarsi. Durante l’addestramento, la rete regola i suoi pesi per ridurre al minimo la differenza tra le sue previsioni e i valori di destinazione effettivi. Questo processo iterativo, spesso basato su algoritmi di ottimizzazione come la discesa del gradiente, è chiamato retropropagazione. La retropropagazione permette alle FFNN di apprendere effettivamente dai dati e migliorare la loro accuratezza nel fare previsioni o classificazioni.

  

Anche se potenti e versatili, gli FFNN presentano alcune limitazioni rilevanti. Ad esempio, non riescono a catturare la sequenzialità e le dipendenze temporali/sintattiche dei dati – due aspetti cruciali per compiti di elaborazione del linguaggio e analisi delle serie temporali. La necessità di superare queste limitazioni ha portato all’evoluzione di un nuovo tipo di architettura di rete neurale. Questa transizione ha aperto la strada alle Reti Neurali Ricorrenti (RNN), che hanno introdotto il concetto di loop di feedback per gestire meglio i dati sequenziali.

RNN e LSTM – Rete Neurale Ricorrente e Memoria a Lungo Termine

Alla base, le RNN condividono alcune somiglianze con gli FFNN. Anch’esse sono composte da strati di nodi interconnessi che elaborano i dati per fare previsioni o classificazioni. Tuttavia, la loro caratteristica distintiva risiede nella capacità di gestire dati sequenziali e catturare dipendenze temporali.

In un FFNN, le informazioni fluono in un percorso unidirezionale, dallo strato di input allo strato di output. Questo è adatto per compiti in cui l’ordine dei dati non è molto importante. Tuttavia, quando si lavora con sequenze come dati di serie temporali, linguaggio o discorso, mantenere il contesto e comprendere l’ordine dei dati è cruciale. Ecco dove brillano le RNN.

Le RNN introducono il concetto di loop di feedback. Questi funzionano come una sorta di “memoria” e consentono alla rete di mantenere uno stato nascosto che cattura informazioni sugli input precedenti e di influenzare l’input e l’output corrente. Mentre le reti neurali tradizionali assumono che input e output siano indipendenti l’uno dall’altro, l’output delle reti neurali ricorrenti dipende dagli elementi precedenti nella sequenza. Questo meccanismo di connessione ricorrente rende le RNN particolarmente adatte per gestire sequenze “ricordando” informazioni passate.

Un’altra caratteristica distintiva delle reti ricorrenti è che condividono lo stesso parametro di peso all’interno di ciascuno strato della rete, e quei pesi vengono regolati sfruttando l’algoritmo di retropropagazione nel tempo (BPTT), che è leggermente diverso dalla retropropagazione tradizionale poiché è specifico per dati sequenziali.

Tuttavia, le RNN tradizionali hanno le loro limitazioni. Sebbene in teoria dovrebbero essere in grado di catturare dipendenze a lungo termine, nella realtà faticano a farlo in modo efficace e possono addirittura soffrire del problema del gradiente che svanisce, il che ostacola la loro capacità di apprendere e ricordare informazioni nel corso di molti passaggi temporali.

È qui che entrano in gioco le unità Long Short-Term Memory (LSTM). Sono appositamente progettate per gestire questi problemi incorporando tre gate nella loro struttura: il gate dimentica, il gate di input e il gate di output.

  • Gate dimentica: Questo gate decide quali informazioni dello step temporale devono essere scartate o dimenticate. Esaminando lo stato della cella e l’input corrente, determina quali informazioni sono irrilevanti per fare previsioni nel presente.
  • Gate di input: Questo gate è responsabile di incorporare informazioni nello stato della cella. Considera sia l’input che lo stato precedente della cella per decidere quali nuove informazioni aggiungere per migliorare il suo stato.
  • Gate di output: Questo gate determina quale output verrà generato dall’unità LSTM. Considera sia l’input corrente che lo stato aggiornato della cella per produrre un output che può essere utilizzato per previsioni o passato a step temporali successivi.

In sintesi, le RNN e in particolare le unità LSTM sono adattate per dati sequenziali, consentendo loro di mantenere memoria e catturare dipendenze temporali, che sono capacità critiche per compiti come l’elaborazione del linguaggio naturale, il riconoscimento del discorso e la previsione delle serie temporali.

Mentre ci spostiamo dalle RNN che catturano dipendenze sequenziali, l’evoluzione continua con le Reti Neurali Convoluzionali (CNN). A differenza delle RNN, le CNN eccellono nell’estrazione delle caratteristiche spaziali da dati strutturati simili a griglie, rendendole ideali per compiti di riconoscimento di immagini e modelli. Questa transizione riflette le diverse applicazioni delle reti neurali su diversi tipi di dati e strutture.

CNN – Rete Neurale Convoluzionale

Le CNN sono una tipologia speciale di reti neurali particolarmente adatte per elaborare dati di immagini, come immagini bidimensionali o addirittura dati video tridimensionali. La loro architettura si basa su una rete neurale di alimentazione multistrato con almeno uno strato convoluzionale.

Ciò che rende le CNN uniche è la loro connettività di rete e l’approccio all’estrazione delle caratteristiche, che permette loro di identificare automaticamente i modelli rilevanti nei dati. A differenza delle tradizionali FFNN, che collegano ogni neurone in un livello a ogni neurone nel successivo, le CNN utilizzano una finestra scorrevole chiamata kernel o filtro. Questa finestra scorrevole scansiona i dati di input ed è particolarmente potente per compiti in cui le relazioni spaziali hanno importanza, come l’identificazione di oggetti nelle immagini o il tracciamento del movimento nei video. Mentre il kernel si sposta sull’immagine, viene eseguita un’operazione di convoluzione tra il kernel e i valori dei pixel (da un punto di vista strettamente matematico, questa operazione è una correlazione incrociata) e viene applicata una funzione di attivazione non lineare, di solito il ReLU. Questo produce un valore elevato se la caratteristica è nella patch dell’immagine e un valore basso se non lo è.

Insieme al kernel, l’aggiunta e la regolazione dei parametri iper, come lo stride (cioè il numero di pixel con cui scorriamo il kernel) e il tasso di dilatazione (cioè gli spazi tra ogni cella del kernel), permettono alla rete di concentrarsi su specifiche caratteristiche, riconoscendo modelli e dettagli in regioni specifiche senza considerare l’intero input in una volta sola.

Operazione di convoluzione con stride length = 2 (GIF di Sumit Saha).

Alcuni kernel potrebbero specializzarsi nel rilevare bordi o angoli, mentre altri potrebbero essere regolati per riconoscere oggetti più complessi come gatti, cani o segnali stradali in un’immagine. Impilando insieme diversi strati convoluzionali e di pooling, le CNN costruiscono una rappresentazione gerarchica dell’input, astrayendo progressivamente le caratteristiche da basso livello a alto livello, proprio come il nostro cervello elabora le informazioni visive.

Esempio di un flusso di lavoro KNIME di CNN per la classificazione binaria delle immagini (gatti vs cani). Il ramo superiore definisce l’architettura di rete utilizzando una serie di strati convoluzionali e di max pooling per l’estrazione automatica delle caratteristiche dalle immagini. Viene poi utilizzato uno strato di appiattimento per preparare le caratteristiche estratte come input unidimensionale per la FFNN per eseguire una classificazione binaria.

Anche se le CNN eccellono nell’estrazione delle caratteristiche e hanno rivoluzionato i compiti di visione artificiale, agiscono come osservatori passivi, poiché non sono progettate per generare nuovi dati o contenuti. Questo non è un limite intrinseco della rete in sé, ma avere un motore potente senza carburante rende inutile una macchina veloce. Infatti, i dati di immagini e video reali e significativi tendono ad essere difficili e costosi da raccogliere e spesso devono affrontare restrizioni di copyright e privacy dei dati. Questo vincolo ha portato allo sviluppo di un nuovo paradigma che si basa sulle CNN ma rappresenta un salto dalla classificazione delle immagini alla sintesi creativa: i Generative Adversarial Networks (GAN).

GAN – Generative Adversarial Networks

GAN sono una particolare famiglia di reti neurali il cui scopo principale, ma non unico, è quello di produrre dati sintetici che si avvicinino molto a un determinato dataset di dati reali. A differenza della maggior parte delle reti neurali, il design architettonico ingegnoso delle GAN consiste in due modelli principali:

  • Modello Generatore: Il primo giocatore in questo duetto di reti neurali è il modello generatore. Questo componente ha il compito affascinante di creare campioni artificiali che assomiglino il più possibile ai campioni reali, dati rumore casuale o vettori di input. Immaginalo come un falsario d’arte che cerca di creare dipinti indistinguibili dai capolavori.
  • Modello Discriminatore: Gioca il ruolo dell’avversario il modello discriminatore. Il suo compito è differenziare i campioni generati dal generatore dai campioni autentici del dataset originale. Pensalo come un intenditore d’arte che cerca di individuare i falsi tra le opere genuine.

E qui avviene la magia: le GAN si impegnano in una danza continua, avversaria. Il generatore cerca di migliorare la sua abilità artistica, affinando continuamente le sue creazioni per renderle più convincenti. Nel frattempo, il discriminatore diventa un detective più acuto, affinando la sua capacità di distinguere il vero dal falso.

Architettura delle GAN (immagine dell’autore).

Man mano che l’addestramento procede, questa dinamica interazione tra il generatore e il discriminatore porta a un risultato affascinante. Il generatore si impegna a generare campioni così realistici che nemmeno il discriminatore riesce a distinguerli dai campioni autentici. Questa competizione spinge entrambi i componenti a migliorare continuamente le loro abilità.

Risultato? Un generatore che diventa sorprendentemente abile nella produzione di dati che sembrano autentici, che si tratti di immagini, musica o testo. Questa capacità ha portato a applicazioni notevoli in vari settori, tra cui la sintesi di immagini, l’aumento dei dati, la traduzione da immagine a immagine e l’editing di immagini.

 Esempio di flusso di lavoro KNIME di GAN per la generazione di immagini sintetiche (ad esempio, animali, volti umani e personaggi di Simpson).

I GAN hanno introdotto la creazione di contenuti realistici di immagini e video mettendo un generatore contro un discriminator. Estendendo la necessità di creatività e operazioni avanzate dai dati di immagine ai dati sequenziali, sono stati introdotti modelli per una comprensione del linguaggio naturale più sofisticata, la traduzione automatica e la generazione di testo. Questo ha dato inizio allo sviluppo dei Transformers, un’architettura di rete neurale profonda notevole che non solo ha superato le architetture precedenti catturando efficacemente le dipendenze linguistiche e il contesto semantico a lungo raggio, ma è diventata anche la fondazione indiscussa delle più recenti applicazioni AI-driven.

 

Transformers

 

Sviluppati nel 2017, i Transformers vantano una caratteristica unica che consente loro di sostituire gli strati ricorrenti tradizionali: un meccanismo di auto-attenzione che consente loro di modellare le relazioni intricate tra tutte le parole in un documento, indipendentemente dalla loro posizione. Ciò rende i Transformers eccellenti nel affrontare la sfida delle dipendenze a lungo raggio nel linguaggio naturale. Le architetture dei Transformers sono composte da due blocchi principali:

  • Encoder. Qui la sequenza di input viene incorporata in vettori e poi viene esposta al meccanismo di auto-attenzione. Quest’ultimo calcola i punteggi di attenzione per ogni token, determinando la sua importanza in relazione agli altri. Questi punteggi vengono utilizzati per creare somme pesate, che vengono inserite in una FFNN per generare rappresentazioni consapevoli del contesto per ogni token. Più strati di codificatori ripetono questo processo, migliorando la capacità del modello di catturare informazioni gerarchiche e contestuali.
  • Decoder. Questo blocco è responsabile della generazione di sequenze di output e segue un processo simile a quello dell’encoder. È in grado di concentrarsi correttamente e comprendere l’output dell’encoder e i suoi propri token passati durante ogni passo, assicurando una generazione accurata considerando sia il contesto di input che gli output generati in precedenza.

 Architettura del modello Transformer (immagine di: Vaswani et al., 2017).

Considera questa frase: “Sono arrivato alla banca dopo aver attraversato il fiume”. La parola “banca” può avere due significati: istituto finanziario o sponda di un fiume. Qui i Transformers brillano. Possono rapidamente concentrarsi sulla parola “fiume” per chiarire “banca” confrontando “banca” con ogni altra parola nella frase e assegnando punteggi di attenzione. Questi punteggi determinano l’influenza di ogni parola sulla rappresentazione successiva di “banca”. In questo caso, “fiume” ottiene un punteggio più alto, chiarificando efficacemente il significato inteso.

Per funzionare così bene, i Transformers si basano su milioni di parametri addestrabili, richiedono grandi corpora di testi e strategie di formazione sofisticate. Un approccio di formazione notevole utilizzato con i Transformers è la modellazione del linguaggio mascherato (MLM). Durante la formazione, token specifici all’interno della sequenza di input vengono casualmente mascherati e l’obiettivo del modello è quello di prevedere con precisione questi token mascherati. Questa strategia incoraggia il modello a comprendere le relazioni di contesto tra le parole perché deve fare affidamento sulle parole circostanti per fare previsioni accurate. Questo approccio, reso popolare dal modello BERT, è stato fondamentale nel raggiungimento di risultati all’avanguardia in varie attività di NLP.

Un’alternativa al MLM per i Transformers è la modellazione autoregressiva. In questo metodo, il modello viene addestrato a generare una parola alla volta condizionandosi sulle parole generate in precedenza. Modelli autoregressivi come GPT (Generative Pre-trained Transformer) seguono questa metodologia e sono eccellenti in attività in cui l’obiettivo è prevedere in modo unidirezionale la parola successiva più adatta, come la generazione di testo libero, il completamento di testo e la risposta a domande.

Inoltre, per compensare la necessità di ampie risorse di testo, i Transformers eccellono nella parallelizzazione, il che significa che possono elaborare i dati durante la formazione più velocemente rispetto agli approcci sequenziali tradizionali come le RNN o le unità LSTM. Questo calcolo efficiente riduce i tempi di formazione e ha portato a applicazioni rivoluzionarie nell’elaborazione del linguaggio naturale, nella traduzione automatica e altro ancora.

Un modello Transformer cruciale sviluppato da Google nel 2018 che ha avuto un impatto significativo è BERT (Bidirectional Encoder Representations from Transformers). BERT si basava sulla formazione MLM ed ha introdotto il concetto di contesto bidirezionale, il che significa che considera sia il contesto a sinistra che a destra di una parola quando prevede il token mascherato. Questo approccio bidirezionale ha notevolmente migliorato la comprensione del modello dei significati delle parole e delle sfumature contestuali, stabilendo nuovi standard per la comprensione del linguaggio naturale e una vasta gamma di attività di NLP.

 Esempio di un workflow KNIME di BERT per la predizione del sentimento multi-classe (positivo, negativo, neutro). Viene effettuata una minima pre-elaborazione e viene sfruttato il modello BERT pre-addestrato con fine-tuning.

Sulle tracce dei Transformers, che hanno introdotto potenti meccanismi di auto-attenzione, la crescente richiesta di versatilità nelle applicazioni e di svolgere compiti complessi di lingua naturale, come la sintesi dei documenti, la modifica del testo o la generazione di codice, ha reso necessario lo sviluppo di grandi modelli di lingua. Questi modelli impiegano reti neurali profonde con miliardi di parametri per eccellere in tali compiti e soddisfare le sempre più esigenti richieste dell’industria dell’analisi dei dati.

 

LLM – Large Language Model

 

I large language models (LLM) sono una categoria rivoluzionaria di reti neurali profonde multi-purpose e multi-modalità (che accettano input di immagini, audio e testo) che hanno attirato grande attenzione negli ultimi anni. L’aggettivo “large” deriva dalla loro vasta dimensione, in quanto comprendono miliardi di parametri addestrabili. Alcuni degli esempi più noti comprendono ChatGTP di OpenAI, Bard di Google o LLaMa di Meta.

Ciò che distingue gli LLM è la loro ineguagliabile capacità e flessibilità di elaborare e generare testi simili a quelli umani. Eccellono nelle attività di comprensione e generazione del linguaggio naturale, che vanno dal completamento del testo alla traduzione, dal rispondere alle domande alla sintesi dei contenuti. La chiave del loro successo risiede nella loro ampia formazione su grandi corpora di testo, che consente loro di acquisire una ricca comprensione delle sfumature, del contesto e della semantica del linguaggio.

Questi modelli utilizzano un’architettura neurale profonda con molteplici strati di meccanismi di auto-attenzione, che permettono loro di valutare l’importanza di diverse parole e frasi in un determinato contesto. Questa capacità di adattamento dinamico li rende eccezionalmente abili nel trattare input di vari tipi, comprendere strutture linguistiche complesse e generare output basati su spunti definiti dall’uomo.

 Esempio di un workflow KNIME per la creazione di un assistente IA che si basa su ChatGPT di OpenAI e un archivio di vettori con documenti personalizzati per rispondere a domande specifiche di dominio.

Gli LLM hanno aperto la strada a molteplici applicazioni in vari settori, dall’assistenza sanitaria e la finanza all’intrattenimento e al servizio clienti. Hanno persino aperto nuove frontiere nella scrittura creativa e nella narrazione.

Tuttavia, la loro enorme dimensione, i processi di formazione intensivi in termini di risorse e le possibili violazioni del copyright per i contenuti generati hanno sollevato anche preoccupazioni sull’uso etico, l’impatto ambientale e l’accessibilità. Infine, sebbene sempre più migliorati, gli LLM possono contenere alcuni seri difetti, come “allucinazioni” di fatti errati, essere influenzati da pregiudizi o creare contenuti tossici.

 

C’è una Fine?

 

L’evoluzione delle reti neurali, dai loro umili inizi alla comparsa dei grandi modelli di lingua, pone una profonda questione filosofica: questa avventura arriverà mai a una conclusione?

La traiettoria della tecnologia è sempre stata segnata da un avanzamento implacabile. Ogni pietra miliare serve solo come un gradino verso la prossima innovazione. Mentre cerchiamo di creare macchine capaci di replicare la cognizione e la comprensione umana, è tentatore chiedersi se ci sia una destinazione ultima, un punto in cui diciamo: “Questo è tutto; abbiamo raggiunto l’apice”.

Tuttavia, l’essenza della curiosità umana e le inesauribili complessità del mondo naturale suggeriscono il contrario. Proprio come la nostra comprensione dell’universo continua a evolversi, la ricerca di reti neurali sempre più intelligenti, capaci ed etiche potrebbe essere un viaggio senza fine. Descrizione dell’evoluzione delle reti neurali (immagine dell’autore).

Le reti neurali, i componenti fondamentali dell’intelligenza artificiale, hanno rivoluzionato il modo in cui elaboriamo le informazioni, offrendo uno sguardo sul futuro della tecnologia. Questi complessi sistemi computazionali, ispirati dalle intricat

Questa analogia si basa sul cervello, che è composto da circa 100 miliardi di neuroni. Ciascun neurone mantiene circa 7.000 connessioni sinaptiche con altri neuroni, creando una complessa rete neurale che sta alla base dei processi cognitivi umani e della presa di decisioni.

Individualmente, un neurone biologico funziona attraverso una serie di semplici processi elettrochimici. Riceve segnali da altri neuroni attraverso le sue dendriti. Quando questi segnali in entrata si sommano fino a raggiungere un determinato livello (una soglia predeterminata), il neurone si attiva e invia un segnale elettrochimico lungo il suo assone. Questo, a sua volta, influisce sui neuroni collegati ai suoi terminali assonici. La cosa chiave da notare qui è che la risposta di un neurone è come un interruttore binario: o si attiva o rimane in silenzio, senza stati intermedi.

Neuroni biologici sono stati l’ispirazione per le reti neurali artificiali (immagine: Wikipedia).

Le reti neurali artificiali, per quanto impressionanti, rimangono lontane dalle incredibili complessità e profondità del cervello umano. Tuttavia, hanno dimostrato grande abilità nel risolvere problemi che sono sfidanti per i computer convenzionali ma sembrano intuitivi alla cognizione umana. Alcuni esempi sono il riconoscimento di immagini e l’analisi predittiva basata sui dati storici.

Ora che abbiamo esplorato i principi fondamentali del funzionamento dei neuroni biologici e della loro ispirazione per le reti neurali artificiali, intraprendiamo un viaggio attraverso l’evoluzione dei framework delle reti neurali che hanno modellato il panorama dell’intelligenza artificiale.

 

FFNN – Rete Neurale Feed Forward

 

Le reti neurali feed forward, spesso indicate come perceptron multistrato, sono un tipo fondamentale di reti neurali, il cui funzionamento è saldamente radicato nei principi del flusso di informazioni, dei livelli interconnessi e dell’ottimizzazione dei parametri.

Alla loro base, le FFNN orchestrano un viaggio unidirezionale delle informazioni. Tutto inizia con lo strato di input che contiene n neuroni, dove i dati vengono inizialmente acquisiti. Questo strato funge da punto di ingresso per la rete, agendo come recettore per le caratteristiche di input che devono essere elaborate. Da lì, i dati intraprendono un viaggio trasformativo attraverso gli strati nascosti della rete.

Un aspetto importante delle FFNN è la loro struttura connessa, il che significa che ogni neurone in uno strato è intricatamente collegato a ogni neurone in quello stesso strato. Questa interconnessione consente alla rete di eseguire calcoli e catturare relazioni all’interno dei dati. È come una rete di comunicazione in cui ogni nodo svolge un ruolo nel trattare le informazioni.

Mentre i dati passano attraverso gli strati nascosti, subiscono una serie di calcoli. Ciascun neurone in uno strato nascosto riceve input da tutti i neuroni dello strato precedente, applica una somma ponderata a questi input, aggiunge un termine di bias e poi fa passare il risultato attraverso una funzione di attivazione (comunemente ReLU, Sigmoid o tanH). Queste operazioni matematiche consentono alla rete di estrarre modelli rilevanti dall’input e catturare relazioni complesse e non lineari all’interno dei dati. Questo è dove le FFNN eccellono veramente rispetto ai modelli di machine learning meno profondi.

Architettura delle reti neurali feed forward completamente connesse (immagine dell’autore).

Tuttavia, qui non finisce. La vera potenza delle FFNN risiede nella loro capacità di adattarsi. Durante l’addestramento, la rete aggiusta i suoi pesi per ridurre al minimo la differenza tra le sue previsioni e i valori obiettivo effettivi. Questo processo iterativo, spesso basato su algoritmi di ottimizzazione come la discesa del gradiente, è chiamato retropropagazione. La retropropagazione permette alle FFNN di imparare realmente dai dati e migliorare la loro accuratezza nelle previsioni o classificazioni.

Esempio di flusso di lavoro KNIME di una FFNN utilizzata per la classificazione binaria degli esami di certificazione (promossi vs. bocciati). Nel ramo superiore, possiamo vedere l’architettura della rete, composta da uno strato di input, uno strato nascosto completamente connesso con una funzione di attivazione tanH e uno strato di output che utilizza una funzione di attivazione Sigmoid (immagine dell’autore).

Pur essendo potenti e versatili, le FFNN presentano alcune limitazioni rilevanti. Ad esempio, non riescono a catturare la sequenzialità e le dipendenze temporali/sintattiche nei dati – due aspetti cruciali per le attività di elaborazione del linguaggio e l’analisi delle serie temporali. La necessità di superare queste limitazioni ha favorito l’evoluzione di un nuovo tipo di architettura di rete neurale. Questa transizione ha aperto la strada alle Reti Neurali Ricorrenti (RNN) che hanno introdotto il concetto di cicli di feedback per gestire meglio i dati sequenziali.

 

RNN e LSTM – Reti Neurali Ricorrenti e Memoria a Lungo Termine

 

Alla loro base, le RNN condividono alcune somiglianze con le FFNN. Anch’esse sono composte da strati di nodi interconnessi, che elaborano dati per fare previsioni o classificazioni. Tuttavia, la loro caratteristica distintiva risiede nella loro capacità di gestire dati sequenziali e catturare dipendenze temporali.

In una FFNN, le informazioni fluono in un percorso singolo e unidirezionale dall’input layer all’output layer. Questo è adatto per compiti in cui l’ordine dei dati non è molto importante. Tuttavia, quando si tratta di sequenze come i dati di serie temporali, il linguaggio o il parlato, mantenere il contesto e comprendere l’ordine dei dati è cruciale. Qui entrano in gioco gli RNN.

Gli RNN introducono il concetto di feedback loop, che funzionano come una sorta di “memoria” e consentono alla rete di mantenere uno stato nascosto che cattura informazioni sugli input precedenti e influenzano l’input e l’output corrente. Mentre le reti neurali tradizionali assumono che input e output siano indipendenti gli uni dagli altri, l’output delle reti neurali ricorrenti dipende dagli elementi precedenti nella sequenza. Questo meccanismo di connessione ricorrente rende gli RNN particolarmente adatti per gestire sequenze ricordando informazioni passate.

Un’altra caratteristica distintiva delle reti ricorrenti è che condividono lo stesso parametro di peso all’interno di ogni layer della rete, e quei pesi sono regolati sfruttando l’algoritmo di backpropagation attraverso il tempo (BPTT), che è leggermente diverso dal backpropagation tradizionale poiché è specifico per i dati sequenziali.

Rappresentazione srotolata degli RNN, in cui ogni input è arricchito di informazioni di contesto provenienti dagli input precedenti. Il colore rappresenta la propagazione delle informazioni di contesto (immagine dell’autore).

Tuttavia, gli RNN tradizionali hanno le loro limitazioni. Sebbene in teoria dovrebbero essere in grado di catturare dipendenze a lungo termine, nella realtà faticano a farlo in modo efficace e possono persino soffrire del problema del gradiente che tende a scomparire, il che limita la loro capacità di imparare e ricordare informazioni nel corso di molti passi temporali.

Ecco dove entrano in gioco le unità LSTM (Long Short-Term Memory). Sono specificamente progettate per gestire questi problemi incorporando tre porte nella loro struttura: la porta Forget, la porta Input e la porta Output.

  • Porta Forget: questa porta decide quali informazioni dello step temporale devono essere scartate o dimenticate. Esaminando lo stato della cella e l’input corrente, determina quali informazioni sono irrilevanti per effettuare previsioni nel presente.
  • Porta Input: questa porta è responsabile di incorporare informazioni nello stato della cella. Considera sia l’input che lo stato precedente della cella per decidere quali nuove informazioni dovrebbero essere aggiunte per migliorare lo stato.
  • Porta Output: questa porta determina quale output sarà generato dall’unità LSTM. Considera sia l’input corrente che lo stato aggiornato della cella per produrre un output che può essere utilizzato per previsioni o passato ad altri passi temporali.

Rappresentazione visiva delle unità Long-Short Term Memory (immagine di Christopher Olah).

Esempio di un flusso di lavoro KNIME di RNN con unità LSTM utilizzato per una previsione del sentimento multi-classe (positivo, negativo, neutrale). Il ramo superiore definisce l’architettura della rete utilizzando un input layer per gestire stringhe di lunghezze diverse, un layer di embedding, un layer LSTM con diverse unità e un layer di output completamente connesso con una funzione di attivazione Softmax per restituire le previsioni.

In sintesi, gli RNN e in particolare le unità LSTM sono progettati per dati sequenziali, consentendo loro di mantenere la memoria e catturare dipendenze temporali, che sono una capacità critica per compiti come il processing del linguaggio naturale, il riconoscimento del parlato e la previsione delle serie temporali.

Mentre ci spostiamo dagli RNN che catturano dipendenze sequenziali, l’evoluzione continua con le Convolutional Neural Networks (CNN). A differenza degli RNN, le CNN eccellono nell’estrazione di caratteristiche spaziali da dati strutturati a griglia, rendendole ideali per compiti di riconoscimento di immagini e pattern. Questa transizione riflette le diverse applicazioni delle reti neurali su diversi tipi e strutture di dati.

CNN – Convolutional Neural Network

CNN sono una speciale tipologia di reti neurali particolarmente adatta per elaborare dati di immagini, come immagini 2D o anche dati video 3D. La loro architettura si basa su una rete neurale feed-forward multistrato con almeno un layer convoluzionale.

Ciò che rende le CNN uniche è la loro connettività di rete e l’approccio all’estrazione di caratteristiche, che consente loro di identificare automaticamente modelli rilevanti nei dati. A differenza delle tradizionali FFNN che connettono ogni neurone in uno strato a ogni neurone dello strato successivo, le CNN utilizzano una finestra scorrevole nota come kernel o filtro. Questa finestra scorrevole scansiona i dati di input ed è particolarmente efficace per compiti in cui le relazioni spaziali sono importanti, come l’identificazione di oggetti nelle immagini o il tracciamento del movimento nei video. Man mano che il kernel viene spostato sull’immagine, si effettua un’operazione di convoluzione tra il kernel e i valori dei pixel (da un punto di vista strettamente matematico, questa operazione è una correlazione incrociata) e viene applicata una funzione di attivazione non lineare, di solito ReLU. Ciò produce un valore elevato se la caratteristica è nella porzione di immagine e un valore basso se non lo è.

Insieme al kernel, l’aggiunta e l’affinamento dei parametri iper, come la stride (ovvero il numero di pixel di scorrimento del kernel) e il tasso di dilatazione (ovvero gli spazi tra ogni cella del kernel), permette alla rete di concentrarsi su specifiche caratteristiche, riconoscendo schemi e dettagli in regioni specifiche senza considerare l’intero input contemporaneamente.

Operazione di convoluzione con lunghezza di stride = 2 (GIF di Sumit Saha).

Alcuni kernel possono specializzarsi nel rilevare bordi o angoli, mentre altri possono essere tarati per riconoscere oggetti più complessi come gatti, cani o segnali stradali all’interno di un’immagine. Impilando diverse convoluzioni e livelli di pooling, le CNN costruiscono una rappresentazione gerarchica dell’input, astraggendo gradualmente le caratteristiche da livello basso a livello alto, proprio come il nostro cervello elabora le informazioni visive.

Esempio di flusso di lavoro KNIME di CNN per la classificazione binaria delle immagini (gatti vs cani). Il ramo superiore definisce l’architettura della rete utilizzando una serie di strati convoluzionali e strati di pooling per l’estrazione automatica delle caratteristiche dalle immagini. Viene quindi utilizzato uno strato di appiattimento per preparare le caratteristiche estratte come input unidimensionale per l’FFNN per eseguire una classificazione binaria.

Anche se le CNN eccellono nell’estrazione delle caratteristiche e hanno rivoluzionato le attività di visione artificiale, agiscono come osservatori passivi, poiché non sono progettate per generare nuovi dati o contenuti. Questa non è una limitazione intrinseca della rete di per sé, ma avere un motore potente e niente carburante rende inutile una macchina veloce. Infatti, i dati reali e significativi di immagini e video tendono ad essere difficili e costosi da raccogliere e spesso affrontano restrizioni di copyright e privacy dei dati. Questo vincolo ha portato allo sviluppo di un nuovo paradigma che si basa sulle CNN ma segna un salto dalla classificazione delle immagini alla sintesi creativa: le reti generative avversarie (GAN).

 

GAN: Reti Generative Avversarie

 

Le GAN sono una particolare famiglia di reti neurali la cui finalità principale, ma non unica, è quella di produrre dati sintetici che siano il più simili possibile a un determinato set di dati reali. A differenza della maggior parte delle reti neurali, l’ingegnioso design architettonico delle GAN consiste in due modelli principali:

  • Modello Generator: Il primo componente di questa coppia di reti neurali è il modello generatore. Questo componente ha il compito affascinante di, dati rumore casuale o vettori di input, creare campioni artificiali che assomiglino il più possibile ai campioni reali. Immaginalo come un falsario d’arte che cerca di creare dipinti indistinguibili dalle opere d’arte originali.
  • Modello Discriminatore: Giocherà il ruolo dell’avversario il modello discriminatore. Il suo compito è distinguere tra i campioni generati dal generatore e i campioni autentici del set di dati originale. Pensalo come un esperto d’arte che cerca di individuare le falsificazioni tra le opere d’arte autentiche.

Ora, ecco dove accade la magia: le GAN si impegnano in una continua danza avversaria. Il generatore cerca di migliorare la sua abilità artistica, affinando continuamente le sue creazioni per renderle più convincenti. Nel frattempo, il discriminatore diventa un investigatore più attento, affinando la sua capacità di distinguere il vero dal falso.

Architettura GAN (immagine di autore).

Man mano che l’allenamento procede, questa interazione dinamica tra generatore e discriminatore porta a un risultato affascinante. Il generatore si sforza di generare campioni così realistici che persino il discriminatore non riesce a distinguerli dai campioni autentici. Questa competizione spinge entrambi i componenti a perfezionare continuamente le loro abilità.

Il risultato? Un generatore che diventa sorprendentemente abile nel produrre dati che sembrano autentici, che siano immagini, musica o testo. Questa capacità ha portato a notevoli applicazioni in vari settori, tra cui la sintesi di immagini, l’aumento dei dati, la traduzione di immagini in immagini e la modifica di immagini.

Esempio di flusso di lavoro KNIME di GAN per la generazione di immagini sintetiche (ad esempio, animali, volti umani e personaggi di Simpson).

Le GAN hanno portato all’innovazione nella creazione di contenuti di immagini e video realistici mettendo un generatore contro un discriminatore. Estendendo la necessità di creatività e operazioni avanzate dai dati immagine a quelli sequenziali, sono stati introdotti modelli per la comprensione del linguaggio naturale più sofisticata, la traduzione automatica e la generazione del testo. Questo ha dato avvio allo sviluppo dei Transformers, una straordinaria architettura di reti neurali profonde che, non solo ha superato le architetture precedenti catturando efficacemente le dipendenze a lunga distanza e il contesto semantico del linguaggio, ma è diventata la base indiscussa delle più recenti applicazioni basate sull’intelligenza artificiale.

 

Transformers

 

Sviluppati nel 2017, i Transformers vantano una caratteristica unica che consente loro di sostituire i tradizionali livelli ricorrenti: un meccanismo di autoattenzione che permette loro di modellare relazioni complesse tra tutte le parole di un documento, indipendentemente dalla loro posizione. Ciò rende i Transformers eccellenti nel affrontare la sfida delle dipendenze a lungo raggio nel linguaggio naturale. Le architetture dei Transformer sono composte da due principali componenti:

  • Codificatore. Qui la sequenza di input viene convertita in vettori e quindi viene esposta al meccanismo di autoattenzione. Quest’ultimo calcola i punteggi di attenzione per ogni token, determinandone l’importanza rispetto agli altri. Questi punteggi vengono utilizzati per creare somme pesate, che vengono alimentate in un FFNN per generare rappresentazioni consapevoli del contesto per ogni token. Più strati di codificatori ripetono questo processo, migliorando la capacità del modello di catturare informazioni gerarchiche e contestuali.
  • Decodificatore. Questo blocco è responsabile per la generazione delle sequenze di output e segue un processo simile a quello del codificatore. È in grado di focalizzarsi correttamente e comprendere l’output del codificatore e i suoi token passati durante ogni passaggio, garantendo una generazione accurata considerando sia il contesto dell’input che l’output generato in precedenza.

Architettura del modello Transformer (immagine di: Vaswani et al., 2017).

Considera questa frase: “Sono arrivato alla banca dopo aver attraversato il fiume”. La parola “banca” può avere due significati: una istituzione finanziaria o il bordo di un fiume. Qui è dove i Transformers brillano. Possono rapidamente focalizzarsi sulla parola “fiume” per chiarire il significato di “banca” confrontando “banca” con ogni altra parola nella frase e assegnando punteggi di attenzione. Questi punteggi determinano l’influenza di ogni parola sulla rappresentazione successiva di “banca”. In questo caso, “fiume” ottiene un punteggio più alto, chiarificando efficacemente il significato inteso.

Per funzionare così bene, i Transformers si basano su milioni di parametri addestrabili, richiedono grandi corpora di testi e strategie di addestramento sofisticate. Un approccio di addestramento notevole utilizzato con i Transformers è il masked language modeling (MLM). Durante l’addestramento, determinati token nella sequenza di input vengono casualmente mascherati e l’obiettivo del modello è quello di prevedere con precisione questi token mascherati. Questa strategia incoraggia il modello a comprendere le relazioni contestuali tra le parole perché deve fare affidamento sulle parole circostanti per fare previsioni accurate. Questo approccio, reso popolare dal modello BERT, è stato fondamentale nel raggiungere risultati all’avanguardia in vari compiti di elaborazione del linguaggio naturale.

Un’alternativa al MLM per i Transformers è la modellazione autoregressiva. In questo metodo, il modello viene addestrato a generare una parola per volta, condizionandosi sulle parole generate precedentemente. Modelli autoregressivi come GPT (Generative Pre-trained Transformer) seguono questa metodologia e si distinguono in compiti in cui l’obiettivo è prevedere unidirezionalmente la parola successiva più adatta, come la generazione di testi liberi, il question answering e il completamento del testo.

Inoltre, per compensare la necessità di ampie risorse testuali, i Transformers eccellono nella parallelizzazione, il che significa che possono elaborare i dati durante l’addestramento più velocemente rispetto agli approcci sequenziali tradizionali come le RNN o le unità LSTM. Questo calcolo efficiente riduce i tempi di addestramento e ha portato a applicazioni rivoluzionarie nell’elaborazione del linguaggio naturale, nella traduzione automatica e altro ancora.

Un modello Transformer fondamentale sviluppato da Google nel 2018 che ha avuto un impatto significativo è BERT (Bidirectional Encoder Representations from Transformers). BERT si basava sull’addestramento con MLM e ha introdotto il concetto di contesto bidirezionale, il che significa che tiene conto sia del contesto a sinistra che a destra di una parola durante la previsione del token mascherato. Questo approccio bidirezionale ha notevolmente migliorato la comprensione del modello dei significati delle parole e delle sfumature contestuali, stabilendo nuovi punti di riferimento nella comprensione del linguaggio naturale e in una vasta gamma di compiti di elaborazione del linguaggio naturale.

Esempio di flusso di lavoro KNIME di BERT per una previsione del sentimento multi-classe (positivo, negativo, neutro). Viene eseguita una minimal preprocessing e viene sfruttato il modello BERT pre-addestrato con fine-tuning.

A seguito dei Transformers che hanno introdotto potenti meccanismi di autoattenzione, la crescente domanda di versatilità nelle applicazioni e nell’esecuzione di complessi compiti di linguaggio naturale, come la sommarizzazione di documenti, la modifica di testo o la generazione di codice, ha reso necessario lo sviluppo di grandi modelli di linguaggio. Questi modelli utilizzano reti neurali profonde con miliardi di parametri per eccellere in tali compiti e soddisfare i requisiti in continua evoluzione dell’industria dell’analisi dei dati.

 

LLM – Large Language Model

 

I Large Language Model (LLM) sono una categoria rivoluzionaria di reti neurali profonde multipurpose e multimodali (accettano input di immagini, audio e testo) che hanno attirato notevole attenzione negli ultimi anni. L’aggettivo “large” deriva dalle loro dimensioni vaste, in quanto comprendono miliardi di parametri addestrabili. Alcuni degli esempi più noti includono ChatGTP di OpenAI, Bard di Google o LLaMa di Meta. 

Ciò che distingue gli LLM è la loro ineguagliabile capacità e flessibilità nel processare e generare testo simile a quello umano. Eccellono nel comprendere e generare linguaggio naturale, svolgendo compiti che vanno dal completamento del testo alla traduzione, dal rispondere alle domande alla sintesi dei contenuti. La chiave del loro successo risiede nella loro ampia formazione su vasti corpora di testo, che permette loro di acquisire una profonda comprensione delle sfumature linguistiche, del contesto e della semantica.

Questi modelli utilizzano un’architettura neurale profonda con multipli strati di meccanismi di auto-attenzione, che li rendono in grado di valutare l’importanza delle diverse parole e frasi in un dato contesto. Questa adattabilità dinamica li rende particolarmente capaci di elaborare input di diversi tipi, comprendere strutture linguistiche complesse e generare output basati su prompt definiti dall’uomo.

Esempio di workflow KNIME per creare un assistente AI che si basa su ChatGPT di OpenAI e su uno store vettoriale con documenti personalizzati per rispondere a domande relative a domini specifici.

GLM hanno aperto la strada a un’ampia varietà di applicazioni in svariati settori, dall’assistenza sanitaria e la finanza al mondo dell’intrattenimento e del servizio clienti. Hanno persino aperto nuovi orizzonti nella scrittura creativa e nella narrazione.

Tuttavia, la loro enorme dimensione, i processi di allenamento intensivi in termini di risorse e i potenziali violazioni di copyright per il contenuto generato hanno sollevato preoccupazioni sull’utilizzo etico, l’impatto ambientale e l’accessibilità. Inoltre, sebbene sempre più migliorati, gli LLM possono contenere seri difetti, come “allucinare” fatti errati, essere parziali, creduloni o persuasi a creare contenuti tossici.

Esiste una Fine?

L’evoluzione delle reti neurali, dai loro modesti inizi all’avvento dei grandi modelli linguistici, solleva una profonda questione filosofica: Questo viaggio avrà mai una fine?

La traiettoria della tecnologia è sempre stata caratterizzata da un costante progresso. Ogni pietra miliare funge solo da trampolino di lancio per la prossima innovazione. Mentre ci sforziamo di creare macchine capaci di replicare la cognizione e la comprensione umana, è allettante interrogarsi se ci sia una meta ultima, un punto in cui diciamo: “È questo; abbiamo raggiunto l’apice”.

Tuttavia, l’essenza della curiosità umana e le insondabili complessità del mondo naturale suggeriscono il contrario. Proprio come la nostra comprensione dell’universo si approfondisce costantemente, la ricerca per sviluppare reti neurali sempre più intelligenti, capaci ed etiche potrebbe essere un viaggio senza fine.

Anil è un evanghelsita di Data Science presso KNIME.