¿Qué es la solución de modelos?

Después de realizar una evaluación desglosada del rendimiento de un modelo de aprendizaje automático, es posible que notes un rendimiento bajo en algunas porciones de datos del modelo. Este tipo de rendimiento desigual podría tener resultados potencialmente dañinos o desleales para ciertos subconjuntos vulnerables de la población. Por lo general, existen tres tipos principales de intervenciones técnicas para solucionar problemas de sesgo:

  • Cambiar los datos de entrada: recopilar más datos, generar datos sintéticos, ajustar las ponderaciones y las tasas de muestreo de las distintas porciones, etc.1
  • Modificar el modelo: cambiar el modelo estableciendo o modificando sus objetivos, agregando restricciones, etc.2
  • Realizar un procesamiento posterior de los resultados: modificar los resultados del modelo o la interpretación de ellos para mejorar el rendimiento en todas las métricas3

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, ...)

¿Qué es MinDiff?

MinDiff es una técnica de solución de modelos cuya función es equiparar dos distribuciones. En la práctica, se puede usar para equilibrar las tasas de error en distintas porciones de datos mediante la penalización de las diferencias en la distribución.

Por lo general, se aplica MinDiff para intentar minimizar las diferencias en las tasas de falsos positivos (FPR) o falsos negativos (FNR) entre una porción de datos que pertenece a una clase sensible y otra porción con un rendimiento mejor. Para obtener un análisis detallado de las métricas de equidad, consulta la documentación sobre este tema.4 5 6

¿Cómo funciona MinDiff?

En los siguientes dos ejemplos de nuestro conjunto de datos, MinDiff penaliza el modelo durante el entrenamiento por la diferencia de distribución de las puntuaciones entre ambos conjuntos. Cuantas menos diferencias existan entre los conjuntos en función a la puntuación de predicción, menor será la penalización que se aplicará.

La penalización consiste en agregar un componente a la pérdida con la que se entrena el modelo. Se puede interpretar como una medición de las diferencias en la distribución de las predicciones del modelo. Durante el entrenamiento del modelo, se buscará minimizar la penalización equilibrando las distribuciones, como se muestra en el gráfico anterior.

El uso de MinDiff puede presentar ciertas desventajas en el rendimiento de la tarea original. En la práctica, consideramos que MinDiff es eficaz y no perjudica el rendimiento de una forma que afecte las necesidades del producto, pero dependerá de la aplicación, por lo que el propietario del producto debe tomar la decisión de manera deliberada. Para ver ejemplos de implementación de MinDiff, consulta nuestro instructivo de notebook.

1 Zhang, 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.
2 Prost, 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.
3 Alabdulmohsin, I. (2020): Fair Classification via Unconstrained Optimization.
4 Dwork, C., Hardt, M., Pitassi, T., Reingold, O., Zemel, R. (2011): Fairness Through Awareness.
5 Hardt, M., Price, E., Srebro, N. (2016): Equality of Opportunity in Supervised Learning.
6 Chouldechova, A. (2016): Fair prediction with disparate impact: A study of bias in recidivism prediction instruments.

Recursos