Machine Learning in ambito produzione: quando un buon modello non basta
Le applicazioni del Machine Learning alla vita quotidiana di ciascuno di noi sono oggi numerosissime. Il Machine Learning in ambito produzione non può basarsi solo su un buon modello, ma deve tenere conto di esigenze e problematiche specifiche e di come esse mutano nel tempo. Controllo costante e capacità di reazione diventano così fondamentali per operare con successo in quest’ambito.
Il Machine Learning (ML) è la scienza usata per rendere i computer in grado di eseguire determinate azioni senza essere programmati esplicitamente. Nel corso degli ultimi anni, il ML ha permesso di realizzare diverse interessanti applicazioni: ne sono degli esempi le automobili a guida autonoma, il riconoscimento vocale, le ricerche sul web e lo sviluppo di diversi algoritmi, come quelli orientati ai suggerimenti di acquisto online, basati su avanzate e dettagliate conoscenze dell’essere umano, in particolare per quanto riguarda le abitudini.
Il Machine Learning oggi è talmente diffuso che probabilmente lo usiamo decine di volte al giorno senza esserne consapevoli.
Ad esempio, ogni volta che facciamo una ricerca su Google (o su qualsiasi altro motore di ricerca) questo funziona perché il ML Team che lavora alle sue spalle ha immaginato una maniera accurata per etichettare le varie pagine web e identificare in maniera efficiente il loro contenuto specifico. Quando Facebook (o qualsiasi app di raccolta foto) riconosce i volti presenti nelle immagini, questo avviene grazie al ML. O ancora, ogni volta che un filtro anti-spam interviene sulle nostre mail in entrata, questo è possibile grazie al ML, perché il computer ha imparato a distinguere le mail di spam da quelle che non lo sono.
Esiste una vera e propria scienza mirata a ottenere computer in grado di apprendere senza essere programmati esplicitamente: un esempio molto accattivante riguarda un progetto di ricerca mirato a creare dei robot in grado di riordinare la casa. Come è possibile? Essenzialmente occorre fare in modo che il robot veda un essere umano eseguire tale attività e che apprenda da esso: osservazione dopo osservazione, sarà così in grado di fare la stessa cosa anche in autonomia.
Altre applicazioni basate sul ML si osservano nell’ambito della Computer Vision, ad esempio per il riconoscimento di guasti di prodotti sui fine linea; in ambito medico, ad esempio per le diagnosi automatiche di alcune malattie; o ancora in applicazioni audio, nelle analisi avanzate dei database ecc.
Il concetto fondamentale alla base del ML è che costruendo macchine realmente intelligenti, esse potranno fare quasi tutto quello che noi umani possiamo fare.
In molti ipotizzano che la strada migliore per ottenere progressi in questo campo sia attraverso algoritmi di apprendimento chiamati Reti Neurali (Neural Network), che simulano realmente il modo in cui il cervello umano funziona, attraverso appunto le reti neurali cerebrali. Il ML, infatti, può essere considerato una branca dell’intelligenza artificiale (AI) volta a creare sistemi che apprendono o migliorano le loro capacità in base ai dati che raccolgono, simulando l’intelligenza umana. Il Deep Learning (DL), invece, è una sottocategoria del ML: il DL è l’apprendimento da parte delle macchine attraverso dati appresi grazie all’utilizzo di algoritmi. Il ML, in generale, comprende invece sia questo metodo di apprendimento, sia quelli basati sull’assimilazione di rappresentazioni di dati. Il DL si basa quindi su diversi livelli di apprendimento, dove i concetti di alto livello sono definiti sulla base di quelli di livello inferiore. In sostanza, quindi, con l’apprendimento profondo, le reti neurali artificiali sono organizzate in diversi strati: passando a quelli successivi, l’informazione viene elaborata in modo sempre più completo.
Un ambito applicativo interessante del ML è quello della produzione, che introduce varie problematiche specifiche a seconda del caso in esame.
Quando si parla di Machine Learning in ambito produzione, l’obiettivo è definire, implementare e risolvere i vari componenti implicati nell’ambito specifico, in modo da ottenere modelli che ben rispondano alle esigenze specifiche del caso, necessari per definire in maniera efficiente l’applicazione stessa. Tutto ciò ha un impatto significativo su diversi aspetti, come lo scoping generale del progetto e la gestione dei dati: dalla loro rilevazione in base ai requisiti, alla loro rilevanza per l’obiettivo che si vuole ottenere, dalle strategie di creazione dei vari modelli, ai vincoli e alle richieste dello sviluppo dell’intero sistema nella sua globalità.
Tutti questi aspetti dipendono in maniera significativa dall’ambito applicativo in esame e sono spesso (se non quasi sempre) temporalmente variabili. Per questo motivo, tutte le variabili in gioco sono soggette a continue verifiche mediante test di affidabilità e, di conseguenza, a miglioramenti e ottimizzazioni dei vari parametri. Questi aspetti sono fondamentali per seguire l’evoluzione del sistema nelle applicazioni di Machine Learning in ambito produzione e per mantenere sempre un livello accettabile di precisione delle previsioni realizzate dal modello sviluppato.
Per lavorare in ambito AI, comprendere i concetti di ML e DL è essenziale, ma sono necessarie anche competenze e capacità nell’ambito della Production Engineering.
Il Machine Learning Production Engineering combina i concetti fondamentali del ML con l’esperienza funzionale dei moderni sviluppi software e delle ingegnerizzazioni specifiche, che aiutano nello sviluppo delle abilità Production-Ready, ovvero pronte per essere applicate alla produzione.
Esistono numerosi esempi di applicazione in ambito produttivo, come la Computer Vision per Product Inspection, ovvero l’analisi di eventuali difetti dei pezzi sulle linee di produzione, e varie applicazioni web come Web Search, Product Recommendation, Speech Recognition, filtri anti-spam, protocolli anti-frode per l’utilizzo delle carte di credito, robot collaborativi ecc. È evidente come, se un modello fallisce, si rischia nel primo caso il blocco di una linea di produzione, mentre nel caso di servizi via web si perdono clienti: se, per esempio, il Web Search o lo Speech Recognition falliscono le loro predizioni, il committente non sarà soddisfatto del lavoro, anche se sulla carta il modello aveva una precisione molto elevata.
Occorre poi ricordare che, quando si parla di Machine Learning in ambito produzione, le problematiche da affrontare sono spesso mutevoli nel tempo, sulla base di due concetti differenti.
Il primo concetto può essere spiegato, per esempio ma non solo, col cambiamento da parte degli utenti nell’utilizzo del web. In questo senso, per esempio, la pandemia da Covid-19 ha fatto da spartiacque, perché ha cambiato radicalmente l’uso del web: basti pensare all’aumento nel numero di accessi giornalieri di ogni singolo utente durante la pandemia. Per comprendere l’impatto di questo evento sui sistemi, possiamo considerare ad esempio che una possibile metrica per rilevare l’uso fraudolento delle carte di pagamento online era il numero di utilizzi giornalieri di quella carta. Durante la pandemia, a causa del cambiamento nelle abitudini di acquisto, questa metrica è diventata irrilevante se non addirittura fuorviante, portando a previsioni che, sebbene prima potevano essere corrette, risultano ora errate. Si parla in questo caso di Concept Drift: a cambiare è il modello alla base della predizione, perché cambia il modo in cui il sistema viene utilizzato.
Il secondo concetto è invece legato al cambiamento delle “condizioni al contorno” del problema analizzato. Si pensi ad esempio a una linea di produzione in cui, per un qualunque motivo, varia l’illuminazione dell’ambiente o addirittura cambia la videocamera di rilevazione degli oggetti che transitano sulla linea stessa. È evidente come, in queste condizioni, le immagini che vengono rilevate dal sistema per predire se un pezzo possa andare in produzione o sia difettoso cambiano radicalmente e risultano diverse dalle immagini con cui il modello è stato costruito e “addestrato”. Si parla in questo caso di Data Drift, perché cambiano i dati che arrivano al modello predittivo in fase di Serving (predizione). Di conseguenza tutti o molti dei dati usati in fase di Training, cioè durante l’addestramento dell’algoritmo di predizione, non sono più attendibili e il modello fallisce nel prevedere i nuovi dati che riceve.
In produzione, ottenere un modello con affidabilità elevata (almeno sulla carta) spesso non è sufficiente per ottenere il risultato desiderato.
Quando si parla di Machine Learning in ambito produzione si deve infatti tenere conto delle esigenze e delle problematiche specifiche della produzione in oggetto: avere un buon modello può impattare per “solo” il 50% sulla risoluzione del problema globale.
Questo non significa che non sia necessario avere un buon modello, ma che esso deve anche rispondere ai vincoli e alle esigenze del committente: per questo, in una fase iniziale di brainstorming tra il ML Team e gli esperti della produzione, è utile avere un confronto con gli esperti del settore per cui si sta sviluppando. Questo consente di comprendere tutti gli aspetti in essere, per cercare un equilibrio tra le esigenze delle due parti in gioco. Inoltre, come visto, poiché dati e modelli possono cambiare nel tempo, bisogna stabilire delle metriche per rilevare continuamente l’accuratezza e l’affidabilità del sistema: è necessario introdurre controlli a tutti i livelli, per rilevare immediatamente se qualcosa cambia e reagire rapidamente aggiornando il modello in uso. Solo in questo modo è possibile mantenere nel tempo delle buone performance.