社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

发布用于探索机器学习系统长期影响的工具 —  ML-fairness-gym

TensorFlow • 6 年前 • 823 次点击  

文 / Google Research 软件工程师 Hansa Srinivasan

越来越多的用户选择部署机器学习系统,期望在做具有重大影响的决策时进行辅助,如确定刑事判决与量刑儿童福利评估、选择接受医疗资源的对象及其他一些场景。


了解这类机器学习系统是否公平至关重要。为此,我们需要了解模型的短期和长期影响。评估机器学习系统公平性有许多方法,常见的一种是:收集人们对系统错误输入时的指标并收录在一个静态数据集中,随后对数据集进行差异性分析。


实际上,许多现成的机器学习 (ML) 公平性工具包(如 AIF360fairlearnfairness-indicatorsfairness-comparison)都提供了分析工具,可在现有数据集上进行这种基于错误指标的分析。虽然这类分析更适用于简单环境中的系统,但在某些情况下(例如,具有主动数据收集重要反馈循环的系统), 了解 算法运行时所处的上下文(Context) 对于理解算法的影响至关重要。在这些情况下分析算法决策的公平性时,应该更多考虑关于环境和时间上下文的因素,而非基于错误指标的技术条件。


为促进算法开发以适应这种具有更广泛的上下文的情景,我们发布了 ML-fairness-gym:用于构建简单的模拟,进而探索上述的这种在社会环境中部署基于机器学习的决策系统可能会带来的长期影响。在《公平性并非静态:通过模拟研究加深对长期公平性的理解(Fairness is not Static: Deeper Understanding of Long Term Fairness via Simulation Studies) 一文中,我们展示了如何使用 ML-fairness-gym 来研究自动化决策系统对大量既定问题的长期影响,这些问题来源于当前机器学习公平性的学术文献。



示例:贷款问题

在考虑机器学习系统公平性时,绕不开的一个经典问题是贷款问题Liu 等作者在论文中对此进行了详细描述。这是针对贷款的高度简化和程序化问题的代表,我们侧重关注单个反馈循环以隔绝其影响,并进行深度研究。在这个问题的表述中,将个人申请者的贷款偿还率纳入信用评分计算。这些申请者被分为不同群体(群体的成员数量不定),而贷款银行以申请者所在群体进行整体评估。


这些群体的初始信用评分分布并不相同。银行会设置 一个适用于所有群体或为每个群体量身定制的 信用评分阈值,以便银行最大程度地进行评估。信用评分高于阈值的申请者可以获得贷款,而评分低于阈值的申请者会遭到拒绝。当选中某个申请者后,模拟程序将根据其所在群体的还款概率来随机确定该申请者是否会偿还贷款。


本例中,当前正在申请贷款的个人申请者将来可能会申请其他贷款,因此如果申请者偿还了贷款,其个人信用评分和所在群体的平均信用评分都会上升。同样,如果申请人拖欠贷款,则其个人和所在群体的平均信用评分也会下降。


最有效的阈值设置将取决于银行的目标。一家追求利润最大化的银行会估算申请者偿还贷款的可能性,并基于此设置最大化预期收益的阈值。而力求在两个团体间实现公平性的另一家银行可能会在满足机会均等的同时设法设置可最大化利润的阈值,目标是获得相等的 正例率(True Positive Rates,TPR 也称作 召回率灵敏度;用于衡量本应偿还贷款的 申请中有多少人 获得贷款)。


在这种场景中,银行会利用机器学习技术,根据已发放的贷款与结果来确定最有效的阈值。然而,这些机器学习技术通常侧重于短期目标,因此可能会给不同团体带来意料之外的、不公平的后果。

上方:通过 100 多个模拟步骤改变两个团体的信用评分分布;下方:左图为银行现金;右图为 TPR,在模拟过程中,分别以蓝色和绿色代表团体 1 和团体 2



静态数据集分析的缺陷

机器学习中,在评估贷款这类场景的影响时,标准做法是保留一部分数据作为“测试集”,并计算相关的性能指标。然后,通过观察具有显著性特征的不同团体间的性能指标差异来评估公平性。但众所周知,在有反馈的系统中使用这种测试集时,有两个主要问题:
  • 如果测试集由现有系统生成,那么它们可能是不完整的,或者会反映这些系统的固有偏差。在贷款问题示例中,测试集可能并不完整,因为它可能只包含已获贷款的申请者是否拖欠或偿还贷款的信息。因此,该数据集可能不包括贷款尚未获批或以前未获得贷款的申请者。
  • 经由 ML 系统分析结果的后续操作可能会影响未来的输入数据。ML 系统确定的阈值用于放款。当前群组成员是否拖欠或偿还这些贷款会影响该群组中申请者未来的信用评分,并且这个评分会反馈到 ML 系统中。


这些问题突出了在静态数据集中评估公平性的缺点,并展现对部署在动态系统的上下文中分析算法公平性的需求。为此,我们创建了 ML-fairness-gym 框架,以帮助 ML 从业者将基于模拟的分析引入其 ML 系统中。经证明,这种方法在诸多领域中都有效,可用于难以进行封闭式分析的动态系统。



ML-fairness-gym:适用于长期分析的模拟工具

ML-fairness-gym 使用 Open AI 的 Gym 框架模拟序贯决策。在这个框架中, 代理 会与模拟环境 进行 循环交互。在每个步骤中,代理 (Agent) 都会选择一个 后续会 对环境 (Evironment) 状态造成影响的操作。然后,环境会返回一个代理操作的 观察结果。在此框架中,环境会对问题的系统和动态进行建模,并将观察结果则作为数据提供给代理,而代理可以编码为机器学习系统。

模拟框架中使用的代理与环境循环交互流程原理图:代理通过选择操作来影响环境;环境受操作影响而变化,并提供部分内部状态作为观察结果。指标则用于检查环境的历史记录,以便评估结果


在贷款问题的示例中,银行便扮演着代理的角色。银行接收贷款申请者、其信用评分和群组成员资格这样一系列的过程便是观察环境的过程,而且银行会以二元决策的方式来做出接收或拒绝贷款请求的行动。然后,环境会对申请者是否成功还款或拖欠贷款进行建模,并相应地调整他们的信用评分。ML-fairness-gym 模拟结果,以便评估银行政策对申请者群体公平性的长期影响。



公平性并非静态:将分析拓展到长期

由于 Liu 等作者最初提出的贷款问题只检查了银行政策的短期影响:称为最大奖励代理的短期利润最大化政策和受 机会均等 (Equality of Opportunity,EO) 约束的政策,我们使用 ML-fairness-gym 通过模拟将分析拓展到长期(多步骤)。

上图:由最大奖励代理和 EO 代理发放的累计贷款,按申请者的群体身份划分。下图:随着模拟的进展得到的群体平均信用评分(通过群体条件的还款概率量化得出)。EO 代理提高了群体 2 获得贷款的机会,但也扩大了两个群体间的信用差距


我们通过长期的分析发现了两个结果:

首先,也就是 Liu 等作者发现的结果,机会均等代理 (EO agent) 会向弱势团体(即最初的平均信用评分较低的团体 2)发放更多贷款,因为对该团体应用的阈值有时会低于最大奖励代理所给的阈值。这会使得团体 2 的信用评分比团体 1 下降得更多,进而导致二者之间的信用评分差距比使用最高奖励代理的模拟更大。然而,我们的分析还发现,虽然使用 EO 代理似乎会使团体 2 的情况更糟,但从累计贷款图中可以看出,处于弱势的团体 2 明显从 EO 代理处获得了更多贷款。根据福利指标是信用评分还是收到的贷款总额,可以认为,相较于最大奖励代理,EO 代理对团体 2 的影响更大


第二个发现是,机会均等的约束(即在每个步骤中强制实施团体间均等的 TPR)并不能在整个模拟过程中实现 TPR 均等。这个或许有违直觉的结果可看作辛普森悖论 (Simpson’s paradox) 的一个实例。如下表所示,两年中每一年的 TPR 相等并不意味着整体的 TPR 相等。这表明了当潜在群体不断发展时从机会均等指标难以解释,并建议必须通过更仔细的分析确保 ML 系统达到预期效果。

辛普森悖论的一个实例:TP (True Positive) 为正例分类,FN (False Negative) 为假负例分类,TPR 为正例率。在第 1 年和第 2 年,放款人采用的政策是在两个团体之间实现相等的 TPR。而这两年的总和 TPR 并不 相等



结论与后续工作

虽然我们在本篇博文中集中讨论了关于贷款问题的发现,但 ML-fairness-gym 可以用来解决各种公平性问题。我们在论文中扩展了另外两个场景的分析,而 ML 公平性的学术文献先前对此也有过研究。此外,ML-fairness-gym 框架也足够灵活,可以模拟和探索“公平性”研究不足的问题。例如,在一篇题为《社会网络中的公平治疗分配(Fair treatment allocations in social networks) 的支持性论文中,我们探索了流行病控制的程式化版本并称其为 精准疾病控制问题,以便更好地理解在社会网络中个人和社区之间的公平性概念。


我们为 ML-fairness-gym 的潜力感到兴奋,它可以帮助其他研究人员和机器学习开发者更好地理解机器学习算法对我们社会的影响,并为开发更可靠、更公平的机器学习系统提供信息。请访问 ML-fairness-gym 的 GitHub 代码库,查看相关代码和论文。



如果您想详细了解 本文提及 的相关内容,请参阅以下文档。这些文档深入探讨了这篇文章中提及的许多主题:

  • 刑事判决
    https://www.propublica.org/article/machine-bias-risk-assessments-in-criminal-sentencing

  • 儿童福利评估
    http://proceedings.mlr.press/v81/chouldechova18a.html

  • 接受医疗资源的目标对象
    https://science.sciencemag.org/content/366/6464/447

  • AIF360
    https://github.com/IBM/AIF360

  • fairlearn
    https://github.com/fairlearn/fairlearn

  • fairness-indicators
    https://github.com/tensorflow/fairness-indicators

  • fairness-comparison

    https://github.com/algofairness/fairness-comparison

  • ML-fairness-gym 的 GitHub 代码库
    https://github.com/google/ml-fairness-gym

  • 公平性并非静态:通过模拟研究加深对长期公平性的理解
    https://github.com/google/ml-fairness-gym/blob/master/papers/acm_fat_2020_fairness_is_not_static.pdf

  • 贷款问题

    https://bair.berkeley.edu/blog/2018/05/17/delayed-impact/

  • Liu 等作者
    http://proceedings.mlr.press/v80/liu18c/liu18c.pdf

  • 机会均等
    https://ai.googleblog.com/2016/10/equality-of-opportunity-in-machine.html

  • 测试集
    https://developers.google.com/machine-learning/crash-course/training-and-test-sets/video-lecture

  • Open AI 的 Gym

    https://gym.openai.com/

  • 论文

    https://github.com/google/ml-fairness-gym/blob/master/papers/acm_fat_2020_fairness_is_not_static.pdf

  • 社会网络中的公平治疗分配
    https://github.com/google/ml-fairness-gym/blob/master/papers/fairmlforhealth2019_fair_treatment_allocations_in_social_networks.pdf



—推荐阅读—



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/55931