Non è una domanda scontata. Per il data scientist alle prime armi, spingere subito verso l’adozione di modelli di apprendimento automatico può essere un errore.

Di fatto, soluzioni più semplici basate su regole specifiche possono risultare efficienti e più facili da implementare, salvando grosse somme di denaro durante il processo.

A mano a mano che l’adozione del machine learning nelle varie industrie aumenta, emerge sempre di più la tendenza a voler usare questo approccio ovunque sia possibile applicarlo.

Il machine learning è sicuramente potente, ma non è un incantesimo magico in grado di risolvere ogni nostro problema. Infatti, quando lanciato, potrebbe essere un incantesimo molto oneroso da gestire da parte dell’incantatore.

In questo articolo parlerò di quando usare il machine learning, e delle domande che vale la pena porsi prima di iniziare un progetto e di vagliare i vari approcci a disposizione.

Prima di iniziare, esaminerò cosa fa in generale una soluzione basata sul machine learning

💡
Il machine learning è un approccio per apprendere pattern complessi partendo da dati esistenti. In seguito, utilizza questi pattern per creare predizioni su dati sconosciuti.

Cosa significa apprendere pattern? Inizierò parlando proprio di questa parte, per poi toccare il tema dei dati e della creazione di predizione.

Tutto questo percorso culminerà con la spiegazione dei diversi compromessi da considerare quando consideriamo di sviluppare un progetto basato sul machine learning.

Iniziamo.

Apprendimento di pattern

Un modello di machine learning è un sistema che attrae tecnologi e non per la sua abilità di “imparare” dai dati che osserva (da qui il termine apprendimento supervisionato).

Se ti interessa leggere di più sul machine learning in generale, leggi l’articolo qui in basso 👇

Cos’è il Machine Learning: come spiego il concetto ad un neofita
Cosa è l’apprendimento automatico, esempi di applicazioni e cosa fare per lavorare nel campo

Nell’apprendimento supervisionato, il sistema impara le relazioni tra coppie di input e output e ricostruisce una funzione matematica che spiega (quanto meglio possibile) la relazione menzionata.

Ad esempio, se volessimo creare un modello di machine learning in grado di prevedere i prezzi degli immobili nella nostra regione, dovremmo addestrare il nostro modello sull’input (le caratteristiche degli immobili, come la presenza del giardino, di un camino, o del numero di metri quadri) e sull’output, il prezzo.

Il modello in questione utilizzerà le caratteristiche dei vari immobili al quale viene esposto per capire quale sia il prezzo associato a tali caratteristiche. Una volta addestrato correttamente, al data scientist basterà fornire al modello delle caratteristiche di un immobile per ricevere un prezzo.

Tutto questo è bello e interessante, ma introduce un vincolo da considerare:

Sistemi di ML sono realmente utili solo quando ci sono pattern dalla quale imparare.

Di fatto, una persona sana di mente non andrà mai a chiedere fondi e risorse per sviluppare un sistema di machine learning per predire il prossimo tiro di dado - sarebbe casuale, e il modello non apprenderebbe proprio nulla!

Questo pone di fronte a noi un’altra domanda: come facciamo a sapere che esistano davvero dei pattern nei nostri dati?

Non è una domanda ovvia, ma è spesso una domanda completamente sorvolata e si delega la responsabilità di trovare quello che non c’è al modello di machine learning. A volte il pattern potrebbe davvero esistere, ma il dataset è incompleto o non è ricco abbastanza per farlo emergere.

Se la nostra soluzione può essere espressa correttamente da una tabella pivot in Excel…non c’è nulla di sbagliato. Non ci serve un modello di machine learning.

Dunque, non ci serve un modello di machine learning se quello che vogliamo predire è il frutto di operazioni semplici, automatizzabili grazie ad uno script magari, oppure se sappiamo che i pattern sono assenti oppure casuali.

Se invece i pattern sono complessi e difficile da processare per un essere umano (come mappare centinaia di caratteristiche di un immobile ad un prezzo), allora il machine learning sarà molto probabilmente utile.

La dipendenza dai dati

Poiché il machine learning dipende dai dati, è importante che tali dati esistano in primo luogo.

Mi imbatto spesso in clienti che investono tempo e risorse nel progettare sistemi di apprendimento automatico basati su dati poco affidabili e di bassa qualità.

Questo è un tema centrale: un sistema di machine learning è da contemplare quando abbiamo dati (o siamo in grado di recuperali) di qualità che sappiamo per certo contengano le informazioni riguardo il fenomeno che vogliamo modellare.

Ci sono casi dove è possibile usare il machine learning senza dati. Questo è il caso del continual learning. In questo caso, i modelli di ML sono messi in produzione e imparano a mano a mano che i dati degli utenti reali vengono fatti passare attraverso di esso. Tali modelli avranno performance scadente all'inizio, ma poi miglioreranno gradualmente.

Quando le predizioni sono troppo "sbagliate"

Sistemi di ML risolvono problemi di predizione. "Predire" si traduce con stimare il valore di qualcosa nel futuro.

...ma a volte non siamo soddisfatti di queste predizioni.

Ragioniamo sul termine "modellare":

  • un bambino "modella" un castello con la sabbia
  • un pasticciere usa delle "formine" per creare dei dolci
  • un fabbro usa uno stampo per creare uno strumento, come un martello o una pinza

Come data scientist noi usiamo il passato per modellare il futuro.

I dati sono il nostro metallo, il machine learning il nostro stampino.

Ora, in base alla qualità dei nostri dati, il nostro modello riuscirà a generalizzare una "forma" tale per cui questa vada bene anche per altri dati sconosciuti che verranno nel futuro.

Ma una forma molto grande può ospitare bene i nostri dati....

Entra in gioco il tema dell'errore della predizione.

Quando valutiamo il modello di machine learning, lo facciamo usando metriche di business e non. Usare metriche di valutazione valide e sensate permette di gestire e di valutare correttamente sistemi di machine learning.

È quindi importante comprendere come valutare un sistema di predizione con una metrica di valutazione chiara per il business.

Ad esempio per il problema della predizione dei prezzi degli immobili, usare una metrica come il MAE (mean absolute error) può essere utile ed è una metrica facilmente comprensibile anche ai non tecnici.

Fare questo permette di implementare un sistema di ML con cognizione di causa, perché sarà facile interpretare le sue performance.

Automatizziamo tutto!

Se ogni giorno facciamo lo stesso compito ripetutamente e questo è composto da pattern, allora contemplare il machine learning è cosa giusta.

Come ho scritto più volte in questo blog, un data scientist è un abilitatore dell'automazione.

Infatti, un buon framing del problema può migliorare l'economia aziendale significativamente grazie al ML.

Se riusciamo a individuare che ci sono dati strutturati e ricorrenti che seguono una logica prevedibile, allora il machine learning può aiutarci a creare modelli che automatizzino tali compiti. Questo ci permette di risparmiare tempo e risorse preziose, oltre a ridurre gli errori umani.

L'automazione attraverso il machine learning non solo semplifica le attività quotidiane, ma può anche rivelare informazioni nascoste nei dati e fornire insight preziosi per prendere decisioni strategiche.

Inoltre: bisogna ragionare anche su quanto dobbiamo automatizzare.

Se dobbiamo automatizzare parecchie operazioni al giorno (nell'ordine del centinaio alle decine di migliaia), sicuramente il machine learning può aiutarci!

Il costo della predizione

Parliamo di nuovo di predizione, ma stavolta in termini monetari.

Mettiamo subito in chiaro anche qui: il nostro modello farà SEMPRE errori. A volte grandi a volte piccoli, ma ne farà sempre.

Quando il costo di un errore grande di predizione è basso, allora vale la pena considerare il machine learning come soluzione al nostro problema.

Un esempio con i modelli di raccomandazione:

  • il modello è addestrato sul comportamento dell'umano
  • il modello offre una raccomandazione
  • l'utente sceglie se seguire la raccomandazione o meno

Nel caso in cui l'utente non scelga la raccomandazione, cosa succede? Niente! Il costo di una predizione sbagliata è vicino allo zero.

Se invece l'utente compra qualcosa grazie a quella raccomandazione, allora sia l'utente che il proprietario del negozio sono contenti. Bingo.

Caso opposto invece nell'ambito medico: una cattiva previsione applicata da un modello su una radiografia per la diagnosi di una malattia grave ha un costo molto elevato. In quel caso le conseguenze possono essere catastrofiche. Stesso discorso per la guida autonoma.

Queste due ultime casistiche dovrebbero rimuovere l'uso del machine learning come strumento di diagnosi o come autopilota? Certamente no. Ma va considerato quanto l'umano è incluso nel processo (come un medico che viene assistito durante la diagnosi o un guidatore che prende il controllo dell'auto, sganciando l'autopilota) e dell'impatto che possono avere questi meccanismi sul progresso generale del mondo.

Conclusione

l'adozione del machine learning richiede una valutazione attenta e consapevole. Ne vanno parecchi soldi, perché mettere su un sistema del genere è oneroso e richiede molte competenze, da parte di più professionisti.

Non dovremmo cadere nell'errore di considerarlo come la soluzione a tutti i nostri problemi, ma piuttosto come uno strumento potente da utilizzare in determinati contesti.

📧
Se sei interessato ad implementare dei flussi di machine learning nella tua azienda ma non sai che soluzione implementare, parliamone!

Posso aiutarti nel contestualizzare la tua scelta e puntarti nella direzione migliore (anche se questo articolo dovrebbe già averti chiarito parecchi dubbi!)

A presto,

Andrea