Newsgroup: it.comp.ia
Titolo: Reti neurali e serie storiche

Ciao a tutti,
lavoro con le reti neurali per applicazioni di previsione di serie storiche
in campo medico e ambientale.
Gradirei scambiare informazioni con altri impegnati nel mio stesso campo o
affini riguardo a metodi per valutare la topologia di rete ottimale, la
scelta degli input ottimali, la valutazione delle prestazioni della rete in
termini di apprendimento, forecasting, robustezza, e chi più ne ha più ne
metta.
Spero che si movimenti un poco quest newsgroup.
Andrea

Anche io sto lavorando in campo medico con reti neurali, anche se in un
progetto un po' differente.
Dovresti spiegare un po' di più di cosa vuoi trattare, quali sono le serie
storiche e quali informazioni ne vuoi trarre.
Per ora posso solo metterti in guardia: non pensare che le reti neurali
possano essere trattate come degli "indovini". Ciò che fanno è solo
apprendere dalle informazioni che gli dai e cercare delle regole generali.
Niente quindi che non possa essere fatto con altri strumenti matematici. Il
bello è che, normalmente, fanno tutto il lavoro da sole. Il brutto è che,
talvolta, sbagliano :-)
--
Alessandro Monti

Alessandro Monti ha scritto nel messaggio ...

Per uanto riguarda il campo medico, vorrei applicare le reti neurali
nell'analisi automatica dell'EEG, anche se sono ancora in fase iniziale. Sul
versante ambientale, lavoro con le serie storiche dei dati ricavati dalle
centraline di monitoraggio degli inquinanti presenti nell'aria (polveri,
ozono, pollini,...).
Ho già lavorato con le reti in altri ambiti per cui ne conosco pregi e
limiti, ed è proprio da questi che voglio aprire il dibattito. Esempio: come
fare a valutare la bontà dell'apprendimento in funzione della topologia
della rete? Come valutare l'importanza dei singoli input della rete per fare
una scelta ottimale degli input da inserire? (pruning, bootstrap,...)
Ciao
Andrea

 una scelta ottimale degli input da inserire? (pruning, bootstrap,...)
Ehm, su questi aspetti sono meno di un principiante, e non saprei dire molto
di più di quello che c'è già in letteratura. O forse meglio dire che direi
molto di meno... :-)
Un articolo molto interessante al proposito è quello di un prof. della
facoltà a cui appartengo: Bruno Apolloni.
Usa un meccanismo di selezione ed apprendimento delle reti MLP simile ai
metodi genetici, ma parecchio semplificato e che richiede molto meno tempo.
In pratica la rete, durante l'apprendimento, cerca di sopravvivere
aumentando ogni tanto il numero di neuroni, mentre un duro algoritmo elimina
i neuroni poco utilizzati.
La rete covrebbe convergere ad una configurazione stabile con ottimi
risultati e senza over-fitting, di dimensioni talvolta poco più grandi di
quelle minime scoperte per un dato problema.
Il brutto di quesi metodi è, a mio avviso, che sono comunque sempre
euristiche, e aumentano anche di molto il numero di parametri da scegliere
per l'apprendimento.
Per il discorso degli input, a cosa ti riferisci? Alla scelta degli input
significativi e alle eventuali correlazioni tra essi, o alle eventuali
manipolazioni dell'input prima della presentazione alla rete?
Purtroppo non conosco buoni metodi di post-analisi per il primo caso, mentre
mi è parso di capire che le reti spesso imparano anche senza troppe
manipolazioni sui dati, semplicemente dandogli in pasto gli input grezzi o
con pochi e facili adattamenti. Nel mio caso è bastato calcolare gli angoli
(pendenza della retta congiungente due rilevazioni successive in tempi
fissi).
Qualcosa di più lo trovi sul mio sito, che purtroppo è da un po' che non
aggiorno (chissà se esiste ancora?).
Ciao e buone feste.
--
Alessandro Monti
alex.monti@libero.t
http://digilander.iol.it/nonlibero/

 una scelta ottimale degli input da inserire? (pruning, bootstrap,...)
Francamente, almeno nelle fasi iniziali della tua ricerca, mi
appoggerei piu' ad una conoscenza a priori che ti puo' essere
fornita da un esperto, che a tecniche di analisi a posteriori
dei risultati di una rete arbitraria (ma questa e' solo una mia
opinione personale).
Saluti e buon lavoro,
                       iant


Ciao Andrea,
 scusa il [cut], l'ho fatto x inquadrare meglio ciò su cui ti posso dare una
mano, ossia il monitoraggio degli inquinanti e alcune previsioni fatte
appunto con le reti neurali.
Ho affrontato all'inizio di quest'anno tale problematica, i miei consigli
sono:
1) per quanto riguarda la scelta degli ingressi da dare in pasto alla rete
neurale innanzittutto è importante che le serie storiche siano complete, ad
esempio è inutile usare l'S02 se su un anno di campionamenti ne possiedi
validi solo il 40%.
2) su quali ingressi utilizzare dovrebbe valere la regola + ce n'è meglio è,
io nel mio studio per evitare di appesantire l'apprendimento ho fatto un
studio particolareggiato, usando come uscita della rete neurale l'ozono,
quindi cercavo la sua previsione. Ho scelto gli ingressi da utilizzare per
l'apprendimento con una funzione di Mutua Correlazione, portanto avanti solo
quelli ingressi che all'interno della serie storica (avevo in possesso i
dati di tre grandi centraline della mia provincia estesi ad un anno di
campionamento) avevano un'alta correlazione con l'ozono proprio nel momento
in cui l'ozono superava la soglia di allarme (valore che ora su 2 piedi non
ricordo).
3) Se possiedi serie storiche molto lunghe come le mie, ti consiglio (forse
in funzione anche di dove sono stati raccolti questi dati) di suddividere
tali serie in periodi stagionali. Infatti io possedevo 24 campionamenti
giornalieri per 365 giorni quindi + di 8000 campioni, il che se usati tutti
così non portavano a nulla. O meglio di solito si consiglia di usare un 50%
di dati per l'apprendimento e un ulteriore 50% per quanto riguarda la fase
successiva di test.
Essendo la temperatura e i venti due fattori importanti per l'andamento
dell'inquinamento (solitamente non compresi nelle serie storiche), ed
essendo questi variabili in funzione delle stagioni, torniamo alla
suddivisione che ti consigliavo prima. 4 stagioni (come la pizza) infatti ho
riscontrato che l'estate per la maggiore temperatura il tasso di ozono era
mediamente + alto di quello invernale e con un modello annuale non riuscivo
a cogliere nessuna previsione mentre con la suddivisione stagionale si è
arrivati a buoni risultati. Anche se il modello estivo funziona solo in
piena estate, non in primavera e così via. Avevo quindi 4 modelli.
4) Un altro suggerimento, le serie storiche vanno mischiate e non date in
pasto in serie temporale!? Questa è quanto dice la teoria sulle reti
neurali, so invece di alcuni studi che invece inserivano un ulteriore
ingresso che forniva alla rete neurale un peso storico dei dati in ingresso,
in tal modo si correlava ogni ingresso con il precedente ed il successivo.
Si raggiungono in tal modo Hit notevoli in fase di test anche a + passi.
5) Per quanto riguarda le previsioni posso dirti che a ventiquattrore i miei
risultati non erano molto male, comunque si deve impostare un sistema ARMAX
e una volta che la rete ha appreso per bene si usa la serie storica
(cronologicamente corretta) per osservare se da sola con un suo autofeedback
riesce a centrare il dato che è realmente stato misurato dopo qualche tempo,
+ avanti va meglio è.
Non mi dilungo oltre, comunque resto a disposizione.
Adriano Basile
e-mail: 
adrian...@hotmail.com
web page: 
http://digilander.iol.it/adrianobasile/

Ciao a tutti.
Sono veramente contento di trovare un thread sulle reti neurali.
Vorrei provare ad utilizzare le reti neurali per una parte della mia tesi,
che si occupa della qualità dei deflussi urbani.
Sapreste indicarmi libri, links e software, per iniziare ad approfondire
l'argomento.
Grazie a tutti e sopratutto BUON ANNO :-)
Alessandro Picchi.

Libri:
- Dayhoff Judith E.: Neural network architectures: an Introduction. Van
Nostrand Reinhold, New York, 1990
- Masters Timothy: Practical neural network recipes in C++. Academic Press
Inc., 19??
Indispensabile:
- Warren S. Sarle et a.: FAQ on Neural Nets.
ftp://ftp.sas.com/pub/neural/FAQ.html
Buon anno a tutti!
--
Alessandro Monti