admin管理员组

文章数量:1594218

原文出处:https://blog.godatadriven/fairness-in-pytorch

近几年,机器学习的公平性广泛地引起科研与开发人员的关注。简单而言,由于不同的社会环境,导致同样的算法,预测结果可能出现较大差异。Stijn 提出的对抗网络(adversarial network)也许可以作为辅助,提高预测的公平性,减少偏差。

对抗网络原理

https://papers.nips/paper/6699-learning-to-pivot-with-adversarial-networks

在网络训练前,数据集被分成三类:特征集,目标集以及敏感属性集。特征集包含网络预测时所需的输入参数(例如:年龄、文化程度、工作类型等)。目标集是指二值化的数据类型标注。敏感属性则用于衡量预测公平性。值得注意的是,数据集不能交叉重叠。

网络结构如下图所示:

通过将分类网络的输出作为后续对抗网络的输入,计算引入的敏感属性(例如:人种、性别等)变量对算法准确度的影响。如此,当分类网络出现偏差,对抗网络可以对其进行驳回修正。

可以看出网络的基本结构与GANs相似,但有三个主要区别:1) generative模型被预测模型替换。 所以输出的结果不再是合成数据而是根据输入实际预测的结果。2)对抗网络的功能不再是将生成数据与实际数据区分开来,而是根据数据结果预测敏感属性。3) 网络优化依赖目标与敏感参数的损失函数。

通过目标函数可以在减小预测网络损失函数的同时增加对抗网络的损失函数。

迭代网络的基本流程

1. 在全部数据集上预训练分类网络

2. 用分类网络输出结果预训练对抗网络

3. 在T次迭代中同时训练两个网络。首先,在单元内固定分类网络训练对抗网络。然后,固定对抗网络训练分类网络。

本文标签: 公平性机器FairnessmachineLearning