Passa ai contenuti principali

Forecasting


I modelli di reti neurali specializzati per la previsione di serie temporali si stanno diffondendo rapidamente in numerosi settori, dalla finanza alla geofisica, dalla medicina all’industria.
Questo post vuole suggerisce un esperimento controllato di forecasting alla portata anche dei newbie della programmazione Python per il Machine Learning, volto a predire l’andamento futuro di una serie rumorosa a comportamento periodico (sinusoide) mediante una rete neurale ricorrente di tipo GRU (Gated Recurrent Unit). 
I dati per l'addestramento sono costituiti da una serie temporale di 500 punti ricavati dalla relazione:

y=sin(x)+ϵ

dove x l'istante di campionamento in un intervallo pari a quattro periodi della funzione sinusoidale, mentre ϵ rappresenta il rumore gaussiano additivo a media zero e deviazione standard 0.1.
Questo approccio consente di simulare una situazione realistica in cui i dati sono affetti da errori accidentali di misura.

Preprocessing e Dataset
Il prepocessing consiste nel suddividere la serie temporale in sotto-sequenze (finestre mobili) di lunghezza 20, utilizzate come input per la rete. Per ciascuna finestra, l’obiettivo di previsione è rappresentato dal punto immediatamente successivo nella sequenza. In altre parole, la rete apprende la mappatura: 

[yt​,yt+1​,…,yt+19​]→yt+20​​

Il dataset è stato suddiviso in mini-batch per l’addestramento tramite un DataLoader

Architettura e addestramento della rete neurale
La rete implementa una GRU a singolo layer con 32 unità nascoste, seguita da un layer fully connected per la stima dell’output scalare. L’ottimizzazione è affidata all’algoritmo Adam con una learning rate di 0.01. 
La funzione di perdita utilizzata è la Mean Squared Error (MSE). 
L’addestramento si è protratto per 100 epoche.

Forecasting autoregressivo
Terminato l’addestramento, è stato eseguito un test di forecasting autoregressivo.
Partendo da una finestra reale di 20 punti estratti dalla parte finale della serie (mai vista dalla rete), la GRU ha predetto in sequenza 60 valori futuri, ciascuno utilizzando come input la finestra ottenuta dai valori precedenti, in parte reali e in parte generati dalla stessa rete.

Risultati
Nel grafico risultante (vedi figura):
  • La serie originale (rumorosa) è riportata in blu chiaro.

  • I valori futuri reali (“ground truth”) sono evidenziati in verde.

  • I punti previsti dalla GRU sono tracciati in rosso tratteggiato.

  • La linea verticale grigia indica il punto di inizio della previsione.

La curva predetta dalla rete segue con buona approssimazione la forma della funzione seno, mantenendo la periodicità e mostrando capacità di adattamento al rumore dei dati. La precisione resta elevata per vari step predetti, mentre si osserva una fisiologica perdita di aderenza con l’aumentare dell’orizzonte di previsione, effetto noto del forecasting autoregressivo (“error propagation”).

Conclusioni
L’esperimento dimostra che anche una rete GRU di modeste dimensioni è in grado di apprendere la dinamica periodica di un'onda sinusoidale affetta da rumore e di estendere tale conoscenza oltre il dominio di training. 
La previsione autoregressiva evidenzia sia la robustezza del modello, sia i limiti intrinseci dovuti all’accumulo di errore, tipico nelle sequenze generate artificialmente a partire dalle stime precedenti.
In scenari reali, la qualità della previsione dipende dalla quantità e dalla qualità dei dati di input, dalla lunghezza della finestra osservata, dalla struttura della rete e dalla quantità di rumore presente.
Ulteriori miglioramenti si potrebbero ottenere ricorrendo a modelli più profondi, strategie di ensemble, o utilizzando architetture transformer specifiche per il time series forecasting.

In figura, il forecasting di una sinusoide rumorosa.
(Blu: serie storica, Verde: valori reali futuri, Rosso tratteggiato: previsione GRU, linea grigia: start della previsione)




Post popolari in questo blog

Salmoni, scarpette, cetrioli e altro

Tutto il testo contenuto in questa pagina è stato pensato e scritto dall'autore del blog.   1. Come il salmone 2. Ooops! 3. Le scarpette hi-tech 4. Equivoci contemporanei 5. I saccenti 6. Medaglie di legno 7. La festività del Nulla 8. Gli aggiornamenti elettronici del Libro dell'Apocalisse 9. Dubbi ne ho 10. La maieutica del vulcaniano 11. Un piacevole vasetto di miele 12. Povere sfere 13. Caos comune mezzo gaudio 14. La fontana senza volti 15. Il piromane super beffardo 16. Boom di serpenti 17. Sistemi in via di degradazione 18. Il gatto nero 19. Alain Delon è ancora vivo? 20. Per sempre con i cani 21. Eventi imprevedibili 22. I robot sottomessi 23. Lady Gaga e Bruno Mars incantano 24. Definizioni mancate 25. Il mio nemico drone 26. Errore di valutazione 27. Ringraziamenti 28. Cari cetrioli, vi scrivo 29. Boom di detective 30. Gli UFO trascurati 31. Il grande salto delle rane 32. La malattia artificiale 33. Homo consumens 34. Lacune informatiche 35. Sei troppo! 36. ...

Welcome reader!

Siamo equi: ci sono sciocchezze che fanno meditare   (da Improvvisi per macchina da scrivere di Giorgio Manganelli)   Le repliche sismiche stabilizzano la faglia dopo una sua frattura; analogamente i pensieri d'assestamento riordinano la mente dopo un periodo turbolento o di trasformazione interiore. Nel blog, questi pensieri vengono organizzati, tra il serio e il faceto, in 60 mie riflessioni che mi sono servite a comprendere meglio e, a volte, a metabolizzare alcune esperienze cognitive, emotive e sociali. Riflessioni che, per varie ragioni, non hanno alimentato il confronto dialogico usuale, spesso condizionato dai frame che semplificano, spesso eccessivamente, i nostri ruoli “pubblici”, specie negli ambienti lavorativi. Per questo, “Pensieri d’assestamento” va inteso come la rottura di un frame atteso; come un comportamento fuori contesto che però non può essere rinegoziato, vista la natura asimmetrica della comunicazione; come un “angolo degli oratori”, in cui...

Interpretazioni

Esistono diversi modelli di intelligenza artificiale generativa, i cosiddetti LLM (Large Language Models), e ognuno di essi può valutare in modo diverso i testi “human written”, attribuendo un diverso valore semantico alle parole e alle frasi, come se per una stessa opera esistessero più piani di lettura. Tuttavia, se questa multidimensionalità esegetica non è stata concepita dall’autore, allora le diverse interpretazioni riflettono semplicemente la complessità delle reti neurali, complessità che appare molto simile, almeno nei risultati, alla sensibilità del lettore. Per sensibilità del lettore intendo la capacità di cogliere le sfumature, i dettagli stilistici, le connessioni logiche-argomentative di un testo, andando oltre la semplice comprensione letterale. Il bagaglio di esperienze, conoscenze e prospettive personali può influenzare profondamente la decodifica di un testo. Per questo motivo, una stessa opera può evocare emozioni, riflessioni e pensieri diversi a seconda delle p...