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!