Tech Blog

Machine learning e applicazioni per l'industria

Cosa è il machine learning e come può essere utilizzato per migliorare l'industria?

Daniele Caldarini
Data Scientist
8 minuti di lettura
machine learning, Industry 4.0 e Predictive maintenance
Questo articolo è disponibile anche in English 🇬🇧

Applicazioni come i motori di ricerca, gli assistenti vocali, i siti di e-commerce, le fotocamere "intelligenti", il riconoscimento facciale per lo sblocco dello smartphone, fanno parte ormai della nostra quotidianità. Molti non sanno però che queste applicazioni fanno uso dell'intelligenza artificiale.
L'intelligenza artificiale è utilizzata sia come fondamento senza il quale il sistema non sarebbe realizzabile, sia come supporto per fornire un servizio il più possibile indirizzato e personalizzato all'utente.

Questo ci fa riflettere su come l'intelligenza artificiale è uno strumento già fortemente utilizzato, anche se al momento è per la maggior parte confinato ai grandi player del mercato.
Ci si aspetta però che negli anni a venire, l'AI avrà una sempre maggiore diffusione anche sulle realtà medio piccole, con un impatto crescente su tutti i tipi di industrie e attività.
Di fatto, possiamo dire, che l'AI diventerà molto spesso una feature che ci si aspetta già di avere integrata nei prodotti.

Figura 1 - AI e Machine Learning
Figura 1 - AI e Machine Learning

Il machine learning è una disciplina dell'intelligenza artificiale attraverso la quale è possibile realizzare molte forme di AI.
Il machine learning raccoglie e utilizza una moltitudine di metodi come le reti neurali artificiali, gli algoritmi adattativi, l'elaborazione delle immagini, il data mining, e altri, per creare dei sistemi in grado di apprendere in modo autonomo e progressivo.

Di fatto il machine learning può essere considerato una variante alla programmazione tradizionale, nella quale si predispone in una macchina l'abilità di apprendere dai dati (esperienza) in maniera autonoma, senza essere esplicitamente programmata per farlo, per poi poter riutilizzare ciò che è stato appreso su un certo compito da svolgere.

Tipologie di machine learning

Il machine learning viene solitamente suddiviso in tre diverse tipologie, più altre di minore importanza (che spesso sono un ibrido tra le tre più importanti).
Ogni tipologia si differenzia dall'altra sulla base della forma dei dati utilizzati per l'addestramento e sulla base del task da svolgere.

Supervised learning

In questa tipologia di machine learning i modelli vengono addestrati a partire da dati etichettati, cioè dati per cui sono conosciuti i segnali di output desiderati.
Ciò che il modello apprende sono una serie di pattern e correlazioni tra il dato e l'etichetta associata, che riutilizzerà come base per prendere decisioni su dati futuri.
Nel caso dell'apprendimento supervisionato i problemi di machine learning si dividono in due grandi classi: Regressione e Classificazione.

Regressione

Un'esempio di problema di regressione può essere quello di stimare il costo di un'abitazione, descritta da una serie di variabili, come la superficie, il numero di camere, ecc...
Nei dati di addestramento, per ogni abitazione, oltre alle variabili descrittive si conosce l'etichetta (il risultato atteso), che nel nostro caso è il prezzo dell'abitazione.
Nella regressione l'etichetta è sempre una variabile continua. E quello che si cerca di fare è trovare, tramite una funzione continua più o meno complessa, una relazione, tra variabili descrittive e etichette.

Figura 2 - Regressione
Figura 2 - Regressione

In figura è mostrato, ad esempio, l'utilizzo di due funzioni di diversa complessità, in grado di apprendere un certo andamento della curva, che verrà poi utilizzato per produrre stime su dati futuri.

Classificazione

Nella classificazione le etichette sono valori discreti non ordinati che possono essere considerati appartenenti a un gruppo di una classe.
Utilizzando un algoritmo d’apprendimento automatico con supervisione, saremo in grado di separare le due classi (attraverso l'individuazione di un confine decisionale) ed associare i dati, sulla base dei loro valori, alle diverse categorie, con un certo valore di confidenza.
La classificazione può essere binaria o multiclasse.

Figura 3 - Classificazione
Figura 3 - Classificazione

Un esempio di classificazione potrebbe essere quello di determinare se, data un'immagine, si tratta di un'immagine di cane o gatto.
Le variabili predittive in questo caso potrebbero essere la forma delle orecchie e la dimensione del naso (feature che vengono estratte attraverso opportune tecniche di elaborazioni di immagini), mentre l'etichetta semplicemente specifica se si tratta di un cane o di un gatto.

Unsupervised Learning

Nell’apprendimento senza supervisione, al contrario di quello con supervisione, abbiamo dei dati senza etichetta. In questo caso non si può quindi contare su una variabile nota relativa al risultato.
Queste tecniche cercano di osservare la struttura dei dati e di estrapolare da questi, informazioni cariche di significato.
La maggior parte dei task di tipo non supervisionato ricadono nella classe dei problemi di Clustering.

Clustering

Il Clustering è una tecnica esplorativa che consente di aggregare all’interno di gruppi (detti cluster) dei dati per i quali non abbiamo precedente conoscenza di appartenenza a gruppi.
Avremo quindi dei grossi dataset, dove i dati al loro interno hanno delle feature simili tra loro. All’interno di ogni singolo gruppo (o cluster) troveremo quei dati che presentano un certa similarità.
Il clustering è un’ottima tecnica che ci permette quindi di scovare relazioni tra i dati, e di svolgere la cosiddetta exploratory data analysis. Ad esempio, il clustering permette ai venditori, di identficare cluster di clienti, in base ai loro profili, per migliorare l'attività di marketing (market segmentation).

Figura 4 - Clustering per Topic Modeling
Figura 4 - Clustering per Topic Modeling

Un problema di clustering potrebbe essere quello di raggruppare documenti di un corpus, in insiemi di documenti che trattano lo stesso topic.
I documenti potrebbero essere rappresentati nello spazio sotto forma di vettori di parole, e poi raggruppati tra di loro in base a una qualche forma di similarità, che è in grado di relazionare documenti che contengono parole e espressioni comuni.

Reinforcement Learning

Il terzo tipo di apprendimento automatico è l’Apprendimento per Rinforzo. L’obiettivo di questo tipo di apprendimento è quello di costruire un sistema (agente) che attraverso le interazioni con l’ambiente migliori le proprie performance.
Per poter migliorare le funzionalità del sistema vengono introdotti dei rinforzi, ovvero segnali di ricompensa.
Questo rinforzo non è dato dalle label (etichette) o dai valori corretti di verità, ma è una misurazione sulla qualità delle azioni intraprese dal sistema. Per questo motivo non può essere assimilato ad un apprendimento supervisionato.

Figura 5 - Esempio di Reinforcement Learning
Figura 5 - Esempio di Reinforcement Learning

Il reinforcement learning è molto utilizzato per l'addestramento nella navigazione dei robot. In figura è mostrato l'esempio dell'addestramento tramite tecniche di Deep Reinforcement Learning di un robot aspirapolvere. Gli oggetti rossi e verdi restituiscono delle ricompense negative o positive quando il robot li aspira.

Deep Learning

Il Deep Learning è una grande famiglia di metodi per il machine learning basati su reti neurali artificiali. Le reti neurali artificiali sono dei modelli computazionali basati su una semplificazione delle reti neurali biologiche.

Figura 6 - Esempio di rete neurale
Figura 6 - Esempio di rete neurale

Come è possibile vedere in Figura 6, possono essere formate da molti nodi, o neuroni, e da più strati di neuroni. Teoricamente più si aumenta il numero di neuroni e strati, più la rete è in grado di rappresentare funzioni non lineari più complesse.
Stiamo parlando di modelli computazionali teoricizzati già a partire dagli anni 70, ma per i quali a quei tempi non si possedeva ancora abbastanza capacità di calcolo per poterli utilizzare e applicare.

Oggi che le capacità di calcolo e storage sono aumentate a dismisura, sono tornate di moda, e vengono utilizzate in molti contesti dell'intelligenza artificiale.
Se utilizzate sotto la forma di reti con molti strati, si parla appunto di deep learning, perchè si utilizzano reti molto profonde.
La capacità di riuscire a formulare funzioni non lineari molto complesse attraverso queste reti, ha fatto si che vengano ormai largamente utilizzate in tutta una serie di task, molto avanzati, legati soprattutto alla "percezione naturale", come la Computer Vision e il Natural Language Processing.

Applicazioni del Machine Learning nell'industria

Il Machine Learning e l'insieme delle tecniche citate, possono essere molto utili nell'ambito dell'industria, al fine ottimizzare e migliorare il processo di produzione e vendita.

Figura 7 - Applicazioni nell'industria
Figura 7 - Applicazioni nell'industria

Alcune possibili applicazioni.

  • Manutenzione predittiva: prevedere guasti e anomalie sui macchinari con l'obiettivo di gestire in modo efficiente la manutenzione, con un ritorno importante in termini di riduzione dei costi.
  • Previsione delle vendite: prevedere i livelli di vendita futuri così da poter ottimizzare il processo produttivo.
  • Controllo di qualità del prodotto (Quality 4.0): controllare la qualità del prodotto andando a rilevare difetti di produzione.
  • Previsione dei consumi energetici: prevedere i consumi energetici futuri, con vantaggi sia per chi deve farne richiesta, sia per chi è fornitore di energia.

Applicazioni in manutenzione predittiva

Segue un'esempio di applicazione di algoritmi e tecniche di Supervised Learning per il caso d'uso della manutenzione predittiva.
I dati utilizzati per gli addestramenti sono dati sensoristici, provenienti da macchinari reali, raccolti tramite la piattaforma IoT Experience di SMC. L'obiettivo è quello di realizzare dei sistemi in grado di:

  • prevedere entro quanto tempo si potrebbe verificare un guasto sul macchinario (Regressione);
  • prevedere se entro una certa finestra temporale si potrebbe verificare un guasto (Classificazione binaria).

Nel provare a realizzare tutto ciò, il machine learning ci viene in aiuto, grazie all'utilizzo di algoritmi e modelli che sono in grado di apprendere le correlazioni che intercorrono tra i dati sensoristici e i guasti avvenuti sui macchinari.

Costruzione del dataset

Per costruire il dataset su cui addestrare gli algoritmi, è stato necessario acquisire i dati relativi ai guasti storici che si sono verificati sui macchinari, così come tutto lo storico della telemetria nel periodo di tempo precedente ai guasti considerati.

Figura 8 - Dati telemetrici
Figura 8 - Dati telemetrici

Una volta acquisiti tutti i dati, è stata svolta un'approfondita attività di feature engineering, cioè un'attività in cui i dati hanno subito filtraggi, elaborazioni e aggregazioni; quest'attività, ogni volta che si affronta un task di machine learning, è fondamentale per riuscire a porre i dati nella forma migliore per riuscire ad addestrare in modo efficiente quello che è l'algoritmo scelto.

I dati sono stati successivamente etichettati, in modo da poter utilizzare un'approccio supervisionato per l'addestramento.
Per fare ciò abbiamo correlato ad ogni record telemetrico due diversi valori:

  • un valore su scala continua, per il task di regressione, che specifica il tempo rimanente al guasto nel momento in cui è stato registrato quel record telemetrico;
  • un valore binario, per il task di classificazione binaria, che indica se il record telemetrico è stato registrato all'interno di una certa finestra temporale dal guasto.

Al termine dell'etichettatura ne è risultato un dataset composto da circa 170 sequenze telemetriche precedenti a guasti occorsi sullo stesso macchinario, dove ogni sequenza telemetrica ha un'ampiezza compresa tra 250 e 300 minuti

Il dataset è stato infine suddiviso in:

  • training set (90% del totale, usato per l'addestramento);
  • test set (10% del totale, usato per valutare le performance del modello addestrato).

Addestramenti e valutazioni

Sono stati addestrati e testati alcuni algoritmi candidati per il task da svolgere.

Dopo ogni addestramento è fondamentale valutare le prestazioni del modello ottenuto. Questo per paragonare sia diversi algoritmi tra loro, sia diversi configurazioni di addestramento dello stesso algoritmo, e individuare lo strumento che lavora meglio su quel preciso task.
Per svolgere queste valutazioni si fa uso di tutta una serie di metriche e grafici, che mostrano quanto bene il modello in questione sia in grado di svolgere il compito per cui è stato addestrato.

Nel caso in esame possiamo vedere a titolo di esempio i risultati della valutazione svolta in merito al task di previsione se entro una certa finestra temporale si potrebbe verificare un guasto.
In particolare i risultati fanno riferimento all'addestramento di un Light Gradient Boost Machine Classifier con finestra temporale fissata a 30 minuti.

Figura 9 - Metriche di valutazione
Figura 9 - Metriche di valutazione

La colonna holdout score mostra i valori per le metriche che riguardano le prestazioni del modello sul test set.
Riscontriamo un'accuratezza totale del 98,6%, con valori di Precision e Recall anch'essi molto alti, che denotano delle prestazioni soddisfacenti per il modello in questione.

Per una visione più approfondita vediamo anche la matrice di confusione, che permette di visualizzare falsi positivi e falsi negativi, mettendo in relazione le etichette reali con i valori previsti dal modello.

Figura 10 - Matrice di confusione
Figura 10 - Matrice di confusione

Dalla matrice di confusione si riscontra che:

  • nel 92,7% dei casi se siamo vicini a un possibile guasto il sistema è in grado di prevederlo correttamente, mentre nel 7,3% dei casi non è in grado di segnalarlo;
  • il 98,2% delle volte che viene segnalato un possibile imminente guasto questo accadrà realmente, mentre nel 1,8% dei casi si tratterà di un falso allarme.

Conclusioni

Le tecniche di applicazione illustrate rappresentano una possibile strategia di azione per realizzare, attraverso il machine learning, dei sistemi in grado di supportare la manutenzione predittiva.
Per esempio, un sistema in grado di prevedere se un guasto si potrebbe verificare entro 30 minuti, potrebbe essere utilizzato per installare su un macchinario un semaforo che segnalerà, qualora il sistema lo preveda, possibili guasti imminenti.

Questo rappresenta solo un esempio di come il machine learning e più in generale l'intelligenza artificiale possono aiutare quello che è il processo produttivo e decisionale all'interno dell'ambiente industriale.
In linea con la trasformazione verso la cosiddetta Industria 4.0, il machine learning rivestirà negli anni a venire un ruolo fondamentale per la crescita e la capacità delle industrie di rimanere al passo con i tempi.

Vuoi scoprire come utilizzare il Machine Learning per ottimizzare i tuoi processi produttivi?

Contattaci ora
scritto da
Daniele Caldarini
Data Scientist
Ricercatore e Data Scientist in SMC. Laureato in Ingegneria Informatica all'Università di Roma Tre, ricerca e sviluppa in ambito intelligenza artificiale e machine learning con l'obiettivo di realizzare prodotti moderni e al passo con i tempi.

Potrebbero interessarti anche…