Le reti neurali informatiche

In informatica una rete neurale ( neural network ) è un modello matematico che si ispira al funzionamento delle reti neuronali biologiche.

Esempio. Nel cervello umano i neuroni sono interconnessi dalle sinapsi e ci consentono di ragionare e comandare ogni funzione e nervo del nostro corpo. In campo informatico la rete neurale è abbastanza simile, è composta da nodi ( neuroni ) e da archi ( sinapsi ) che collegano i nodi. Le neural network sono uno dei concetti di base dell'intelligenza artificiale.

Un esempio pratico di rete neurale semplice

La rappresentazione grafica di una rete neurale è il grafo di flusso.

Il grafo è composto da nodi collegati tra loro dagli archi.

un esempio di grafo di flusso

La successione degli archi crea tanti percorsi possibili tra un nodo iniziale e uno finale.

Il nodo è l'unità della rete neurale dove viene effettuata l'operazione. Può trattarsi di un semplice calcolo matematico ( es. addizione ) o di un algoritmo complesso.

Le tipologie di nodi

Esistono tre tipologie di nodi.

  • Nodi di entrata ( input nodes ). Sono i nodi di input. Si trovano a sinistra, all'ingresso della rete neurale. Sono utilizzati per introdurre i dati di input.
    i nodi di input
  • Nodi intermedi ( hidden nodes ). Sono i nodi nello strato intermedio della rete. Sono anche detti nodi nascosti perché si trovano dentro la rete, non sono né all'ingresso, né all'uscita. Nei nodi intermedi avviene l'elaborazione dei dati. I nodi intermedi sono detti strati della rete ( o livelli ).
    i nodi nascosti ( hidden node ) in una neural network
  • Nodi di uscita ( output nodes ). Sono i nodi di output. Si trovano a destra, all'uscita della rete neurali. Sono usati per consegnare il risultato dell'elaborazione.
    i nodi di output

Nota. Una rete neurale semplice è composta da un solo strato di nodi intermedi. Quando ci sono più strati intermedi si parla di rete neurale multistrato ( es. deep learning ).
la differenza tra neural network semplice e multistrato ( deep network )

Come funziona la rete neurale

Gli archi trasmettono i dati dell'elaborazione nella neural network da un nodo a un altro.

L'informazione si propaga da sinistra verso destra ( forward ).

un esempio di nodo con due archi

Gli archi in entrata sui nodi veicolano i valori di input ( es. 4 ) mentre gli archi in uscita trasmettono il risultato dell'operazione in avanti ( es. 4+2 = 6 ).

Ogni nodo può essere collegato tramite più archi sia in entrata che in uscita.

Esempio. I primi archi della rete ( C1 e C2 ) della rete neurale precedente introducono i valori di input da assegnare alle variabili del problema ( istanza ). Gli archi intermedi ( da C3 a C14 ) trasportano i dati temporanei durante l'elaborazione. Infine, i nodi ( C15 e C16 ) consegnano in uscita il risultato dell'elaborazione ( output ).

Ogni arco è caratterizzato da un peso sinaptico ( coefficiente C ) che permette di modificare il dat prima di consegnarlo al nodo di destinazione.

un esempio di arco con peso

Ecco alcuni casi pratici:

  • Se il peso dell'arco è maggiore di uno ( C>1 ) il valore viene amplificato
  • Se il peso è compreso tra zero e uno ( 0<C<1 ) il valore viene attenuato
  • Se il peso è un numero negativo ( C<0) il segno del valore viene sostituito con il suo opposto ( C=-1) e amplificato ( C<-1 ) o ridotto ( -1<C<0 ) a seconda dei casi

La propagazione e la retroazione

In genere, questi archi hanno una verso univoco... ma non è detto.

Le cose si complicano quando si prende in considerazione la propagazione e l'orientamento degli archi.

Tipi di propagazione

La propagazione può avvenire in avanti o all'indietro ( feedback ).

  1. Propagazione in avanti ( forward ). Il risultato del nodo viene trasmesso a un nodo dello strato successivo, uno più a destra. E' il caso di una propagazione semplice e aciclica. Nelle reti semplici sempre da sinistra verso destra.
    una forward neural network
  2. Propagazione all'indietro ( feed-back o retroazione ). In questo caso, il risultato viene trasmesso a uno dei nodi dello strato precedente, uno di quelli a sinistra. La retroazione è una delle caratteristiche delle reti più complesse, le quali possono anche diventare cicliche durante l'elaborazione dei dati ( reti neurali ricorrenti ).
    un esempio di feed back in una rete neurale ricorrente

Le reti neurali complesse con retroazione

Il seguente grafo di flusso mostra il caso di una rete neurale ricorrente e ciclica.

un esempio di rete neurale complessa ricorrente

Tra i nodi N1 e N2 è presente un arco biunivoco ( s1 ) che li collega, pur essendo i nodi sullo stesso livello ( strato ).

I nodi N3 e N4 hanno, invece, un arco di retroazione ( r1 e r2 ) con un nodo dello strato precedente ( N1 e N2 ).

Il nodo N4 ha anche un arco (t1) che collega l'output del nodo all'input del nodo stesso.

Le reti neurali complesse hanno diversi vantaggi

Una rete neurale artificiale riesce ad affrontare un problema adattandosi alle difficoltà e alla situazione.

In questo caso l'algoritmo può tornare indietro e modificare i pesi degli archi per evitare i nodi più critici.

Così facendo l'algoritmo adatta la rete neurale all'ambiente operativo e sceglie il percorso ( path ) migliore a seconda della situazione corrente.

Non è legato a un solo schema fisso e affronta meglio gli imprevisti.

Nota. E' un processo molto frequente nel ragionamento umano. Quando guidiamo nel traffico sappiamo dove vogliamo andare ma siamo pronti a cambiare il percorso se incontriamo degli ostacoli imprevisti lungo il trafitto. Lo stesso accade nel problem solving e nei processi inferenziali in un computer.

Tipologie di neural network

Esistono diverse categorie di reti neurali.

Le principali sono le seguenti:

  • Le reti neurali semplici. Sono caratterizzate da uno strato di input cell (nodi di entrata), uno strato di output cell (nodi di uscita) e soltanto un livello intermedio di hidden cell (nodi intermedi).
    un esempio di simple neural network
  • Deep Feed Forward (DFF). Sono caratterizzate da una serie di input cell (nodi di entrata), una serie di output cell (nodi di uscita) e due o più serie di hidden cell (nodi intermedi). Ad esempio, nell'apprendimento automatico queste reti caratterizzano il deep learning.
    un esempio di rete neurale a due livelli

Oltre a queste categorie ne esistono molte altre. Evito di citarle tutte per non appesantire l'argomento.



Per scrivere un commento

knowledge base