machine learning

Il machine learning nel mondo reale

Ascolta l'articolo

Ci si chiede spesso, a volte con entusiasmo, a volte con paura, se il machine learning possa rendere le “macchine” più forti (e magari anche più cattive …. impresa veramente ardua … come anche essere più buone) degli esseri umani. La cosa è stata esplorata già molto tempo fa da scrittori e registi di fantascienza, con tutte le gradazioni del caso, che ne hanno tratto dei veri e propri capolavori, purtroppo non molto presi sul serio dalle “persone serie”.

La transizione dalla fantascienza alla realtà tecnologica

Oggi, però, con gli ultimi progressi tecnologici, stiamo passando dalla fase puramente artistico-speculativa a quella in cui bisogna prendere dei provvedimenti, e ovviamente, siamo in clamoroso ritardo rispetto al potenziale, costruttivo e distruttivo che sia, di queste tecnologie.

Il confronto nel lavoro quotidiano all’eLabor

Nel nostro piccolo, anche all’eLabor ci dobbiamo confrontare con questioni di questo tipo, anche se in realtà il tipo di lavoro che facciamo ci mette abbastanza al riparo dagli scenari distopici esplorati da molti autori che amo e, forse, potranno deludere un po’ le aspettative create dall’incipit di questo articolo (ma spero di no: in ogni caso, si tratta di portare la nostra “goccia” nel “mare” generale). L’esperienza che abbiamo fatto in quest’ultimo periodo è proprio di confronto, ed anche un poco scontro, tra valutazioni date da una rete neurale, quelle date dai suoi addestratori, e quelle date da una persona terza, che quasi nulla sa del processo di machine learning.

Il ruolo della “human level performance” nel machine learning

Ma andiamo con ordine: un elemento che nel machine learning ha un ruolo centrale è la cosiddetta “human level performance” (per gli amici, HLP), cioè il livello di accuratezza che uno specialista del settore, umano, è in grado di ottenere con le sua valutazioni, che, nel nostro caso, sono le valutazioni sulla presenza o assenza del difetto cercato. Nel ML “supervisionato”, la HLP si può considerare come il “sacro graal” che la macchina vorrebbe raggiungere, avvicinandosi a volte molto, a volte poco, ma praticamente impossibile da superare, anche perché chi può giudicare questo risultato se non un altro specialista umano?

Le sfide incontrate nel progetto e la ricerca di miglioramenti

Questa è per noi una guida ed un faro: nel nostro lavoro abbiamo, cosa che altri non hanno, un livello di riferimento preciso e affidabile: la HLP!

Ma siamo sicuri che non ci siano problemi? Verrebbe da dire: “siamo sicuri che ci sono”! Ed infatti, …

La sfida dell’overfitting nel machine learning

In un progetto su cui stiamo lavorando, quando eravamo ancora in “fase 2” (vedere articolo precedente), avevamo un problema: nonostante tutti gli sforzi, l’uso di modelli sofisticati, le combinazioni più ardite di “iperparametri”, le tecniche più sofisticate di “data augmentation”, l’ampliamento dei dataset utilizzati, l’allungamento degli addestramenti, l’uso di macchine più potenti, … non riuscivamo a portare la KPI che usiamo per valutare il processo oltre il 90%, mentre le nostre aspettative erano di poter arrivare al 95, forse al 98. Tanto per capirsi, il 100% sarebbe stata l’emulazione completa della HLP.

Quando credevamo di esserci riusciti … immancabilmente arrivava la doccia fredda della verifica successiva: si era trattato solo ed unicamente di un caso di “overfitting”. Se non conoscete tutte queste astrusità, potete scrivermi: sarò lieto di spiegarvele; ma per il momento penso che abbiate comunque capito il senso del discorso: le abbiamo provate tutte, senza riuscire a migliorare rispetto a questo risultato che ritenevamo scarso.

La riflessione e il supporto del cliente

Una nota molto interessante a latere di tutto il discorso che ci inorgoglisce per il tipo di rapporto che è stato creato col cliente: è stato lui che ci ha sollevato il morale dicendoci che tutto sommato per lui anche il 90% era un risultato positivo e che quindi voleva andare avanti!

L’importanza della stabilità nelle valutazioni

E avanti ci siamo andati, ma ci è rimasto il tarlo di questo “insuccesso”. Ad un certo punto, qualcuno ha ipotizzato, ma siamo sicuri che le persone che hanno dato le valutazioni siano state precise e soprattutto “stabili” nel tempo, perché, se ad immagini che hanno lo stesso livello di difettosità una volta si dice “difetto” ed un’altra volta “no”, è chiaro che poi anche la macchina possa confondersi.

E così abbiamo deciso: andiamo avanti, sì, perché stiamo facendo un progetto industriale, non di ricerca, e l’obiettivo è portare valore al cliente, ma siccome questo valore non lo vogliamo portare solo a questo cliente, ma anche agli altri, e, se possibile, gliene vogliamo portare ancora di più, vogliamo capire. Ecco che da quel momento in avanti abbiamo modificato ADR-Flow, il nostro software, per non confrontare solo il giudizio umano e quello della rete, ma avere la possibilità di confrontare anche i giudizi di diverse persone (e quello di diverse reti).

Il confronto tra valutazioni umane e sistemi automatizzati

Quando abbiamo avuto sufficienti dati raccolti in questo modo abbiamo visto che in effetti persone diverse davano giudizi diversi e confrontandoli tra loro si arrivava proprio, nel caso migliore, a quel fatidico 90%, che era quindi quello il nostro HLP di riferimento.

Machine vs human

Partita pari, quindi? Machine vs human 90 a 90?

In un certo senso sì … ma non proprio … quello che abbiamo scoperto dopo, però, ve lo racconto la prossima volta. Se avete resistito fin qui … sappiate che il bello deve ancora venire!

Transfer Learning

Ascolta l'articolo

Oggi voglio entrare un po’ più nel profondo di un aspetto tecnico, che ha grosse ripercussioni sulle possibilità, oggi, anche di una piccola o media azienda, di utilizzare tecniche di Machine Learning: il Transfer Learning.

Introduzione al Transfer Learning

Come al solito, per chi mi conosce, non parlo di cose dal solo punto di vista teorico e neppure di cose che stanno nell’ambito della ricerca avanzata: quello che mi interessa è far capire che queste tecniche sono veramente alla portata di chi vuole utilizzarle, soprattutto a livello industriale, che è l’ambito che mi interessa di più, e che, se anche non sono nuovissime, considerando la pazzesca velocità di evoluzione del campo, sono da una parte efficacissime e dall’altra ancora scarsamente utilizzate.

Importanza del Machine Learning

Qui però non si può fare a meno di parafrasare il famoso motto creato a suo tempo da Andrew Clay Shafer (“you are either building a learning organization or you will be losing to someone who is” ), che rimane certamente valido: o ti metti ad utilizzare il machine learning o verrai battuto da chi lo sta facendo”. Sarebbe interessante esplorare la relazione tra learning organization e machine learning … ma lo faremo un’altra volta.

Cos’è il Transfer Learning?

Dicevamo “Transfer Learning”: sostanzialmente significa utilizzare un modello di calcolo sviluppato per fare una certa cosa … per farne un’altra. La cosa può essere abbastanza sorprendete: “Ofelee fa el to mesté”!, recita un mai abbastanza ascoltato proverbio milanese; per i non iniziati ai misteri padani: “pasticcere, fa il tuo mestiere”, o, in altri termini, ciascuno faccia quello che è davvero capace di fare … non pretenda di fare o di metter becco in quello che fanno altri, più preparati di lui.

Perché mai un modello matematico addestrato per fare una cosa dovrebbe riuscire a farne bene un’altra?

Provo a partire da un esempio di atletica che mi ricorda la mia gioventù: c’era un campione di corsa italiano, anche se nato in Sudafrica (forse mi era già partito il “mal d’Africa” …), di nome Marcello Fiasconaro: era uno splendido corridore sui 400 metri piani, in Italia dominava a suon di record, ma coi campioni mondiali … non c’era storia. Ad un certo punto, il suo allenatore si accorse che in realtà, pur non riuscendo a raggiungere le vette di velocità degli specialisti americani, aveva più resistenza. Cambiò specialità, passò a correre gli 800 metri e fece sfracelli; il suo record mondiale strabiliò il mondo e resistette per moltissimi anni. Il punto è che l’allenamento fatto per lunghi anni sulla corsa più veloce, sommata alle doti di resistenza sviluppate successivamente, hanno prodotto una combinazione vincente: evidentemente anche la saggezza milanese ha i suoi limiti.

Si, vabbé … ma il machine learning cosa c’entra?

Reti Neurali e Generalizzazione

Qui bisogna introdurre un altro elemento: il modelli di machine learning che si usano oggi sono principalmente reti neurali profonde: si tratta di modelli molto complessi, anche senza arrivare agli LLM, e necessitano di incredibili moli di dati e di potenza di calcolo per essere addestrati: sicuramente una PMI non ha le risorse per farlo.

Tuttavia, questi modelli hanno anche la straordinaria capacità di “generalizzare”, cioè di saper interpretare anche dati che non hanno mai visto (altrimenti non servirebbero a nulla). Possiamo sfruttare queste doti, prendendo un modello addestrato da altri, ne esistono tantissimi, provare ad aggiungerci degli altri “strati” e ad addestrare solo quelli, poi magari anche fare quello che viene chiamato “fine tuning”, cioè completare l’addestramento di tutta la rete con i dati che ci interessano, ma partendo da quello che già c’è, senza doverla addestrare da zero.

Vantaggi del Transfer Learning

Con questa tecnica, abbiamo ottenuto (non solo noi, ovviamente, ma anche noi) risultati sorprendenti anche a partire di poche migliaia di fotografie che mostrano difetti di produzione, raggiungendo in qualche caso precisioni di riconoscimento superiori al 99% (beh … solo qualche volta, ma è successo davvero; in molti altri casi abbiamo comunque raggiunto precisioni molto buone, considerate tali non da noi, ma dai nostri clienti).

Siete sicuri di non volerci provare?

Ottobre 2025
L M M G V S D
 12345
6789101112
13141516171819
20212223242526
2728293031  
Archivi

Categorie