Reti neurali artificiali

Reti neurali artificiali

Le reti neurali artificiali sono modelli matematici composti da neuroni artificiali che si ispirano al funzionamento dei neuroni di un cervello biologico. Un neurone riceve stimoli da altri neuroni, li integra e si eccita trasmettendo il suo potenziale ad altri neuroni. Possiamo considerare una rete neurale come una scatola nera, con degli input, degli strati intermedi che elaborano gli input, e degli output che escono fuori dopo l’elaborazione. La rete neurale è composta da nodi detti neuroni, collegati in strati successivi mediante connessioni pesate, ossia valori numerici moltiplicati per il valore del neurone collegato. Il neurone singolo somma i valori pesati di tutti i neuroni ad esso collegati e aggiunge un valore di bias o di conferma, e trasmette il risultato allo strato successivo, lungo un percorso che va dai neuroni di input ai neuroni di output. Durante il funzionamento il sistema ottimizza le regolazioni di pesi e bias in funzione dei risultati desiderati, e in tal modo apprende a funzionare meglio. Questa capacità di adattamento è influenzata da informazioni esterne o interne che scorrono attraverso la rete durante la fase di apprendimento.

Una rete neurale artificiale riceve segnali esterni su uno strato di unità di elaborazione o nodi d’ingresso, ciascuno dei quali è collegato con numerosi nodi interni, organizzati in più livelli. Ogni nodo elabora i segnali ricevuti e trasmette il risultato a nodi successivi. La rete è una struttura non lineare di dati statistici che funziona come strumento di modellazione. Serve a simulare relazioni complesse tra ingressi e uscite che altre funzioni analitiche non riescono a rappresentare. I processi di calcolo sono basati sul connessionismo, il modello delle scienze cognitive di elaborazione a parallelismo distribuito delle informazioni: il cervello umano elabora le informazioni ricevute dagli organi dei sensi in modo parallelo e distribuisce le informazioni in tutti i vari nodi della rete, non in una memoria centrale, come fa l’informatica tradizionale, i cui calcoli avvengono in modo seriale e i dati vengono immagazzinati in una memoria centrale.

I circuiti neurali artificiali sono la base di sofisticate forme di intelligenza artificiale, sempre più evolute, in grado di apprendere sfruttando meccanismi simili a quelli dell’intelligenza umana. Questi modelli matematici, anche se troppo semplici per ottenere una comprensione delle reti neurali biologiche, sono utili per affrontare problemi ingegneristici di intelligenza artificiale come il riconoscimento di immagini e suoni. Le reti neurali artificiali si realizzano con programmi software, hardware dedicato, algoritmi di logica fuzzy, con prestazioni impossibili con altri sistemi informatici.

Semplificando al massimo, le reti neurali sono formate da tre strati che possono coinvolgere migliaia di neuroni e decine di migliaia di connessioni:

  1. lo strato I (input, ingressi) che riceve i segnali esterni;
  2. lo strato H (hidden, nascosto) che elabora le informazioni;
  3. lo strato O (output, uscita) che riceve le informazioni elaborate e le adatta alle richieste del blocco di rete successivo.

Nelle reti neurali naturali 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. Qualcosa di simile avviene con le reti neurali artificiali, che aumentano i loro nodi e i pesi delle connessioni in base ai problemi che affrontano, ai dati che acquisiscono lavorando, alle soluzioni che vengono convalidate. L’addestramento delle reti è affrontato con il machine learning, che non istruisce la macchina con una serie di comandi da eseguire, ma le fornisce criteri di soluzione dei problemi, in modo che la macchina possa apprendere da sola e migliorare le sue prestazioni mentre sta lavorando.

Gli algoritmi di apprendimento governano i processi di apprendimento automatico raccogliendo ed elaborando informazioni da input variabili con cicli successivi per ottenere output generalizzati e quindi attendibili. Operano in tre modi.

  1. Negli algoritmi supervisionati vengono forniti alla rete sia il set di dati di input sia il tipo di output desiderato, e la rete deve imparare a calcolare le associazioni corrette per raggiungere quel risultato. E’ importante la supervisione dell’operatore che dosa i parametri di ingresso e la quantità di elaborazione.
  2. Gli algoritmi ad apprendimento non supervisionato forniscono alla rete solo un insieme di variabili di input, senza specificare il risultato desiderato. La rete li analizza e li aggrega per cluster, e i nodi variano i pesi delle connessioni man mano che elaborano i dati. Così facendo la rete risale a schemi e modelli nascosti nell’insieme caotico di dati, identificando negli input una struttura logica.
  3. Con gli algoritmi di rinforzo i circuiti neurali imparano solo interagendo con l’ambiente. Stabilito un risultato, si premiano e si rinforzano le azioni che si avvicinano a quel risultato, si puniscono gli errori correggendoli ed eliminano le azioni negative. Questi algoritmi basati su ricompensa e punizione possono portare le macchine a trovare soluzioni a cui l’uomo non aveva pensato.

I vantaggi di una rete neurale sono il parallelismo che processa molti dati con operazioni contemporanee, la tolleranza a guasti e a rumore derivante da input imprecisi o incompleti, l’ottimizzazione di predizioni, simulazioni, classificazioni, l’adattamento evolutivo in risposta a stimoli ambientali.

Le reti neurali si usano per simulazioni finanziarie, riconoscimento di immagini e parlato, simulazioni biologiche e meteo, diagnosi mediche, analisi di dati, controlli di qualità, e in genere in tutti quei campi che necessitano di grandi capacità di analisi e di calcolo, per gestire grandi flussi di dati con elevato numero di variabili.

Nell’uso delle reti neurali bisogna tener conto dei loro limiti. Poiché l’elaborazione avviene negli strati nascosti, non è possibile sapere come sono giunte ad un risultato, che può essere impreciso e approssimativo. Bisogna tener conto del periodo più o meno lungo di apprendimento che dipende dalla complessità dei problemi, evitando o semplificando i problemi che presentano una quantità eccessiva di variabili.

Il cammino che ha portato alle potenti reti neurali odierne è iniziato nel 1943 con il primo neurone artificiale, un apparato che riceveva una certa quantità di dati binari e produceva in uscita un solo dato elaborato con funzioni booleane elementari.
Nel 1949 si studiano le prime macchine capaci di apprendere.
Nel 1958 il Perceptron è la prima rete neurale artificiale, con uno strato di nodi di input e un nodo di output. Sa riconoscere forme e calcolare funzioni semplici. Successivamente fra lo strato di input e quello di output viene aggiunto uno strato “nascosto” che serve ad elaborare le informazioni.
Nel 1986 viene elaborato l’Algoritmo di Retro-propagazione, che perfeziona in stadi successivi l’apprendimento di una rete neurale, modificando i pesi delle connessioni fra nodi fino a raggiungere risultati soddisfacenti. Contemporaneamente vengono elaborate reti che scambiano nodi in qualsiasi direzione, non più solo in avanti dagli input all’output, come facevano i processi precedenti.
Le reti neurali più recenti adottano neuroni a cambiamento di fase, avvicinandosi al funzionamento di neuroni naturali. Questi neuroni utilizzano materiali che assumono contemporaneamente lo stato amorfo non strutturato e quello cristallino, e man mano che acquisiscono dati si strutturano. Sono particolarmente adatti per il riconoscimento di immagini e per evidenziare anomalie e diversità in grandi flussi di dati.