Le reti neurali informatiche

Ho sentito parlare per la prima volta di reti neurali negli anni '80. A quei tempi si guardava con interesse alle reti neurali artificiali perché, grazie alle trasmissioni a pacchetto ( es. Itapac in Italia ) rendevano notevolmente più efficiente la trasmissione dati e la telematica.

Qualche anno più tardi iniziai a leggere qualcosa sull'applicazione delle reti anche nell'intelligenza artificiale, quando il settore A.I. era ancora lontano dalle applicazioni pratiche.

Il concetto della rete neurale è di per sé molto semplice. Si tratta di un modello matematico che emula le reti neuronali biologiche del nostro cervello, dove i neuroni sono interconnessi dalle sinapsi e, oltre a farci ragionare, ci consentono di comandare ogni funzione e nervo del corpo.

Un esempio pratico di rete neurale semplice

In campo informatico la rete neurale è abbastanza simile. E' composta da neuroni ( nodi ) e da archi ( sinapsi ) che collegano i nodi. La successione degli archi crea tanti percorsi possibili tra un nodo iniziale e uno finale. La sua rappresentazione grafica è il grafo di flusso.

un esempio di grafo di flusso

I primi archi della rete ( C1 e C2 ) mi consentono di introdurre nel sistema dei valori di input da assegnare alle variabili del problema.

Il nodo è l'unità dove viene effettuata l'operazione. Può trattarsi di un semplice calcolo matematico ( es. addizione ) come di un algoritmo complesso. I nodi intermedi sono detti strati della rete ( o livelli ). Quando ci sono più strati si parla di rete neurale multistrato.

Gli archi in entrata sul nodo sono i valori di input mentre gli archi in uscita trasmettono il risultato dell'operazione ( valore di output ). Ogni nodo può avere un solo risultato o più risultati in uscita. Fin qui è molto semplice...

Ogni arco è caratterizzato da un peso sinaptico ( coefficiente C ) che mi permette di modificare l'entità del valore prima di fargli raggiungere il nodo di destinazione. Ad esempio, se il peso dell'arco è maggiore di uno, il valore X che sto trasmettendo viene amplificato. Viceversa, se il peso è compreso tra zero e uno, il valore viene attenuato. Infine, se il peso è un numero negativo, il valore viene sostituito con il suo opposto, amplificato o ridotto 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 prendiamo in considerazione la propagazione e l'orientamento degli archi.

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

  1. Propagazione in avanti. 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.
  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 ).

Le reti neurali complesse con retroazione

Il seguente grafo di flusso mostra il caso di una rete neurale ricorrente e ciclica. Tra i nodi N1 e N2 è presente un arco biunivoco 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 ).

un esempio di rete neurale complessa ricorrente

Grazie a queste caratteristiche una rete neurale artificiale riesce ad affrontare un problema adattandosi alle difficoltà. Non esiste un solo percorso per raggiungere l'obiettivo finale, a seconda dei casi l'algoritmo potrà scegliere il path ( percorso ) migliore al momento, modificando i pesi degli archi tra i nodi per evitare quelli più critici.

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.


Per scrivere un commento

knowledge base