Come pianificare ed eseguire esperimenti di machine learning in modo sistematico

Come pianificare ed eseguire esperimenti di machine learning in modo sistematico

Gli esperimenti di machine learning possono richiedere molto tempo. Ore, giorni e persino settimane in alcuni casi.

Questo ti dà molto tempo per pensare e pianificare ulteriori esperimenti da eseguire.

Inoltre, il progetto medio di machine learning applicato può richiedere da decine a centinaia di esperimenti discreti per trovare un modello di preparazione dei dati e una configurazione del modello che dia prestazioni buone o grandi.

La natura prolungata degli esperimenti significa che è necessario pianificare e gestire attentamente l'ordine e il tipo di esperimenti eseguiti.

Devi essere sistematico.

In questo post scoprirai un approccio semplice per pianificare e gestire i tuoi esperimenti di machine learning.

Con questo approccio sarai in grado di:

  • Rimani aggiornato sulle domande e sui risultati più importanti del tuo progetto.
  • Tieni traccia degli esperimenti che hai completato e che vorresti eseguire.
  • Ingrandisci le preparazioni dei dati, i modelli e le configurazioni dei modelli che offrono le migliori prestazioni.

Immergiamoci.

Come pianificare ed eseguire esperimenti di machine learning in modo sistematico

Come pianificare ed eseguire esperimenti di machine learning in modo sistematico
Foto di Qfamily, alcuni diritti riservati.

Confusione di centinaia di esperimenti

Mi piace fare esperimenti durante la notte. Molti esperimenti.

In questo modo, quando mi sveglio, posso controllare i risultati, aggiornare le mie idee su cosa funziona (e cosa no) e dare il via al prossimo ciclo di esperimenti, quindi passare un po 'di tempo ad analizzare i risultati.

Odio perdere tempo.

E odio fare esperimenti che non mi avvicinino all'obiettivo di trovare il modello più abile, visto il tempo e le risorse che ho a disposizione.

È facile perdere traccia di quello che stai facendo. Soprattutto dopo aver ottenuto risultati, analisi e scoperte da centinaia di esperimenti.

Una cattiva gestione dei tuoi esperimenti può portare a brutte situazioni in cui:

  • Stai guardando gli esperimenti eseguiti.
  • Stai cercando di trovare buone idee per gli esperimenti da eseguire subito dopo il termine di un batch corrente.
  • Esegui un esperimento che avevi già eseguito prima.

Non vorrai mai trovarti in nessuna di queste situazioni!

Se sei in cima al tuo gioco, allora:

  • Sai esattamente quali esperimenti hai eseguito a colpo d'occhio e quali sono stati i risultati.
  • Hai un lungo elenco di esperimenti da eseguire, ordinati in base al loro profitto previsto.
  • Hai il tempo per immergerti nell'analisi dei risultati e pensare a idee nuove e selvagge da provare.

Ma come possiamo rimanere in cima a centinaia di esperimenti?

Progetta ed esegui esperimenti in modo sistematico

Un modo che ho scoperto per aiutarmi a essere sistematico con gli esperimenti su un progetto è usare un foglio di calcolo.

Gestisci gli esperimenti che hai fatto, che sono in esecuzione e che desideri eseguire in un foglio di calcolo.

È semplice ed efficace.

Semplice

È semplice in quanto io o chiunque possiamo accedervi da qualsiasi luogo e vedere a che punto siamo.

Uso Google Docs per ospitare il foglio di calcolo.

Non c'è codice. Nessun taccuino. Nessuna app web di fantasia.

Solo un foglio di calcolo.

Efficace

È efficace perché contiene solo le informazioni necessarie con una riga per esperimento e una colonna per ogni informazione da monitorare nell'esperimento.

Gli esperimenti effettuati possono essere separati da quelli pianificati.

Solo gli esperimenti pianificati vengono impostati ed eseguiti e il loro ordine garantisce che gli esperimenti più importanti vengano eseguiti per primi.

Sarai sorpreso di quanto un approccio così semplice possa farti risparmiare tempo e farti riflettere profondamente sul tuo progetto.

Foglio di calcolo di esempio

Diamo un'occhiata a un esempio.

Possiamo immaginare un foglio di calcolo con le colonne sottostanti.

Questi sono solo un esempio dell'ultimo progetto su cui ho lavorato. Consiglio di adattarli alle proprie esigenze.

  • Sottoprogetto: Un sottoprogetto può essere un gruppo di idee che stai esplorando, una tecnica, una preparazione dei dati e così via.
  • Contesto: Il contesto può essere l'obiettivo specifico come battere una linea di base, messa a punto, una diagnostica e così via.
  • Impostare: La configurazione è la configurazione fissa dell'esperimento.
  • Nome: Il nome è l'identificatore univoco, forse il nome del file dello script.
  • Parametro: Il parametro è la cosa che viene variata o esaminata nell'esperimento.
  • Valori: Il valore è il valore o i valori del parametro che vengono esplorati nell'esperimento.
  • Stato: Lo stato è lo stato dell'esperimento, ad esempio pianificato, in esecuzione o completato.
  • Abilità: L'abilità è la metrica della stella polare che conta davvero nel progetto, come l'accuratezza o l'errore.
  • Domanda: La domanda è la domanda motivante che l'esperimento cerca di affrontare.
  • Trovare: Il risultato è il riassunto di una riga del risultato dell'esperimento, la risposta alla domanda.

Per rendere questo concreto, di seguito è riportato uno screenshot di un foglio di calcolo di Google Doc con queste intestazioni di colonna e un esempio artificioso.

Registrazione sperimentale sistematica

Registrazione sperimentale sistematica

Non posso dire quanto tempo mi abbia risparmiato questo approccio. E il numero di supposizioni che si sono rivelate sbagliate nel tentativo di ottenere i migliori risultati.

In effetti, ho scoperto che i metodi di deep learning sono spesso piuttosto ostili a presupposti e impostazioni predefinite. Tienilo a mente quando progetti esperimenti!

Ottieni il massimo dai tuoi esperimenti

Di seguito sono riportati alcuni suggerimenti che ti aiuteranno a ottenere il massimo da questo semplice approccio al tuo progetto.

  • Brainstorm: Trova il tempo per rivedere frequentemente i risultati ed elencare nuove domande ed esperimenti per rispondere.
  • Sfida: Sfida le ipotesi e sfida i risultati precedenti. Interpreta lo scienziato e progetta esperimenti che falsificherebbero le tue scoperte o aspettative.
  • Sottoprogetti: Considera l'uso di sottoprogetti per strutturare la tua indagine in cui segui le indicazioni o indaga su metodi specifici.
  • Ordine sperimentale: Utilizza l'ordine delle righe come priorità per assicurarti che gli esperimenti più importanti vengano eseguiti per primi.
  • Analisi più approfondita: Salva un'analisi più approfondita dei risultati e dei risultati aggregati in un altro documento; il foglio di calcolo non è il posto giusto.
  • Tipi di esperimenti: Non aver paura di combinare diversi tipi di esperimenti come la ricerca sulla griglia, i controlli a campione e la diagnostica del modello.

Saprai che questo approccio funziona bene quando:

  • Stai esaminando la documentazione e i documenti dell'API per ulteriori idee su cose da provare.
  • Hai molti più esperimenti in coda che risorse per eseguirli.
  • Stai pensando seriamente di assumere un sacco di istanze EC2 in più.

Sommario

In questo post hai scoperto come gestire in modo efficace centinaia di esperimenti eseguiti, in esecuzione e che desideri eseguire in un foglio di calcolo.

Hai scoperto che un semplice foglio di calcolo può aiutarti:

  • Tieni traccia di quali esperimenti hai eseguito e cosa hai scoperto.
  • Tieni traccia di quali esperimenti desideri eseguire e a quali domande risponderanno.
  • Ingrandisci la preparazione dei dati, il modello e la configurazione del modello più efficaci per il tuo problema di modellazione predittiva.

Hai domande su questo approccio? Hai fatto qualcosa di simile tu stesso?
Fammi sapere nei commenti qui sotto.

Potresti anche essere interessato