In questo articolo scriverò di una metodica utile per prepararsi alla fase di addestramento di un modello. Si tratta di un processo formato da 6 step, ognuno utile per assicurare che un corretto flusso di dati sia immesso nel nostro modello. Seguire questi passaggi mi ha reso più efficiente nel lavoro e più sicuro di me quando mostravo i miei risultati.
Voglio ringraziare Andriy Burkov e il suo lavoro con il libro Machine Learning Engineering. Ne ho tratto ispirazione per scrivere questo articolo ed è nel complesso un'ottima lettura: leggetelo se non l'avete già fatto.
Cominciamo.
Il file schema viene utilizzato per tenere traccia di quali sono le tue feature, di come si comportano e delle loro proprietà generali. È utile perché garantisce che tutto il team sia aggiornato su ciò che viene fornito al modello, in tutte le fasi dello sviluppo. Fornisce inoltre al team una linea guida formale da seguire durante il debug del modello.
Crea un file che soddisfi almeno questi criteri:
Sentitevi liberi di creare qualsiasi tipo di file per contenere queste informazioni. Ecco un esempio di un file schema.json che contiene queste informazioni per un set di dati sintetico.
Una delle mie attività preferite è scrivere i miei pensieri prima e durante il mio progetto di machine learning. Sfrutto il file README.md, che è il primo file che creo nel mio repository.
È essenziale che tutti i nostri ragionamenti vadano in questo file in modo che team (e anche te stesso lungo la strada) segua sempre la stessa linea. È facile gettarsi a capofitto in un'idea solo per scoprire delle ore dopo che non aveva senso secondo il brief del progetto. Esaminare il README ci aiuterà a cristallizzare le nostre intenzioni e ad essere più efficienti.
Il modo in cui strutturo il mio file README non è standard, ma generalmente segue questo schema:
Il punto 5 ci aiuta nello storytelling post-progetto, vale a dire la fase in cui presentiamo e spieghiamo i nostri risultati ad una platea. Documentare i passaggio e parlare del mio processo ci permetterà di avere una solida storia da raccontare agli stakeholder (le persone importanti che ruotano intorno al progetto, come investitori oppure il nostro capo). La comunicazione è importante quanto le nostre capacità analitiche.
Dovremmo parlare spesso con gli stakeholder per capire le loro aspettative sul tuo lavoro. Parla con loro del livello di prestazioni che si aspettano di vedere e della soglia di soddisfazione. Questo è un valore minimo di prestazioni che dovresti mirare a raggiungere.
Per avere un'idea di come potrebbe funzionare il modello, prendiamo questo in considerazione:
Questo è strettamente correlato al punto precedente. Un modello ha una performance metric che possiamo assegnargli prima dell'addestramento. Ad esempio, un compito di regressione potrebbe richiedere di impostare le metriche RMSE (Root Mean Squared Error) o MAE (Mean Absolute Error).
Bisogna scegliere la metrica che ha più senso per il problema che abbiamo davanti. Scegli una e una sola metrica di performance e non cambiarla. Confronta e monitora diversi modelli per capire come cambia la metrica tra i modelli. Parlo di selezione del modello e valutazione delle metriche di performance qui.
Dovremmo sempre confrontare i tuoi modelli con una baseline. Questa è una condizione "di base" dalla quale partiremo. Se confrontiamo il nostro risultato con una baseline sapremo sempre se stiamo performando meglio o peggio delle aspettative.
Una baseline varierà a seconda del nostro compito. Ecco alcuni esempi:
Se il tuo modello performa meglio della baseline, allora sai che stai fornendo valore alla tua azienda/team.
Kaggle e i vari famosi creatori di contenuti sul web hanno trattato a fondo questo aspetto, ma è ancora qualcosa a cui prestare molta attenzione prima dell'addestramento.
Dobbiamo assicurarci che i nostri dati siano divisi in tre parti: set addestramento, di validazione e di test. Ecco le differenze:
Mi piace usare questa metafora:
Il modello è come un bambino a scuola. Il bambino che studia a scuola è il tuo modello che impara dal train set, il bambino che fa gli esercizi a casa è il tuo modello che viene testato sul set di validazione e il bambino all'esame finale è il modello sul test set.
Ricorda che i tuoi set di validazione e test devono provenire dalla stessa distribuzione statistica del tuo set di addestramento, altrimenti il modello verrebbe esposto a dati non utili. È come il bambino che studia un capitolo su cui non sarà mai messo alla prova.
Ecco un sunto dei temi toccati