Le reti neurali trovano impiego in molti settori grazie alle loro caratteristiche che ne fanno uno strumento tanto duttile quanto efficace per analisi e previsioni.
Le reti neurali sono attualmente il modo di implementare soluzioni di deep learning e sono parte integrante dei processi e tecniche d’intelligenza artificiale. Questo concetto di “apprendimento profondo” imita da vicino il funzionamento del cervello umano, creando una rete artificiale di neuroni. Questa imitazione è più comunemente nota come artificial neural network (ANN) e consiste in molti strati di neuroni per elaborare accuratamente una grande quantità di informazioni.
Dopo aver compiuto progressi immensi negli ultimi due decenni, oggi reti neurali entrano in azione in molteplici ambiti, influenzando la vita quotidiana in svariati modi, spesso senza che ce ne rendiamo conto. Pensiamo all’impiego del riconoscimento facciale fino alle previsioni meteorologiche. Le forze dell’ordine utilizzano le reti neurali per analizzare i dati delle transazioni e identificare attività fraudolente o criminali, molte imprese servono già i consumatori grazie a modelli di deep learning guidati dalle neural network. Con i recenti progressi, il ruolo delle reti neurali nelle applicazioni industriali è destinato ad aumentare in futuro. Spinto dal crescente interesse per l’intelligenza artificiale, il mercato globale delle reti neurali artificiali è previsto passare da un valore di 117 milioni di dollari nel 2019 a 296 milioni di dollari entro il 2024, secondo uno studio condotto da MarketsandMarkets.
Cosa sono le reti neurali
Partiamo dal perché si chiamano reti neurali: il loro nome ha origine dal neurone di McCulloch e Pitts (di cui parleremo), un modello semplificato del neurone umano come elemento di calcolo. Come si possono definire le reti neurali? Sono un mezzo per l’apprendimento automatico (o machine learning), in cui un computer impara a svolgere un compito analizzando gli esempi di addestramento. C’è anche chi le definisce come un tipo di algoritmo di deep learning che imita la struttura fisica del cervello umano. Esso è composto da neuroni, che lavorano insieme per gestire corpo e mente. Le artificial neural network emulano la cognizione umana: in una rete neurale artificiale ci sono molteplici neuroni, ognuno con una funzione specifica che classifica i dati forniti al programma. Questi neuroni artificiali sono strutturati in strati e i dati passano attraverso ogni strato per essere interpretati dalla macchina. Una rete neurale artificiale comprende diversi strati di neuroni, detti nodi.
Se si pensa che esse siano un’invenzione recente, ci si sbaglia. L’apprendimento profondo, che in realtà è un nuovo nome per un approccio all’intelligenza artificiale chiamato reti neurali «è entrato e uscito di moda per più di 70 anni», spiega Larry Hardesty del Massachusetts Institute of Technology, ricordando che le reti neurali furono proposte per la prima volta nel 1943 dai sopra citati Warren McCullough e Walter Pitts, due ricercatori dell’Università di Chicago che si trasferirono al MIT nel 1952 come membri fondatori di quello che viene talvolta definito il primo dipartimento di scienze cognitive. La prima rete neurale addestrabile, il Perceptron, fu dimostrata nel 1957 da Frank Rosenblatt, psicologo della Cornell University.
Esse sono state una delle principali aree di ricerca sia nelle neuroscienze che nell’informatica fino al 1969, poi soppiantate da altre concezioni, fino a tornare negli anni Ottanta del XX secolo, conoscendo nuovamente il declino per un decennio e successivamente tornate in auge negli ultimi vent’anni, grazie soprattutto alla maggiore potenza di elaborazione dei chip grafici.
Come funziona una rete neurale
L’utilizzo delle reti neurali moderne è spesso apprendimento profondo chiamato deep learning, perché le reti moderne sono spesso profonde, ovvero hanno molti strati.
Modellata sul modello del cervello umano, una rete neurale artificiale consiste in migliaia o addirittura milioni di semplici nodi di elaborazione densamente interconnessi. Di solito coinvolge un gran numero di processori che operano in parallelo e sono disposti in livelli. Il primo livello riceve le informazioni grezze in ingresso (input), e ogni livello successivo riceve l’output del livello precedente, anziché l’input grezzo, allo stesso modo in cui i neuroni più lontani dal nervo ottico ricevono i segnali da quelli più vicini. L’ultimo livello produce l’output (uscita) del sistema.
In genere, una artificial neural network viene inizialmente addestrata o alimentata con grandi quantità di dati. L’addestramento consiste nel fornire input e dire alla rete quale deve essere l’output.
Un esempio: si immagini il problema di cercare di determinare se un’immagine contiene o meno un animale. Mentre è piuttosto facile per un essere umano, è molto più difficile addestrare un computer a identificare un cane o un gatto in un’immagine utilizzando i metodi classici. Considerando le diverse possibilità di come un determinato animale può apparire in un’immagine, scrivere un codice che tenga conto di ogni scenario è quasi impossibile. Ma utilizzando l’apprendimento automatico, e più precisamente le reti neurali, il programma può utilizzare un approccio generalizzato per comprendere il contenuto di un’immagine. Utilizzando diversi livelli di funzioni per scomporre l’immagine in punti di dati e informazioni utilizzabili dal computer, la rete neurale può iniziare a identificare le tendenze esistenti tra i moltissimi esempi che elabora e classificare le immagini in base alle loro somiglianze. Dopo aver elaborato molti esempi di formazione di immagini di quel determinato animale, l’algoritmo ha un modello di quali elementi, e delle rispettive relazioni, in un’immagine sono importanti da considerare per decidere se un cane o un gatto è presente o meno nell’immagine. Quando valuta una nuova immagine, la rete neurale confronta i dati relativi alla nuova immagine con il suo modello, basato su tutte le valutazioni precedenti. Utilizza quindi alcune semplici statistiche per decidere se l’immagine contiene o meno quel dato animale in base alla sua corrispondenza con il modello.
In questo esempio, gli strati di funzioni tra l’ingresso e l’uscita costituiscono la rete neurale.
Le diverse tipologie
Vi sono diversi tipi di reti neurali. Quella più semplice è la rete neurale feedforward (feedforward neural network) in cui i dati si muovono in una sola direzione tra i nodi di ingresso e di uscita.
I dati si muovono in avanti (feedforward significa “avanzamento”) attraverso gli strati di nodi e non tornano indietro attraverso gli stessi strati. Anche se ci possono essere molti strati diversi con molti nodi diversi, il movimento unidirezionale dei dati rende le reti neurali feedforward relativamente semplici. I modelli di questo tipo di network sono utilizzati principalmente per problemi di classificazione semplicistici. Hanno prestazioni superiori a quelle di un modello di machine learning tradizionale, ma non raggiungono il livello di astrazione di un modello di deep learning.
Di questa fanno parte le single layer perceptron e le multi layer perceptron, prendendo il nome dalla prima rete neurale addestrabile. Nel primo caso si tratta di un modello costituito da un singolo strato in ingresso, seguito direttamente dall’uscita
Le reti neurali artificiali multistrato Perceptron aggiungono complessità e densità, con la capacità di avere molti strati nascosti tra lo strato di ingresso e quello di uscita.
C’è poi la rete neurale ricorrente (Recurrent Neural Network), un’estensione di una rete neurale feedforward convenzionale, in grado di gestire una sequenza di input di lunghezza variabile. La ragione per cui la RNN può gestire le serie temporali è data dal fatto che ha uno stato nascosto ricorrente la cui attivazione ad ogni istante dipende da quella dell’istante precedente. Il flusso di dati è simile a quello delle reti neurali artificiali Feedforward, ma ogni nodo conserva le informazioni necessarie per migliorare ogni fase.
Le reti neurali convoluzionali (Convolutional Neural Network) sono un altro tipo di rete neurale in grado di assegnare da sola l’importanza ai dati, eliminando il lavoro umano per etichettare e classificare accuratamente i dati. Di solito, la pre-elaborazione dei dati occupa gran parte del flusso di lavoro nell’implementazione di una soluzione di AI. Le CNN possono ridurre drasticamente il tempo necessario per la pre-elaborazione dei dati, in quanto sono in grado di etichettare i dati da sole.
Segnaliamo, infine, le reti Radial Basis Function, un tipo particolare di rete neurale artificiale utilizzata per problemi di approssimazione di funzioni. Le reti RBF si distinguono dalle altre neural network per l’architettura a tre strati, l’approssimazione universale e la maggiore velocità di apprendimento.
Reti neurali e deep learning
Partiamo dal definire che cos’è il deep learning: è una sottocategoria del machine learning che sfrutta una serie di unità di elaborazione non lineari comprendenti più livelli per la trasformazione e l’estrazione delle caratteristiche che cercano di stabilire una relazione tra gli stimoli e le risposte neurali associate presenti nel cervello. Ha diversi strati di reti neurali artificiali che eseguono il processo di ML. Mentre le reti neurali utilizzano i neuroni per trasmettere dati sotto forma di valori di input e output attraverso le connessioni, DL è associato a questo processo di trasformazione ed estrazione. Alla base del processo cui opera l’apprendimento profondo ci sono le reti neurali.
Alcuni ambiti applicativi
Le reti neurali possono essere applicate a un’ampia gamma di problemi e possono valutare diversi tipi di input, tra cui immagini, video, file, database e altro ancora. Inoltre, non richiedono una programmazione esplicita per interpretare il contenuto di tali input.
Grazie all’approccio generalizzato alla risoluzione dei problemi offerto dalle reti neurali, non c’è praticamente limite alle aree in cui questa tecnica può essere applicata.
L’intelligenza artificiale e, in particolare, le reti neurali stanno regolando alcuni settori chiave, tra cui quello finanziario, sanitario e automobilistico.
Qualche esempio: le reti neurali convoluzionali sono utilizzate per il riconoscimento facciale e l’elaborazione delle immagini. Per le previsioni del mercato azionario si tende a usare una multilayer perceptron. Le reti neurali artificiali vengono utilizzate per studiare i comportamenti degli utenti dei social media. I dati condivisi attraverso le conversazioni virtuali vengono raccolti e analizzati per vari tipi di analisi. Le CNN sono impiegate per analizzare dati di imaging medico.
Per le previsioni meteorologiche si utilizzano i percettori multistrato, le convolutional neural network e le reti neurali ricorrenti.
Le reti neurali sono utili anche nel settore dell’energia, tanto nel campo delle fonti rinnovabili (per la previsione della radiazione solare nel fotovoltaico e della velocità del vento nell’eolico) che delle fonti fossili. Le stesse sono utili anche per prevedere le prestazioni energetiche di un edificio.