Reti neurali artificiali: quando l’IT si ispira al cervello biologico | ZeroUno

Reti neurali artificiali: quando l’IT si ispira al cervello biologico

pittogramma Zerouno

Guida

Reti neurali artificiali: quando l’IT si ispira al cervello biologico

Decennio dopo decennio, l’informatica riesce ad affiancare ai sistemi tradizionali soluzioni che mimano le strutture e i meccanismi del sistema nervoso umano. Tecnologie che risolvono efficacemente piccoli e grandi problemi in ambiti che hanno in comune la gestione di dati complessi e situazioni non sempre prevedibili

05 Gen 2021

di Riccardo Cervelli

Modelli matematici, implementati su pc, server aziendali, cloud o su dispositivi hardware dedicati e sempre più innovativi, che mirano a risolvere problemi di diversa natura simulando i diversi meccanismi utilizzati dal sistema nervoso umano in diversi tipi di contesti. Sono le reti neurali artificiali, un tema di cui si parla da più di mezzo secolo, ma che dagli anni Novanta in poi, ha iniziato a diventare realtà in modo pervasivo. Anche se non sempre ce ne rendiamo conto, sono moltissime le applicazioni con reti neurali che utilizziamo nella vita quotidiana.

Cosa sono le reti neurali artificiali

Le reti neurali artificiali sono costituite in massima parte da software come le applicazioni tradizionali, di cui non sono necessariamente sostitutive. Il loro codice, anche se scritto con gli stessi linguaggi usati per sviluppare le applicazioni tradizionali, non è un insieme di istruzioni fisse che permettono ai programmi di elaborare richieste specifiche in modo standard, ma è costituito da algoritmi che permettono alle reti di imparare quali output fornire a fronte di input che possono essere molto grandi, complessi e inattesi. Affinché questi modelli matematici, o algoritmi, riescano a raggiungere tali capacità, devono essere ben progettati e sottoposti a un periodo di training che varia in funzione della complessità delle applicazioni di impiego delle reti neurali artificiali.

WHITEPAPER
I Robot del futuro e le loro applicazioni nella vita quotidiana. Qui tutti i dettagli
Intelligenza Artificiale
IoT

Funzionamento di una rete neurale artificiale

Un minimo di storia. Il primo tipo di neurone artificiale, ribattezzato percettrone, viene sviluppato nel 1958 da Frank Rosenblatt per il riconoscimento e la classificazione di forme. Il percettrone di Rosenblatt era costituito da uno strato di ingresso, uno di uscita e una regola di apprendimento basata sulla minimizzazione dell’errore, la cosiddetta funzione di error back-propagation (retro propagazione dell’errore).

Con questa struttura, il percettrone poteva però rappresentare solo funzioni booleane di base di tipo AND, ON, NON, ma non XOR, e quindi non poteva risolvere problemi complessi.

Un passo decisivo per fare uscire le reti neurali da un più che ventennale ristagno avviene nel 1986, con la presentazione, da parte di David E. Rumelhart, Geoffrey E. Hinton e Ronald J. Williams, di un algoritmo di error backpropagation in grado di addestrare reti con più strati di percettroni, ossia i network MLP (Multi-layers Perceptron). Grazie alla backpropagation dell’errore, la rete viene indotta a ritentare numerose volte, modificando i pesi delle connessioni e altri parametri finché l’errore si riduce al minimo possibile e il neural network diviene in grado di agire con successo anche a fronte di dati in ingresso non noti.

Tipologie di reti neurali

Tutte le reti neurali artificiali hanno in comune una più o meno forte ispirazione a qualche tipo di rete neurale biologica. Caratteristica comune di quasi tutte è la presenza di uno strato d’ingresso, uno o più strati intermedi costituiti da neuroni, o nodi, collegati fra loro attraverso connessioni, o sinapsi, e uno strato di uscita. Questo modello è diverso da quello di un sistema informatico tradizionale, in quanto, come abbiamo già accennato, le reti neurali devono essere in grado di apprendere, di adattarsi, di aggiornarsi, e quindi, più che di set istruzioni da applicare, necessitano di algoritmi di Machine Learning (ML)e di cicli di training con grandi data set.

In generale, comunque, le reti neurali artificiali si possono distinguere in due macrocategorie: quelle di tipo feed-forward (a flusso in avanti), in cui le connessioni fra i neuroni trasmettono i segnali solo nel verso che parte dallo strato di input e arriva a quello di output (come un grafo aciclico) e quelle ricorrenti (recursive neural network, o RNN). In queste ultime, alcuni neuroni sono collegati fra loro in loop. Questo consente di utilizzare uno strato come memoria di stato che fornisce allo strato inferiore, in ingresso, una sequenza temporale di valori, modellandone il comportamento temporale. Questo tipo di reti sono molto adatte all’analisi predittiva di sequenze di dati.

A differenziare le reti neurali artificiali sono anche i paradigmi di apprendimento, cioè di Machine Learning. I principali sono tre: supervisionato (supervised learning), non supervisionato (unsupervised learning) e apprendimento per rinforzo (reinforcement learning). Il semi-supervised learning è una combinazione dei primi due tipi, che sfrutta i rispettivi benefici per funzioni complementari.

Perché sono utili

Nel paradigma di training supervisionato, basato sull’algoritmo della backpropagation, vengono impiegati data set (collezioni di dati) adatti all’addestramento, cioè con feature (caratteristiche) tipiche del dominio in cui la rete sarà applicata e label (etichette) consistenti negli output attesi. Grazie a questi esempi tipici di ingressi e relative uscite, la rete inizia a inferire le relazioni che intercorrono fra loro e, ciclo dopo ciclo di retropropagazione dell’errore (che conduce al Gradient Descent) a divenire in grado anche di effettuare previsioni plausibili anche laddove gli output non sono noti a priori. Grazie a questa capacità di generalizzazione, le reti con addestramento supervised risultano particolarmente utili per risolvere problemi di regressione e di classificazione. Questo tipo di machine learning viene utilizzato con reti feed-forward come le reti neurali convoluzionali (CNN o ConvNet) finalizzate al riconoscimento di immagini e video, alla formulazione di raccomandazioni, nell’elaborazione del linguaggio naturale (Natural Language Processing, NLP), nella visione artificiale e nella bioinformatica. Ma viene impiegato anche con le reti ricorrenti (RNN), per esempio quelle per la sintesi vocale (text-to-speech).

Anche nell’apprendimento non supervisionato l’obiettivo è far sì che si modifichino i pesi (weight) nella rete, ma utilizzando solo variabili in ingresso. In questo tipo di network, i neuroni individuano cluster rappresentativi di dati con l’utilizzo di metodi topologici o probabilistici. Questo tipo di apprendimento è molto impiegato per sviluppare tecniche di compressione dei dati.

Nell’apprendimento con rinforzo, un opportuno algoritmo permette di individuare determinati modus operandi nell’ambiente esterno. Per questa classe di problemi è necessaria la presenza di un agente con capacità di percezione. Nella sua esplorazione dell’ambiente, la rete analizza le azioni che hanno impatto sull’ambiente e le retroazioni che l’ambiente produce, che possono essere di incentivazione o incentivazione. L’algoritmo di reinforcement learning identifica così delle politiche tese a massimizzare gli incentivi cumulati. Queste formano una conoscenza sfruttabile nell’esplorazione di situazioni ignote. Le reti neurali che utilizzano il reinforcement learning trovano largo impiego nella robotica, nell’automazione dei processi, nella produzione industriali e nell’economia.

Nel semi-supervised learning si usano grandi quantità di dati unlabeled (come nella unsupervised learning) e un numero inferiore di labeled data da utilizzare per aumentare la capacità della rete di riconoscere i pattern nei data set privi di label.

Limiti delle reti artificiali oggi

Come abbiamo scritto all’inizio, le reti neurali artificiali non sono da considerare sempre un’alternativa alle applicazioni tradizionali. Il loro funzionamento si basa soprattutto su osservazioni di dati e sul riconoscimento di pattern che permettono di elaborare determinati output.

Elaborazioni che risultano veloci e precise solo se gli algoritmi di machine learning – o meglio ancora di deep learning – sono stati progettati con grande conoscenza di dominio (fondamentale il ruolo dei data scientist), abilità degli sviluppatori, workflow efficienti e grande impegno nel training degli algoritmi.

Ha senso usare le reti neurali quando la complessità dei dati e le difficoltà di elaborazione non renderebbe conveniente e praticabile la progettazione di sistemi in grado di offrire le prestazioni delle neural network con metodi di analisi tradizionale. Se i dati da elaborare sono invece ben chiari, il loro processing è standardizzato, e la quantità è comunque molto elevata, è più conveniente utilizzare i software tradizionali.

Le reti neurali esplicano il loro valore quando c’è necessità di classificare data set molto variabili e contenenti anche dati errati, riconoscere le relazioni nascoste, decidere in tempo reale quali output fornire, sia essa la trascrizione di un parlato o di una scrittura a mano, o la generazione di un’immagine, un video, una musica.

Le reti neurali artificiali concepite per il Deep Learning, infine, sono molto dipendenti dall’hardware. Sempre più spesso, al posto delle Cpu tradizionali, si utilizzano le Gpu , maggiormente in grado di eseguire velocemente molti calcoli a matrice. Ma diversi vendor hanno già da tempo iniziato a progettare e sperimentare microprocessori di tipi neuromorfico, che imitano sempre più fedelmente l’architettura e i processi che avvengono nel nostro sistema nervoso, diventando l’ambiente ideale in cui far girare algoritmi delle reti neurali artificiali.

Riccardo Cervelli

Giornalista

Classe 1960, giornalista freelance divulgatore tecnico-scientifico, nell’ambito dell’Ict tratta soprattutto di temi legati alle infrastrutture (server, storage, networking), ai sistemi operativi commerciali e open source, alla cybersecurity e alla Unified Communications and Collaboration e all’Internet of Things.

Argomenti trattati

Approfondimenti

G
Guida
I
Intelligenza Artificiale

Articolo 1 di 4