It’s some kind of magic…
Ci sono molti modi di fare manutenzione predittiva data-driven. Alcuni suggeriscono una diagnosi, altri avvisano solo di una possibile anomalia. Tutti però necessitano di avere uno storico di guasti su cui testare la capacità di prevedere i problemi.
Però.
In moltissimi casi vorrei poter prevedere il guasto prima che avvenga, senza avere visto guasti simili nel passato! E’ possibile?
In generale, la risposta tecnicamente corretta è NO. Senza i guasti nel passato, non posso allenare un modello a prevederne nel futuro, perché è come chiedere a un bambino di capire una lingua che non ha mai imparato.
Ma sfruttando a nostro favore i modelli di apprendimento non supervisionato e alcune tecniche di analisi dati, possiamo piegare al nostro volere anche il più testardo dei modelli, anche senza dati a disposizione. Utilizzando l’eXplainable AI!
eXplainable AI: cos’è?
L’AI spiegabile, chiamata anche eXplainable AI (con la X grande in mezzo!) o XAI, è un insieme di tecniche per guardare dentro la scatola. Gli algoritmi di deep learning e alcuni algoritmi di machine learning hanno infatti una struttura molto complessa, che agisce come una black box. Entra qualcosa, esce qualcos’altro, nessuno sa cosa succede nel mezzo. Capire come mai il modello sta suggerendo perché si prevede un’anomalia, o perché fa una predizione di un certo tipo, è impossibile.
A meno che non si usino tecniche di XAI.
Le tecniche di XAI sono varie e servono a capire come pensa il modello nel suo insieme (metodi di interpretabilità globali) o rispetto ad una specifica osservazione (metodi di interpretabilità locale). Un’osservazione è, per esempio, un istante nel tempo.
Per riuscire a predire un guasto senza avere guasti nel passato, ci serviranno quindi metodi locali, che spiegano cosa c’è di diverso in questa osservazione rispetto alle altre. Quali variabili hanno suggerito al modello che ci sarà un’anomalia? Cosa è cambiato rispetto a prima?
Alcune tecniche di XAI possono essere applicate a tutti i modelli (sono model-agnostic), altre funzionano solo con alcuni algoritmi specifici (model-specific)
Intercettare le anomalie senza averne nel passato
Le anomalie altro non sono se non outliers: un’osservazione che è talmente diversa dalle altre da destare il sospetto che sia generata da meccanismi differenti.
An observation which deviates so much from other observations as
Hawkins (1980)
to arouse suspicions that it was generated by a different mechanism
Se abbiamo solo le altre osservazioni (quelle non-anomale), possiamo costruire un modello che rappresenti bene il comportamento normale, e ci suggerisca che qualcosa non va quando vede una differenza rispetto alla normalità a cui è abituato.
Immaginiamo di avere un dataset con 3 temperature, 4 pressioni, 2 portate, vibrazioni sui 3 assi di 6 cuscinetti, e una potenza assorbita. In base allo storico di questi valori, dobbiamo chiedere al modello di trovare la normalità di tutti i vari comportamenti delle variabili, in ogni momento.
Sembra semplice, nella realtà dal punto di vista matematico è una sfida non indifferente.
Facciamola semplice: quanto sei strano rispetto al normale?
Il primo metodo, più semplice e spesso proposto per l’identificazione di anomalie, si basa sulla misura della differenza tra normalità e punto osservato, valutando tutti i parametri contemporaneamente.
Questa misura, se presa tra due parametri non correlati, si può misurare con un righello.
Se però i due parametri sono correlati (e magari sono anche più di due), come si fa a capire se due punti (osservazioni) sono molto differenti? Non basta più un righello, temo!
E’ necessario infatti valutare il comportamento normale dei parametri in base alle condizioni operative – ovvero, in base agli altri parametri. E’ normale che un chiller consumi 300 kW con 45 °C di temperatura esterne, e 50 kW con 25°C (i numeri sono qualitativi, non fate gli ingegneri). Non è normale che il chiller consumi 300 kW con 30 °C di temperatura esterna.
Per calcolare questa distanza rispetto alle condizioni operative normali, è necessario calcolare quanto un punto è distante rispetto alla distribuzione normale. Questo calcolo si chiama distanza di Mahalanobis (MD, Mahalanobis Distance), e rappresenta la distanza di un punto rispetto al centroide delle distribuzioni di tutti i parametri normali.
Tutti i punti avranno una MD maggiore di zero. Per cui, per capire cosa è normale e cosa no, si valuta sul comportamento normale (l’unico che abbiamo) qual è la MD, e le osservazioni che presentano una MD più alta vengono considerate anomale.
Questo approccio, seppur molto efficace, ha bisogno di trasformare i dati1 in un modo per cui se i dati sono molto correlati tra di loro (e spesso, in industria, lo sono), questa trasformazione non funziona.
Un approccio più complesso: gli autoencoders
Se la MD non è sufficiente o non funziona bene, possiamo optare per un approccio più complicato, utilizzato una tipologia semplice di algoritmi generativi.
In particolare, costruiamo un autoencoder. L’autoencoder, che viene allenato sui dati normali (di nuovo, gli unici che abbiamo), impara a ricostruire la distribuzione di tutti i parametri così come li ha visti.
Nella realtà, ogni osservazione ha un grado di differenza residuo rispetto alla sintesi di tutti i dati. Questo grado di differenza normale definisce il limitie oltre cui considerare un’osservazione come anomala. Il grado di differenza si può chiamare anomaly score.
In fase di predizione, l’autoencoder guarda i nuovi dati, e in base a quelli rigenera la sua rappresentazione corretta. Confrontando reale e predetto, calcola l’anomaly score della nuova osservazione, e lo confronta con il valore oltre cui si considera qualcosa come anomalo.
L’autoencoder è più complesso della distanza di Mahalanobis, dunque essere applicato in situazioni con complessità di dati più alta, come il riconoscimento di immagini o per curve altamente non lineari e multiparametro.
XAI sui modelli di anomaly detection
Bene, abbiamo superato il primo step di difficoltà: trovare un modo per capire se il comportamento della macchina è strano per le sue condizioni operative, senza averlo mai osservato prima.
Ma come facciamo a collegare l’anomalia ad un’informazione diagnostica?
Per farlo, sfruttiamo le tecniche di eXplainable AI, e la competenza di dominio della gente del team.
eXplainable AI: una carrellata
Ci sono molte tecniche di XAI, che si adattano a casi diversi. Moltissime si basano sul capire quanto una variabile contribuisce alla predizione finale. Questo concetto, ispirato alla teoria del gioco, simula diversi scenari togliendo volta per volta una o più variabili, per vedere come cambia la previsione. Per ognuno dei parametri si definisce quindi l’indicatore di importanza, chiamato Shapley value.
In questa tabella, una lista di metodi locali e model-agnostic di XAI, che abbiamo visto essere utili per comprendere meglio le anomalie.
Tipologia | Descrizione ignoranta |
---|---|
LIME | Local Interpretable Model-agnostic Explanations – Seleziona le variabili che hanno più peso e tramite un modello semplificato stima il loro impatto |
Shapely explanations (SHAP) e decomposition | SHapley Additive exPlanations – Stima il contributo di ogni parametro sulla singola predizione escludendo il parametro e vedendo come cambia la predizione |
Saliency map | Per il riconoscimento di immagini, indica i pixel spiegano l’anomalia |
Surrogate models | Questa è come barare: usare un modello più semplice per spiegare come i parametri spiegano la predizione |
PDP | Partial Dependence Plot – Stima il contributo di ogni parametro tenendo tutti gli altri parametri costanti e valutando l’impatto dell’unico che rimane |
ICE | Individual Conditional Expectation – Come il partial dependence plot, ma funziona bene su dati che hanno un’interdipendenza. |
Rule extraction e LRP | Estrazione delle regole e Layer-Wise Relevance Propagation – In base alla struttura dell’algoritmo, valuta le regole con cui gli input vengono trasformati in output, identificando i parametri più importati (questo è anche globale!) |
Feature importance | Da un voto a ogni parametro che stima la sua importanza per spiegare una singola spiegazione. |
Conterfactuals explanations | Risponde alla domanda: cosa dovrebbe cambiare per far sì che il modello generi una predizione diversa? |
XAI nell’anomaly detection: SHAP
Diverse ricerche confermano che nell’approccio non supervisionato descritto, il framework di SHAP è il migliore per spiegare quali parametri hanno suggerito al modello che ci sarebbe stato un problema.
Nell’approccio con la distanza di Mahalanobis, il modello sa stimare quale dovrebbe essere la media del valore in analisi rispetto a tutti gli altri parametri. Poi, confronta la media reale del parametro con il comportamento atteso, in modo da vedere se è tanto diversa.
Nell’approccio di autoencoding, l’anomalia è tale se uno o più parametri reali sono molto diversi dalla distribuzione normale stimata dall’autoencoder.
In entrambi i casi, la SHAP analysis è utile per determinare quali parametri suggeriscono al modello che va tutto bene (basso anomaly score o MD sul singolo parametro), quali invece suggeriscono al modello che qualcosa non va (alto anomaly score o MD sul singolo parametro). Per decidere quali parametri aumentano o diminuiscono gli indicatori, si utilizzano proprio gli Shapley values. Questi valori di Shapley si devono calcolare tra la predizione dell’autoencoder sul singolo parametro o la MD non anomala, e tutti gli input del modello. Quindi, la SHAP analysis è in grado sia di listare quali parametri sono strani, sia dire come mai il modello pensa che ci siano strani rispetto a quali ALTRI parametri.
Ready, steady, go
In sintesi, avendo molti dati che rappresentano un comportamento normale, è possibile allenare un modello di apprendimento non supervisionato per replicare questo comportamento normale in base alle condizioni operative. Una volta pronto, è possibile confrontare il comportamento normale ricostruito con il comportamento reale. Infine, utilizzando i valori di Shapley, è possibile spiegare il contributo di ogni singolo parametro nell’anomalia identificata, per fornire ai miei tecnici di manutenzione la lista dei 3 parametri che sono più strani e da cui partire per l’analisi diagnostica.
Approfondimenti per i nerd
- La distanza di Mahalanobis si basa sul calcolo della matrice inversa di covarianza. Con dati altamente correlati, il determinante della matrice è molto piccolo, pertanto la matrice di covarianza non è invertibile. Per evitare ciò, è necessario diminuire il numero di variabili escludendo tutte quelle che sono altamente correlate. Qui un approfondimento.