Come progettare una roadmap per un progetto di Machine Learning

Progettare roadmap per progetto ML

Credit immagine: DreamStudio

Qual è la prima cosa che fai quando inizi un nuovo progetto di machine learning?

Ho posto questa domanda a vari leader di ML in startup e ho ricevuto diverse risposte. In nessun ordine particolare:

  1. Prova uno dei nostri modelli esistenti per vedere se funziona per il nuovo compito.
  2. Inizia ad esplorare e comprendere i dati.
  3. Approfondisci la letteratura di ricerca per vedere cosa è stato fatto in precedenza.

Notate che nessuno di questi primi passi è codificare e addestrare un nuovo modello. E nessuno è progettare un flusso di lavoro di pre-elaborazione dei dati.

Ognuno dei tre approcci ha i suoi meriti. Se il nuovo progetto è abbastanza simile a qualcosa che è stato modellato in precedenza (sia i dati che il compito), provare approcci di modellazione già implementati può essere un modo molto rapido per stabilire una linea di base per il compito. In questo modo, potreste anche scoprire nuove sfide che devono essere affrontate nella pre-elaborazione dei dati o nella modellazione.

Questo potrebbe portarvi al punto 2: esplorare e comprendere i dati. Oppure potreste esservi già iniziati qui. Riconoscere le esigenze uniche di un nuovo set di dati è essenziale. Forse la pre-elaborazione o l’annotazione devono essere gestite in modo diverso. Forse ci sono artefatti nei dati che devono essere rimossi o le etichette non sono sempre corrette. Comprendere le sfide che la pre-elaborazione e la modellazione dovranno affrontare è essenziale.

Ma il passo che alcuni team saltano e che è il più critico per impostare un progetto di successo è una ricerca bibliografica. Qualcun altro ha modellato un compito simile su dati simili? Se il tipo di dati con cui state lavorando è comune, potreste essere in grado di applicare una definizione molto rigorosa di “simile”. Ma se state lavorando con una nuova modalità di imaging, ad esempio, o affrontando un nuovo compito, potreste dover allentare la definizione di “simile” per trovare ricerche rilevanti.

Tutti e tre questi primi passi sono importanti nel processo che uso per pianificare un nuovo progetto: una Roadmap di Machine Learning.

Quando lavoro con i clienti su un nuovo progetto, la Roadmap è il primo passo. La Roadmap chiarisce la portata del lavoro per il resto del progetto. Riduce l’incertezza su ciò che sarà necessario implementare. Riduce anche la probabilità di girare in cerchio o perdere tempo con approcci non riusciti. Risparmia tempo e denaro identificando toolkit esistenti prima di implementare qualcosa da zero. E aumenta la probabilità di successo del progetto.

Cosa comporta una Roadmap di ML? Lasciatemi guidarvi attraverso i componenti principali.

1) Definire il Problema

Iniziate definendo chiaramente il problema che volete risolvere utilizzando il machine learning. E mentre siete lì, date un passo indietro e considerate se ML è anche lo strumento giusto per il vostro problema. Questo crea le basi per l’intero progetto e aiuta a garantire che il progetto raggiunga i risultati desiderati.

Definire il problema significa identificare il problema aziendale, i dati che è necessario raccogliere e la variabile target. Una definizione chiara del problema e obiettivi ben definiti vi aiuteranno ad evitare sperimentazioni inutili e a concentrarvi sugli aspetti più importanti del problema.

Stabilire i criteri di successo è fondamentale. Questo può includere le metriche di valutazione, ma riguarda soprattutto l’uso previsto.

Alcuni aspetti da considerare:

  • La vostra soluzione è rilevante? Si integrerà nei flussi di lavoro attuali in modo da risolvere i problemi attuali o i punti critici?
  • Quanto precisa deve essere per migliorare il processo attuale?
  • A quali scenari il modello dovrà essere in grado di generalizzare? Questo potrebbe includere cose come diversi dispositivi di imaging, popolazioni di pazienti o condizioni di illuminazione.
  • Quanto deve essere comprensibile il modello? Comprendere come funziona un modello rende molto più facile individuare aree di miglioramento. Ma può anche essere importante per costruire fiducia o ottenere l’approvazione normativa.
  • Ci saranno limitazioni computazionali una volta che il modello è implementato? Comprendere eventuali vincoli di elaborazione o di memoria in anticipo può limitare le possibili approcci.

Dedicando del tempo a definire il problema fin dall’inizio, create le basi per un progetto di machine learning di successo che offre i risultati desiderati.

2) Ricerca di Lavori Correlati

Ricerca di lavori correlati è un passo critico in qualsiasi progetto di ML. Vi aiuta a identificare soluzioni esistenti a problemi simili e a comprendere lo stato dell’arte nel campo.

Puoi iniziare conducendo una revisione della letteratura. Questo comporta la lettura di articoli di ricerca, atti di conferenze e altra letteratura rilevante nel campo.

È essenziale tenere traccia delle fonti che hai letto e delle principali scoperte di ciascuna fonte. Ciò può aiutarti a organizzare i tuoi pensieri e identificare schemi e lacune nelle soluzioni esistenti.

  • Che tipo di dati stavano utilizzando?
  • Quanti pazienti, immagini, ecc.?
  • Come hanno annotato e strutturato i loro dati di addestramento?
  • Quale architettura del modello hanno utilizzato?
  • Come hanno addestrato il loro modello?
  • Quali sfide hanno incontrato?
  • Ci sono stati problemi di qualità o quantità di immagini o etichette?
  • Come hanno raccolto dati indipendenti per la convalida?

Tutti questi sono aspetti importanti da comprendere prima di iniziare a costruire la propria soluzione.

Ricercare lavori correlati può anche aiutare a identificare codici sorgenti esistenti, set di dati o modelli preaddestrati che possono avviare il progetto, risparmiando tempo e risorse.

3) Comprendere i dati

Comprendere i dati è un passo cruciale per avviare qualsiasi progetto di ML. Questo perché la qualità e la pertinenza dei dati influiscono significativamente sulle prestazioni del modello di ML.

Per alcuni progetti, i dati potrebbero già essere stati raccolti. Per altri, il processo di raccolta dei dati deve prima essere definito ed eseguito. La tua revisione della letteratura potrebbe aiutare a guidare il tipo di dati che dovresti raccogliere e quanta quantità di dati potresti aver bisogno per il tuo progetto.

Una volta raccolti i dati, probabilmente sarà necessario annotarli, un compito che può essere illuminato dalla tua revisione della letteratura.

  • Di che tipo di annotazioni hai bisogno? Le annotazioni a livello di pixel, patch o immagine sono le più comuni.
  • Quali strumenti sono stati utilizzati per assistere all’annotazione? Le annotazioni possono provenire da qualche altra modalità? Forse dall’analisi molecolare di un campione biologico o da un insieme di annotazioni esistenti come Open Street Map per le immagini satellitari.
  • Quanto soggettive sono le tue annotazioni? Ricercare o eseguire un proprio esperimento per valutare l’accordo tra osservatori può rivelare l’entità di questa sfida.

Devi anche capire la qualità dei tuoi dati. Ciò include verificare la presenza di valori mancanti, valori anomali e incongruenze nei dati. Questi possono includere artefatti nella preparazione dei tessuti, difetti nell’immagine come rumore o sfocatura o scenari fuori dal dominio. Identificando problemi di qualità dei dati, puoi preelaborarli e pulirli in modo appropriato e pianificare eventuali sfide che non puoi eliminare in anticipo.

La preelaborazione dei dati può includere normalizzazione, ridimensionamento o altre trasformazioni. Per le immagini grandi, di solito include la suddivisione in piccole patch. I dati e le annotazioni devono essere memorizzati in un formato efficiente per l’addestramento del modello.

Comprendere i dati ti aiuta anche a identificare eventuali pregiudizi che possono influire sulle prestazioni e l’affidabilità del modello. I pregiudizi possono essere dovuti a una mancanza di dati di addestramento per un determinato sottogruppo o a una correlazione spuria. Effetti di batch dovuti a variazioni tecniche come differenze di elaborazione in diversi laboratori o variazioni geografiche. O anche campioni etichettati da diversi annotatori.

Per la maggior parte delle applicazioni, è necessario consultare esperti del settore per apprendere informazioni sui dati:

  • Come sono stati raccolti i dati?
  • Cosa rappresentano?
  • Quali caratteristiche vengono esaminate nello studio dei dati?
  • Quali variazioni sono presenti o potrebbero essere previste nell’uso del mondo reale?
  • Quali artefatti o problemi di qualità potrebbero essere presenti e potrebbero confondere un modello?

Alcuni di questi aspetti possono essere molto sfumati e non evidenti per una persona non addestrata in un determinato campo.

Questo passaggio critico di comprensione dei dati aiuta a valutare la qualità e la pertinenza, a identificare e affrontare i pregiudizi dei dati e a determinare le tecniche di preelaborazione appropriate.

4) Pianificare la convalida

Formare un piano di convalida all’inizio di un progetto è importante per rivelare eventuali sfide impreviste. Si prevede che il modello finale funzioni in uno scenario del mondo reale e testare le sue capacità è essenziale.

La prima configurazione di convalida da considerare è la suddivisione dei dati di addestramento in set di addestramento, convalida e test. Il set di addestramento è di solito la parte più ampia dei dati e viene utilizzato per addestrare il modello. Il set di convalida viene utilizzato per regolare gli iperparametri del modello, come il tasso di apprendimento o la forza di regolarizzazione. Il set di test viene utilizzato per valutare le prestazioni del modello, fornendo una stima imparziale della capacità di generalizzazione del modello su dati non visti in precedenza. Il set di test dovrebbe essere tenuto completamente separato dai set di addestramento e convalida durante il processo di sviluppo del modello.

In genere, i set di addestramento, convalida e test vengono campionati casualmente dai dati disponibili mantenendo la distribuzione desiderata delle classi o delle variabili target per evitare eventuali pregiudizi non intenzionali. Quando i dati sono costituiti da gruppi diversi, come immagini multiple da ciascun paziente, campioni raccolti da diversi centri medici o immagini provenienti da diverse regioni geografiche, è necessaria una stratificazione più accurata dei gruppi per valutare la generalizzabilità del modello. Tutti gli esempi dello stesso gruppo devono ricadere nel set di addestramento, convalida o test e non devono mai essere distribuiti tra i tre.

Le tecniche di cross-validation, come la k-fold o la leave-n-out cross-validation, possono essere utilizzate per ottenere stime più robuste delle prestazioni, ruotando sistematicamente i dati tra i set di addestramento, validazione e test. Questo setup è particolarmente comune per i dataset di piccole dimensioni.

La valutazione delle prestazioni del modello prevede il calcolo di una o più metriche sui set di addestramento, validazione e test. Le metriche appropriate dipendono dall’applicazione ma potrebbero includere l’accuratezza, la sensibilità, la specificità, lo score F1, lo score AUC, DICE o molte altre. Ciascuna di queste metriche confronta le previsioni del modello con la verità di riferimento.

In alcune applicazioni, il calcolo delle metriche sul set di test può essere sufficiente per la validazione. In altre, questa porzione di dati non può essere sufficientemente simile a uno scenario del mondo reale. Forse il tuo modello deve funzionare su pazienti provenienti da una regione geografica diversa o da un centro medico diverso da quello su cui è stato addestrato e non hai dati di addestramento annotati disponibili. Devi comunque convalidare il tuo modello su una coorte esterna per simulare le sue prestazioni nel mondo reale e la sua capacità di generalizzazione.

5) Sviluppa un Modello di Base

Dopo una lunga pianificazione e ricerca, sei finalmente pronto per iniziare la modellazione. Ma non ti consiglio di iniziare con il modello di deep learning più complicato disponibile. Inizia con qualcosa di semplice. Sviluppa prima un modello di base semplice. Ti permetterà di testare le tue pipeline di elaborazione dei dati, annotazione e convalida, rivelando eventuali sfide impreviste.

Ci sono molti algoritmi adatti per un progetto specifico e selezionare il migliore può essere difficile. Il modello di base più semplice potrebbe essere un classificatore o regressore lineare costruito su semplici caratteristiche. Oppure potrebbe essere l’utilizzo del transfer learning senza fine-tuning per ridurre il tempo dedicato all’apprendimento delle caratteristiche. Non perdere tempo a sintonizzare i parametri iper.

Infine, è importante documentare qualsiasi cambiamento apportato al modello o al processo di formazione. Ciò assicura che il modello rimanga trasparente e riproducibile nel tempo.

Sommario

I progetti di apprendimento automatico sono complessi e iterativi. Questo processo di pianificazione ti consente di pianificare ogni aspetto del tuo progetto. Sebbene i dettagli possano cambiare, i componenti generali rimarranno gli stessi. Dalla definizione del problema al mantenimento del tuo modello, ogni passo richiede una pianificazione attenta. Ogni volta che possibile, dovresti anche pensare a come il tuo approccio pianificato potrebbe fallire e a delle soluzioni per affrontare queste possibili problematiche.