Comprendere il problema

Per comprendere il problema, svolgi le seguenti attività:

  • Indica lo scopo del prodotto che stai sviluppando o refactoring.
  • Determina se l'obiettivo è risolto meglio utilizzando il machine learning predittivo, l'IA generativa o una soluzione non ML.
  • Verifica di disporre dei dati necessari per addestrare un modello se utilizzi un approccio di ML predittivo.

Indica l'obiettivo

Inizia dichiarando il tuo obiettivo in termini non relativi all'apprendimento automatico. L'obiettivo è la risposta alla domandina "Cosa sto cercando di ottenere?"

La seguente tabella indica chiaramente gli obiettivi per app ipotetiche:

App Obiettivo
App meteo Calcola le precipitazioni con incrementi di sei ore per una regione geografica.
App di moda Genera una serie di design di camicie.
App video Consiglia video utili.
App Mail Rilevare lo spam.
App finanziaria Riassumere le informazioni finanziarie provenienti da più fonti di notizie.
App di mappe Calcola il tempo di percorrenza.
App bancaria Identificare le transazioni fraudolente.
App per ristoranti Identificare la cucina dal menu di un ristorante.
App e-commerce Rispondi alle recensioni con risposte utili.

Caso d'uso chiaro per l'ML

Alcuni considerano l'ML uno strumento universale che può essere applicato a tutti i problemi. In realtà, l'ML è uno strumento specializzato adatto solo a problemi specifici. Non vuoi implementare una soluzione ML complessa quando è sufficiente una soluzione non ML più semplice.

I sistemi di ML possono essere suddivisi in due ampie categorie: ML predittivo e IA generativa. La tabella seguente elenca le loro caratteristiche distintive:

Ingresso Output Tecnica di allenamento
ML predittivo Testo
Immagine
Audio
Video
Numeri
Effettua una previsione, ad esempio classifica un'email come spam o non spam, indovina la quantità di pioggia di domani o prevede il prezzo di una azione. In genere, l'output può essere verificato in base alla realtà. In genere utilizza molti dati per addestrare un modello di apprendimento supervisionato, non supervisionato o di rinforzo per eseguire un'attività specifica.
Generative AI Testo
Immagine
Audio
Video
Numeri
Genera output in base all'intenzione dell'utente, ad esempio riassumendo un articolo o producendo un clip audio o un breve video. In genere utilizza molti dati non etichettati per addestrare un modello linguistico di grandi dimensioni o un generatore di immagini per completare i dati mancanti. Il modello può essere utilizzato per attività che possono essere definite come attività di compilazione oppure può essere perfezionato addestrandolo su dati etichettati per un'attività specifica, come la classificazione.

Per verificare che l'approccio di ML sia quello giusto, verifica innanzitutto che la tua attuale soluzione non basata sull'IA sia ottimizzata. Se non hai implementato una soluzione non basata sull'IA, prova a risolvere il problema manualmente utilizzando una euristica.

La soluzione non ML è il benchmark che utilizzerai per determinare se l'ML è un buon caso d'uso per il tuo problema. Quando confronti un approccio non ML con uno basato sull'apprendimento automatico, poniti le seguenti domande:

  • Qualità. Quanto ritieni che possa essere migliore una soluzione di ML? Se pensi che una soluzione di ML possa rappresentare solo un piccolo miglioramento, potrebbe indicare che la soluzione attuale è la migliore.

  • Costo e manutenzione. Quanto costa la soluzione di ML sia a breve che a lungo termine? In alcuni casi, l'implementazione dell'IA richiede costi molto più elevati in termini di risorse di calcolo e tempo. Considera le seguenti domande:

    • La soluzione di ML può giustificare l'aumento del costo? Tieni presente che piccoli miglioramenti in sistemi di grandi dimensioni possono giustificare facilmente il costo e la manutenzione dell'implementazione di una soluzione di ML.
    • Quanta manutenzione richiederà la soluzione? In molti casi, le implementazioni di ML necessitano di una manutenzione a lungo termine dedicata.
    • Il tuo prodotto dispone delle risorse per supportare la formazione o l'assunzione di persone con competenze di ML?

Verifica di aver compreso

Perché è importante avere una soluzione o un'euristica non ML prima di analizzare una soluzione ML?
Le soluzioni non ML ti aiutano a determinare il costo di una soluzione ML.
Una soluzione non ML è il benchmark in base al quale misurare una soluzione ML.

Dati e ML predittivi

I dati sono la forza trainante del machine learning predittivo. Per fare buone previsioni, hai bisogno di dati che contenga caratteristiche con potere di previsione. I dati devono avere le seguenti caratteristiche:

  • Abbondanti. Maggiore è il numero di esempi pertinenti e utili nel set di dati, migliore sarà il tuo modello.

  • Coerenti e affidabili. La raccolta di dati in modo coerente e affidabile produrrà un modello migliore. Ad esempio, un modello meteorologico basato sull'IA trarrà vantaggio dai dati raccolti per molti anni dagli stessi strumenti affidabili.

  • Attendibile. Scopri da dove provengono i tuoi dati. I dati provengono da fonti attendibili che controlli, come i log del tuo prodotto, o da fonti di cui non hai molte informazioni, come l'output di un altro sistema di ML?

  • Disponibile. Assicurati che tutti gli input siano disponibili al momento della previsione nel formato corretto. Se sarà difficile ottenere determinati valori delle funzionalità al momento della previsione, ometti queste funzionalità dai set di dati.

  • Risposta esatta. In set di dati di grandi dimensioni, è inevitabile che alcune etichette abbiano valori errati, ma se più di una piccola percentuale di etichette è errata, il modello produrrà previsioni scadenti.

  • Rappresentante. I set di dati devono essere il più rappresentativi possibile del mondo reale. In altre parole, i set di dati devono riflettere con precisione gli eventi, i comportamenti degli utenti e/o i fenomeni del mondo reale che vengono modellati. L'addestramento su set di dati non rappresentativi può causare prestazioni scadenti quando al modello viene chiesto di fare previsioni nel mondo reale.

Se non riesci a ottenere i dati di cui hai bisogno nel formato richiesto, il tuo modello farà cattive previsioni.

Efficacia predittiva

Affinché un modello possa fare buone previsioni, le caratteristiche del set di dati devono avere un potere predittivo. Maggiore è la correlazione di una caratteristica con un'etichetta, più è probabile che la preveda.

Alcune funzionalità avranno una capacità predittiva maggiore rispetto ad altre. Ad esempio, in un set di dati meteo, caratteristiche come cloud_coverage, temperature e dew_point sarebbero predittori migliori della pioggia rispetto a moon_phase o day_of_week. Nell'esempio dell'app video, potresti ipotizzare che funzionalità come video_description, length e views potrebbero essere buoni indicatori dei video che un utente vorrebbe guardare.

Determinare quali funzionalità hanno un potere predittivo può essere un processo laborioso. Puoi esplorare manualmente la capacità predittiva di una funzionalità rimuovendola e aggiungendola durante l'addestramento di un modello. Puoi automatizzare la ricerca della capacità di previsione di un'attributo utilizzando algoritmi come la correlazione di Pearson, l'informazione mutua aggiustata (AMI) e il valore di Shapley, che forniscono una valutazione numerica per analizzare la capacità di previsione di un attributo.

Verifica di aver compreso

Quando analizzi i set di dati, quali sono tre attributi chiave da cercare?
Rappresentativo del mondo reale.
Raccolta da una serie di fonti imprevedibili.
Abbastanza piccolo da caricare su una macchina locale.
Contiene valori corretti.
Le caratteristiche hanno un potere predittivo per l'etichetta.

Per ulteriori indicazioni su come analizzare e preparare i set di dati, consulta Preparazione dei dati e creazione di funzionalità per il machine learning.

Previsioni e azioni

Non ha senso fare una previsione se non puoi trasformarla in un'azione che aiuti gli utenti. In altre parole, il tuo prodotto deve eseguire un'azione in base all'output del modello.

Ad esempio, un modello che prevede se un utente troverà utile un video dovrebbe essere inserito in un'app che consiglia video utili. Un modello che prevede se pioverà dovrebbe essere inserito in un'app meteo.

Verifica di aver compreso

In base allo scenario seguente, determina se l'utilizzo del machine learning è l'approccio migliore per risolvere il problema.

Un team di tecnici di una grande organizzazione è responsabile della gestione delle chiamate in arrivo.

L'obiettivo: informare gli utenti in attesa del tempo di attesa in base al volume di chiamate corrente.

Non hanno implementato alcuna soluzione, ma ritengono che un'euristica sia dividere il numero corrente di clienti in attesa per il numero di dipendenti che rispondono alle chiamate, quindi moltiplicare per 10 minuti. Tuttavia, sanno che per alcuni clienti i problemi vengono risolti in due minuti, mentre per altri possono essere necessari fino a 45 minuti o più.

Probabilmente la loro regola di euristica non restituirà un numero sufficientemente preciso. Possono creare un set di dati con le seguenti colonne: number_of_callcenter_phones, user_issue, time_to_resolve, call_time, time_on_hold.

Utilizza il machine learning. Il team di ingegneria ha un obiettivo chiaramente definito. La loro regola di euristica non sarà sufficientemente buona per il loro caso d'uso. Sembra che il set di dati abbia caratteristiche predittive per l'etichetta time_on_hold.
Non utilizzare l'IA predittiva. Anche se hanno un obiettivo chiaramente definito, devono prima implementare e ottimizzare una soluzione non ML. Inoltre, il suo set di dati non sembra contenere funzionalità sufficienti con potere predittivo.