Reti neurali

Le reti neurali

Reti neuraliLe reti neurali, la cui implementazione risultava impensabile fino a pochi decenni fa, farebbero affermare a un Julius Verne redivivo che la fantascienza finalmente ha fatto il suo ingresso nella realtà. I circuiti neurali artificiali sono la base di sofisticate forme di intelligenza artificiale, sempre più evolute, in grado di apprendere sfruttando meccanismi simili (almeno in parte) a quelli dell’intelligenza umana.
Risultato: prestazioni impossibili per altri algoritmi.
Le reti neurali artificiali riescono oggi a risolvere determinate categorie di problemi avvicinandosi sempre più all’efficienza del nostro cervello, e trovando perfino soluzioni inaccessibili alla mente umana. Dalla nascita del concetto di neurone artificiale ad oggi è stata fatta molta strada. In moltissimi ed eterogenei settori scientifici, dalla biomedicina al data mining, le reti neurali hanno ormai un impiego quotidiano.
Si tratta di un trend in crescita. I continui progressi permettono di ottenere circuiti sempre più sofisticati. Tutto lascia prevedere, insomma, che le reti neurali e il machine learning saranno parte notevole delle fondamenta del mondo ipertecnologico in cui ci stiamo addentrando.

Il modello di riferimento: le reti neurali biologiche

Il prototipo delle reti neurali artificiali sono quelle biologiche.
Le reti neurali del cervello umano sono la sede della nostra capacità di comprendere l’ambiente e i suoi mutamenti, e di fornire quindi risposte adattive calibrate sulle esigenze che si presentano.
Sono costituite da insiemi di cellule nervose fittamente interconnesse fra loro. Al loro interno troviamo:

  • i somi neuronali, ossia i corpi dei neuroni. Ricevono e processano le informazioni; in caso il potenziale di azione in ingresso superi un certo valore, generano a loro volta degli impulsi in grado di propagarsi nella rete;
  • i neurotrasmettitori, composti biologici di diverse categorie (ammine, peptidi, aminoacidi), sintetizzati nei somi e responsabili della modulazione degli impulsi nervosi;
  • gli assoni o neuriti: la via di comunicazione in uscita da un neurone. Ogni cellula nervosa ne possiede di norma soltanto uno;
  • i dendriti: la principale via di comunicazione in ingresso; sono multipli per ogni neurone, formando il cosiddetto albero dendritico;
  • le sinapsi, o giunzioni sinaptiche: i siti funzionali ad alta specializzazione nei quali avviene il passaggio delle informazioni fra neuroni. Ognuno di questi ne possiede migliaia. A seconda dell’azione esercitata dai neurotrasmettitori, le sinapsi hanno una funzione eccitatoria, facilitando la trasmissione dell’impulso nervoso, oppure inibitoria, tendente a smorzarlo. Le connessioni hanno luogo quando il neurotrasmettitore viene rilasciato nello spazio intersinaptico, raggiungendo così i recettori delle membrane post-sinaptiche (ossia del neurone successivo), e, alterandone la permeabilità, trasmettendo l’impulso nervoso.

SinapsiUn singolo neurone può ricevere simultaneamente segnali da diverse sinapsi. Una sua capacità intrinseca è quella di misurare il potenziale elettrico di tali segnali in modo globale, stabilendo quindi se è stata raggiunta la soglia di attivazione per generare a sua volta un impulso nervoso. Tale proprietà è implementata anche nelle reti artificiali.

La configurazione sinaptica all’interno di ogni rete neurale biologica è dinamica. Si tratta di un fattore determinante per la loro efficienza.
Il numero di sinapsi può incrementare o diminuire a seconda degli stimoli che riceve la rete. Più sono numerosi, maggiori connessioni sinaptiche vengono create, e viceversa.
In questo modo, la risposta adattiva fornita dai circuiti neurali è più calibrata, e anche questa è una peculiarità implementata nelle reti neurali artificiali.

Storia ed evoluzione delle reti neurali

Walter Pitts
Walter Pitts

Il primo modello teorico di un rudimentale neurone artificiale vede la luce nel 1943. A proporlo è una coppia di scienziati, McCulloch e Pitts.
I due descrivono un apparato in grado di ricevere n dati binari in ingresso in ognuno dei suoi elementi, a cui segue un singolo dato in uscita per ciascuno. Tale macchina è in grado di lavorare su funzioni booleane elementari, e solo su quelle.

Nel 1949 D. O. Hebb ipotizza la possibilità di istruire le macchine con un apprendimento che emuli quello alla base dell’intelligenza umana.

Nel 1958 viene proposta da Rosenblatt la prima rete neurale: Perceptron. Le basi dell’apprendimento automatico sono adesso realtà. Perceptron di Rosenblatt possiede uno strato di nodi (neuroni artificiali) di input e un nodo di output.
I pesi sinaptici (un peso indica la forza di una connessione fra due nodi) sono dinamici, permettendo alla macchina di apprendere, in un modo sommariamente simile, anche se molto più elementare, a quello delle reti neurali biologiche. Il modello è feedforward: gli impulsi si propagano in un’unica direzione, in avanti. Il suo campo di applicazione è molto limitato. In cosa consiste? Nel riconoscere forme, classificandole in due gruppi separati, e nel calcolare semplici funzioni.

Il passo successivo è il Perceptron multistrato (MLP).
Al suo interno, fra i nodi di input e quello di output si trova uno strato hidden, dove avviene l’elaborazione delle informazioni provenienti dallo strato di input, che poi vengono inviate al nodo di output. È una rete feedforward non lineare: le connessioni in ingresso e in uscita da ogni singolo nodo sono multiple. A merito di tale architettura, il MLP può computare qualsiasi funzione.
Werbos, nel 1974, descrive nella sua tesi di dottorato come impostare l’apprendimento di un MLP.

Il suo lavoro viene poi ripreso e perfezionato da Rumelhart, Hinton e Williams, che nel 1986 elaborano il celebre Error Back-Propagation.
Con l’algoritmo di retropropagazione dell’errore entriamo nel presente, essendo tuttora utilizzato.
L’EBP permette di perfezionare in stadi successivi l’apprendimento automatico di una rete neurale. Si implementa modificando i pesi delle connessioni fra nodi che non producono l’output ottimale, finché non si ottiene quest’ultimo.
Non meno importante, in tal senso, risulta il precedente lavoro di Hebb, relativo alle connessioni reciproche fra neuroni. Hebb postula che il loro peso deve incrementare unicamente in caso di convergenza fra i due valori pre e post-sinaptico.
Con i MLP e l’EPB il machine learning trova ora alcuni campi di applicazione pratica. Siamo negli anni ’90.

Intanto vengono implementate anche reti neurali con architetture feedback (reti Hopfield, dal nome del fisico che nel 1982 ne propone il modello). In tali architetture, le informazioni fra nodi viaggiano in qualunque direzione: in avanti, all’indietro e fra nodi di una stessa fila.
Il campo delle applicazioni si amplia ulteriormente.

Sempre in questi anni viene progettata la rete neurale proposta da Elman nel 1990. Anche questo è un modello di rete ricorrente (bidirezionale), ma con la variante che alla classica struttura MLP viene aggiunto un gruppo di nodi aventi lo scopo di conservare le informazioni della precedente configurazione di valori della rete. Grazie a tale modifica, la rete di Elman si rivela vantaggiosa nel calcolo delle sequenze temporali.

Nel 1982, invece, Kohonen progetta un tipo di rete neurale dall’architettura sia feedforward che feedback. Sua caratteristica peculiare è la capacità di modificare la configurazione (mappa) dei propri nodi in base al peso che assumono man mano che vengono forniti gli input. I nodi con pesi simili si avvicinano, quelli con pesi molto diversi si allontanano.
La rete di Kohonen è anche conosciuta come rete SOM (Self-Organizing Maps).

Esempio di rete neuraleL’evoluzione delle reti neurali prosegue con la recente tecnologia adottata da IBM, tramite la quale è stata sviluppata una rete neurale basata su materiali a cambiamento di fase.
L’hardware di tale architettura utilizza leghe come il germanio tellururo di ammonio, che presentano l’interessante proprietà di assumere due diversi stati: cristallino (configurazione spaziale omogenea) e amorfo (configurazione spaziale poco definita).
Nei neuroni a cambiamento di fase, gli impulsi elettrici sono in grado di provocare una cristallizzazione del materiale, innescandone infine il firing (attivazione). Ebbene, questo è analogo a quello che avviene nelle cellule nervose. Per ora il neurone artificiale di IBM permette di scrivervi informazioni ma non le memorizza stabilmente, però è certo che il suo funzionamento è quanto di più simile esista all’emulazione di un cervello umano.

Algoritmi di apprendimento

Nelle reti artificiali ovviamente il processo di apprendimento automatico è semplificato rispetto a quello delle reti biologiche. Non esistono analoghi dei neurotrasmettitori, ma lo schema di funzionamento è simile.
I nodi ricevono dati in input, li processano e sono in grado di inviare le informazioni ad altri neuroni. Attraverso cicli più o meno numerosi di input-elaborazione-output, in cui gli input presentano variabili differenti, diventano in grado di generalizzare e fornire output corretti associati ad input non facenti parte del training set.
Gli algoritmi di apprendimento utilizzati per istruire le reti neurali sono divisi in 3 categorie. La scelta di quale usare dipende dal campo di applicazione per cui la rete è progettata e dalla sua tipologia (feedforward o feedback).
Gli algoritmi sono:

  • supervisionato;
  • non supervisionato;
  • di rinforzo.

Apprendimento supervisionato

Rete neurale feedforward
Rete neurale feedforward

Nell’apprendimento supervisionato si fornisce alla rete un insieme di input ai quali corrispondono output noti (training set). Analizzandoli, la rete apprende il nesso che li unisce. In tal modo impara a generalizzare, ossia a calcolare nuove associazioni corrette input-output processando input esterni al training set.
Man mano che la macchina elabora output, si procede a correggerla per migliorarne le risposte variando i pesi. Ovviamente, aumentano i pesi che determinano gli output corretti e diminuiscono quelli che generano valori non validi.
Il meccanismo di apprendimento supervisionato impiega quindi l’Error Back-Propagation, ma è molto importante l’esperienza dell’operatore che istruisce la rete.
Il motivo risiede nel non facile compito di trovare un rapporto adeguato fra le dimensioni del training set, quelle della rete e l’abilità a generalizzare che si tenta di ottenere.
Un numero eccessivo di parametri in ingresso e una troppo potente capacità di elaborazione, paradossalmente, rendono difficile alla rete neurale imparare a generalizzare, perché gli input esterni al training set vengono valutati dalla rete come troppo dissimili ai sofisticati e dettagliati modelli che conosce.
D’altro canto, un training set con variabili scarse porta per la via opposta alla stessa conclusione: la rete, in questo caso, non ha sufficienti parametri per apprendere a generalizzare.
Il giusto compromesso, insomma, è un compito che necessita di molta preparazione ed esperienza.
Le reti feedforward come il MLP utilizzano l’apprendimento supervisionato.

Apprendimento non supervisionato

In una rete neurale ad apprendimento non supervisionato, la medesima riceve solo un insieme di variabili di input. Analizzandole, la rete deve creare dei cluster rappresentativi per categorizzarle. Anche in questo caso i valori dei pesi è dinamico, ma sono i nodi stessi a modificarli.
Esempi di reti ad apprendimento supervisionato sono SOM e la rete di Hopfield.

Apprendimento per rinforzo

Nelle reti neurali che apprendono mediante l’algoritmo di rinforzo, non esistono né associazioni input-output di esempi, né un aggiustamento esplicito degli output da ottimizzare.
I circuiti neurali imparano esclusivamente dall’interazione con l’ambiente. Su di esso, eseguono una serie di azioni.
Dato un risultato da ottenere, è considerato rinforzo l’azione che avvicina al risultato; viceversa, la rete apprende a eliminare le azioni negative, ossia foriere di errore.
Detto in altri termini, un algoritmo di apprendimento per rinforzo mira a indirizzare la rete neurale verso il risultato sperato con una politica di incentivi (azioni positive) e disincentivi (azioni negative).

Arcade Breakout
Arcade Breakout

Usando tale algoritmo, una macchina impara a trovare soluzioni che non è esagerato definire creative. Una rete neurale così implementata, per esempio, è stata utilizzata per giocare ad Arcade Breakout. Risultato: dopo sole 4 ore di continuo miglioramento, i circuiti hanno individuato una strategia di gioco mai ideata da un essere umano in questo videogame.

Vantaggi delle reti neurali

L’utilizzo delle varie tipologie di reti neurali nasce dagli importanti vantaggi che presentano:

  • elevato parallelismo, grazie al quale possono processare in tempi relativamente rapidi grandi moli di dati;
  • tolleranza ai guasti, anche questo grazie all’architettura parallela;
  • tolleranza al rumore, ossia la capacità di operare, in molti casi, in modo corretto nonostante input imprecisi o incompleti;
  • in alcune categorie di problemi costituiscono lo strumento migliore per gestirlo. Data mining, optimization, elaborazione di modelli predittivi e simulativi e classificazione sono i campi di impiego preferenziali per le reti neurali;
  • evoluzione adattiva: una rete neurale ben implementata è in grado di autoaggiornarsi in presenza di modifiche ambientali.

Applicazioni delle reti neurali artificiali

I settori in cui l’utilizzo delle reti neurali rappresenta una realtà affermata sono numerosi ed ormai è quasi impossibile elencarli tutti. I principali sono:

  • finanza, con numerose applicazioni: previsioni sull’andamento dei mercati inclusi quelli valutari, analisi del rischio di credito, analisi del portafoglio, etc;
  • riconoscimento ed elaborazione delle immagini;
  • analisi del parlato e riconoscimento vocale;
  • simulazione di sistemi biologici, da quelli intracellulari alle reti neurali;
  • diagnosi mediche, inclusi i referti di TAC e risonanze magnetiche;
  • robot steering;
  • controllo di qualità su scala industriale;
  • data mining;
  • simulazioni di varia natura, anche comprendenti un fattore temporale.Le reti ricorrenti (ad esempio SOM, Hopfield) si prestano meglio per simulazioni e classificazioni, mentre le reti feedforward (MLP) sono valide in applicazioni quali l’OCR.

Limiti

Le reti neurali artificiali hanno comunque dei limiti, ed è difficile prevedere se col tempo potranno essere eliminati o attenuati.
I più importanti sono:

  • funzionamento a black box. Un handicap rimarchevole delle reti neurali artificiali è il fatto che la loro computazione non è analizzabile in modo completo. Con questo si intende dire che sono in grado di fornire output corretti, o sufficientemente corretti, ma non permettono di esaminare i singoli stadi di elaborazione che li determinano;
  • non è possibile avere la certezza a priori che un problema sarà risolto;
  • gli output forniti spesso non rappresentano la soluzione perfetta, anche se in molti casi questo non è necessario;
  • il periodo di learning è più o meno lungo. Le iterazioni necessarie dipendono da fattori quali numero e complessità delle variabili di input, algoritmo utilizzato, etc. In realtà, in tale ambito sono stati fatti importanti progressi, ed è ragionevole ipotizzare che in futuro il periodo di learning potrà ulteriormente ridursi;
  • le reti neurali non sono idonee a risolvere determinate categorie di problemi. Un esempio è un tipo di input costituito da un numero elevato di variabili categoriche.