Rete neurale
Una rete neurale artificiale è un modello matematico che imita le proprietà delle reti neurali biologiche. In biologia le reti neurali (o reti neuronali) sono composte da neuroni interconnessi tra loro in grado di comandare ogni funzione fisiologica o nervosa del corpo di un animale. La rete neurale artificiale prende spunto dal modello biologico ( neurofisiologia ) per costruire un modello matematico (artificiale) in grado di rappresentare l'interconnessione tra dati. Tuttavia, pur essendoci somiglianze apparenti, una rete neurale artificiale non simula il funzionamento del cervello, bensì è un sistema logico-matematico che si occupa di classificare le funzioni. Una rete neurale può essere rappresentata come un grafo orientato, in cui i nodi ( neuroni ) sono collegati tra loro dagli archi ( sinapsi ). Ogni arco è associato a un determinato peso numerico modificabile ( forza di interconnessione ) che consente al sistema logico-matematico di memorizzare le informazioni ed eseguire un processo di apprendimento. Una rete neurale può essere rappresentata in un grafo di flusso come il seguente:
Un grafo è composto da un insieme finito di nodi N e da un insieme finito di archi A. Dal punto di vista formale matematico è, quindi, possibile rppresentare il grafo della rete neurale come due insiemi finiti A e N, a cui si aggiungono delle variabili in entrata { x1, x2, x3 } e le variabili in uscita { y1, y2 }.
Gli archi { a1, a2, .... , an } rappresentano i pesi sinaptici tra i neuroni. Ogni segnale ( valore ) di passaggio sull'arco viene pesato prima di essere elaborato in entrata dal neurone ( nodo ). I pesi sugli archi possono essere positivi ( a>0 ) o negativi ( a<0 ). I pesi positivi ( a>0 ) hanno un effetto eccitatorio, in quanto aumentano il valore di passaggio, che può diventare anche amplificatorio se il peso è maggiore di uno ( a>1 ). Viceversa, i pesi negativi ( a<0 ) hanno un effetto attenuatore, in quanto riducono il valore di passaggio, che può diventare anche inibitore se il peso è minore di meno uno ( a<-1 ). Una rete neurale può essere composta da uno o più strati ( rete neurale multistrato ). Le reti neurali più semplici si propagano in avanti, dai nodi sorgente verso i nodi computazionali ( strati intermedi o nascosti ) e i nodi di uscita, e sono acicliche. I nodi di uno strato sono interconnessi soltanto con i nodi dello strato successivo, in un unico verso. Le reti neurali più complesse, invece, hanno anche interconnessioni tra nodi dello stesso strato ( es. a13 ) o con nodi degli strati precedenti tramite un retroazione ( es. a5 ). Le reti più complesse possono anche avere un'architettura ciclica, poiché il cammino computazionale può tornare indietro ( retroazione ) e ripropagare più volte nel corso del tempo. Queste reti sono dette reti neurali ricorrenti.
I primi studi sulle reti neurali sono conotti da McCulloch e Pitts negli anni '40 del Novecento. Nel 1949 Hebb è il primo a utilizzare le reti neurali per l'apprendimento moificando i pesi degli archi sinaptici. Successivamente, negli anni '80, le funzionalità di apprendimento delle reti ottimizzazioni sono ulteriormente raffinate e migliorate. Le reti neurali trovano applicazione nel settore dell'informatica, della robotica e dell'intelligenza artificiale. Una rete neurale artificiale può essere composta da programmi informatici (software) e/o da componenti elettronici dedicati (hardware). Qui di seguito indichiamo a titolo di un esempio una struttura di rete neurale artificiale.
Adattività. La rete neurale ha una struttura distribuita e consente facilmente di aggiungere nuovi dati senza penalizzare l'intero sistema logico ( adattività ). Può lavorare sia con dati lineari che non lineari. La rete neurale si adatta dinamicamente ai nuovi dati modificando i pesi sinaptici e, in caso di conflitto, continua a lavorare nonostante il fallimento locale. La presenza dei conflitti causa il degradamento progressivo della rete e non immediato.
- Rete neurale del cervello. La somiglianza tra la rete neurale matematica e la rete neurale del cervello umano è evidente. Nella rete neurale naturale i neuroni sono composti da un corpo cellulare ( soma ), da fibre nervose in ingresso ( dendriti ) e da una fibra nervosa in uscita ( assone ). Ogni neurone riceve delle scariche elettriche in entrata tramite i dendriti. Quando le scariche elettriche oltrepassano un determinato limite, il neurone rilascia sull'assone una scarica elettrica che si propaga verso gli altri neuroni collegati mediante le sinapsi. Le sinapsi hanno una resistenza variabile ( peso sinaptico ) che agevola, amplifica oppure ostacola, il passaggio delle scariche elettriche. La resistenza delle sinapsi varia continuamente.
- Apprendimento con o senza supervisione. Le reti neurali sono particolarmente efficaci nelle operazioni di apprendimento dall'ambiente in cui operano. La rete neurale analizza i segnali provenienti dall'ambiente esterno ( es. feedback ) e li utilizza in un processo iterativo di aggiustamento dei pesi sinaptici. Ad ogni iterazione la rete neurale accresce la propria conoscenza, avvicinandosi progressivamente all'obiettivo desiderato. Il processo di apprendimento può essere supervisionato da un esperto del dominio di conoscenza oppure non supervisionato ( automatico ) o basato su funzioni empiriche di confronto.
- Algoritmo back-propagation. L'algoritmo di back-propagation è un metodo di apprendimento della rete neurale. Questo algoritmo consente di spiegare in modo semplice il processo di apprendimento nelle reti neurali. Sulla base dell'errore del sistema, l'algoritmo modifica i pesi sinaptici sulla rete neurale, al fine di ridurre il gradiente ( errore ) del sistema e giungere a una situazione finale di equilibrio.
- Applicazioni delle reti neurali. Le reti neurali sono utilizzate nei sistemi di riconoscimento degli oggetti in movimento ( es. guida automatica ), nei sistemi di riconoscimento dei caratteri scritti a mano ( calligrafia ) o stampati su supporto cartaceo ( OCR - Optical Character Recognition ), nel riconoscimento del linguaggio naturale o dei gesti, del pattern, nella robotica cognitiva o industriale, nello sviluppo dei sistemi esperti in campo medico, nel controllo di qualità dei prodotti rispetto a uno standard in un processo produttivo, ecc.