Indice Show
Il Machine Learning (ML) è uno degli strumenti più attuali nell’ambito della ricerca scientifica. Mediante una semplice ricerca su Google, alla parola Machine Learning corrispondono circa 2.330.000.000 risultati.
In un precedente articolo (Machine Learning: una breve introduzione) mi sono occupata di descrivere cos’è il Machine Learning. In questo, intendo invece concentrarmi sui pericoli di un errato approccio al Machine Learning e sui primi cinque essenziali punti del processo di validazione.
Non vi è dubbio che l’intelligenza artificiale è affascinante ed utilissima in molti ambiti di ricerca. Tuttavia una fiducia sconfinata nelle sue autonome capacità di gestione senza delle ottime conoscenze – specialmente di natura matematica – e la mancanza di supervisione esperta e ragionata da parte dello sperimentatore, possono generare enormi distorsioni.
Machine Learning: il percorso di apprendimento
Il Machine Learning è un metodo di investigazione dei dati tra i più affascinanti. Esso coniuga il metodo formale della ricerca scientifica con il sistema, tutt’altro che schematico, del metodo di apprendimento umano. Sostanzialmente tenta di replicare in ambito informatico ciò che avviene nel processo di apprendimento naturale.
Pensa ad esempio al modo in cui uno studente apprende: egli seguendo il suo insegnante, è indotto a sviluppare un proprio sistema di conoscenze fondandosi sulle nozioni, i contenuti e i metodi di ragionamento dell’insegnante stesso.
In modo analogo il Machine Learning insegna ad un algoritmo ciò che l’insegnante trasmette. L’insegnante in questo caso è lo sperimentatore. Egli addestra l’algoritmo affinché quest’ultimo svolga determinati compiti e sopratutto preveda in modo accurato cosa può accadere.
Machine learning e matematica
Nell’ambito dell’apprendimento umano, uno studente impara una variabile parte di ciò che l’insegnante trasmette. Ed allora, affinché ciò si verifichi, occorre che il sapere dell’insegnante sia molto ampio e specializzato. Un insegnante con ridotte conoscenze potrà trasmettere ad uno studente un sistema di conoscenze limitato.
Tale meccanismo agisce anche e sopratutto nel Machine Learning. Per poter addestrare un sistema di apprendimento per la creazione di un algoritmo, le conoscenze dell’addestratore devono essere molto ampie e specializzate.
Secondo un brocardo latino in voga in ambito giuridico “Nemo plus iuris ad alium transferre potest quam ipse habet”, nessuno può trasferire ad altri maggiori diritti di quanti ne abbia egli stesso. In analogia nell’insegnamento sia umano che in ambito di Machine Learning, nessuno può trasferire ad altri maggiore conoscenza di quanto egli ne abbia. Questo significa che addestrando un sistema di Machine Learning lo sperimentatore non si trova solo di fronte a un problema computazionale o di esecuzione di uno schema logico, ma di fronte al ben più ampio problema della necessità di conoscenza matematica, base degli algoritmi.
A ciò si aggiunge che quando interrompiamo il lavoro di addestramento, il sistema non apprende nulla, a differenza di quanto avviene con l’essere umano che continua sempre a sviluppare per proprio conto i concetti appresi; si comprende dunque come la progettazione di uno studio di Machine Learning non può essere fondata unicamente sulla quantità di informazioni che forniamo o sulla presenza di un dataset più o meno corposo. La progettazione è un processo molto più complesso in cui lo sperimentatore è chiamato in prima persona a mettere a disposizione il proprio bagaglio di conoscenze specifiche ed in primis quelle matematiche.
Il ruolo dello sperimentatore
A differenza della statistica, il Machine Learning va a caccia di formulazioni matematiche, la cui complessità varia a seconda della complessità dell’algoritmo. Dall’inizio alla fine del processo le procedure di Machine Learning giocano con la matematica. L’algoritmo non conosce a priori la formulazione matematica, ma la deriva dopo aver visto i dati.
La realtà viene spiegata da formulazioni matematiche che gli algoritmi trovano e rendono vantaggiose per la spiegazione e previsione della realtà stessa.
Da qui si apre la mia consueta domanda sulla matematica. Un algoritmo di Machine Learning appare appropriato: come si fa a capire se esso lo è realmente? Esattamente come uno studente ha bisogno dell’insegnante per distinguere ciò che è giusto e ciò che non lo è e per identificare e correggere gli errori, naturali e per molti versi necessari per apprendere, allo stesso modo un algoritmo necessita dello sperimentatore per apprendere in modo corretto. Il solo cliccare sul tasto “Run” dei software attualmente disponibili o l’implementare un codice, non fa di un algoritmo un qualcosa di realmente valido per spiegare la realtà osservata. Mancanza di dati, rumori di fondo (famosi noise), errori od osservazioni distorte tramutano in un batter d’occhio un algoritmo di Machine Learning in un disastro informatico e ancor peggio in un nulla di fatto per la ricerca scientifica.
Cani, gatti e machine learning
Prima di presentarti le prime cinque domande chiave della validazione di un algoritmo, voglio farti capire quali rischi possa comportare un’applicazione non corretta delle tecniche di Machine Learning.
Supponi di voler addestrare un computer a riconoscere le immagini di cani e gatti. In particolare, immagina di voler creare un sistema di classificazione che sia in grado di far sì che il computer distingua in modo appropriato la foto di un cane da quella di un gatto.
La procedura per far ciò prevede che disponiamo di una serie di fotografie di cani e di gatti e che addestriamo (dataset training) il sistema affinché identifichi un algoritmo idoneo a distinguere tra la fotografia di un cane e quella di un gatto. In particolare, durante l’apprendimento spieghiamo al sistema attraverso un insieme di features come sono fatti rispettivamente un gatto ed un cane. Dopo aver identificato l’algoritmo secondo noi più accurato, lo testiamo. Siamo pertanto pronti, a fronte di una nuova fotografia, di sapere dal computer qual è la probabilità che la foto ritragga un cane o un gatto.
Sembra un meccanismo molto facile: addestro, testo e utilizzo.
Cosa succede di fronte al terzo incomodo?
Caratteristiche anatomiche ritratte in foto ben definite aumentano l’accuratezza della risposta. Ciò non è però sempre possibile: confusione può sorgere nel caso in cui la foto non sia ben definita o il gatto abbia assunto per l’occasione della foto una posa differente rispetto a quella conosciuta dall’algoritmo. Per esempio, la coda abbassata e non alzata. Oppure il pelo alzato per la paura. Ma ci può essere una situazione ancora più strana: Come risponde il sistema se la foto rappresenta un cucciolo di tigre?
Secondo l’impostazione dell’apprendimento, un gatto è fatto di quattro zampe, una coda, i baffi, un pelo molto folto, un nasino schiacciato, delle unghie affilatissime, un corpo particolarmente agile e con una dimensione entro certi limiti. Beh, l’algoritmo è addestrato su montagne di dati con cani e gatti e non sa nulla delle tigri. Durante la fase di apprendimento, lo sperimentatore ha posto il problema ed ha fornito gli esempi: l’algoritmo ha appreso solo quello che gli è stato permesso di analizzare e nel caso in cui le “carte” cambiano non è più in grado di trovare una soluzione.
Validazione: elemento chiave del machine learning
Come uscire da questo pericoloso loop di cani, gatti e tigri? Il passo successivo all’apprendimento e al test è la validazione dell’algoritmo. Validare significa verificarne la validità. Per poter far ciò bisogna rispondere preliminarmente ai seguenti cinque quesiti:
- Qual è la qualità delle informazioni offerta al sistema di addestramento?
- I dati forniti sono affetti da qualche forma di bias?
- Quanto è effettivamente possibile generalizzare i dati?
- L’addestramento è avvenuto con dati passati? Possiamo affermare che il comportamento sarà similare nel futuro? Qual è il livello d’incertezza che siamo disposti ad assumere?
- La formulazione matematica identificata descrive effettivamente la realtà?
Rispondendo a queste prime cinque domande è possibile ridurre il rischio che il sistema scambi un cucciolo di tigre per un bellissimo gatto o addirittura per un cane un pò strano.
Troviamo l’equilibrio
La risposta a queste cinque domande preliminari potrebbe far dunque propendere lo sperimentatore verso l’aumento del numero dei casi e delle informazioni: più il sistema riceve informazioni, più l’algoritmo sarà in grado di discriminare correttamente tra cani e gatti.
Soluzione facile, ma non percorribile. Esattamente come succede nel caso dell’apprendimento di uno studente: riempire lo studente di informazioni dettagliate è controproducente.
Occorre dunque trovare il giusto bilanciamento tra semplicità e complessità identificando quale tra gli algoritmi possibili è quello più idoneo alla previsione. Algoritmi troppo semplici perdono informazioni, mentre algoritmi troppo complessi producono overfitting.
Come scegliere quello più adatto? Nel caso del machine learning non è vera la regola che il modello più semplice è quello più appropriato: la soluzione più semplice è preferibile a una complessa solo se essa produce lo stesso risultato. Come diceva Albert Einstein: “Tutto dovrebbe essere reso il più semplice possibile, ma non più semplice”.
Conclusione
L’algoritmo finale di Machine Learning è il risultato di un approccio integrato tra diverse discipline. A differenza di ciò che accade negli studi clinici o osservazionali in cui lo sperimentatore pone un’ipotesi e si fa guidare dai risultati, il Machine Learning consente di porre un’ipotesi senza tuttavia permettere di conoscere un approccio a priori. Ogni risultato è frutto di apprendimento, test e validazione, processo senza il quale il Machine Learning perde significato.
Le formulazioni matematiche assumono un ruolo predominante: sono originate dai dati e sono supportate dalla validazione. Nel Machine Learning sembra che la matematica venga meno alla sua promessa di assoluta imparzialità. Non è ovviamente così: le formulazioni matematiche restano imparziali, ma al contempo si adattano per creare quella magia esclusivamente matematica di poter spiegare il mondo reale attraverso semplici notazioni.