Menu Chiudi

Le reti neurali: un affascinante modello di intelligenza artificiale

Tempo di lettura: circa 12 minuti

LE RETI NEURALI, IL CERVELLO DELL’INTELLIGENZA ARTIFICIALE

Reti neurali

Le reti neurali artificiali, la ‘mente’ dell’intelligenza artificiale, sono modelli matematici ispirati al cervello umano, capaci di riconoscere schemi complessi nei dati e di usarli per apprendere. Utilizzate per sviluppare le moderne tecnologie (il riconoscimento vocale e facciale, gli assistenti virtuali, la telediagnosi medica, la guida autonoma…), le reti neurali funzionano grazie a neuroni artificiali connessi tra loro, che elaborano input e generano output in modo intelligente. Grazie al deep learning, inoltre, le reti neurali sono in grado di affrontare compiti sempre più sofisticati e stanno rivoluzionando settori come il marketing, la finanza, la medicina, la robotica e la linguistica.

Cosa sono le reti neurali?

Le reti neurali artificiali (in inglese, ANN, acronimo di Artificial Neural Networks) sono un modello matematico di intelligenza artificiale basato sulla struttura e sul funzionamento del cervello umano. Si tratta di un gruppo di algoritmi in grado di riconoscere relazioni complesse nei dati e di usarle per vari scopi.

I campi di applicazione delle reti neurali

Le reti neurali hanno numerosissimi capi di applicazione e vengono utilizzate con successo in molti settori chiave del lavoro, dell’economia, del commercio e della tecnologia:

  • Composizione e miglioramento di testi. Le reti neurali vengono impiegate anche per scrivere e per correggere, ampliare, migliorare testi, grazie alla loro capacità di comprendere il linguaggio naturale umano e di generare contenuti coerenti e stilisticamente corretti. Strumenti come DeepL Write sfruttano queste tecnologie per suggerire revisioni, ottimizzare la scrittura e adattarla al contesto comunicativo.
  • Elaborazione del linguaggio naturale. Il Natural Language Processing, o NLP, viene applicato in moltissimi campi.
  • Finanza. Nella previsione dei dati finanziari. Possibili applicazioni sono la previsione dell’andamento delle azioni in base all’analisi dei dati storici; la valutazione del rischio di credito sostenuto da una banca o da una finanziaria, analizzando i dati sul cliente che sta chiedendo un prestito o un mutuo; il rilevamento, nelle transazioni dei clienti, di comportamenti che, deviando dal modello, possono essere indizio di frodi; l’ottimizzazione del portafoglio finanziario per comporlo in modo da ottenere il massimo rendimento con il minimo rischio.
  • Management. Nei processi decisionali, per la loro capacità di analizzare dati ed effettuare previsioni, le reti neurali possono aiutare a compiere le migliori valutazioni.
  • Marketing. Per elaborare strategie mirate, e quindi più efficaci, basate sulla previsione delle preferenze dei clienti e del loro comportamento. Grazie alla capacità di analisi dei dati storici, le reti neurali possono infatti prevedere quali acquisti i clienti saranno più propensi a effettuare, e proporre loro consigli personalizzati, aumentando dunque la probabilità che siano presi in considerazione.
  • Medicina e Telemedicina. Nella scoperta e diagnosi delle malattie. Attraverso l’analisi delle procedure di imaging e delle analisi di laboratorio, le reti neurali possono effettuare diagnosi precoci di tumori e aiutare a monitorarli. Nella medicina personalizzata, analizzando il sequenziamento del genoma, i biomarcatori e le malattie del paziente, le reti neurali possono programmare trattamenti medici adatti alle esigenze dei singoli individui.
  • Riconoscimento delle immagini. Per identificare oggetti e riconoscere volti. Vengono, ad esempio, usate nelle ricerche su Google (Google Lens), nella security, nella videosorveglianza.
  • Riconoscimento di testo e Traduzioni automatiche. Le reti neurali sono il motore dei sistemi di traduzione basati sull’intelligenza artificiale, come DeepL Translator o Google Translate.
  • Riconoscimento vocale. Per comprendere il linguaggio degli utenti. Esempi ne sono la conversione del parlato in testo, i chatbot che rispondono alle domande degli utenti usando il linguaggio naturale umano, gli assistenti virtuali (Alexa, Bixby, Cortana, Google Assistant, Siri…). Grazie alla capacità di analizzare i dati vocali e testuali e di comprendere, dalla voce e dalle parole, l’umore e le emozioni degli utenti, se usate nell’Assistenza Clienti sono in grado di fornire un importante feedback.
  • Robotica. Per addestrare i robot a svolgere determinati compiti e per controllarli. Le principali applicazioni sono dunque nel miglioramento dei robot e nelle auto a guida autonoma.

I neuroni artificiali

Le reti neurali sono costituite da ‘nodi’ detti “neuroni artificiali“, collegati tra loro e in grado di eseguire compiti complessi. Ogni neurone riceve un input dall’ambiente o da altri neuroni ed emette un output verso altri neuroni, o all’esterno. L’importanza della connessione tra due neuroni è detta “peso“.

Input e output dei neuroni

Così come, nel cervello, i neuroni biologici ricevono segnali elettrici da altri neuroni e possono inoltrarli o non inoltrarli, i neuroni artificiali ricevono input (informazioni in forma di valori numerici) dagli altri neuroni, li elaborano in base ai pesi (valori positivi o negativi che possono modificare l’influenza di ciascun segnale di input) e, una volta che gli input siano stati “ponderati“, emettono o non emettono un output.

Ponderazione e bias

La ponderazione, in quanto misura della forza della connessione tra un input e un neurone, ha un ruolo importante nell’addestramento dei neuroni, soprattutto quando debbano prendere decisioni complesse. Agisce insieme al bias, un valore assegnato al neurone che permette alla rete neurale di rispondere al meglio agli input. In pratica, un neurone si attiva quando i dati di input ponderati, più il bias, superano una certa soglia.

Funzione di attivazione dei neuroni

Una proprietà fondamentale dei neuroni artificiali è la funzione di attivazione, ossia la trasformazione non lineare degli input in output. Le funzioni di attivazione attivano i neuroni, in modo che trasmettano (o non trasmettano) un segnale ai neuroni successivi. Permettono inoltre ai neuroni di prendere decisioni complesse: se non ci fossero le funzioni di attivazione, essi si limiterebbero a emettere, come output, la somma degli input.

Il percettrone, strato di neuroni

L’antenato della rete neurale, il percettrone (un singolo strato di neuroni artificiali collegati tra loro), fu sviluppato da Frank Rosenblatt nel 1958 ed è un modello semplice, attualmente usato per produrre modelli complessi. È formato da un unico neurone che riceve più input, li moltiplica per il peso di ciascuno, li somma e, se la somma supera una certa soglia, emette un unico output, pari a 1 (se non si attiva, restituisce un output pari a 0). Ad esempio, dopo aver analizzato diversi input (il numero e il tipo di parole, la loro frequenza ecc.), un percettrone potrebbe classificare i messaggi di posta elettronica come spam o non spam.

La rete multistrato di percettroni

Collegando più percettroni si ottiene una rete multistrato di percettroni, in grado di affrontare problemi complessi; essa è formata da uno strato di input, uno o più strati nascosti e uno strato di output. Una volta ricevuto l’input nel primo strato, la rete di percettroni la trasmette attraverso gli strati successivi, fino a raggiungere lo strato di output, che darà un risultato basato sugli input, sui pesi e sulle soglie stabilite durante la fase di addestramento della rete.

Le reti neurali multistrato di Deep Learning

Negli anni ’80, poiché all’epoca non erano in grado di gestire grandi quantità di dati, le reti neurali furono un po’ messe da parte. Oggi i loro limiti sono stati superati, anche grazie allo sviluppo di reti di Deep Learning (apprendimento profondo), formate da più strati di neuroni.

Le reti neurali convoluzionali

Le reti neurali convoluzionali (in inglese, CNN, acronimo di Convolutional Neural Network) sono reti neurali profonde ispirate alla corteccia visiva del cervello umano, adatte a elaborare dati multidimensionali (immagini, video). Applicando filtri e rilevando bordi, trame, forme, volti, oggetti, scene, le CNN sono infatti in grado di apprendere modelli spaziali nei dati di input. Anche nel caso delle CNN, il processo di ponderazione attribuisce priorità ad alcune funzioni e ne ignora altre.

Le reti neurali ricorrenti

Le reti neurali ricorrenti (in inglese, RNN, acronimo di Recurrent Neural Network) sono reti neurali adatte a elaborare dati in ordine sequenziale o temporale, poiché tengono in considerazione anche gli input passati. Vengono applicate nel riconoscimento vocale, in cui si deve analizzare il parlato: le parole sono lette come una sequenza di suoni. Ma anche nella previsione dei dati finanziari, poiché sono in grado di tenere conto dei prezzi azionari del passato.

LSTM, GRU, Autoencoder

Tra i diversi tipi di RNN, due delle più conosciute sono la LSTM (Long Short-Term Memory), adatta per calcoli complessi perché può elaborare lunghe sequenze di dati, e la GRU (Gated Recurrent Unit), più veloce da addestrare.
Un altro tipo di rete neurale artificiale è l’Autoencoder, un algoritmo di apprendimento non supervisionato usato per comprimere e poi ricostruire i dati: è formato da un codificatore, che converte i dati di input in un codice (una serie di numeri), e da un decodificatore, che grazie al codice ricostruisce i dati originali (ad esempio, un’immagine che era stata compressa). L’Autoencoder può essere anche Convoluzionale, adatto a elaborare immagini, o Variazionale, adatto a generare nuovi dati.

Le reti generative o GAN

Per creare nuovi dati o immagini, le reti più adatte sono le GAN, o Generative Adversarial Networks, che vengono utilizzate nell’industria del cinema e dei videogiochi per creare animazioni, ambienti virtuali, personaggi realistici, effetti speciali. Esse si servono di un generatore, che crea i nuovi dati, e di un discriminatore, che decide se i dati ricevuti sono reali o no; attraverso il confronto, la rete GAN riesce a produrre immagini vicine alla realtà. Pur essendo relativamente facili da addestrare, i GAN producono spesso risultati non ottimali e richiedono l’intervento dell’uomo per valutarli.

Le reti neurali profonde a credenze o DBN

Le DBN o Deep Beliefs Networks sono reti neurali multistrato ad apprendimento non supervisionato, in grado di elaborare grandi set di dati non strutturati, come immagini, testo, voce: gli strati di superficie rilevano le caratteristiche più semplici dei dati, mentre gli strati in profondità sono progettati per rilevare caratteristiche più complesse e possono classificare i dati creando modelli. Per funzionare, le DBN richiedono una grande potenza di calcolo; sono dunque usate principalmente da grandi aziende, istituzioni, enti di ricerca.

Come impara una rete neurale?

Apprendimento per feedback

Le reti neurali possono apprendere grazie al feedback che ricevono da altri neuroni, o dall’esterno: ricevendo una correzione, imparano a produrre output migliori. Il processo è iterativo: lo scambio tra input, output, feedback e nuovo output si ripete più e più volte, fino a raggiungere risultati accurati. Ne è un esempio la ricerca per immagini di Google, che chiede un feedback per migliorarsi.

Apprendimento per rinforzo

Un altro modo in cui le reti neurali imparano è l’apprendimento per rinforzo (RL o Reinforced Learning), simile al processo di apprendimento degli esseri viventi. Una macchina, l’agente, viene collocata in un ambiente, con un compito da svolgere: attraverso tentativi ed errori, apprende quali siano le azioni giuste da svolgere per raggiungere l’obiettivo. Le azioni corrette ricevono dall’ambiente un feedback detto “ricompensa positiva“, mentre quelle errate ottengono una “ricompensa negativa“. Uno degli algoritmi più usati nel Reinforced Learning è il Q-Learning, che permette all’agente di valutare le sue azioni e scegliere quindi quelle più efficaci, dunque con il valore più alto.

Propagazione all’indietro

Un’altra tecnica di addestramento delle reti neurali è la backpropagation (propagazione all’indietro), il processo con cui la rete neurale regola i pesi delle connessioni tra i neuroni. In pratica, dopo aver ricevuto l’input, la rete emette il suo output, che viene confrontato con quello desiderato; la differenza tra il risultato prodotto e il risultato atteso è detta errore. L’errore viene poi propagato nella rete, che calcola il contributo che ciascun neurone ha dato all’errore: è possibile, a questo punto, regolare i pesi delle connessioni tra i neuroni con un algoritmo di ottimizzazione (ad esempio, la discesa del gradiente). Ripetendo più volte il processo – che è appunto iterativo -, la rete impara a emettere l’output desiderato.

Discesa del gradiente

Uno dei metodi di ottimizzazione delle reti neurali è la discesa del gradiente, un metodo iterativo che consiste nel regolare i parametri del modello (la velocità di apprendimento e il numero di iterazioni) per ridurre al minimo l’errore, ossia la funzione di perdita. Se le perdite sono elevate, la capacità predittiva del modello sarà scarsa; attraverso le iterazioni, si cerca quindi di ridurle il più possibile, in modo che il modello migliori nel tempo.

Overfitting e underfitting

Per addestrare una rete neurale a classificare o a fare previsioni si usa un gran numero di esempi, con le etichette corrispondenti. Un eccesso di parametri e di addestramento dà luogo a un modello troppo complesso, che può solo memorizzare i dati, ma non usarli per le operazioni richieste: si tratta dell’overfitting. La scarsità di parametri o di tempo di addestramento dà invece luogo a un modello troppo semplice, anch’esso incapace di offrire i risultati voluti: si ha l’underfitting. Nel primo caso, si rimedia diminuendo il numero di parametri o fermando l’addestramento; nel secondo caso, fornendo più parametri o compiendo un’ulteriore fase di addestramento.

Come evitare l’overfitting?

Per ottenere un buon modello ed evitare l’overfitting si possono usare tecniche di regolarizzazione, come la L1 o la L2, che riducono la dimensione dei parametri agendo sui pesi; il dropout (abbandono), che disattiva casualmente dei neuroni durante l’allenamento; l’arresto anticipato, che ferma l’addestramento prima che il modello sia completamente adattato ai dati.

Quali sfide per il futuro?

  • Migliorare l’efficienza dei dati, sviluppando algoritmi che possano gestire in modo efficiente anche piccole quantità di dati.
  • Migliorare la trasparenza delle scelte delle reti neurali, rendendo chiaro perché l’IA abbia preso una decisione piuttosto che un’altra.
  • Miglioramento della sicurezza delle reti, rendendole meno vulnerabili agli attacchi di pirateria informatica e alla manipolazione dei dati.
  • Sviluppare nuove e più avanzate applicazioni, soprattutto nel campo della robotica.

Bibliografia

C11 Media, Reti Neurali Semplificata: Nozioni di base e applicazioni delle reti neurali con capitolo extra: ChatGPT ed elaborazione del linguaggio, “Intelligenza Artificiale Semplificata”, 2023.

Immagini di Alexandra_Koch da Pixabay (edited)