Di quante immagini ha bisogno un modello di IA? Pianificare bene i dati di addestramento

Fachleute im Labor prüfen Proben am Mikroskop – gute Trainingsdaten brauchen Fachwissen

IA e machine learning

«Quante immagini ci servono?» è in quasi ogni progetto di IA la prima domanda. La risposta onesta è: dipende. Sembra una scusa, ma è l'inizio di un piano. Perché quali immagini raccoglie conta più del loro numero.

Perché non esiste un numero fisso

Un allievo di scuola guida che si esercita per trenta ore in un parcheggio vuoto non è poi pronto per il centro città. A un modello di IA succede lo stesso: impara solo ciò che ha visto. Di quante immagini ha bisogno dipende soprattutto da cinque fattori:

  • Il compito: la classificazione valuta l'intera immagine, il rilevamento trova oggetti con un riquadro, la segmentazione assegna ogni pixel. Più il compito è fine, più lavoro richiede l'annotazione di ogni immagine.
  • La distanza tra le classi: un componente mancante è più facile da apprendere di un graffio sottile su una superficie strutturata.
  • La dispersione: varianti, fornitori, turni, sporcizia e posizione dei pezzi – tutto ciò che cambia durante l'esercizio deve comparire nei dati.
  • Il punto di partenza: un modello preaddestrato su grandi dataset pubblici ha bisogno di molte meno immagini proprie di uno che parte da zero.
  • Il requisito: ogni ulteriore miglioramento costa più dati del precedente. Uno studio di Google Research ha rilevato che nei compiti sulle immagini le prestazioni crescono solo in modo logaritmico con la quantità di dati di addestramento. Ogni raddoppio porta quindi meno del precedente.

Pianificare per celle invece che per totali

«5.000 immagini» sembrano tante. Se 4.800 di esse mostrano la stessa variante del turno del mattino, servono a poco. Pianifichi quindi in una tabella: varianti e condizioni nelle righe, classi nelle colonne, un numero minimo per cella. Se i dati raccolti soddisfano il piano lo verifica un breve script:

import pandas as pd



# Una riga per ogni immagine annotata: datei, variante, schicht, klasse

daten = pd.read_csv("bilder.csv")

tabelle = pd.crosstab([daten["variante"], daten["schicht"]], daten["klasse"])



# Rendere visibili le combinazioni del tutto mancanti

zeilen = pd.MultiIndex.from_product(

    [daten["variante"].unique(), daten["schicht"].unique()],

    names=["variante", "schicht"])

tabelle = tabelle.reindex(zeilen, fill_value=0)



MINDESTENS = 50  # Il Suo minimo per cella, da compito e curva di apprendimento

zellen = tabelle.stack()

for (variante, schicht, klasse), anzahl in zellen[zellen < MINDESTENS].items():

    print(f"Zu wenig: {variante} / {schicht} / {klasse}: {anzahl} Bilder")

Il valore 50 è solo un segnaposto. Il Suo numero minimo deriva dal compito e dalla curva di apprendimento. Le righe con «Zu wenig» (troppo poche) sono la Sua lista della spesa per la prossima tornata di riprese. Le più pericolose sono le combinazioni del tutto mancanti. Per questo lo script le riempie con zero, invece di ometterle tacitamente.

La curva di apprendimento mostra se più dati aiutano

Se conviene continuare a raccogliere non deve indovinarlo. Addestri con un quarto, con la metà e con tutte le immagini disponibili e misuri ogni volta sullo stesso set di test invariato. Se la curva sale ancora in modo netto, più immagini aiutano. Se è piatta, più immagini dello stesso tipo non portano quasi nulla. Allora mancano immagini diverse, annotazioni migliori o un altro metodo.

Buone annotazioni battono molte immagini

Un modello non può diventare migliore delle sue annotazioni. Quanto siano diffusi gli errori lo mostra uno studio del 2021: nei set di test di dieci dataset molto utilizzati in media almeno il 3,3 percento delle annotazioni era errato, nel set di validazione di ImageNet almeno il 6 percento. E parliamo di dati pubblici curati con attenzione. Tre misure aiutano:

  • Una guida all'annotazione con esempi illustrati, soprattutto per i casi limite: da quando un graffio è un difetto?
  • Un campione viene annotato due volte, da due persone in modo indipendente. Dove non sono d'accordo, decidono gli esperti della garanzia della qualità.
  • Le correzioni confluiscono in una nuova versione, con controllo di versione, del dataset.

La data augmentation non sostituisce le immagini reali

Ruotare, specchiare, schiarire e scurire: tali variazioni artificiali aiutano se queste oscillazioni si verificano anche sulla linea. Un nuovo tipo di difetto o la superficie di un nuovo fornitore però non li generano. Anche le immagini di difetti sintetiche servono solo se alla fine il modello viene verificato su immagini reali.

Errori tipici

  • Fissare come obiettivo un numero complessivo invece di un numero minimo per cella.
  • Raccogliere immagini dove è comodo: su una linea, in un turno, da un fornitore.
  • Contare come molte immagini le riprese in serie dello stesso pezzo. Non portano quasi informazioni nuove.
  • Ricomporre il set di test a ogni esecuzione. Allora i risultati non sono più confrontabili.
  • Annotare senza una guida, ogni persona secondo il proprio metro.
  • Generare variazioni che nella realtà non si verificano mai, ad esempio pezzi capovolti.
  • Non versionare lo stato dei dati. In seguito nessuno sa con quali immagini ha imparato il modello in esercizio.

Come La aiutiamo

Fonti: Northcutt, Athalye, Mueller, «Pervasive Label Errors in Test Sets Destabilize Machine Learning Benchmarks» (NeurIPS 2021); Sun, Shrivastava, Singh, Gupta, «Revisiting Unreasonable Effectiveness of Data in Deep Learning Era» (ICCV 2017).

CONTACT

Seleziona la tua lingua

Primo colloquiofissare oraPrimo colloquiofissare ora