Logo U-Hopper
Indietro a tutti gli articoli

Data annotation e capacità di apprendimento: i retroscena di un progetto di Machine Learning

Data annotation e capacità di apprendimento: i retroscena di un progetto di Machine Learning
Artificial Intelligence

Sebbene l’accesso ad una grande mole di dati sia il presupposto fondamentale per la buona riuscita di un progetto di Machine Learning, disporre di un dataset annotato è sicuramente un aspetto che ne facilita il successo. In questo articolo proviamo a spiegare in cosa consiste l’annotazione e quale aspetto importantissimo essa determina all’interno di un progetto di Machine Learning.

In cosa consiste l’annotazione dei dati e perché è importante

Il funzionamento dei sistemi di Machine Learning (ML) è legato alla loro capacità di apprendimento, cioè l’abilità di individuare correlazioni all’interno dei dati a loro forniti e trarne delle regole per completare una certa attività.

Per questo motivo, l’accesso ad una grande mole di dati rappresenta un importante punto di partenza nella realizzazione di un sistema di ML : più dati sono disponibili, più accurati saranno l’apprendimento e la performance. Tuttavia, ancora più importante della quantità, è la disponibilità di dati di qualità, cioè puliti e, possibilmente, annotati.

Disporre di un dato annotato significa disporre di un dato a cui è associata una label, ossia un’etichetta, la quale fornisce delle informazioni importanti riguardanti il dato stesso. Per esempio, un dato annotato fornisce dettagli sul suo significato in un determinato contesto, sulla sua classificazione o informazioni circa la sua lettura; in questo modo, la macchina è in grado di analizzare facilmente il dato e utilizzarlo come base di apprendimento.

Infatti, l’annotazione dei dati determina la tipologia di apprendimento che sarà utilizzata dal sistema di Machine Learning: quando si ha a disposizione un dataset annotato si utilizza un approccio chiamato apprendimento supervisionato (supervised learning); al contrario, se è presente un dataset non annotato si utilizza una tecnica chiamata apprendimento non supervisionato (unsupervised learning).

In cosa consiste l’apprendimento supervisionato (supervised learning)?

Immaginiamo di avere un dataset annotato di foto: alcune ritraggono cani e sono state classificate con l’etichetta “cane”, mentre altre ritraggono gatti e sono classificate con l’etichetta “gatto”. L’obiettivo è insegnare ad un sistema di ML a distinguere autonomamente le due specie. Quello che dovremo fare sarà mostrare le foto annotate al modello di ML, il quale cercherà dei pattern, cioè delle somiglianze, tra le foto che gli abbiamo detto appartengono alla categoria “cane”, e altre tra quelle della categoria “gatto”. In questo modo, il sistema sarà in grado successivamente di predire a quale categoria appartiene una nuova foto di un cane o di un gatto diversa da quelle presenti nel dataset.

E l’apprendimento non supervisionato (unsupervised learning), invece?

Se invece abbiamo un dataset non annotato e quindi non siamo in grado di dire al modello a quale categoria appartiene ciascuna foto del dataset, significa che non possiamo più parlare di supervised learning, bensì di unsupervised learning. Quest’ultimo approccio prevede l’utilizzo di tecniche diverse, solitamente più complesse proprio perché è il modello di ML a dover scoprire le possibili annotazioni. Il concetto alla base è lasciare che l’algoritmo trovi da sé le caratteristiche con le quali raggruppare i dati per somiglianza, creando solitamente “gruppi di dati” (cluster) simili tra loro.

Ma se esistono delle alternative al supervised learning, allora perché annotare i dati?

La risposta è semplice: gli algoritmi di ML basati su un approccio di tipo supervised learning ottengono generalmente performance migliori e, soprattutto, in un tempo minore.

D’altro canto, in certe situazioni l’approccio unsupervised learning è preferibile. Un esempio di applicazione è l’individuazione delle frodi su carte di credito: le transazioni fraudolente sono, generalmente (e fortunatamente!), in numero minore rispetto a quelle normali. Sfruttando un approccio supervised, il sistema di ML farebbe fatica a classificare nuove frodi a causa del numero insufficiente di dati etichettati come “frodi” da cui apprendere. L’impiego dell’approccio unsupervised, invece, permette al sistema di ML di osservare i dati nella loro totalità, e di raggruppare autonomamente i casi tra loro più simili all’interno dataset in modo da definire le proprie “regole” con cui analizzare e classificare future transazioni.

Sebbene il controllo e la precisione sui risultati sia minore rispetto all’approccio supervisionato, in questo caso l’approccio non supervisionato è più opportuno perché in grado di scovare tutte le eventuali tipologie di frodi che si possono verificare (comprese quelle che non si sono mai presentate in precedenza).

Per usare una similitudine, nell' apprendimento supervisionato noi siamo l’insegnante e l’algoritmo è l’alunno che impara la definizione di “frode” da noi fornita. Tuttavia, nel momento in cui l’alunno si trova di fronte ad una nuova versione di frode mai vista, sarà piuttosto improbabile che sia in grado di riconoscerla perché non rispetterebbe la definizione appresa. Nell’apprendimento non supervisionato, invece, l’alunno non ha una definizione da usare per valutare se una transazione è fraudolenta o meno, quindi raggrupperebbe transazioni simili tra loro in più gruppi e classificherebbe le frodi come transazioni diverse rispetto a quelle avvengono con più frequenza.

Il meglio dei due mondi

Come è facile intuire, entrambi gli approcci presentano pro e contro non indifferenti. Se per certe casistiche l’unsupervised continuerà ad essere l’unica strada percorribile, per altri esso potrà venire in soccorso del supervised. Infatti, annotare un dataset è un’operazione che richiede un tempo tanto maggiore quanto più è grande il dataset; questo è il motivo per cui, in un futuro che prevede una produzione sempre maggiore di dati, sarà più usato un approccio di tipo semi-supervised. Stanno emergendo, infatti, delle tecniche che riescono a combinare i vantaggi di entrambi gli approcci, richiedendo solamente l’annotazione di una parte, anche piccola, del dataset. In questo modo, è possibile fornire sia conoscenze specifiche di settore ai data scientist che sviluppano il modello, sia una minima base di apprendimento al modello stesso.