Umano vs Macchina
Ascolta l'articolo
Introduzione
Nello scorso articolo si diceva: macchina vs umano 90 a 90 … sì, ma non è la fine del discorso. Dopo esserci dati la nostra brava spiegazione ed aver messo a riparo la nostra “macchina” dalle possibili critiche (“se neanche tra addestratori riusciamo a metterci d’accordo, come possiamo pretendere che la rete faccia meglio”?), ci sembrava che ci fosse ancora qualcosa da capire meglio e, soprattutto, volevamo capire come migliorare, anche perché oramai si trattava di mettere il sistema in produzione: ok, il 90% ci basta, ma già sappiamo, se n’è parlato in uno scorso articolo, che c’è sempre il rischio di una degradazione delle prestazioni, quindi è opportuno cercare di migliorare.
Nuova Esigenza del Cliente
Ancora una volta, ci è venuto in soccorso il cliente (quando si dice che tra cliente e fornitore bisogna creare una partnership …), tra l’altro tirando fuori una nuova esigenza:
[cliente] ora che abbiamo una discreta capacità di riconoscere puntualmente se in una foto si vede un difetto o no, quello che vorremmo sapere è se un lotto di materiale sia buono oppure no.
[fornitore] ma certo: che problema c’è? Analizzando i risultati puntuali relativi ad ogni foto, che sono già classificate col nome del lotto, siamo sicuramente in grado di dare una valutazione complessiva: diteci come fate voi attualmente a dare questa valutazione.
[cliente] ah, beh, è semplice: un nostro tecnico guarda il prodotto (non le singole fotografie, ndr) ed esprime un giudizio di conformità sul lotto.
[fornitore] ottimo: dateci questi giudizi e noi cercheremo di trovare i giusti pesi da dare alle valutazioni sulle singole fotografie per ottenere la valutazione del lotto.
Problemi di Valutazione
La cosa continua secondo “copione”, ci danno le valutazioni dei vari lotti e noi le mettiamo a confronto con le valutazioni date da umani e macchina per trovare l'”algoritmo” di validazione del lotto. Solo che, tanto per cambiare … c’è qualcosa che non torna 🙁. Mentre in generale, tutto sommato, le cose vanno abbastanza bene, ci sono due punti che attirano la nostra attenzione.
Valutazione delle Non Conformità
Il primo è che le valutazioni di non conformità dei lotti sono poche (di per sé è una buona notizia: vuol dire che la produzione procede bene), ma proprio su quelle la valutazione della macchina sembra poco precisa, quando invece l’obiettivo è proprio che la maggior precisione la si vorrebbe sui lotti non conformi, anche al costo di avere un numero maggiore di “falsi positivi“. Questo è un super classico della valutazione automatica dei difetti: se la macchina segnala un difetto che non c’è (falso positivo), è un piccolo fastidio abbastanza sopportabile: si fa un ulteriore controllo e si aggiusta il giudizio.
Se invece il difetto c’è e non viene visto, allora possono essere guai seri, il difetto entra magari in un semilavorato che finisce in un prodotto, che viene venduto … e solo a quel punto il prodotto si rivela non conforme: figuraccia col cliente, risarcimento o intervento in garanzia, comunque costoso, “brand” deteriorato! Il problema è se, come è capitato in questo caso, per evitare i falsi negativi generi una marea di falsi positivi, che singolarmente saranno anche solo piccoli fastidi, ma presi tutti assieme …
Concentrazione degli Errori in un Mese Specifico
Il secondo è che le valutazioni di non conformità, e quindi gli errori nella valutazione fatta sula base delle valutazioni puntuali, umane o della macchina, erano molto concentrate in un mese specifico. Domandiamo: “non è che in quel mese è successo qualcosa di particolare”? Risposta: “no: probabilmente ci sono semplicemente arrivati dei lotti di materiale difettosi; è proprio quello che vorremmo che il sistema ci aiutasse ad individuare”.
Eh, sì: ma allora perché la cosa non traspare dalle fotografie? Bisogna andare più a fondo. A questo punto organizziamo una riunione in cui sono presenti un po’ tutti gli attori e cerchiamo di mettere al vaglio le possibili ipotesi: quando viene fatta la valutazione complessiva si prendono in esame anche altre informazioni, che non traspaiono sule fotografie? Il famoso 90% (o meglio, il 10% che rimane) è in grado di offuscare il giudizio fino a questo punto? Nella valutazione umana entrano in ballo aspetti soggettivi non trasferibili ad una macchina (almeno fintanto che non sia in grado di vivere dei sentimenti)?
Collaborazione e Conclusioni
Anche qui, va sottolineato la collaboratività di tutti: poteva essere una specie di “caccia al colpevole”, macchina o umano che sia, mentre invece è stato sufficiente focalizzare il problema, “stringerlo all’angolo”, come dico io, che quando devo sintetizzare in poche parole il mio lavoro dico: “risolvo problemi”, per arrivare ad una conclusione banale, ma significativa e sicuramente molto più utile di un “capro espiatorio”: nel periodo in cui si sono rilevate le maggiori non conformità la persona incaricata aveva ricevuto l’indicazione di essere molto scrupoloso e, appunto, evitare il più possibile che ci fossero falsi negativi; questo aveva determinato un alto numero di falsi positivi che poi qualcun altro aveva ripreso in considerazione. Da questa esperienza, avevano poi deciso di dare delle valutazioni meno “severe”.
Umano o Macchina?
E quindi? Cosa è meglio: umano o macchina? La domanda, a mio avviso, è semplicemente sbagliata: umani e macchine hanno caratteristiche diverse, che si adattano a situazioni diverse e danno il loro meglio quando sono affiancati a svolgere un compito in cui ciascuno è messo in condizione di dare il meglio. Una “learning organization” è proprio un’organizzazione che fa questo e lo fa sempre meglio, perché impara sia da quello che fa in modo corretto, e lo ripete, sia da quello che fa in modo errato, e non lo ripete più, tra cui anche mettere o non mettere ciascuno nel ruolo che più gli è congeniale.
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!
L | M | M | G | V | S | D |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |