O que é correção do modelo?

Depois de realizar a avaliação em fatias do desempenho de um modelo de aprendizado de máquina, você pode perceber que seu modelo está apresentando baixo desempenho em certas fatias de dados. Esse tipo de desempenho desigual às vezes pode levar a resultados injustos e potencialmente prejudiciais para subconjuntos vulneráveis ​​da população. Geralmente, existem três tipos principais de intervenções técnicas para lidar com questões de preconceito:

  • Alterando os dados de entrada: Coletando mais dados, gerando dados sintéticos, ajustando os pesos e as taxas de amostragem de diferentes fatias, etc. 1
  • Intervindo no modelo: Mudando o próprio modelo, introduzindo ou alterando os objetivos do modelo, adicionando restrições, etc. 2
  • Pós-processamento dos resultados: Modificando as saídas do modelo ou a interpretação das saídas para melhorar o desempenho nas 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 é MinDiff?

MinDiff é uma técnica de remediação de modelo que busca equalizar duas distribuições. Na prática, ele pode ser usado para equilibrar as taxas de erro em diferentes fatias de seus dados, penalizando as diferenças de distribuição.

Normalmente, aplica-se MinDiff ao tentar minimizar a diferença na taxa de falso positivo (FPR) ou taxa de falso negativo (FNR) entre uma fatia de dados pertencente a uma classe sensível e uma fatia de melhor desempenho. Para uma discussão aprofundada das métricas de justiça, revise a literatura sobre o assunto. 4 5 6

Como funciona o MinDiff?

Dados dois conjuntos de exemplos de nosso conjunto de dados, MinDiff penaliza o modelo durante o treinamento por diferenças na distribuição de pontuações entre os dois conjuntos. Quanto menos distinguíveis os dois conjuntos são baseados nas pontuações de predição, menor será a penalidade que será aplicada.

A penalidade é aplicada adicionando um componente à perda com a qual o modelo está treinando. Pode ser pensado como uma medida da diferença na distribuição das previsões do modelo. Conforme o modelo treina, ele tentará minimizar a penalidade aproximando as distribuições, como no gráfico acima.

A aplicação de MinDiff pode vir com compensações em relação ao desempenho na tarefa original. Na prática, frequentemente achamos que o MinDiff é eficaz, embora não prejudique o desempenho além das necessidades do produto, mas isso depende da aplicação e a decisão deve ser tomada deliberadamente pelo proprietário do produto. Para exemplos que mostram como implementar MinDiff, consulte nosso tutorial de notebook .

1 Zhang, G., Bai, B., Zhang, J., Bai, K., Zhu, C., Zhao, T. (2020). A demografia não deve ser o motivo da toxicidade: atenuando a discriminação em classificações de texto com ponderação de instância.
2 Prost, F., Qian H., Chen, Q., Chi, E., Chen, J., Beutel, A. (2019). Rumo a uma melhor compensação entre desempenho e justiça com correspondência de distribuição baseada em kernel.
3 Alabdulmohsin, I. (2020). Classificação justa por meio de otimização irrestrita.
4 Dwork, C., Hardt, M., Pitassi, T., Reingold, O., Zemel, R. (2011). Justiça por meio da conscientização.
5 Hardt, M., Price, E., Srebro, N. (2016). Igualdade de Oportunidades na Aprendizagem Supervisionada.
6 Chouldechova, A. (2016). Previsão justa com impacto díspar: Um estudo de viés em instrumentos de previsão de reincidência.

Recursos