Ajuda a proteger a Grande Barreira de Corais com TensorFlow em Kaggle Junte Desafio

O que é a remediação de modelos?

Depois da avaliação por segmento do desempenho de um modelo de machine learning, talvez o modelo tenha desempenho inferior em alguns segmentos de dados. Esse tipo de desempenho desigual às vezes pode levar a resultados injustos e potencialmente nocivos para subconjuntos vulneráveis da população. Em geral, há três tipos principais de intervenções técnicas para resolver os problemas de viés:

  • Mudança dos dados de entrada: coletar mais dados, gerar dados sintéticos, ajustar os pesos e as taxas de amostragem de diferentes segmentos, entre outros.1
  • Intervenção no modelo: mudar o próprio modelo ao introduzir ou alterar os objetivos do modelo, adicionar restrições, entre outros.2
  • Pós-processamento dos resultados: mudar as saídas do modelo ou a interpretação das saídas para melhorar o desempenho em todas as métricas.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, ...)

O que é a técnica MinDiff?

MinDiff é uma técnica de remediação de modelo com o objetivo de igualar duas distribuições. Na prática, ela pode ser usada para equilibrar as taxas de erros em diferentes segmentos de dados ao penalizar as diferenças de distribuição.

Geralmente, a técnica MinDiff é aplicada para tentar minimizar a diferença na taxa de falsos positivos ou de falsos negativos (FPR e FNR, respectivamente, em inglês) entre um segmento de dados relativos a uma classe sensível e um segmento de melhor desempenho. Para ver uma discussão mais aprofundada sobre as métricas de imparcialidade, consulte os materiais sobre o assunto.4 5 6

Como a técnica MinDiff funciona?

Com base nos dois conjuntos de exemplo do nosso conjunto de dados, MinDiff penaliza o modelo durante o treinamento pelas diferenças na distribuição de pontuações entre os dois conjuntos. Quanto menor for a diferença entre os conjuntos e as pontuações de previsão, menor será a penalidade aplicada.

A penalidade é aplicada com a adição de um componente à perda com que o modelo está sendo treinado. Pode ser considerada como a medida da diferença na distribuição das previsões do modelo. À medida que o modelo é treinado, ele tentará minimizar a penalidade ao aproximar as distribuições, como no gráfico acima.

A aplicação de MinDiff pode trazer desvantagens em relação ao desempenho da tarefa original. Na prática, a técnica MinDiff geralmente é eficiente e não há deterioração do desempenho além das necessidades do produto, mas isso dependerá do aplicativo, e a decisão deverá ser feita deliberadamente pelo proprietário do produto. Para ver exemplos de como implementar MinDiff, consulte nosso tutorial do notebook.

1Zhang, G., Bai, B., Zhang, J., Bai, K., Zhu, C., Zhao, T. (2020). Demographics Should Not Be the Reason of Toxicity: Mitigating Discrimination in Text Classifications with Instance Weighting.
2Prost, F., Qian H., Chen, Q., Chi, E., Chen, J., Beutel, A. (2019). Toward a better trade-off between performance and fairness with kernel-based distribution matching.
3Alabdulmohsin, I. (2020). Fair Classification via Unconstrained Optimization.
4Dwork, C., Hardt, M., Pitassi, T., Reingold, O., Zemel, R. (2011). Fairness Through Awareness.
5Hardt, M., Price, E., Srebro, N. (2016). Equality of Opportunity in Supervised Learning.
6Chouldechova, A. (2016). Fair prediction with disparate impact: A study of bias in recidivism prediction instruments.

Recursos