Il valore intrinseco del dato
Si dice che i dati siano come il petrolio – nascondo un grandissimo valore se si sa come manipolarli. L’idea dietro ad ogni soluzione data-driven è sfruttare i dati che si raccolgono – parametri dal campo, immagini, input manuali, interazioni con la piattaforma – per generare informazioni di maggior valore.
In industria ad esempio vogliamo sapere in anticipo quale potrebbe essere una buona stima del budget energetico per l’anno successivo, qual è la probabilità che un componente si rompa a breve, qual è la vita utile di una linea se continuiamo a farla andare a determinate condizioni, o dove è posizionato il difetto in una specifica immagine.
A seconda del tipo di informazione che vogliamo estrarre, si possono sfruttare dati differenti e modalità di previsione differenti. Ad esempio, è abbastanza facile immaginare come utilizzare modelli di deep learning per riconoscere cosa c’è dentro un’immagine, o se il consumo di un chiller è corretto rispetto alle condizioni operative istantanee. Ma come si fa a prevedere il futuro?
Prevedere il futuro
We forecast, a special kind of prediction, on data of past happenings to generate or cast data for future by relying happenings.
Prediction, Projection and Forecasting, Applications of the Analytic Hierarchy Process in Economics, Finance, Politics, Games and Sports
Quando parliamo di prediction, predizione, stiamo considerando qualsiasi tipo di valutazione data driven: ad esempio, la stima della probabilità di un guasto a determinate condizioni operative, la valutazione del surriscaldamento di un componente in base ai RPM a cui sta lavorando, l’elaborazione di un’immagine per comprendere se sono presenti pezzi fuori standard… Queste predizioni dipendono dallo stato della macchina e dai dati che si raccolgono in quel momento e nei momenti immediatamente precedenti, ma raramente dipendono da informazioni molto indietro nel tempo, e sicuramente non dipende dallo stato futuro del sistema.
Nel forecasting invece l’informazione temporale nel passato e nel futuro diventa centrale. Il forecasting, nella data science, è un sotto insieme della prediction, e si concentra sull’utilizzo di serie temporali per capire cosa succederà nell’orizzonte temporale futuro. Esempi tipici di forecasting in industria è la stima del budget energetico, la valutazione della domanda di caldo o freddo di un impianto o edificio, la curva di consumo elettrico oraria attesa nel prossimi giorni, o la previsione della portata dei bacini idrogeologici o delle onde di piena.
Il trucco del forecasting
Rispetto alla semplice prediction, che si basa su tutti i dati disponibili in un qualsiasi momento passato, il forecasting di solito si basa su un set di dati ridotto, che però è disponibile anche nel futuro. Le previsioni meteo, il prezzo dell’energia, l’occupazione attesa di un edificio o la produzione pianificata sono esempi tipici di dati utilizzati per il forecasting. L’altro punto di interesse del forecasting è che le previsioni sono spesso fatte su dati che hanno un comportamento ripetitivo nel tempo – che presenta quindi autocorrelazione – significa che io posso usare tra gli input anche i valori passati dell’output. Ad esempio, posso utilizzare il trend di consumo dell’edificio negli ultimi 7 giorni per stimare il consumo nell’ottavo giorno, magari considerando anche la temperatura esterna e il fatto che domani è lunedì.
La dimensione temporale nel forecasting diventa quindi fondamentale, e si porta dietro diverse complicazioni non indifferenti. Proviamo quindi a delineare le diverse opzioni che abbiamo disponibili per prevedere il futuro con il forecasting.
- Prevedere l’sitante t+1: la cosa più semplice e scontata è utilizzare i dati fino ad ora e nel prossimo futuro per prevedere il prossimo istante utile, ad esempio l’ora t+1. In questo caso utilizzare l’output come input è facile, perché se registro i dati in real time ho tutte le informazioni disponibili fino all’istante t. I dati previsionali come forecast meteo o ricette pianificate dovrebbero essere già disponibili per il futuro, e quindi anche per l’istante t+1. Ho tutto per la mia previsione.
- Prevedere un arco temporale da t+1 a t+T: in questo caso le cose si complicano, soprattutto se sto usando il mio target all’istante precedente come input per prevedere l’istante successivo. Abbiamo infatti un problema: fino al tempo t ho tutti i dati per la previsione, compreso il mio target, sufficienti per la previsione per l’istante t+1. Ma già dall’istante t+2, mi manca almeno un input: il mio target reale all’istante t+1. Come faccio? Qui posso seguire due strade:
- Allenare l’algoritmo per prevedere tutto il periodo dall’istante t+1 all’istante t+T– contemporaneamente. L’algoritmo in questione avrà T output contemporanei, che messi in fila mostrano la curva previsionale del mio target a partire dal solo valore a t del target, e tutti i valori previsionali noti come meteo o piano di produzione. Questo approccio va bene per la previsione a breve termine, mentre è meno robusto per previsioni a medio e lungo termine.
- Allenare l’algoritmo per prevedere solo l’istante successivo, e generare la previsione con un ciclo che per ogni time step genera la predizione all’istante precedente e riutilizza quella stessa previsione come input per l’istante successivo. In questo caso la previsione è più robusta anche per previsioni a medio e lungo termine.
Stazionarietà e non stazionarietà
I fenomeni da prevedere nel futuro sono solitamente di due tipologie: stazionari e non stazionari.
I fenomeni stazionari sono ad esempio la produzione energetica da un campo fotovoltaico, l’andamento i una temperatura che varia stagionalmente tra un massimo e un minimo con variazioni che dipendono dalle condizioni operative o altri fenomeni che si ripetono senza aumentare o diminuire di intensità nel tempo.
I fenomeni non stazionari sono invece fenomeni il cui comportamento evolve nel tempo, come il degrado nel caso di previsione della vita utile residua, o il prezzo dei beni nel tempo.
Comprendere bene il fenomeno che si cerca di prevedere nel tempo include anche capire se questo fenomeno è stazionario o non-stazionario, e selezionare l’algoritmo di conseguenza.
Gli algoritmi del forecasting
Ci sono molti modi per prevedere nel futuro, i più semplici sfruttano algoritmi noti e facili da gestire, per gli use case più complessi invece si passa ad algoritmi più complicati ma più potenti. La lista che segue riporta alcuni degli algoritmi più utilizzati:
- ARIMA: AutoRegressive Integrated Moving Average. E’ una tecnica di valutazione statistica più che un modello di machine learning e funziona molto bene con i fenomeni non stazionari. Stima l’andamento del futuro principalmente in base ai valori del target del passato.
- Reti neurali feedforward: ovvero una semplice regressione utilizzando i valori noti nel futuro come previsioni meteo o pianificazione dei setpoint nello stesso modo in cui si fanno predizioni nel passato
- RNN: Recursive Neural Networks. Rispetto ad una rete feedforward che nel neurone è caratterizzata dalla sola funzione di trasformazione e attivazione, la rete neurale ricorsiva ha all’interno dei neuroni anche una cella di memoria in grado di ricordare gli ultimi output prodotti dalla rete. La RNN introduce quindi la possibilità di ricordarsi nel tempo i risultai delle previsioni precedenti. Hanno però il problema che dopo un po’ perdono la memoria – il vanishing gradient problem. Quindi, bene per previsioni a brevissimo termine, male per previsioni a medio-ugno termine.
- GRU e LSTM: Gated Recurrent Units e Long-Short Term Memories, sono reti neurali in grado di ricordare meglio il passato. Se la RNN ricorda solo gli ultimi output, sia GRU che LSTM hanno all’interno uno o più gates ch indicano alla rete la percentuale di output molto indietro nel tempo da ricordare. In questo modo le reti hanno più memoria, e sono più robuste e stabili nelle loro previsioni. GRU ha solo un gate, mentre LSTM ne ha più di uno. Anche queste reti a lungo andare perdono la memoria come le RNN.
Binocoli data-driven
Gli algoritmi data-driven ci danno la possibilità di prevedere il futuro utilizzando dati disponibili che possono in parte spiegare i cambiamenti futuri attesi, e in trend del dato storico nelle osservazioni precedenti.
Grazie ai sistemi di forecasting in industria possiamo ad esempio prevedere:
- La curva di consumo atteso di calore, freddo o energia elettrica di un impianto, un quartiere o un edificio
- La producibilità di un impianto di autoproduzione rinnovabile come ad esempio il fotovoltaico o a fonti tradizionali
- L’occupazione di un edificio in base al periodo dell’anno e alle condizioni meteo
- La richiesta stagionale dei prodotti e relativa gestione logistica
- Il livello dei bacini fluviali o idrici, e le possibili onde di piena
- La vita utile residua di un impianto o un componente
Come sempre, la chiave per previsioni di valore sono dati ampi, solidi e rappresentativi, che possano essere raccolti e utilizzati per allenare i sistemi di previsione data-driven.