Il processo di Data Science: modelli di machine learning in azione

Artificial Intelligence

,

Data Intelligence

Il processo di Data Science: modelli di machine learning in azione

Manuel Torres | Ago 05, 2019

Se hai seguito la nostra serie di articoli sul processo di Data Science, avrai letto ciò che alcune delle personalità più esperte del settore hanno scritto sul processo della scienza dei dati e su come affrontare con successo le tappe di questo percorso. Le fasi iniziali vengono spesso trascurate, ma sono fondamentali per il risultato complessivo e costituiscono la base per l’analisi e la progettazione delle soluzioni: senza un corretto inquadramento del problema, buoni dati (cioè dati affidabili e significativi), capacità di ascoltare con attenzione ciò che i dati hanno da dire, algoritmi e modelli di machine learning sono praticamente inutili.

Come dice Moustapha Cisse, responsabile del centro IA di Google ad Accra, in Ghana: «Se è vero che siamo quello che mangiamo, a volte nutriamo i nostri modelli di cibo spazzatura».

Supponendo di seguire una «dieta sana», una volta affrontate le problematiche incontrate nelle fasi precedenti, il nostro percorso giunge a un altro punto critico. L’apprendimento automatico è uno degli strumenti informatici più potenti disponibili e aiuta qualunque tipo di azienda ad analizzare le proprie prestazioni, ridurre i costi, massimizzare i ricavi e generare nuovi modelli di business.

Applicazioni del Machine Learning

Il machine learning consiste in una serie di tecniche che permettono ai sistemi informatici di prevedere, classificare, ordinare, prendere decisioni e in generale estrarre conoscenze dai dati senza bisogno di definire regole esplicite. Si tratta di un campo dell’intelligenza artificiale che ha lo scopo di insegnare ai computer ad eseguire compiti basati su esempi senza una programmazione definita. 

A causa della sempre maggiore complessità del business e della quantità di dati da analizzare, stiamo passando da un’intelligenza basata su regole a un’intelligenza basata sui dati, come illustrato nello schema che segue.   

Machine Learning: da un'intelligenza basata su regole a un'intelligenza basata sui dati I dati vengono utilizzati per addestrare i modelli e consentire loro di imparare a estrarne le conoscenze che gli servono.  Questi modelli vengono addestrati utilizzando diversi algoritmi, determinati in base al tipo di compito che vogliamo far eseguire alla nostra soluzione.

Tipi di Machine Learning

La scelta del modello è determinata dal problema aziendale. La fase di inquadramento del problema ci aiuta a definire che tipo di risposte stiamo cercando: vogliamo spiegare la situazione attuale? Vogliamo prevedere gli esiti futuri? Stiamo cercando di classificare le nostre attività?

A seconda delle risposte a queste domande potremo scegliere uno o più modelli:

Tipi di Machine Learning

In questa sede faremo un solo esempio per ogni classe di modelli:

  • La classificazione delle spese è la fase critica di qualsiasi analisi di acquisto, in cui le transazioni in uscita sono classificate in un numero finito di classi in base alle loro caratteristiche.
  • Il clustering è ampiamente utilizzato nel marketing e nella gestione dei rapporti con i clienti, poiché permette di raggruppare i clienti in cluster non predefiniti in base al loro comportamento d’acquisto.
  • Chatbot e assistenti digitali personali sfruttano le potenzialità dei modelli di elaborazione del linguaggio naturale (NLP) per interpretare e capire che cosa scrivono o dicono gli utenti finali.
  • La previsione della domanda consente ai fornitori di prevedere la quantità di energia da fornire sulla base dei consumi degli anni precedenti e di altri regressori come la temperatura prevista o l’indice di irradiazione solare. 

Come funziona il Machine Learning?

I processi di apprendimento automatico vengono spesso assimilati ai modi in cui imparano i bambini, paragone abbastanza efficace da poter essere utilizzato anche in questa sede.

Apprendimento supervisionato

Il maestro insegna agli alunni a scrivere fornendo esempi di parole corrette.

I set di dati usati per l’addestramento contengono etichette che indicano se la singola voce è «corretta» o meno (ad esempio vengono forniti già con la classe corrispondente o il valore di output atteso), per cui i modelli vengono addestrati ad abbinare gli esempi e imparare a riconoscere le «situazioni corrette» anche per i nuovi dati. Tra gli esempi di apprendimento supervisionato ci sono i sistemi di traduzione automatica: nel 2016 Google Translate è passato dal precedente modello statistico a un modello di rete neurale, riducendo il relativo codice da 500.000 righe a 500.

Apprendimento non supervisionato 

I bambini imparano ad accoppiare forme e fori giocandoci e acquisendo esperienza; così facendo scoprono che l’oggetto con quattro angoli e quattro lati uguali si adatta al foro quadrato.

Nell’apprendimento non supervisionato, il modello viene addestrato a individuare le caratteristiche comuni a diversi esempi (dati di formazione) e ad applicare le conoscenze così acquisite per classificare o rilevare anomalie in nuovi dataset.

Tra gli esempi di apprendimento non supervisionato ci sono gli algoritmi di classificazione che selezionano i volti nelle immagini, permettendo loro di essere taggati su Google, iOS Photos e su alcune applicazioni dei social network.

Apprendimento per rinforzo 

È il concetto applicato all’educazione dei cuccioli: quando il cane risponde correttamente ad un comando viene premiato con un biscotto e, nel tempo, sarà in grado di ripetere il comportamento atteso anche in un ambiente diverso da quello in cui è stato addestrato.

Nell’apprendimento per rinforzo, i modelli sono addestrati a intraprendere azioni in un ambiente definito per massimizzare una ricompensa o un premio oggettivo, in modo da mantenere questa capacità anche quando l’ambiente cambia. 

I sistemi di guida automatizzata come il pilota automatico Tesla utilizzano l’apprendimento per rinforzo per imparare a muovere il volante, accelerare e frenare, utilizzando le informazioni provenienti dai sensori dell’auto per rilevare l’ambiente circostante e massimizzare una funzione che mantiene l’auto sicura e in corsia.

Processo iterativo

In genere l’analisi approfondita è un processo ciclico, in cui definiamo un modello per il nostro problema, ne testiamo i risultati e lo perfezioniamo (aggiungendo parametri, cambiando pesi e misure, adattandone la struttura) o lo scartiamo e ne proviamo uno nuovo.

In molti casi, si scopre che i migliori risultati (cioè quelli che restituiscono la percentuale minima di errore) non vengono raggiunti da un unico modello, ma da un insieme di modelli che cooperano tra loro. In questa configurazione, un modello può essere più adatto a prevedere o classificare un certo sottoinsieme di dati di input, mentre un altro funziona meglio su un secondo sottoinsieme, ottenendo risultati congiunti migliori rispetto ai singoli modelli.

Modelli di Machine Learning: come funzionano?

Strumenti utili per il Machine Learning 

Per rendere più agile questo processo iterativo esplorativo, si possono utilizzare Jupyter Notebook o simili alternative nel cloud (Google Colab, Azure Notebooks, i notebook Amazon EMR o Sagemaker). Questi programmi consentono di combinare testo, grafica e codice Python o R per eseguire modelli e algoritmi. I notebook hanno il vantaggio di creare un «terreno comune» per tecnici e imprenditori; in Techedge li usiamo nella pianificazione agile a ondate, per verificare i nostri progressi e spiegare ai clienti cosa abbiamo scoperto dai loro dati, per confrontare i risultati dei vari modelli e per identificare quali algoritmi è meglio utilizzare con determinati dataset.

Negli ultimi anni sono stati lanciati strumenti per automatizzare l’addestramento, la convalida e la selezione degli algoritmi: marchi come DataRobot o C3.ai promettono di automatizzare molte fasi del processo dei dati per renderle accessibili alla comunità di «non Data Scientists». In generale, questi strumenti possono offrire un buon valore aggiunto per compiti specifici (es. confronto e punteggio dei modelli), ma presentano alcune ovvie limitazioni dovute alla loro specifica progettazione e all’automazione che introducono. In sintesi, ci sembra non si sia ancora presentata l’occasione di applicarli wall-to-wall in un’implementazione di machine learning complessa.

Per costruire modelli ed eseguire algoritmi si possono sfruttare diverse librerie ML in grado di semplificare il lavoro del Data Scientist in diverse attività: tutte gratuite e open source, forniscono una potente serie di strumenti per la costruzione e l’esecuzione di modelli di machine learning.

Scikit-learn

Scikit-learn è una libreria di machine learning per Python. Noi la utilizziamo principalmente per vari algoritmi di classificazione, regressione e clustering che possono essere considerati «classici» algoritmi di machine learning (macchine vettoriali di supporto o foreste casuali, per citarne alcuni). Si tratta di una libreria ricca di contenuti, affidabile e facile da usare che si integra perfettamente con le librerie di Python NumPy (numerica) e SciPy (scientifica).

Tensorflow + Keras

Tensorflow è una libreria di algebra computazionale progettata per i flussi di dati e la programmazione differenziabile di una vasta gamma di compiti, nonché forse la più utilizzata per costruire e addestrare reti neurali. Tensorflow è stato prima sviluppato dal team di Google Brain per uso interno, poi rilasciato come risorsa open source.

Strumento dalle grandi prestazioni, sia in termini di addestramento che di inferenza, ha una sintassi che può rivelarsi piuttosto complicata. Keras è una libreria di reti neurali scritta in Python che gira su Tensorflow, eliminando la maggior parte delle complicazioni della costruzione di reti neurali su Tensorflow.

Tensorflow 2.0, rilasciato in versione alfa in aprile, include Keras come API di default di alto livello per la costruzione e l’addestramento dei modelli di machine learning.

Pytorch + Fastai

Come per Tensorflow e Keras, Pytorch e Fastai sono due librerie Python che si completano a vicenda.

Pytorch è una libreria di machine learning Python, utilizzata soprattutto per applicazioni come l’elaborazione del linguaggio naturale e la visione artificiale e originariamente sviluppata dal gruppo di ricerca sull’intelligenza artificiale di Facebook. Fastai è una libreria che funziona su Pytorch e semplifica al massimo il processo di costruzione, formazione e messa a punto di modelli di machine learning, permettendo di costruire prototipi e modelli in tempi brevissimi.

Per concludere, l’analisi approfondita (o modeling) applica le informazioni ottenute nelle fasi precedenti per definire, addestrare, selezionare ed eseguire i modelli, al fine di ottenere le risposte aziendali che sono state definite come target all’inizio del processo di Data Science.

Tieni sempre presente che l’obiettivo non è costruire uno splendido modello di machine learning, ma risolvere un problema di business concreto e reale, sfruttando le potenzialità offerte dall’utilizzo dei dati e l’innovazione digitale.

 

Interessato a scoprirne di più?

Sei pronto a sviluppare una strategia più scientifica e guidata dai dati per il tuo business? Scopri i nostri servizi e le nostre soluzioni.

Scopri di più 

Iscriviti!