Che cos'è la riparazione del modello?

Dopo aver eseguito la valutazione in sezioni delle prestazioni di un modello di apprendimento automatico, potresti notare che il tuo modello ha prestazioni inferiori a determinate sezioni di dati. Questo tipo di prestazioni ineguali a volte può portare a risultati ingiusti e potenzialmente dannosi per sottogruppi vulnerabili della popolazione. In generale, ci sono tre tipi principali di interventi tecnici per affrontare i problemi di pregiudizio:

  • Modifica dei dati in ingresso: Raccolta più dati, generando dati sintetici, regolando i pesi e frequenze di campionamento diverse fette, ecc 1
  • Intervenire sul modello: cambiare il modello stesso introducendo o alterando gli obiettivi del modello, aggiungendo vincoli, ecc. 2
  • Post-elaborazione dei risultati: modifica degli output del modello o interpretazione degli output per migliorare le prestazioni attraverso le metriche. 3

from tensorflow_model_remediation import min_diff
import tensorflow as tf

# Start by defining a Keras model.
original_model = ...

# Set the MinDiff weight and choose a loss.
min_diff_loss = min_diff.losses.MMDLoss()
min_diff_weight = 1.0  # Hyperparamater to be tuned.

# Create a MinDiff model.
min_diff_model = min_diff.keras.MinDiffModel(
original_model, min_diff_loss, min_diff_weight)

# Compile the MinDiff model normally.
min_diff_model.compile(...)

# Create a MinDiff Dataset and train the min_diff_model.
min_diff_model.fit(min_diff_dataset, ...)

Cos'è MinDiff?

MinDiff è una tecnica di riparazione del modello che cerca di equalizzare due distribuzioni. In pratica, può essere utilizzato per bilanciare i tassi di errore su diverse sezioni di dati penalizzando le differenze distributive.

In genere, si applica MinDiff quando si cerca di ridurre al minimo la differenza nel tasso di falsi positivi (FPR) o nel tasso di falsi negativi (FNR) tra una porzione di dati appartenente a una classe sensibile e una sezione con prestazioni migliori. Per una discussione approfondita delle metriche di equità, rivedere la letteratura su questo argomento. 4 5 6

Come funziona MinDiff?

Dati due serie di esempi dal nostro set di dati, MinDiff penalizza il modello durante l'addestramento per differenze nella distribuzione dei punteggi tra i due set. Meno distinguibili i due set si basano sui punteggi di previsione, minore sarà la penalità che verrà applicata.

La penalità viene applicata aggiungendo una componente alla perdita con la quale il modello si sta allenando. Può essere pensato come una misura della differenza nella distribuzione delle previsioni del modello. Man mano che il modello si allena, cercherà di ridurre al minimo la penalità avvicinando le distribuzioni, come nel grafico sopra.

L'applicazione di MinDiff può comportare dei compromessi rispetto alle prestazioni dell'attività originale. In pratica, abbiamo spesso riscontrato che MinDiff è efficace senza deteriorare le prestazioni oltre le esigenze del prodotto, ma ciò dipenderà dall'applicazione e la decisione dovrebbe essere presa deliberatamente dal proprietario del prodotto. Per esempi che mostrano come implementare MinDiff, vedere il nostro tutorial per notebook .

1 Zhang, G., Bai, B., Zhang, J., Bai, K., Zhu, C., Zhao, T. (2020). I dati demografici non dovrebbero essere la ragione della tossicità: mitigare la discriminazione nelle classificazioni del testo con la ponderazione delle istanze
2 Prost, F., Qian H., Chen, Q., Chi, E., Chen, J., Beutel, A. (2019). Verso un migliore compromesso tra prestazioni e correttezza con la corrispondenza della distribuzione basata sul kernel.
3 Alabdulmohsin, I. (2020). Classificazione equa tramite ottimizzazione non vincolata.
4 Dwork, C., Hardt, M., Pitassi, T., Reingold, O., Zemel, R. (2011). Equità attraverso la consapevolezza.
5 Hardt, M., Price, E., Srebro, N. (2016). Uguaglianza di opportunità nell'apprendimento supervisionato.
6 Chouldechova, A. (2016). Previsione equa con impatto disparato: uno studio del bias negli strumenti di previsione della recidiva.

Risorse