Questa è la guida di riferimento per gli ingegneri che desiderano progettare e distribuire algoritmi per il rilevamento di anomalie nei dati di serie storiche.
Introduzione al rilevamento delle anomalie
Che cos’è il rilevamento delle anomalie?
Il rilevamento delle anomalie è un processo che consiste nell’identificare eventi o pattern nei dati che si discostano dal comportamento previsto. Tali deviazioni, chiamate anomalie, possono indicare informazioni importanti come guasti alle macchine, violazioni della sicurezza, segnali di preavviso o inefficienze dei processi.
Le anomalie dei macchinari industriali vengono rilevate tramite segnali di vibrazioni. I dati sulle vibrazioni su tre assi appartenenti a una data finestra temporale vengono elaborati e le anomalie sono rilevate mediante un modello di Machine Learning. Il confine di decisione del modello viene visualizzato su un piano dei componenti principali, dove i puntini rossi indicano le anomalie.
Casi d’uso d’esempio del rilevamento delle anomalie
Gli algoritmi di rilevamento delle anomalie sono utili in vari settori e in diverse applicazioni:
Manutenzione predittiva: gli algoritmi di rilevamento delle anomalie distribuiti nelle apparecchiature industriali possono individuare i primi segnali di guasto alle macchine, migliorando la sicurezza ed evitando tempi di fermo costosi.
Sanità digitale: rilevare le anomalie nei segnali di elettrocardiogramma (ECG) può rivelare svariate condizioni cardiache, come l’aritmia, la fibrillazione atriale e la tachicardia ventricolare.
Analisi dei dati di test di volo: gli ingegneri si servono dei test di volo per comprendere il comportamento dei sistemi e prendere decisioni di progettazione informate. Il rilevamento delle anomalie è in grado di segnalare valori irregolari dei sensori e identificare le condizioni di test che non rientrano nell’intervallo prestazionale previsto.
Controlli tolleranti ai guasti: gli algoritmi per il rilevamento delle anomalie embedded in un motore elettrico possono rilevare cambiamenti in tempo reale. Ciò permette al controller di regolare la risposta per evitare il verificarsi di danni e migliorare le prestazioni.
Tipi di anomalie nei dati delle serie storiche
Sebbene le anomalie possano comparire in svariate tipologie di dati, come nei dati immagine, video e testuali, questa guida si concentra sui dati delle serie storiche, che sono quelli più utilizzati nelle applicazioni ingegneristiche. I dati delle serie storiche registrano misurazioni sequenziali, come la temperatura, la pressione e le vibrazioni, nel tempo. Esistono tre tipi di anomalie principali che si possono riscontrare nei dati delle serie storiche.
Le anomalie puntuali, o outlier, sono dei singoli punti di dati che deviano dal valore previsto.
Le anomalie collettive si verificano quando un gruppo di punti di dati deviano insieme dai pattern previsti.
Le anomalie multivariate si verificano quando si analizzano più sorgenti di dati contemporaneamente e possono trovarsi o meno in un’unica sorgente di dati.
Scelta di un algoritmo per il rilevamento delle anomalie
MATLAB mette a disposizione una vasta serie di algoritmi per il rilevamento delle anomalie nelle serie storiche, suddivisibili in due categorie principali: metodi statistici e basati sulla distanza e modelli di IA a una classe. Questi sono tutti strumenti utilizzabili per progettare degli algoritmi di rilevamento delle anomalie, ma lo strumento da scegliere dipende dai propri dati e dai propri obiettivi.
Metodi statistici e basati sulla distanza
I metodi statistici si basano su delle ipotesi in merito alla distribuzione dei dati sottostanti. Applicano soglie, tendenze o modelli di probabilità per riconoscere i punti che deviano dal comportamento statistico previsto. Un semplice approccio al rilevamento delle anomalie di tipo statistico potrebbe consistere nel calcolare la media mobile di un segnale e contrassegnare un’anomalia quando la media supera una determinata soglia.
I metodi basati sulla distanza non presuppongono alcuna distribuzione dei dati particolare; al contrario, contrassegnano le anomalie calcolando le distanze tra singole osservazioni o sottosuccessioni, identificando quelle che si allontanano di più dai pattern tipici. Ad esempio, matrixProfile confronta ciascuna sottosuccessione in una serie storica e identifica come anomale quelle che si trovano più distanti dalle altre.
Uso di distanceProfile per identificare le anomalie nei dati delle serie storiche.
Quando usare i metodi statistici e basati sulla distanza:
- Si hanno a disposizione dei dati di addestramento limitati
- Si ha una buona comprensione delle tendenze e delle statistiche di base dei propri dati
- Si hanno a disposizione risorse computazionali limitate
Caratteristiche:
+ Semplici e interpretabili
+ Basso costo computazionale
+ Adatti per le anomalie puntuali e collettive
- Potrebbero avere difficoltà con pattern complessi o dinamiche non lineari
- Sensibili al rumore e alla dimensionalità dei dati
Tecniche di esempio in MATLAB:
isoutlier: trovare gli outlier nei datifindchangepts: trovare brusche variazioni nel segnalerobustcov: calcolare la covarianza multivariata robusta e la stima della mediamahal: calcolare la distanza di Mahalanobis dai campioni di riferimentodistanceProfile: calcolare il profilo di distanza tra la sottosuccessione di query e tutte le altre sottosuccessioni di una serie storicamatrixProfile: calcolare un profilo di matrice tra tutte le coppie di sottosuccessioni in una serie storica multivariabile
Consulta un esempio
Rilevamento di anomalie nei dati di un motore con un profilo di matrice
Il profilo di matrice è utile per rilevare in modo efficiente le anomalie collettive nelle serie storiche lunghe. Questo esempio mostra come applicare un profilo di matrice al rilevamento delle anomalie nelle misurazioni della corrente di armatura raccolte da un motore CC che si sta deteriorando.
Profilo di matrice dei dati del motore con coppia motivo superiore e segmenti discordanti evidenziati
Modelli di IA a una classe
I metodi di rilevamento delle anomalie di questa categoria addestrano un modello di Machine Learning o Deep Learning su un set di dati di base prevalentemente normali. Il modello apprende il comportamento normale e identifica le deviazioni come anomalie. I modelli di IA a una classe funzionano meglio quando le anomalie sono rare o non hanno un pattern ben definito. Possono essere applicati a più canali di dati per tutti i tipi di anomalie.
Quando usare i modelli di IA a una classe:
- Si desidera addestrare un modello per identificare le anomalie nei nuovi dati man mano che si presentano
- Si hanno a disposizione moltissimi dati normali per l’addestramento
- Le anomalie sono rare, sconosciute o non hanno un pattern ben definito
Caratteristiche:
+ Adatti a tutti i tipi di anomalie, compresi i pattern complessi e non lineari
+ Robusti in relazione al rumore e alla dimensionalità dei dati
+ I metodi di Deep Learning non hanno bisogno dell’ingegneria delle feature
- Tempi di addestramento più lunghi e maggiori requisiti computazionali
- Spesso meno interpretabili dei metodi statistici e basati sulla distanza
Tecniche di esempio in MATLAB:
iforest: isolation forestocsvm: macchina a vettori di supporto a una classerccforest: robust random cut forestdeepSignalAnomalyDetector: modelli di Deep Learning basati su un autocodificatore convoluzionale 1D o su una rete long short-term memory (LSTM)tcnAD: rete convoluzionale temporale (TCN)deepantAD: rete neurale convoluzionale (CNN)usAD: rete a doppio codificatorevaelstmAD: autocodificatore variazionale e LSTM
Consulta un esempio
Addestramento di modelli di Deep Learning per il rilevamento delle anomalie
Questo esempio si serve di un modello di Deep Learning per rilevare sequenze anomale del battito cardiaco nei dati di un elettrocardiogramma (ECG).
Dati di ECG con anomalia rilevata mostrata in rosso.
Preparazione dei dati per il rilevamento delle anomalie
Per poter creare degli algoritmi per il rilevamento delle anomalie accurati è essenziale disporre di dati di qualità. Raccogliere, esplorare e pre-elaborare i dati per il rilevamento delle anomalie, però, può essere complicato e non esiste un unico metodo applicabile a tutte le occasioni. Le tecniche scelte dipendono dalle caratteristiche dei dati, dai requisiti hardware e dal problema che si deve risolvere. Anche quando si hanno a disposizione numerosissimi dati, rilevare le anomalie può essere difficile perché i dati provengono da centinaia di sensori rumorosi. In tali casi è fondamentale procedere all’estrazione delle feature e alla riduzione delle dimensioni dei dati.
Set di dati per il rilevamento delle anomalie
Rispetto a molte delle attività tradizionali basate sul Machine Learning, il rilevamento delle anomalie ha requisiti flessibili in termini di dati di addestramento, infatti non occorrono dati etichettati. Gli algoritmi di rilevamento delle anomalie vengono addestrati esclusivamente su dati normali o prevalentemente normali, con qualche anomalia inserita in mezzo ai dati. Con dati di questo tipo, si addestra un modello di rilevamento delle anomalie a riconoscere ciò che è normale: tutto ciò che non è normale viene classificato come anomalia.
Se si dispone di un set di dati etichettati e bilanciati con una o più classi, occorre applicare un approccio chiamato apprendimento con supervisione per il rilevamento di guasti multiclasse.
Dati adatti al rilevamento delle anomalie.
Scopri di più su questi approcci:
Esplorazione e pre-elaborazione dei dati
Prima di progettare un algoritmo, occorre comprendere ciò che ci stanno dicendo i dati. Le attività di esplorazione e visualizzazione dei dati aiutano a individuare sorgenti di dati utili, a distinguere pattern nei dati, a riconoscere la qualità dei dati e a determinare quali sono le fasi di pre-elaborazione necessarie. È possibile utilizzare l’app Signal Analyzer per esplorare e pre-elaborare i dati delle serie storiche in modo interattivo.
I dati raccolti dai sensori in genere sono rumorosi, disorganizzati e disordinati. Esistono numerose tecniche e app interattive in MATLAB per le fasi di pre-elaborazione, come il ricampionamento, lo smoothing, l’organizzazione, l’inserimento dei dati mancanti e non solo.
Scopri di più sulla pre-elaborazione dei dati in MATLAB:
Estrazione delle feature da dati grezzi
Sebbene alcuni modelli di IA possano essere utilizzati direttamente sui dati delle serie storiche, estrarre le feature dai dati può migliorare le prestazioni dei modelli mettendo in evidenza le quantità più importanti che differiscono dai dati normali e anomali. L’estrazione delle feature consiste nel trasformare i dati grezzi in feature numeriche significative utilizzabili per addestrare un modello.
Ad esempio, si può scegliere di calcolare feature quali la media, la deviazione standard, l’ampiezza di picco o la frequenza dominante. Tali feature riassumono i comportamenti importanti nei dati delle serie storiche, in modo tale che il modello possa apprendere con maggiore facilità che aspetto hanno i dati normali.
Gli ingegneri che conoscono bene i loro dati spesso sanno già quali sono le feature più utili da usare. Tuttavia, è possibile usare il processo di estrazione delle feature automatizzato, che estrae le feature comuni (statistiche descrittive, misurazioni spettrali e molto altro ancora) per poi classificarle. L’app Diagnostic Feature Designer in Predictive Maintenance Toolbox può essere utile per estrarre, confrontare e classificare le feature in modo interattivo. Tali feature, poi, possono essere usate per addestrare un modello di IA.
Riduzione della dimensionalità dei dati
Una volta raccolti i dati ed estratte le feature, di solito ci si ritrova con un numero di dati altissimo, a volte anche centinaia per segnale. L’elevata dimensionalità può rallentare il processo di addestramento dei modelli, che risultano anche più difficili da interpretare e maggiormente soggetti a overfitting. Ridurre la dimensionalità selezionando o combinando solo le feature più informative aiuta a semplificare il modello e a focalizzare il suo addestramento sulle feature chiave che indicano delle anomalie. Le tecniche di riduzione della dimensionalità, come l’analisi dei componenti principali (PCA) o la classificazione delle feature, possono aiutare a identificare le feature che contribuiscono maggiormente al rilevamento delle anomalie.
Consulta un esempio
Rilevamento di anomalie in macchinari industriali utilizzando i dati sulle vibrazioni su tre assi
Questo esempio del mondo reale addestra tre diversi modelli di IA a una classe. Il processo prevede l’esplorazione dei dati, l’estrazione delle feature, l’addestramento dei modelli e la valutazione delle loro prestazioni.
Dati sulle vibrazioni su tre assi prima e dopo la manutenzione su un’apparecchiatura industriale. I dati dopo la manutenzione rappresentano il funzionamento normale, mentre quelli appena prima della manutenzione sono anomalie.
Implementazione per il mondo reale
Gli ingegneri desiderano progettare algoritmi di rilevamento delle anomalie per poter rilevare le anomalie nei sistemi reali. Lo sviluppo di questi algoritmi è un processo iterativo.
Questa guida descrive i passaggi essenziali per sviluppare un algoritmo di rilevamento delle anomalie: esplorazione e pre-elaborazione dei dati, estrazione delle feature e scelta degli algoritmi. Dopo la fase di sviluppo, è possibile valutare l’algoritmo su dati nuovi per accertarsi che generalizzi correttamente. Infine, è possibile distribuirlo per l’uso in tempo reale e aggiornarlo secondo necessità con l’apprendimento incrementale.
Workflow di sviluppo e distribuzione del modello di rilevamento delle anomalie basato su un modello di IA per applicazioni del mondo reale.
Distribuzione su hardware embedded
Con MATLAB per l’IA embedded, è possibile creare blocchi Simulink o generare codice C/C++ per distribuire degli algoritmi per il rilevamento delle anomalie su dispositivi embedded (come un microcontroller o una ECU) per il rilevamento delle anomalie in tempo reale. È importante che questi algoritmi vengano testati con delle simulazioni per garantirne l’efficacia prima della distribuzione su hardware embedded. Simulink mette a disposizione una piattaforma per integrare gli algoritmi di rilevamento delle anomalie con altri componenti di sistema, il che consente di eseguire simulazioni in tempo reale a livello di sistema.
Distribuzione di un blocco Simulink Deep Signal Anomaly Detector su Raspberry Pi® per il rilevamento del rumore in tempo reale.
Rilevamento di anomalie incrementale
I metodi di rilevamento incrementale delle anomalie elaborano in continuo i dati in ingresso e calcolano il punteggio di anomalia da un flusso di dati in tempo reale. Un modello incrementale si adatta ai dati. MATLAB mette a disposizione gli oggetti di modelli incrementalRobustRandomCutForest e incrementalOneClassSVM per il rilevamento incrementale delle anomalie. Innanzitutto, un modello viene addestrato per calcolare un punteggio di anomalia. Poi, la soglia viene calcolata e regolata sulla base del punteggio di anomalia ottenuto dai dati usati per l’addestramento. Il modello continuerà a rilevare delle anomalie, a riaddestrarsi e a regolare la soglia man mano che riceve nuovi batch di dati.
Scopri di più sul rilevamento incrementale delle anomalie.
Fasi di fitting del modello, apprendimento della soglia e stima online per applicare le tecniche di apprendimento incrementale ai dati di serie storiche.
Punti chiave
Il rilevamento delle anomalie nelle serie storiche prevede l’identificazione delle deviazioni dai pattern previsti, il che può segnalare la presenza di criticità quali guasti alle macchine, rischi per la salute o inefficienze dei processi. MATLAB mette a disposizione un workflow completo per il rilevamento delle anomalie nei dati delle serie storiche, che comprende l’esplorazione e la pre-elaborazione dei dati, la riduzione della dimensionalità, l’estrazione delle feature e la selezione degli algoritmi appropriati. Con Simulink, è possibile integrare gli algoritmi di rilevamento delle anomalie in modelli di sistemi più grandi per verificare il comportamento complessivo del sistema tramite la simulazione. Il workflow supporta anche la distribuzione embedded, che permette di generare codice C/C++ per distribuire gli algoritmi di rilevamento delle anomalie su dispositivi edge o applicazioni in tempo reale.
Scopri di più sul rilevamento delle anomalie e sulla manutenzione predittiva.
Per saperne di più
Seleziona un sito web
Seleziona un sito web per visualizzare contenuto tradotto dove disponibile e vedere eventi e offerte locali. In base alla tua area geografica, ti consigliamo di selezionare: .
Puoi anche selezionare un sito web dal seguente elenco:
Come ottenere le migliori prestazioni del sito
Per ottenere le migliori prestazioni del sito, seleziona il sito cinese (in cinese o in inglese). I siti MathWorks per gli altri paesi non sono ottimizzati per essere visitati dalla tua area geografica.
Americhe
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)