Data Scientist: gli alchimisti dei nostri giorni

«…non posso evitare di pensare agli antichi alchimisti medioevali quando penso ai Data Scientist e alla loro missione di trasformare in oro…i dati». Un data scientist non è ‘solo’ un fisico o un matematico che sa sviluppare codice in Python. Un data scientist affina le sue competenze caso dopo caso, certamente attingendo da best practice esistenti, ma sicuramente anche esplorando nuove vie per risolvere problemi noti

Pubblicato il 10 Set 2019

Data Scientist come antico alchimista

“…la stretta scala a chiocciola finiva in una stanza più ampia, appena illuminata da poche torce appese alle pareti di mattoni nudi. Due tavoli al centro della stanza traboccavano di alambicchi alchemici dalle fogge più strane. Mortai e pestelli, oggetti ritorti in rame, piccole fiaschette contenenti piombo, solfuri e mercurio ed altri recipienti per la distillazione, erano allineati su vecchie mensole di legno. La debole luce che emanava da un piccolo orciolo riscaldato, filtrava da una bottiglia di Spiritus Vini creando strani effetti di luce traballanti sui muri, mentre vapori di solfuro trasformavano mercurio liquido in un solido grumo giallognolo…molto simile all’oro”.

Anche se sono passati secoli da quando si cercava di trasmutare il metallo in oro, anche se le nostre conoscenze scientifiche sono infinitamente più vaste e approfondite in tutti i campi, e alambicchi e orcioli sono stati sostituiti da strumentazione tecnologica di altissima precisione, non posso evitare di pensare agli antichi alchimisti medioevali quando penso ai Data Scientist e alla loro missione di trasformare in oro…i dati.

La missione dei Data Scientist, tanto affascinante quanto complessa

Innanzi tutto, i Data Scientists devono comprendere la natura del problema da risolvere. Nell’ambito del machine learning ci sono essenzialmente 3 tipologie di problemi: Classificazione, Regressione e Clustering (raggruppamento).

Le attività di classificazione sono quelle in grado di assegnare la giusta classe di appartenenza a ciascuno dei dati in input. Una classe può essere rappresentata da una semplice etichetta come “si” o “no”, oppure “vero” o “falso” o dal nome della persona da associare al volto a cui appartiene.

Le regressioni sono simili alle attività di classificazione ma si ha a che fare con variabili continue invece che con categorie. Per esempio, insegnare ad un algoritmo a predire le variazioni di prezzo di un prodotto o servizio in base a specifiche circostanze esterne, è un problema di regressione.

I problemi di clustering che hanno a che fare con l’organizzazione dei dati in gruppi omogenei, sono più vicini al mondo tradizionale del data mining, dove la necessità è quella di analizzare dati sconosciuti al fine di identificare al loro interno schemi nascosti ricorrenti che consentano di formulare ipotesi e previsioni accurate, come ad esempio nel caso di raccomandazioni di acquisto per certi prodotti in base ai comportamenti e agli interessi dell’acquirente.

Una volta chiarito il problema da risolvere, il data scientist dovrà individuare la strategia di insegnamento più efficace da adottare. La scelta dipende da diversi fattori: quanti dati sono disponibili? Si dispone di un numero sufficiente di esempi già correttamente classificati ed etichettati? Esistono algoritmi o reti neurali che siano già state formate su dati simili? Come abbiamo già visto nel mio post precedente, le strategie di insegnamento più utilizzate, ma non sono le sole, sono due: Assistita e Non Assistita.

L’apprendimento assistito (Supervised learning) è la scelta migliore se si dispone di grandi quantità di dati già correttamente etichettati, un bel po’ di potenza di calcolo, e si ha a che fare con problemi di classificazione o regressione. L’apprendimento non assistito (Unsupervised learning) è invece la scelta più appropriata in caso di attività di clustering e scarsità di dati già correttamente classificati per la fase di training.

Ma la continua evoluzione offre nuovi spunti per nuove strategie di formazione.

È il caso del Transfer Learning che sfrutta l’apprendimento già effettuato su una rete neurale per classificare oggetti simili. Tutti i layer interni (hidden layers) della rete neurale vengono così trapiantati con tutto il loro patrimonio di valori e parametri faticosamente appresi in training precedenti ed innestati in una nuova rete neurale che dovrà rieducare solamente gli ultimi layer cosiddetti fully-connected. Per esempio, tutta la conoscenza di una rete neurale che abbia imparato a riconoscere immagini di gatti, potrebbe essere riutilizzata e adattata a riconoscere tutte le varie razze feline con uno sforzo molto minore.

Un altro approccio ci viene offerto dalle Deep Belief Networks, o DBN. Anche queste reti utilizzano reti neurali standard ma invece di inizializzare i parametri della rete in maniera casuale, le DBN vengono inizializzate da un processo di pre-training non assistito utilizzando data set non etichettati, dai quali è però possibile identificare dei pattern ricorrenti. Una volta finita la fase di pre-training i valori dei pesi e dei bias della rete saranno già molto più vicini ai valori ottimali, rendendo la fase di training assistito con back-propagation molto più veloce e molto meno esigente in termini di quantità di immagini etichettate di esempio necessarie.

Sia il transfer learning che le DBN, implementano strategie che permettono di ridurre drasticamente i tempi di apprendimento e la necessità di disporre di grandi e costosi volumi di dati correttamente classificati per la fase di training.

La scelta degli algoritmi

Infine, una volta identificati il problema da risolvere e la strategia di learning più adatta al contesto, il data scientist dovrà decidere quale, tra i tanti, sarà l’algoritmo che fornirà le migliori prestazioni.

Nel mio precedente articolo, ho introdotto le popolarissime reti neurali che possono essere configurate in vari modi: dalla loro forma più semplice ed essenziale rappresentata dai Multi-layer Perceptron, alla potente architettura delle Convolutional Networks fino la sofisticata complessità delle Recurring Neural Networks che, essendo specializzate nell’analisi di dati sequenziali dove ogni dato va analizzato tenendo conto di quelli che l’hanno preceduto, sono impiegate in ambiti che vanno dall’analisi degli andamenti di borsa, all’analisi semantica dei testi fino al riconoscimento della voce.

Ma le reti neurali e il Deep Learning fanno parte di un ricchissimo set di algoritmi di machine learning a disposizione dei data scientists, che possono essere impiegati per risolvere i problemi più disparati.
Gli algoritmi di regressione, per esempio, evidentemente specializzati nel risolvere problemi di regressione, sono generalmente veloci da configurare e particolarmente utili quando le relazioni da identificare non sono molto complesse e non si hanno a disposizione molti dati. La regressione lineare e logistica sono le forme più semplici di regressione.

Gli algoritmi di clustering, come suggerisce il nome, sono particolarmente efficienti nell’identificare e raggruppare dati simili tra di loro (cluster) in contesti di unsupervised learning, utilizzando tecniche di data mining e analisi statistica prestati al machine learning. K-Means e Hierarchical clustering sono tra gli algoritmi più utilizzati di questa categoria.

Gli algoritmi Bayesiani e i Decision Trees sono famiglie di algoritmi molto usati in contesti di supervised learning e problemi di regressione o classificazione perché offrono un approccio semplice ma potente al tempo stesso.

Questi sono solo alcuni esempi di tipologie di algoritmi di machine learning, tra le tante disponibili, dalle quali i data scientists devono selezionare l’algoritmo più adatto a risolvere, di volta in volta, il problema specifico.

E anche se esiste molta letteratura e tante linee guida su come i problemi, i dataset, le strategie di learning e gli algoritmi debbano essere selezionati per ottenere i risultati migliori, è anche vero che il machine learning non è una scienza esatta, evolve rapidamente ed è relativamente nuova. Ed è proprio questo aspetto di indeterminazione a richiedere una sperimentazione continua, spesso empirica, di nuove tecniche dove saggezza e puro intuito giocano un ruolo determinante, rendendo la missione dei data scientist simile ad un’arte, a volte così complessa e affascinante, da sembrare magica.

Un data scientist non è ‘solo’ un fisico o un matematico che sa sviluppare codice in Python. Un data scientist affina le sue competenze caso dopo caso, certamente attingendo da best practices esistenti, ma sicuramente anche esplorando nuove vie per risolvere problemi noti, combinando strategie di learning tra loro o creando inediti cocktail tra diverse classi di algoritmi per ottimizzare i dati e migliorare la qualità e le performance delle predizioni o classificazioni prodotte.

E, in maniera molto simile ai loro antenati alchimisti che con la loro appassionata e disperata missione di trasformare il metallo in oro, contribuirono a gettare le fondamenta della chimica moderna, i moderni data scientist, affinando le loro tecniche per estrarre sempre più valore dai dati, stanno gettando le basi per future generazioni di Intelligenza Artificiale.

***

Michele Vaccaro, Solution Consultant Director Europe South, Italy, Switzerland and Austria at OpenText

*Michele Vaccaro è Solution Consultant Director Europe South, Italy, Switzerland and Austria, di OpenText

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 3