Reti neurali: cosa sono, a cosa servono, la loro storia
18 novembre 2018
FacebookTwitterLinkedIn

Reti neurali: cosa sono, a cosa servono e quali sono gli ambiti applicativi

Chip delle reti neurali
Nicoletta Boldrini

Le reti neurali artificiali sono modelli matematici composti da neuroni artificiali che si ispirano al funzionamento biologico del cervello umano. Risultano indispensabili per risolvere problemi ingegneristici di Intelligenza Artificiale e richiedono avanzati chip hardware a supporto. In questo servizio analizziamo cosa sono, come funzionano e con che tipo di chip possono funzionare le reti neurali e quali sono le loro nuove frontiere tecnologiche

Nodo nelle reti neurali artificialiNeuroni biologici interconnessi formano le nostre reti neurali cerebrali, quelle che permettono a ciascun individuo di ragionare, fare calcoli in parallelo, riconoscere suoni, immagini, volti, imparare e agire… L’idea di poter replicare artificialmente il cervello umano, simulandone il funzionamento, attraverso delle reti neurali artificiali ha una storia che inizia da lontano, dai primi anni ’40 del XX secolo [il primo neurone artificiale fu proposto da W.S. McCulloch e W. Pitts in un famoso lavoro del 1943 intitolato “A Logical Calculus of the Ideas Immanent in Nervous Activity” con il quale cercarono di dimostrare che una macchina di Turing poteva essere realizzata con una rete finita di neuroni per dimostrare che il neurone era l’unità logica di base del cervello – ndr].

Cerchiamo allora di capire meglio di cosa si tratta, perché si parla molto di reti neurali artificiali, come vengono impiegate nell’ambito dell’Intelligenza Artificiale e del Machine Learning, qual è la loro storia e quali sono le nuove frontiere tecnologiche dell’hardware.

Cosa sono le reti neurali artificiali

Le reti neurali artificiali sono modelli matematici composti da neuroni artificiali di ispirazione alle reti neurali biologiche (quella umana o animale) e vengono utilizzate per risolvere problemi ingegneristici di Intelligenza Artificiale legati a diversi ambiti tecnologici come l’informatica, l’elettronica, la simulazione o altre discipline.

Volendo dare una definizione più dettagliata potremmo dire che le reti neurali sono modelli di calcolo matematico-informatici basati sul funzionamento delle reti neurali biologiche, ossia modelli costituiti da interconnessioni di informazioni; tali interconnessioni derivano da neuroni artificiali e processi di calcolo basati sul modello delle scienze cognitive chiamato “connessionismo” [vale a dire basati su PDP – Parallel Distributed Processing, elaborazione a parallelismo distribuito delle informazioni: il cervello umano elabora le informazioni dei vari sensi in modo parallelo e distribuisce le informazioni in tutti i vari nodi della rete, non in una memoria centrale; facendo il paragone con l’informatica tradizionale, i calcoli avvengono in modo seriale e non in parallelo e i dati vengono immagazzinati in una memoria centrale, anche se, come vedremo, negli ultimi anni si sono fatti enormi balzi in avanti sia sul fronte delle memorie sia dal punto di vista del calcolo computazionale sia dei processori hardware – ndr].

Una curiosità, in inglese vengono definite ANN – Artificial Neural Network, ma da diversi anni si è passati al più semplice NN – Neural Network ed anche in Italia si parla semplicemente di reti neurali, senza distinguere la natura biologica o artificiale (desumibile dal contesto all’interno del quale se ne parla).

Come funzionano le reti neurali

Reti neurali artificialiUna rete neurale di fatto si presenta come un sistema “adattivo” in grado di modificare la sua struttura (i nodi e le interconnessioni) basandosi sia su dati esterni sia su informazioni interne che si connettono e passano attraverso la rete neurale durante la fase di apprendimento e ragionamento.

Capiamo come: una rete neurale biologica riceve dati e segnali esterni (nell’uomo e nell’animale vengono percepiti attraverso i sensi grazie a complesse organizzazioni di cellule nervose che hanno “compiti” differenti come la percezione dell’ambiente, il riconoscimento degli stimoli, ecc.); questi vengono elaborati in informazioni attraverso un imponente numero di neuroni (che rappresentano la capacità di calcolo) interconnessi tra loro in una struttura non-lineare e variabile in risposta a quei dati e stimoli esterni stessi. È in quest’ottica che si parla dunque di “modello” matematico-informatico.

Allo stesso modo, le reti neurali artificiali sono strutture non-lineari di dati statistici organizzate come strumenti di modellazione: ricevono segnali esterni su uno strato di nodi (che rappresenta l’unità di elaborazione, il processore); ognuno di questi “nodi d’ingresso” è collegato a svariati nodi interni della rete che, tipicamente, sono organizzati a più livelli in modo che ogni singolo nodo possa elaborare i segnali ricevuti trasmettendo ai livelli successivi il risultato delle sue elaborazioni (quindi delle informazioni più evolute, dettagliate).

In linea di massima, le reti neurali sono formate da tre strati (che però possono coinvolgere migliaia di neuroni e decine di migliaia di connessioni):

1) lo strato degli ingressi (I – Input): è quello che ha il compito di ricevere ed elaborare i segnali in ingresso adattandoli alle richieste dei neuroni della rete;

2) il cosiddetto strato H – hidden (strato nascosto): è quello che ha in carica il processo di elaborazione vero e proprio (e può anche essere strutturato con più colonne-livelli di neuroni);

3) lo strato di uscita (O – Output): qui vengono raccolti i risultati dell’elaborazione dello strato H e vengono adattati alle richieste del successivo livello-blocco della rete neurale.

I modelli di apprendimento delle reti neurali

Affinché questo processo risulti performante è necessario “addestrare” le reti neurali, ossia fare in modo che apprendano come comportarsi nel momento in cui andrà risolto un problema ingegneristico, come per esempio il riconoscimento di un essere umano dall’analisi delle immagini (attraverso per esempio la tecnologia del riconoscimento facciale).

Il tema dell’apprendimento è collegato al Machine Learning, inteso come algoritmi che utilizzano metodi matematico-computazionali per apprendere informazioni dall’esperienza (quindi in modo automatico e adattivo).

Questi i principali modelli in uso oggi:

apprendimento supervisionato (Supervised Learning): all’algoritmo vengono forniti sia set di dati come input sia le informazioni relative ai risultati desiderati con l’obiettivo che la rete identifichi una regola generale che colleghi i dati in ingresso con quelli in uscita; in altre parole vengono forniti degli esempi di input e di output in modo il sistema che impari il nesso tra loro e ne estrapoli una regola riutilizzabile per altri compiti simili;

apprendimento non supervisionato (Unsupervised Learning): al sistema vengono forniti solo set di dati senza alcuna indicazione del risultato desiderato. Lo scopo di questo secondo metodo di apprendimento è “risalire” a schemi e modelli nascosti, ossia identificare negli input una struttura logica senza che questi siano preventivamente etichettati;

apprendimento per rinforzo: in questo caso, il sistema deve interagire con un ambiente dinamico (che gli consente di avere i dati di input) e raggiungere un obiettivo (al raggiungimento del quale riceve una ricompensa), imparando anche dagli errori (identificati medianti “punizioni”). Il comportamento (e le prestazioni) del sistema è determinato da una routine di apprendimento basata su ricompensa e punizione;

apprendimento semi-supervisionato: è un modello “ibrido” dove al computer viene fornito un set di dati incompleti per l’allenamento/apprendimento; alcuni di questi input sono “dotati” dei rispettivi esempi di output (come nell’apprendimento supervisionato), altri invece ne sono privi (come nell’apprendimento non supervisionato). L’obiettivo, di fondo, è sempre lo stesso: identificare regole e funzioni per la risoluzione dei problemi, nonché modelli e strutture di dati utili a raggiungere determinati obiettivi.

Un po’ di storia: come si è arrivati alle reti neurali artificiali di oggi

Come anticipato all’inizio di questo nostro “viaggio” alla scoperta delle reti neurali, il primo grande passo verso la nascita e lo sviluppo delle reti neurali artificiali lo hanno compiuto nel 1943 Warren Sturgis McCulloch (neurofisiologo) e Walter Pitts (matematico) nella loro pubblicazione “A logical calculus of the ideas immanent in nervous activity”. I due scienziati provarono a modellare un primissimo neurone artificiale schematizzando quello che venne identificato come un “combinatore lineare a soglia”, sistema dove lo strato di input prevedeva dati binari multipli in entrata mentre per l’output era previsto un singolo dato binario in uscita; per “comporre” la rete neurale bastava concettualmente combinare un numero opportuno di questi elementi e si dimostrò essere in grado di calcolare semplici funzioni booleane (funzioni matematiche basate su due variabili che in informatica equivalgono a 1 e 0).

Dal ’43 alla fine degli anni ’50 accadde però ben poco; ci fu un tentativo nel 1949 da parte dello psicologo canadese Donald Olding Hebb di spiegare i modelli complessi del cervello e di estrapolarne le prime ipotesi di apprendimento delle reti neurali (a lui il merito di aver introdotto uno dei fondamentali algoritmi di apprendimento nel campo delle reti neurali, l’apprendimento hebbiano che si basa sul “peso” delle connessioni: si basa sul semplice principio che se due neuroni si attivano contemporaneamente, la loro interconnessione deve essere rafforzata).

Un importante salto innovativo lo si vide nel 1958 con il primo schema di rete neurale presentato da Frank Rosenblatt (psicologo e computer scientist americano), antesignano delle attuali reti neurali: venne chiamato Perceptron e indicava una rete con uno strato di ingresso ed uno di uscita ed una regola di apprendimento intermedia basata sull’algoritmo ‘error back-propagation’ (minimizzazione degli errori); la funzione matematica, in sostanza, in base alla valutazione sui dati effettivi in uscita – rispetto ad un dato ingresso – altera i pesi delle connessioni (sinapsi) provocando una differenza tra l’uscita effettiva e quella desiderata.

Le teorie di Rosenblatt scaldarono la comunità scientifica per oltre un decennio ma nel 1969 Marvin Minsky e Seymour Papert ne dimostrarono i forti limiti: il percettrone risultava essere infatti una rete neurale poco potente, incapace di calcolare la funzione “or esclusivo” (XOR).

Fu necessario attendere un altro decennio prima di vedere nuovamente qualcosa di innovativo; nel 1986 David Rumelhart introdusse il terzo strato delle reti neurali (quello oggi chiamato strato H – hidden) attraverso il quale si identificarono i modelli di apprendimento per addestrare le reti MLP – Multi-Layers Perceptron (ossia un percettrone multistrato); Rumelhart propose alla comunità scientifica il cosiddetto algoritmo di retropropagazione dell’errore (error backpropagation) il quale modifica sistematicamente i pesi delle connessioni tra i nodi, così che la risposta della rete si avvicini sempre di più a quella desiderata (algoritmo oggi usato utilizzato nell’apprendimento con supervisione).

Tra il 1958 ed i primi anni ’70 si assiste anche al “lancio” dei primi linguaggi di programmazione specifici per l’Intelligenza Artificiale (Lisp nel 1958 e Prolog nel 1973) ma è dalla fine degli anni ’80 che avviene un’altra grande accelerazione con l’arrivo sul mercato “allargato” di nuovi potenti processori e avanzati chip in grado di supportare applicazioni intensive come quelle delle analisi e delle simulazioni; da qui in poi il percorso di avanzamento tecnologico dell’hardware non si è più arrestato ed oggi nei laboratori di ricerca si sta già lavorando ai chip neuromorfici (che imitano il funzionamento del cervello umano) e a quelli per il quantum computing (recentissimo per esempio l’annuncio di Intel riguardo un chip superconduttivo basato su 17 qubit; un nuovo processore che verrà testato nei prossimi mesi da QuTech, l’azienda olandese partner di Intel nell’ambito del quantum computing che si occupa dello sviluppo del software e degli algoritmi).

Verso i chip neuromorfici

Chip delle reti neurali artificialiQuello dei chip neuromorfici è un ambito di studio che negli ultimi anni ci ha mostrato nuove interessanti evoluzioni dal punto di vista dell’hardware; si tratta di microprocessori che imitano il funzionamento del cervello biologico e quindi potrebbero rappresentare la grande svolta per portare i computer a comprendere l’ambiente circostante (una delle enormi sfide affrontate nell’ultimo decennio dagli scienziati che si occupano di Intelligenza Artificiale).

In quest’ambito Intel sta dimostrando una grande forza sia nell’ambito della ricerca “pura” sia dal punto di vista della sperimentazione pratica e dello sviluppo. Non è infatti un mistero che la multinazionale americana collabori da tempo con il professor Carver Mead del CalTech (California Institute of Technology) per la realizzazione di sistemi tecnologici in grado di imitare il cervello umano.

Obiettivo raggiunto (dopo una fase di sviluppo del chip che è durata 6 anni), come annunciato dalla stessa Intel che poche settimane fa ha mostrato al pubblico Loihi, il suo primo chip neuromorfico ad auto-apprendimento che imita il funzionamento del cervello umano imparando il corretto comportamento sulla base di iterazioni con l’ambiente circostante.

Chip Neuromorfico - Intel LoihiLoihi contiene al suo interno 130mila neuroni e 130 milioni di sinapsi che gli permettono di apprendere in tempo reale, sulla base dei feedback ricevuti dall’ambiente. In questo momento il chip è ancora nell’ambito della ricerca ma gli scienziati hanno già potuto dimostrare che l’apprendimento ha un tasso di miglioramento di 1 milione di volte superiore rispetto ad altre reti neurali convenzionali ed utilizza algoritmi di Deep Learning richiedendo molte meno risorse per lo stesso compito rispetto alle reti più tradizionali (realizzato con la tecnologia di processo da 14 nm di Intel, il chip è fino a 1.000 volte più efficiente dal punto di vista energetico rispetto ai chip ordinari).

Si chiama Nervana il futuro delle reti neurali

Se il chip neuromorfico Loihi e quello per il quantum computing di casa Intel sono nell’alveo della ricerca sperimentale, la storia attuale dell’evoluzione delle reti neurali artificiali ci porta a Nervana, il primo Neural Network Processor (NNP) di Intel disponibile tra pochissime settimane.

Intel NervanaStiamo parlando di un processore super potente sviluppato appositamente per applicazioni nell’ambito dell’Intelligenza Artificiale realizzato tenendo conto di interconnessioni ad alta velocità sia all’interno che verso l’esterno. Nervana è infatti un circuito integrato (ASIC – Application Specific Integrated Circuit) specifico per l’esecuzione di algoritmi di apprendimento profondo (Deep Learning).

Per la realizzazione di Nervana, Intel ha collaborato (e sta continuando a farlo) con Facebook e sta lavorando allo sviluppo di più generazioni di prodotti con l’obiettivo di fornire prestazioni ancora più elevate che consentono nuovi livelli di scalabilità per i modelli Intelligenza Artificiale. L’idea di Intel è poter raggiungere l’obiettivo delle prestazioni per l’IA 100 volte superiori entro il 2020 lavorando anche nell’ottica di un rimodellamento dell’architettura: in Nervana per esempio è stata eliminata la cache che tipicamente è prevista sulle Cpu (per gestire la memoria in chip viene invece impiegato un software speciale per l’algoritmo).

Nervana è un chip che privilegia la scalabilità e il parallelismo numerico e Intel promette un robusto trasferimento bidirezionale e livelli di trasmissione più elevati (utilizzando un formato numerico proprietario chiamato Flexpoint). Il tutto riducendo la dimensione del circuito: il team che lavora al progetto è stato in grado di sovraccaricare il parallelismo riducendo la potenza per calcolo.

Dove vedremo presto all’opera Nervana

A detta del numero uno di Intel, il Ceo Brian Krzanich, utilizzando la tecnologia Intel Nervana le aziende saranno in grado di sviluppare interamente nuove classi di applicazioni di Intelligenza Artificiale che massimizzano la quantità di dati elaborati e consentono ai clienti di trovare maggiori intuizioni per il proprio buisness.

Questi gli ambiti di applicazione iniziali di Intel Nervana:

cure sanitarie: l’Intelligenza Artificiale consentirà una diagnosi precoce e una maggiore precisione, anche nella ricerca sul cancro e nella cura dei tumori, sulle malattie rare, sulla malattia di Parkinson, su altri disturbi cerebrali;

social media: i brand saranno in grado di garantire un’esperienza personalizzata agli utenti e di offrire una più efficace distribuzione dei contenuti e delle campagne raggiungendo target mirati e realmente interessati;

automotive: l’apprendimento autonomo e accelerato fornito dalla nuova architettura Intel Nervava segna un importante passo in avanti per portare definitivamente su strada i veicoli autonomi;

meteo: considerando i dati immensi necessari per comprendere il movimento e la velocità del vento, le temperature dell’acqua e altri fattori, avere un processore che sfrutta meglio gli input dei dati potrebbe migliorare le previsioni su come i cambiamenti climatici “sottili” (quelli minimi di cui oggi è difficile tenere conto), per esempio, possono influire sull’aumento degli uragani in diverse aree geografiche, permettendo quindi di intervenire preventivamente.

 

Giornalista del mondo Tech | Ho scoperto di essere una “multipotentialite” innamorata di #Innovation #Tech #AI | Il mio motto: sempre in marcia a caccia di innovazione | Direttore di AI4Business e condirettore di Digital4Trade

FacebookTwitterLinkedIn

3 Comments

  1. scienza che se applicata bene si può interagire soprattutto in scienze cognitive in ambito medico neuro psichiatrico.

Lascia un commento

L'indirizzo email non sarà pubblicato.


*


FacebookTwitterLinkedIn

Questo sito utilizza cookie tecnici e, previo Suo consenso, cookie di profilazione, nostri e di terze parti. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsente all’uso dei cookie. Leggi la nostra Cookie Policy per esteso

Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

Chiudi