Help protect the Great Barrier Reef with TensorFlow on Kaggle Join Challenge

什么是模型修复?

在对机器学习模型的性能进行切片评估之后,您可能会注意到模型在某些数据切片上的表现欠佳。这种不均衡的性能表现有时会对总体中的脆弱子集造成不公平和潜在的有害后果。一般来说,解决偏差问题的技术干预手段主要有三种类型:

  • 更改输入数据:收集更多的数据、生成合成数据、调整不同切片的权重和采样率等1
  • 干预模型:通过引入或改变模型目标、添加约束条件等方式改变模型本身2
  • 对结果进行后续处理:修改模型的输出结果,或修改对输出结果的解释,从而提升模型在各个指标方面的表现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, ...)

MinDiff 是什么?

MinDiff 是一种模型修复技术,旨在使两个分布均衡。在实践中,它可以通过惩罚分布差异来平衡不同数据切片的错误率。

通常,如果要尽量降低属于敏感类别的数据切片和表现更好的数据切片之间的假正例率 (FPR) 或假负例率 (FNR) 差异,就可以应用 MinDiff。关于公平性指标的深入讨论,请查阅有关这一主题的文献。4 5 6

MinDiff 的工作方式是什么?

假设我们的数据集有两组样本,MinDiff 会在训练过程中根据这两组样本之间的分数分布差异惩罚模型。这两组数据之间的预测分数差异越小,惩罚就越低。

应用惩罚的方式是向训练模型所采用的损失添加一个分量。可以将其视为对模型预测分布差异的度量。在模型训练过程中,它将通过使分布更接近来尽量降低惩罚,如上图所示。

应用 MinDiff 可能会对原始任务的性能产生影响。在实践中,我们经常发现 MinDiff 效果不错,并且不会使性能降低至无法满足产品需求,但实际效果视具体应用而定,并且是否使用 MinDiff 应该由产品负责人审慎决定。有关说明如何实施 MinDiff 的示例,请参见我们的笔记本教程

1Zhang, G.、Bai, B.、Zhang, J.、Bai, K.、Zhu, C.、Zhao, T. (2020)。受众特征不应该成为恶意内容的理由:通过实例加权减轻文本分类中的歧视
2Prost, F.、Qian H.、Chen, Q.、Chi, E.、Chen, J.、Beutel, A. (2019)。通过基于内核的分布匹配来更好地权衡性能和公平性
3Alabdulmohsin, I. (2020)。通过不受约束的优化进行公平分类
4Dwork, C.、Hardt, M.、Pitassi, T.、Reingold, O.、Zemel, R. (2011)。通过感知实现公平性
5Hardt, M.、Price, E.、Srebro, N. (2016)。监督式学习中的机会平等
6Chouldechova, A. (2016)。带来不同影响的公平性预测:累犯预测工具的偏差性研究

资源