Dataset Bias
La distorsione dei set di dati è una discrepanza tra i dati di addestramento e il mondo in cui opera un modello, che causa una precisione disomogenea. Scopri i tipi principali, gli esempi e come individuarla e correggerla.
La distorsione del dataset è una discrepanza sistematica tra i dati usati per addestrare un modello di apprendimento automatico e le persone, i luoghi o le condizioni a cui il modello è destinato. I modelli apprendono ogni regolarità presente nei dati di addestramento, comprese quelle dovute alle modalità di raccolta; perciò, un dataset sbilanciato produce un modello che funziona bene nelle situazioni frequenti e male in tutte le altre. Poiché i dati di test provengono di solito dalla stessa raccolta, il problema spesso resta nascosto fino alla distribuzione. Nel 2011, Antonio Torralba e Alexei Efros lo dimostrarono con un gioco chiamato «Indovina il dataset»: un semplice classificatore riusciva a riconoscere, con risultati molto superiori al caso, da quale dei 12 dataset di immagini più noti provenisse una foto, perché ogni raccolta aveva uno stile riconoscibile.
Tipi di distorsione del dataset#
- Distorsione da selezione: i dati provengono da fonti accessibili anziché dalla popolazione di riferimento. Le foto sul web tendono a raffigurare ambienti occidentali e benestanti; i servizi commerciali di riconoscimento degli oggetti risultavano circa il 10% meno precisi sugli oggetti domestici di case con un reddito inferiore a 50 dollari al mese rispetto a quelli di case con un reddito superiore a 3.500 dollari, con uno scarto di 15-20 punti tra gli oggetti fotografati negli Stati Uniti e quelli fotografati in Somalia o Burkina Faso.
- Distorsione di rappresentazione: alcuni gruppi o classi compaiono troppo raramente perché il modello possa apprenderli. L'analisi Gender Shades ha rilevato che i classificatori commerciali di genere classificavano erroneamente le donne con la pelle più scura fino al 34,7% delle volte e gli uomini con la pelle più chiara al massimo nello 0,8% dei casi. Nel rilevamento degli oggetti, una lunga coda di classi rare rappresenta lo stesso problema a livello di classe.
- Distorsione di misurazione e acquisizione: telecamere, sensori, siti e illuminazione differiscono tra i dati e l'ambiente di distribuzione. I modelli di deep learning per la polmonite basati su radiografie del torace potevano anche riconoscere l'ospedale da cui proveniva un'immagine; poiché i tassi di polmonite differivano tra gli ospedali, quel segnale aumentava la precisione ma generalizzava male a nuovi siti: una forma di apprendimento di scorciatoie.
- Distorsione delle etichette: l'etichettatura dei dati eredita i giudizi degli annotatori, le linee guida incoerenti o le decisioni storiche, e il modello tratta questi schemi come dati di riferimento corretti.
- Distorsione temporale: i dati raccolti in un determinato periodo smettono di rappresentare il mondo quando cambiano mode, prodotti e veicoli.
Come si manifesta la distorsione del dataset#
Un modello di percezione per la guida autonoma addestrato soprattutto in climi soleggiati e asciutti rileva i pedoni con minore affidabilità quando nevica, piove o è buio. I team che sviluppano veicoli autonomi per l'IA nel settore automobilistico raccolgono dati notturni e in condizioni meteorologiche avverse per colmare il divario. Nell'analisi delle immagini mediche, i modelli dermatologici addestrati su raccolte con una predominanza di carnagioni chiare hanno prestazioni peggiori sulle carnagioni scure, mentre i sistemi di riconoscimento facciale mostrano i divari demografici misurati da Gender Shades. In tutti questi casi, la precisione complessiva sembra elevata perché la maggioranza determina la media.
Il frammento di codice seguente mostra concretamente il meccanismo con scikit-learn. Il gruppo B segue uno schema diverso dal gruppo A e la stessa foresta casuale viene addestrata due volte su 1.000 campioni: prima con il gruppo B al 2% dei dati, poi con i gruppi bilanciati:
import numpy as np
from sklearn.ensemble import RandomForestClassifier
rng = np.random.default_rng(0)
def sample(n, group):
"""Draw n points from group A (label set by feature 0) or group B (label set by feature 1)."""
center = 0.0 if group == "A" else 3.0
X = rng.normal(center, 1.0, size=(n, 2))
return X, X[:, 0 if group == "A" else 1] > center
for n_a, n_b in [(980, 20), (500, 500)]: # skewed, then balanced training sets of the same size
Xa, ya = sample(n_a, "A")
Xb, yb = sample(n_b, "B")
model = RandomForestClassifier(random_state=0).fit(np.vstack([Xa, Xb]), np.concatenate([ya, yb]))
acc = {g: model.score(*sample(2000, g)) for g in "AB"} # held-out accuracy per group
print(f"train A:B = {n_a}:{n_b} -> accuracy on A {acc['A']:.3f}, on B {acc['B']:.3f}")Addestrato sul set sbilanciato, il modello è perfetto sul gruppo A (1.000) e corretto solo nel 76,8% dei casi sul gruppo B. Bilanciando gli stessi 1.000 campioni, il risultato del gruppo B sale al 98,3%, mentre quello del gruppo A scende leggermente al 97,2%. Su un insieme di test composto per il 98% dal gruppo A e per il 2% dal gruppo B, come i dati di addestramento sbilanciati, il primo modello otterrebbe un punteggio complessivo di circa il 99,5%, nascondendo del tutto il divario.
Bias nei set di dati e concetti correlati#
- Distorsione algoritmica: sbilanciamento introdotto dalla progettazione, dall'obiettivo o dalla distribuzione di un modello, ad esempio una funzione di perdita che favorisce le classi maggioritarie. La distorsione del dataset è una delle cause principali della distorsione algoritmica e spesso le due si rafforzano a vicenda.
- Distorsione nell'IA: termine generale per indicare l'iniquità sistematica nei sistemi di IA, opposta all'equità nell'IA. Lo standard NIST per identificare e gestire la distorsione nell'IA classifica le relative fonti in categorie sistemiche, umane e statistiche o computazionali; i dataset non rappresentativi rientrano nell'ultima.
- Deriva dei dati: cambiamento nella distribuzione degli input dopo la distribuzione del modello. La distorsione del dataset è presente fin dalla raccolta, mentre la deriva apre un divario in un secondo momento, anche se i dati iniziali erano rappresentativi.
Individuare e ridurre la distorsione del dataset#
Il rilevamento dei bias nei dataset di visione inizia con la documentazione e la valutazione disaggregata. Datasheets for Datasets propone di registrare chi ha raccolto i dati, come e a quale scopo, così gli utenti possono valutare chi rappresentano. La valutazione dovrebbe riportare le metriche per gruppo, sito, telecamera o condizione, insieme a una matrice di confusione per ogni sottoinsieme, invece di un'unica media. Anche esaminare i dati direttamente aiuta: in Ultralytics Platform, la scheda Classes di ogni dataset mostra graficamente i conteggi delle annotazioni per classe, con un'opzione di scala logaritmica per i dati sbilanciati; il pannello Clustering mostra gli embedding delle immagini colorati per classe o partizione, così la copertura mancante emerge prima dell'addestramento.
Le correzioni dipendono dalla causa. Raccogliere dati mirati per i sottoinsiemi con prestazioni deboli affronta direttamente il problema, mentre l'apprendimento attivo aiuta a scegliere quali nuove immagini etichettare. L'aumento dei dati varia illuminazione, orientamento e scala, mentre i dati sintetici possono coprire condizioni rare, come scene notturne o difetti insoliti. Attribuire pesi diversi o sovracampionare gli esempi sottorappresentati, oppure ottimizzare le prestazioni del gruppo peggiore con l'ottimizzazione robusta rispetto alla distribuzione, modifica gli obiettivi dell'addestramento. Dopo la distribuzione, il monitoraggio del modello suddiviso per sottoinsieme rileva i divari che emergono quando cambiano le condizioni.










