Home Su Gruppo di lavoro sulle reti neurali Software per reti neurali Reti neurali Reti neurali: sperimentazioni in corso Laurene V ANTONELLO PASINI Frequently Asked Questions

Reti neurali e previsioni del tempo

(ultimo aggiornamento:02/10/10 )

  • Applicazioni

Questa pagina proporrà al lettore le nozioni di base sulle reti neurali e la loro possibile applicazione nel campo delle previsioni locali del tempo. 

Primi passi.

I modelli basati sulle reti neurali trovano impiego nei processi di previsione, di decisione o di classificazione quando la parametrizzazione matematica risulta irrimediabilmente complessa, introducendo non-linearità. Essi simulano il tipico modo analogico di pensare degli esseri viventi. A differenza di altri modelli, quelli a reti neurali possono essere provati anche sul computer di casa, offrendoci l'opportunità di sperimentarne il suo funzionamento dal vivo. Utilizzeremo pertanto uno o più programmi largamente diffusi per condurre i nostri personali esperimenti casalinghi. A tal proposito, leggi la mia proposta intorno al gruppo di lavoro sulle reti neurali.

Prima di iniziare il nostro viaggio, cerchiamo di capire a grandi linee cosa sono le reti neurali (neural networks).

Una rete neurale simula in maniera elementare alcune funzioni del cervello umano replicandone la struttura di base, ove ogni singolo neurone è collegato agli altri mediante una connessione semplice terminante in una sinapsi. Attraverso questa struttura di base, il cervello umano è in grado di cogliere relazioni tra oggetti anche se queste non appartengono alla sua esperienza diretta, basandosi sulle conoscenze già apprese. In altre parole, è in grado di immaginarsi soluzioni nuove eppure coerenti con la sua base di dati. 

Alle reti neurali si chiede di fare altrettanto (con le dovute limitazioni, s'intende), ovvero di predire un risultato estrapolandolo per analogia, in maniera non lineare ma coerente, da quello che ha già imparato. Per ottenere questo risultato, si sottopone la rete ad un preventivo apprendimento attraverso opportuni esempi, in modo che essa possa formarsi la sua "esperienza". 

Un piccolo esempio ci darà una mano a capire meglio cosa ci si aspetta dalle reti neurali: un esperto botanico esamina una foglia e individua a quale specie essa appartiene. Attenzione: egli non ha mai visto quella specifica foglia, ma usando la sua perizia, ha saputo riconoscerne le caratteristiche salienti pervenendo alla corretta classificazione della foglia. 

Una rete neurale ben addestrata potrebbe essere in grado, sostanzialmente, di fare la stessa cosa. Tutto ciò di cui essa ha bisogno è di imparare attraverso esempi corretti, in modo da costruirsi delle ragionevoli raffigurazioni (pattern) della realtà. In altre parole, se insegno ad una rete a distinguere un cerchio da un quadrato, essa sarà in grado di farlo a prescindere dalla dimensione o dal colore delle figure geometriche, perchè si sarà fatta un'idea di "cerchiosità" e "quadratosità" (perdonatemi i neologismi!).

Va bene, direte, ma cosa c'entra tutto questo con la meteorologia? 

L'osservazione del tempo è una costante dell'umanità. Il marinaio, il contadino, il pastore, osservando quotidianamente le condizioni atmosferiche del suo luogo, affinava una sorta di sensibilità verso le manifestazioni meteorologiche più evidenti, riuscendo a cogliere relazioni tra i fenomeni. Numerosissimi sono motti e proverbi "prognostici" tramandati dalla cultura popolare.

Bene. La rete neurale può fare altrettanto e farlo scientificamente, individuando, se ve ne sono, relazioni tra parametri osservati localmente. Volete un esempio: se una tal montagna s'incappuccia di nubi ecc., seguiranno precipitazioni e amenità varie. Addestrate la vostra rete con i dati osservati al momento dell'incappucciamento e insegnategli quando effettivamente piove o no. Rispetto al contadino, potrete valutare le effettive connessioni basandovi su un maggior numero di dati scientificamente osservati (temperatura, rugiada, direzione e intensità del vento, indici di stabilità, ecc.).

Cosa volete di più? Tradizione e scienza intimamente legati in un sol colpo!


Impariamo un po' di termini specifici

Per impadronirsi di una disciplina bisogna innanzitutto conoscerne i termini specifici (almeno i più comuni). E' noto infatti che, specialmente nella letteratura scientifica, molti termini e concetti sono ritenuti scontati (anche quando non lo sono), rendendo talvolta difficilmente comprensibile il testo a chi ci si avvicina per imparare (a volte ho l'impressione che ci sia del dolo prossimo al sadismo in tutto ciò). Se questo è scusabile in tale tipo di comunicazione umana, è invece assolutamente imperdonabile nei testi scolastici o didattici in genere, che hanno il dovere di comunicare (ovvero condividere) un sapere (un consiglio a chi scrive testi didattici di matematica o fisica: scrivete tutti i passaggi!).

Esistono diversi modelli per reti neurali. I tipi più importanti sono:

  • Multilayer Perceptrons (reti feedforward)

  • Radial Basis Functions

  • Kohonen (Kohonen Self-Organizing Feature Maps)

  • Reti Neurali Probabilistiche (PNN)

  • Reti Neurali di Regressione Generalizzata (GRNN)

  • Reti Lineari.

Una rete neurale classica (neural network) è composta di neuroni (figura 1) e di connessioni (figura 2). I neuroni a seconda della funzione svolta si suddividono in:

  • neuroni di input, input neurons, (cerchietti rossi in fig.1); rappresentano l'unica porta d'ingresso dei dati forniti dall'esterno.

  • neuroni intermedi o nascosti , hidden neurons,(cerchietti verdi in fig.1);

  • neuroni di output, output neurons, (cerchietti blu in fig.1).

Le connessioni impropriamente definite sinapsi (synapses) costituiscono gli elementi fondamentali di una rete, e consentono di interconnettere un neurone con i neuroni dello strato successivo. Le connessioni possiedono le seguenti caratteristiche:

  •  partono da un neurone;

  •  giungono ad altro neurone;

  •  possiedono un "peso" (weight). Generalmente una buona sinapsi avrà un peso maggiore rispetto ad una cattiva sinapsi.

Le reti, regolate da algoritmi, imparano attraverso due parametri fondamentali, ovvero:

  • la funzione di attivazione dei neuroni;

  • la regola di apprendimento della rete.

La funzione di attivazione dei neuroni entra in gioco quando nel neurone giungono in ingresso  i valori (gli input) provenienti dal precedente strato neuronale. Questa funzione può essere a gradino o continua differenziabile detta "sigmoide". In breve, quando nel neurone giungono i segnali provenienti dai neuroni dello strato precedente, esso li trasforma attraverso una funzione, che determina il segnale da inviare al neurone dello strato successivo.

La regola si apprendimento consente l'introduzione di conoscenze nella rete, mediante una serie opportuna di esempi. 

Gli algoritmi consentono l'auto-modifica iterativa dei pesi delle connessioni tra i neuroni. In parole povere, la rete imparerà dai propri errori.

Per capire cosa significa, immaginatevi mentre state lanciando una pietra per colpire un oggetto in movimento: all'inizio non saprete quanta forza occorrerà. Il vostro apprendimento comincia col lanciare la pietra e valutandone gli effetti. Se il lancio è troppo lungo o troppo corto, al tiro successivo correggerete traiettoria e forza, e questo finché il vostro obiettivo non sarà raggiunto: state modificando dinamicamente i dati di base. Se il vostro obiettivo si muoverà, sarete in grado di colpirlo anche se la posizione che occupa sarà nuova, e questo proprio perché l'addestramento effettuato vi consentirà di valutare quanta forza e quale traiettoria più o meno dovrete applicare. 

E' in tal modo che la rete acquista l'abilità di generalizzare la funzione appresa: infatti, assegnandole un valore non compreso tra gli esempi, essa sarà in grado comunque di fornire un responso basandosi su quanto ha imparato, ovvero saprà  valutare in maniera non lineare quanta influenza ("peso") ha ciascuna connessione nel produrre un dato di output. In altre parole essa saprà dare il giusto peso ad ogni elemento, producendo la risposta più "assennata" (se così si può dire!).

Affinché non rimaniate a bocca aperta se qualcuno vi "spara" paroloni (magari in inglese), accennerò brevemente ad alcuni degli algoritmi maggiormente utilizzati:

On-line Back Propagation (noto anche come Stochastic Back Propagation) o più semplicemente "metodo della propagazione all'indietro o retropropagazione dell'errore"; in genere viene considerato il più veloce metodo di apprendimento. In questo algoritmo i pesi delle connessioni vengono aggiornati dopo ogni ciclo di addestramento, cioè, eseguito il primo ciclo, la rete valuterà di quanto ha sbagliato e modificherà i pesi delle connessione in modo da minimizzare l'errore, e così via per tutti i restanti cicli. E' uno dei due algoritmi utilizzati nel programma Neural Planner.

Batch Back Propagation; è una variante dell' On-line Back Propagation. Con questo algoritmo i pesi vengono cumulati e corretti alla fine.

Extended Back Propagation for Sequences (EBPS) dell'errore: è una regola di apprendimento che consente di simulare una sorta di memoria della rete mediante un feedback posto sullo strato di neuroni nascosti (hidden neurons layer) immediatamente successivo allo strato di input. Per tale motivo questi neuroni vengono definiti "dinamici" (fig.3). I neuroni appartenenti al successivo strato di neuroni nascosti saranno per contro definiti "neuroni statici".

A chiusura di queste brevi note, occorre dire che la ricerca topologica ottimale (in genere effettuata attraverso un processo "prove ed errori") richiede numerosi esperimenti. Fatto ciò, si procederà nella taratura della rete stessa e nella valutazione della sua affidabilità


Se ti va di partecipare al nostro viaggio nelle reti neurali, procedi con il download del programma (Neural Planner). E' un file in formato .zip di circa 648 Kb. Una volta installato, comincia con la prima lezione, in cui ti spiego come disegnare la rete. Prosegui poi con la seconda lezione, in cui imparerai ad attribuire ad ogni neurone il suo nome. Le successive lezioni (in corso di preparazione), illustreranno come inserire gli esempi e far "girare" la rete. Appresi i concetti principali, nella sezione Applicazioni, potrai trovare esempi attraverso cui imparare ad applicare le reti neurali alla meteorologia.

Buon viaggio!


Bibliografia.

in italiano:

PASINI, A., PELINO, V., POTESTA', S., - Un modello reticolare di neuroni artificiali per la previsione della visibilità meteorologica. Parte prima: gli aspetti teorici, Riv.Met.Aer., vol.58, nn.1-2, Roma, 1998

RICH, E., KNIGHT, - Intelligenza artificiale, McGraw Hill.

ROLSTON, D.W., - Sistemi esperti, McGraw Hill.

RONCHINI, G., SALVEMINI, C.M., VECCIA, E., - Previsioni locali automatiche: approccio mediante reti neurali, Riv.Met.Aer., vol.56, nn.1-2, Roma, 1996.

SALVEMINI, C.M., - Approccio neuronale alla previsione meteorologica, Tesi di laurea, Università di Milano, 1990.

in inglese:

ANDERSON, J.A., ROSENFELD, E., - Neurocomputing: Foundations of Research, MIT Press, Cambridge MA., 1988.

FAUSSET, L.V.,  - Fundamentals of Neural Networks: Architectures, Algorithms, and Applications, Prentice Hall. (Clicca qui per una breve descrizione del libro).

GORI, M., BENGIO, Y., DE MORI, R., - A learning algorithm for capturing the dynamic nature of speech, Proc. of the IEEE-IJCNN, Washington, 1989.

MINSKY M., PAPERT, S., - Perceptrons, MIT Press, Cambridge MA, 1988.

PASINI, A., PELINO, V., POTESTA', S. - A neural network model for visibility nowcasting from surface observation: Results and sensitivity to physical input variables, Journal of Geophysical Research, vol.106, n. D14, 2001 (Abstract).

PASINI, A., POTESTA', S., Short-range visibility forecast by means of neural-network modelling, Nuovo Cimento, 18C, 1995.

PASINI, A., POTESTA',S., Neural network modelling: Perspectives of application for monitoring and forecasting physical-chemical variables in the boundary layer, in Urban Air Pollution, edito da I.Allegrini e F.De Santis, Springer-Verlag, New York, 1996

PASINI, A., POTESTA',S., Towards fog forecasting in meteorology by means of back-propagation neural networks with weighted least-squares training, in  Neural Nets: WIRN Vietri-96, edito da M.Marinaro e R.Tagliaferri, Springer-Verlag, New York, 1997.

RUMELHART, D.E., McCLELLAND, J.L., - Parallel Distributed Processing: Explorations in the  Microstructure of Cognition , The MIT Press, 1986. 

WASSERMAN, P., - Neural computing theory and practice, Van Nostrand, New York, 1989.


Link di grande interesse:

(Rev.02/2001)
Questa pagina è stata realizzata da Vittorio Villasmunta

Ultimo aggiornamento: 29/11/14