Reti neurali

 Descrizione del metodo

 Campo di applicazione

 Expertise

 Link e riferimenti

 Esempi

 

 Descrizione del metodo

Le reti neurali sono sistemi non lineari la cui struttura si basa sui principi 
osservati nei sistemi nervosi biologici. Una rete neurale può essere vista come un sistema in grado di dare una risposta ad una domanda o fornire un output in risposta ad un input. La combinazione in/out ovvero la funzione di trasferimento della rete non viene programmata ,ma viene ottenuta attraverso un processo di "addestramento" con dati empirici.
In pratica la rete apprende la funzione che lega l'output con l input attraverso la presentazione di esempi corretti di coppie input/output. Effettivamente, per ogni input presentato alla rete, nel processo di apprendimento, la rete fornisce un output che si discosta di una certa quantità dall' output desiderato: l' algoritmo di addestramento modifica alcuni parametri della rete nella direzione desiderata. Ogni volta che viene presentato un esempio, quindi, l'algoritmo avvicina un poco i parametri della rete ai valori ottimali per la soluzione dell' esempio: in questo modo l'algoritmo cerca di "accontentare " tutti gli esempi un po' per volta. I parametri di cui si parla sono essenzialmente i pesi o fattori di collegamento tra i neuroni che compongono la rete.

                                   

Una rete neurale è infatti composta da un certo numero di neuroni collegati tra loro da collegamenti "pesati",  proprio come lo sono i neuroni del cervello umano. La fig.1 è la rappresentazione di una rete neurale. Come si osserva si ha: uno strato di ingresso (input layer) ,uno o più strati nascosti (hidden layer ) e uno strato di uscita (output layer) ciascuno dei quali può essere costituito da nodi. I nodi di ogni strato sono collegati a quelli dello strato successivo attraverso sinapsi o funzioni di trasferimento, ne segue che il valore assunto da ogni nodo è determinato da una combinazione altamente non lineare dei valori assunti dai nodi dello strato precedente (fig.2).

Mettere a regime una rete neurale significa determinare i parametri delle connessioni (sinapsi) in base alle conoscenze dei dati noti di ingresso e uscita.

Una volta messa a regime occorrerà testare la sua efficienza su serie di dati note e non utilizzate nell’addestramento.

 

      

 

Esistono molti tipi di reti neurali che sono differenziati sulla base di alcune  caratteristiche fondamentali: 

-tipo di utilizzo 

-tipo di apprendimento (supervisionato/non supervisionato) 

-algoritmo di apprendimento 

-architettura dei collegamenti 

La divisione fondamentale è quella relativa al tipo di apprendimento che può essere supervisionato o non supervisionato: nel primo caso si addestra la rete con degli esempi che contengono un input e l 'output associato desiderato, mentre nel secondo caso la rete deve essere in grado di estrarre delle informazioni di similitudine tra i dati forniti in input (senza associazioni con output desiderati) al fine di classificarli in categorie. Dal punto di vista del tipo di utilizzo possiamo distinguere tre categorie basilari: 

-memorie associative 

-simulatori di funzioni matematiche complesse(e non conosciute) 

-classificatori

 

MEMORIE ASSOCIATIVE: possono apprendere associazioni tra patterns(insieme 

complesso di dati come l insieme dei pixels di una immagine) in modo che la 

presentazione di un pattern A dia come output il pattern B anche se il pattern A 

è impreciso o parziale(resistenza al rumore). Esiste anche la possibilità di utilizzare la memoria associativa per fornire in uscita il pattern completo in risposta ad un pattern parziale in input.

 

SIMULATORI DI FUNZIONI MATEMATICHE: sono in grado di comprendere la funzione che lega output con input in base a degli esempi forniti in fase di apprendimento. 

Dopo la fase di apprendimento, la rete è in grado di fornire un output in risposta ad un input anche diverso da quelli usati negli esempi di addestramento. Ne consegue una capacità della rete di interpolazione ed estrapolazione sui dati del training set. Tale capacità è facilmente verificabile addestrando una rete con una sequenza di dati input/output proveniente da una funzione nota e risulta, invece, utile proprio per il trattamento e la previsione di fenomeni di cui non sia chiaro matematicamente il legame tra input e output.In ogni caso la rete si comporta come una "black box", poichè non svela in termini leggibili la funzione di trasferimento che è contenuta al suo interno. Di questo tipo fa parte la rete a retropropagazione dell'errore o error backpropagation che è quella attualmente più utilizzata per efficacia e flessibilità. 

 

CLASSIFICATORI: con essi è possibile classificare dei dati in specifiche 

categorie in base a caratteristiche di similitudine. In questo ultimo tipo di rete esiste il concetto di apprendimento non supervisionato o "auto organizzante", nel quale i dati di input vengono distribuiti su categorie non predefinite . 

L' algoritmo di apprendimento di una rete neurale dipende essenzialmente dal tipo di utilizzo della stessa , così come l' architettura dei collegamenti. Le reti multistrato prevedono ad esempio l algoritmo a retropropagazione dell' errore o sono addestrate tramite algoritmi genetici. I classificatori normalmente derivano dall' architettura delle mappe autorganizzanti di Kohnen. Esistono diverse regole di base per l'apprendimento ma sono sempre in fase di studio nuovi paradigmi: quello delle reti neurali è un campo in cui c'è ancora molto da inventare e da capire.

 

 Campo di applicazione

I campi di applicazione delle reti neurali sono tipicamente quelli dove gli algoritmi classici, per la loro intrinseca rigidità (necessità di avere inputs precisi), falliscono. In genere i problemi che hanno inputs imprecisi sono quelli per cui il numero delle possibili variazioni di inputs è così elevato da non poter essere classificato. Ad esempio nel riconoscimento di un' immagine  si utilizzano normalmente algoritmi di tipo probabilistico che, dal punto di vista della efficienza risultano, comunque, inferiori alle reti neurali e sono caratterizzati da scarsa flessibilità ed elevata complessità di sviluppo.Un altro campo in cui gli algoritmi classici sono in difficoltà è quello dell' analisi di fenomeni di cui non conosciamo regole matematiche. In realtà esistono algoritmi molto complessi che possono analizzare tali fenomeni ma, dalle comparazioni fatte sui risultati, pare che le reti neurali risultino nettamente più efficienti: questi algoritmi sfruttano la trasformata di Fourier per scomporre il fenomeno in componenti frequenziali e pertanto risultano molto complessi e riescono ad estrarre un numero limitato di armoniche generando notevoli approssimazioni. Una rete neurale addestrata con i dati di un fenomeno complesso sarà in grado di fare previsioni anche sulle sue componenti frequenziali e ciò significa che realizza al suo interno una trasformata di Fourier anche se nessuno le ha mai insegnato come funziona! Una delle applicazioni più importanti delle reti neurali è sicuramente quella delle previsioni di fenomeni complessi come i fenomeni meteorologici o quelli finanziari o socio-economici ed urbanistici. Esistono metodi per la previsione di tali fenomeni che si basano su tre diverse linee di principio:

1) classico

2) frequenziale

3) moderno

Con una rete neurale è possibile fare previsioni analizzando le serie storiche dei dati esattamente come con questi sistemi ma non è necessario fare supposizione alcuna per restringere il problema ne, tantomeno, applicare la trasformata di Fourier. Un difetto comune ai metodi di analisi sopra elencati è quello di essere applicabili solamente se si attuano delle restrizioni nel problema utilizzando delle ipotesi che talvolta potrebbero rivelarsi errate. In pratica si addestra la rete neurale con successioni di serie storiche di dati del fenomeno che si vuole prevedere.

Esempi di applicazioni  pratiche realizzate con reti neurali sono:

-sistema di guida autonoma di automobili che puo guidare alla velocità di circa 5 Km/h nei viali della Carnagie Mellon University, avendo come input l'immagine della strada.E' una rete neurale error_back_propagation addestrata con 1200 immagini in 40 epoche su un supercomputer Warp. Il tempo di addestramento è stato di 30 minuti mentre la sua esecuzione richiede circa 200 msec su Sun-3.

-lettore di testi che può pronunciare parole mai viste prima con una accuratezza del 90%: si tratta di una rete error_back_propagation con 309 unità e 18629 connessioni implementata in linguaggio c su VAX_780.

-sistema di supporto alla decisione per la concessione prestiti realizzato con rete error_back_propagation con 100 input e 1 output(prestito concesso o no). L'apprendimento è stato effettuato con 270.000 casi di prestiti in 6 mesi.

 

 - Campo urbanistico :

 

 le reti neurali possono essere utilizzate in vario modo in questo settore :

Per effettuare previsioni ad esempio sullo sviluppo demografico : avendo a disposizione le serie storiche relative alla popolazione dei comuni di una determinata area si addestra la rete in modo che apprenda la relazione tra i dati di anni successivi.

Per determinare il valore di indicatori partendo da dati disponibili riguardanti altre grandezze in qualche modo correlate con l’indicatore in questione…

 

Esse sono indicate per descrivere realtà a scala medio grande : infatti essendo un metodo essenzialmente usato per simulare la realtà, non risulteranno precisissime nel dettaglio ma sapranno ricostruire i trend del sistema.

Per quanto riguarda le previsioni la validità dei risultati è subordinata alla stabilità del sistema : se le condizioni che caratterizzavano le serie storiche con cui si addestra la rete mutano nel corso del tempo i risultati non corrisponderanno alla nuova realtà, si dovrà in questo caso addestrare una nuova rete che tenga conto delle mutate condizioni.Per questo motivo le reti neurali hanno una dimensione temporale di applicazione ridotta.

Per quanto detto finora risulta evidente che le reti neurali sono prettamente uno strumento analitico, se fossero disponibili dati relativi a epoche diverse sarebbe possibile  utilizzarle come metodo di previsione in ambiti gestionali.

 

 

 Expertise

Per quanto riguarda tutti i software che utilizzano reti neurali, si possono fare alcune considerazione generali : disponendo di più layers nascosti spesso non si migliora di molto il risultato rispetto a quello ottenuto con un unico layer mentre si complicano i calcoli effettuati e quindi aumentano i tempi di apprendimento.

Analoghe considerazioni valgono per il numero di nodi presenti nei diversi layers : ovviamente il numero di nodi presenti nel layer di ingresso corrisponde al numero di ingressi del sistema; il numero di nodi presenti nel layer di uscita dipende dal numero di uscite del sistema; il numero di nodi presenti nel layer nascosto può invece variare per uno stesso sistema ed è questo numero che influenza la complessità della rete, più nodi saranno presenti più la rete sarà complessa.

L’attività delle unità di ingresso rappresenta l’informazione grezza fornita alla rete l’attività di ciascuna unità nascosta è determinata dai segnali ricevuti dalle unità di ingresso e dai pesi delle connessioni.Analogamente il comportamento nelle unità di uscita dipende dall’attività delle unità nascoste e dai pesi delle connessioni tra le unità nascoste e quelle di uscita.

Spesso nell’addestramento della rete inoltre, si presenta un problema : le prestazioni della rete sui dati di addestramento continuano a migliorare, ma se si forniscono dati diversi ( cioè quelli di verifica ) le prestazioni su questi prima migliorano e poi tendono a peggiorare .Questo fenomeno che possiamo definire di “iperadattamento” si presenta quando la rete ha appreso alcune regole generali sui dati.

Nella fase di istruzione, infatti, la rete apprende sempre meglio le anomalie dell’insieme di addestramento e cerca quindi di generalizzarle agli altri dati facendo così aumentare l’errore .

Sulla velocità di apprendimento e sulla precisione dei risultati forniti ha poi  influenza il formato dei dati in ingresso infatti si osservano risultati migliori se questi risultano essere normalizzati .I programmi disponibili mettono a disposizione dell’utente funzioni apposite oppure automaticamente provvedono a compiere tale operazione.

Altri due elementi fondamentali per la fase di apprendimento sono la velocità di apprendimento e il momento :

se la prima è troppo elevata possono verificarsi problemi sulla stabilità dell’uscita ovvero il sistema dopo una prima fase di assestamento inizia ad oscillare, normalmente è utile modificarla gradualmente mentre la rete sta apprendendo.

Il momento rappresenta l’influenza che l’ultimo valore assunto da un generico peso in un’epoca ha sull’aggiornamento del peso stesso all’epoca successiva; anche in questo caso il crescere di questo valore fa aumentare la velocità di apprendimento ma può causare vibrazioni del sistema.

Se durante la  fase di apprendimento la rete cade in un punto di minimo locale l’errore smette di decrescere e si attesta su un valore diverso da quello desiderato;

per tale motivo i software disponibili sono dotati di una funzione che permette di perturbare il sistema e spostarlo dal minimo locale.

 

 Link e riferimenti

Per un approfondimento teorico su testi in lingua inglese si consultino: 

- T.Kohonen, "Associative memory: a system theoretic approach", Springer Verlag,Berlino 1977

- B.Kosko:"Bidirectional Associative Memories",IEEE Transactions on Systems,Man and Cybernetics,1987 

- R. Hecth-Nielsen:"Theory of Back Propagation Neural Networks" International Joint Conference on Neural Networks,1989

- S.Kirkpatrick,C.D.Gelatt,M.P.Vecchi:"Optimization by simulated annealing" in "Science",220,1983 

- T.Kohonen:"Self-Organizing formation of topologically correct feature map", Biological Cybernetics,43,1982 

- Timothy Masters,"Pratical Neural Network Recipes in C++", Accademic Press 

- Maureen Caudill,Charles Butler,"Understanding Neural Networks:Computer Explorations", "Vol.2 Advanced Networks". Cambridge,Mass.:MIT Press,1992 

 

Per un approfondimento su testi in lingua italiana si consultino: 

- FONDAMENTI DI RETI NEURALI - Tarun Khanna - Addison-Wesley Editore

- RETI NEURALI ARTIFICIALI - A.Mazzetti - Apogeo Editore

- RETI NEURONALI - S.Cammarata - Etaslibri Editrice

- L' OFFICINA NEURALE - G. Carrella - Franco Angeli Editore 

- ASPETTI APPLICATIVI DELLE RETI NEURALI - A. Ferrari - F. Angeli Editore 

- INTERVISTA SULLE RETI NEURALI - D. Parisi - Mulino Editrice 

- IL CERVELLO COMPUTAZIONALE - P.S.Churchland, T.J.Sejnowski - Mulino Editrice

- SQUASHING THEORY - M. Buscema - Armando Editore

- RETI NEURALI AUTORIFLESSIVE - M.Buscema, G.Didonè, M.Pandin - Armando Editore

 

Si segnalano anche alcune ottime riviste e pubblicazioni mensili sull'argomento: 

- "AI Expert" 600 Harrison St. S.Francisco, California 94107 (415)905-2200 FAX:(415)905-2234 Si tratta di una rivista mensile di tipo divulgativo che tratta tutti gli argomenti relativi all intelligenza artificiale ed è reperibile,in Italia, anche in alcune edicole.

- "Journal of Artificial Neural Networks" Ablex Publishing Corp.,355 Chestnut Street,Norwood,NJ 07648. Rivista disponibile solo in abbonamento,dedicata alle reti neurali.

- "Neural Networks" Pergamon Press 660 White Plains Rd. Tarrytown,NY 10591,USA

Si tratta della più autorevole rivista mondiale per gli addetti ai lavori.

 

Si consigliano anche alcuni articoli:

- "L'apprendimento delle reti artificiali di neuroni", "Le Scienze", n.291, (par.12.3.4);

- "Può una macchina pensare ?", "Le Scienze", n.259, (par.12.2);

- "Il software intelligente", "Le Scienze", n.327;

- "Macchine che apprendono tramite suggerimento", "Le Scienze", n.322;

 

Si segnala il sito ove si è reperito il software e dove si può trovare un’esauriente spiegazione sulle reti neurali :

http://www.kagi.com/cjensen

Si consiglia inoltre un sito ove è possibile scaricare un altro software e dove è possibile trovare un libro on-line sempre sulle reti.

http://www.ulisse.it/~marchese/book/neurobook.html  

Infine si può visitare il sito della società italiana reti neuroniche 

http://dsi.ing.unifi.it/neural/siren/sirenlT.html

 

 

 

Home Modelli Top