approfondimento

Anomaly detection, cos’è, come si attua con l’AI



Indirizzo copiato

Oggi, per affrontare il problema del rilevamento delle anomalie si utilizzano sempre più spesso approcci data driven, che sfruttano i tanti dati raccolti per realizzare modelli di machine learning o deep learning in grado di individuarle

Pubblicato il 19 mar 2024

Davide Iacopino

Data Scientist Revelis

Salvatore Iiritano

CEO Revelis s.r.l



anomaly detection

Oggi, la già grande e sempre crescente quantità di dati raccolti dalle aziende rappresenta una risorsa che deve essere sfruttata il più possibile per innalzare l’efficacia e l’efficienza delle stesse. Pertanto, è fondamentale saper analizzare i dati e trarne un vantaggio sia a livello operativo che decisionale. A tal proposito, tra le sfide che più spesso vengono intraprese vi è quella della cosiddetta anomaly detection (talvolta detta anche outlier detection), ossia l’identificazione e l’isolamento di comportamenti, e quindi dati, anomali, rari o inconsueti, i quali si distinguono notevolmente dal normale andamento della realtà monitorata. Essi, infatti, possono essere segnali della presenza, corrente o futura, di una problematica.

Anomaly detection, alcuni esempi

Un esempio comune lo si trova nell’ambito finanziario, in cui si cerca di individuare i movimenti anomali di un conto corrente o di una carta di credito al fine di rilevare eventuali frodi (fraud detection). Un’applicazione industriale, invece, è quella che rientra nell’ambito della manutenzione predittiva: si ricercano anomalie di funzionamento dei macchinari al fine di intervenire in anticipo e prevenire un eventuale guasto, la cui riparazione potrebbe essere anche più onerosa, ed una interruzione del servizio o della produzione, che porterebbe a una riduzione degli utili dell’azienda. In questo contesto, si usa spesso anche il termine fault detection.

I vantaggi di utilizzare un approccio di anomaly/fault detection sono evidenti. Da un lato, permette di reagire tempestivamente all’insorgere di problemi, talvolta anticipandoli; dall’altro, in alcuni contesti le anomalie possono rappresentare qualcosa di positivo; quindi, la loro identificazione può portare a un vantaggio competitivo rispetto ai concorrenti.

Approcci automatici all’anomaly detection

Con l’ascesa dell’intelligenza artificiale e dell’apprendimento automatico e con la notevole quantità di dati raccolti al giorno d’oggi, per affrontare il problema dell’anomaly detection si utilizzano sempre più spesso approcci data-driven, che sfruttano i dati per realizzare modelli di machine learning o deep learning in grado di individuare le anomalie.

Un approccio che può essere utilizzato è quello della supervised anomaly detection, che prevede di avere una buona quantità di dati anomali e non anomali etichettati e permette di trattare il problema dell’anomaly detection come un problema di classificazione. Tuttavia, proprio per la natura inconsueta delle anomalie, esse rappresentano occorrenze rare ed è, quindi, difficile avere a disposizione un dataset con una quantità sufficientemente grande di anomalie etichettate.

Inoltre, per riconoscere le anomalie tramite questo approccio è necessario che le tipologie di anomalia siano un insieme limitato e siano rappresentate tutte all’interno del dataset utilizzato per l’apprendimento, poiché un’eventuale anomalia con caratteristiche completamente diverse da quelle osservate dal modello in fase di apprendimento potrebbe non essere riconosciuta. Infine, spesso i costi e le tempistiche di un processo di etichettatura dei dati sono elevati e rappresentano un fattore critico per lo sviluppo di modelli di machine learning.

Questi problemi rendono l’approccio della supervised anomaly detection utilizzabile solo in alcuni contesti, mentre molto più diffuso è l’unsupervised anomaly detection, ossia un approccio che non richiede la disponibilità di un dataset etichettato e risolve il problema mediante tecniche di apprendimento automatico non supervisionato, come il clustering, in cui le anomalie si individuano come quelle occorrenze che si discostano molto dalle caratteristiche medie dei dati. Questa soluzione non è, però, facilmente applicabile a tutte le tipologie di dato e, spesso, non ha la stessa efficacia della prima.

Esiste anche un terzo approccio, che rappresenta un ibrido tra i due precedenti; si tratta della semi-supervised anomaly detection, che consente di affrontare il problema con le tecniche utilizzate anche nella supervised anomaly detection, ma tentando di superarne i limiti riguardo la disponibilità dei dati.

In questo approccio, infatti, si assume di avere solo una piccola porzione di dati etichettati, che possono rappresentare solo dati normali (in questo caso, si procede cercando di individuare una caratterizzazione dei dati normali e, dunque, di identificare le anomalie come le occorrenze che non rispecchiano questa caratterizzazione) oppure anche dati anomali (in questo caso, si sfruttano delle tecniche per ampliare la quantità di dati anomali per ricondurre il problema al caso supervisionato).

anomaly detection

Caso d’uso: semi-supervised anomaly detection su immagini

Negli ultimi anni, anche grazie alla maggior disponibilità di potenza computazionale e, quindi, alla nuova esplosione del deep learning, ossia dell’apprendimento automatico mediante architetture di reti neurali artificiali, è in ascesa la computer vision; si tratta dell’analisi di immagini e video, tramite l’intelligenza artificiale, al fine di estrarre particolari informazioni di natura semantica.

Nello specifico, le principali categorie di problemi nell’ambito della computer vision sono la classificazione di ciò che è raffigurato nell’immagine, l’individuazione di oggetti in essa (object detection) o dei pixel che ne compongono le varie istanze (segmentazione).

In particolare, la computer vision trova una concreta e sempre più diffusa applicazione nella manutenzione predittiva, in cui si monitorano i sistemi tramite delle fotografie o delle riprese al fine di individuare potenziali anomalie o segnali di potenziali guasti e, quindi, di intervenire tempestivamente.

Di seguito si presenta un caso d’uso realizzato nell’ambito di un progetto riguardante lo sviluppo di un software di individuazione di anomalie su un insieme di componenti di un sistema. Il sistema viene monitorato tramite l’acquisizione di fotografie, nelle quali bisogna individuare le componenti e, più nello specifico, quelle anomale.

Anomaly detection nella computer vision, un caso d’uso

Lavorare con questo formato di dati comporta una serie di possibili problematiche da dover affrontare e risolvere.

Innanzitutto, si possono avere immagini di scarsa qualità in termini di risoluzione, luminosità, contrasto o presenza di rumore e ciò può rappresentare un problema a seconda del task da risolvere e di quanto sia accentuato il problema. In questi casi, si procede con un pre-processing dell’immagine che, mediante l’applicazione di trasformazioni aritmetiche e filtri, migliora la qualità dell’immagine. Alcune di queste operazioni, inoltre, permettono di accentuare nell’immagine elementi chiave, come i bordi tra gli oggetti, aiutando nella risoluzione di alcuni problemi.

Tuttavia, alcune di queste operazioni possono richiedere la conversione dell’immagine in scala di grigi o possono comportare anche alcuni effetti collaterali, che portano spesso alla necessità di raggiungere un compromesso: ad esempio, le operazioni che mirano alla rimozione del rumore possono portare ad una perdita dei dettagli dell’immagine.

Angolazioni, colore, profondità dell’immagine

Nelle immagini, inoltre, un oggetto può apparire diverso a seconda delle angolazioni con le quali è inquadrato, quindi dall’orientamento della foto e degli altri oggetti al suo interno, i quali possono coprirlo parzialmente o possono cambiarne il colore (ad esempio, facendogli ombra). È necessario che i dati utilizzati durante l’addestramento siano quanto più generali possibili, mostrando esempi di tutti i possibili scenari in cui il modello verrà impiegato. Inoltre, il fatto di perdere l’informazione sulla profondità può essere critico ed esistono approcci che, per superare questa difficoltà, cercano di sfruttare più immagini dello stesso scenario da diversi punti di vista per stimare la profondità degli oggetti in esso (depth estimation).

Dimensione dell’immagine

Ci si può scontrare anche con problemi legati alla dimensione dell’immagine, troppo grande per essere elaborata o troppo piccola per notare caratteristiche di dettaglio di determinati oggetti. In questo caso d’uso, le immagini in input erano molto grandi e, quindi, troppo pesanti da elaborare. Di conseguenza, a seconda del componente da analizzare sono stati selezionati diversi approcci:

  • ridimensionare l’immagine, qualora non si cerchino oggetti o informazioni che occupano pochi pixel dell’immagine;
  • suddividere l’immagine in più sezioni, qualora l’oggetto cercato sia molto piccolo, ed elaborare ognuna delle sezioni come un’immagine a sé;
  • individuare l’oggetto di interesse nell’immagine e ritagliare la regione che lo contiene, ottenendo un’immagine di dimensioni molto inferiori.

Object detection

In quest’ultimo caso, l’anomaly detection è preceduta da un task di object detection, che consiste nell’individuazione degli oggetti presenti nell’immagine; le informazioni ricercate sono, quindi, sia la categoria di appartenenza dell’oggetto (ve ne possono essere più di uno nell’immagine) sia la regione rettangolare (detta bounding box) che lo contiene.

Trattandosi di immagini, ottenere un dataset etichettato sufficientemente numeroso è un’operazione tutt’altro che banale, con costi e tempistiche importanti; inoltre, essendo il sistema in buone condizioni, le situazioni anomale rappresentano una percentuale molto ristretta ed infrequente.

Un altro aspetto da considerare è che, attualmente, per quanto riguarda l’analisi di immagini, gli approcci di deep learning (in particolare le reti neurali convoluzionali) hanno di gran lunga superato in termini di performance i modelli classici. Di conseguenza, l’approccio selezionato per affrontare il problema è quello della semi-supervised anomaly detection, sfruttando le tecniche seguenti per sopperire ai limiti del processo di etichettatura dei dati.

anomaly detection

Transfer learning

Un primo approccio di risoluzione del problema della mancanza di dati etichettati è quello del transfer learning, utile quando si ha una piccola parte di dati etichettati. L’idea è quella di partire da un modello pre-addestrato su un task simile a quello da risolvere e sfruttare i pochi dati etichettati a disposizione per continuare l’addestramento del modello, rendendolo specifico per il nuovo task da risolvere.

Ad esempio, si può sfruttare un modello capace di riconoscere alcuni oggetti per costruirne uno nuovo in grado di riconoscere oggetti simili in un dominio diverso. Si tratta, quindi, di un trasferimento delle conoscenze apprese nel primo task per supportare l’apprendimento e la risoluzione del nuovo task e superare il limite della mancanza di dati etichettati.

Active learning

L’active learning è una tecnica di semi-supervised machine learning che permette di addestrare un modello avendo pochi dati etichettati a disposizione, effettuando un processo iterativo che seleziona attivamente e automaticamente i dati più rilevanti da etichettare per migliorare l’apprendimento. Si usa, quindi, quando si ha un dataset di cui solo una piccola porzione è etichettata e un’altra porzione viene etichettata durante il processo di apprendimento.

In generale, un processo di active learning parte da un modello di base, in questo caso un classificatore delle anomalie, addestrato sui pochi dati a disposizione e lo migliora effettuando l’inferenza su alcuni dati non etichettati e selezionando, tra di essi, quelli di cui sarebbe maggiormente utile conoscere l’etichetta reale.

Ci sono vari approcci che si differenziano soprattutto rispetto alla strategia di selezione dei dati da etichettare nelle varie iterazioni: essi devono essere i punti più informativi e, quindi, più rilevanti per migliorare il modello corrente, ma devono anche essere i più differenti possibile, quindi essere ben distribuiti nell’intero spazio dei dati.

Data augmentation

La data augmentation consiste nella generazione sintetica di nuovi dati a partire dai dati già disponibili. Essa può avvenire tramite operazioni sui dati che si possiedono (e.g. trasformazioni geometriche o di intensità delle immagini) o generando nuovi dati (e.g. combinando elementi di diverse immagini o utilizzando appositi modelli generativi). A partire dalle etichette dei dati in input alle operazioni di data augmentation, si possono generare automaticamente le etichette dei nuovi dati sintetici, così da accrescere il dataset etichettato.

Conclusioni

L’anomaly detection è una delle sfide più comuni a livello aziendale per migliorare l’efficienza e l’efficacia dei sistemi monitorandoli e raccogliendo dati su di essi. Riuscire a identificare le anomalie può permettere di reagire tempestivamente all’insorgere di problemi o di ottenere un vantaggio competitivo rispetto ai concorrenti. Per affrontare questo task, è fruttuoso l’impiego di tecniche di apprendimento automatico e, nello specifico, di approcci semi-supervisionati che riescono a superare i limiti di disponibilità di dati anomali, che, per natura, sono rari e infrequenti.

Articoli correlati