找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

算法偏差的算法解决方案:一份技术指南

admin 2019-7-9 22:39 176人围观 C++相关

选自 | towardsdatascience

作者 | Joyce Xu

全文长 | 6500字



我想谈谈减轻算法偏差的技术方法。

2019年,ML社区的大多数人终于公开承认ML模型中偏见的普遍性和后果。多年来,ProPublica和纽约时报等组织的数十份报告揭示了犯罪风险评估,预测性警务,信贷,招聘等方面的算法歧视规模。无论知情与否,我们作为ML的研究人员和工程师不仅成为一个加剧不平等的社会政治项目的同谋,而且现在还负责对黑人进行不公平的监狱判决和对有色社区的住房歧视。

只认识到这种偏差并承认它是不够的。我一直在争辩,即使是个体ML工程师也努力在直接代理的自动化系统中塑造公平性。偏差可能是一个人类问题,但偏差的放大是一个技术问题 – 是模型训练方式的副产品。因此,减轻现有偏差也是一个技术问题:我们如何在算法上确保我们建立的模型不会反映和放大人类对数据的偏差?

不幸的是,并不总是能即刻获得“更好的训练数据”。在这篇文章中,我概述了以下减轻偏差的算法方法,我希望这对于想要尝试减轻偏差的人们有用:

  • 通过保护敏感属性来对抗性去偏差

  • 使用半监督,变分“公平”自动编码器编码的不变表示

  • 基于学习潜在表征的训练数据的动态上采样

  • 通过分布式鲁棒优化来防止视差放大

我在本文中会尽可能链接到库/代码/教程/资源(链接见文末),但如果你想直接使用代码,那么AI 360工具包是一个不错的起点。

I. 对抗性去偏差(Adversarial De-biasing)



Adversarial de-biasing是目前对抗偏差最流行的技术之一。它依靠对抗性训练来消除模型所学习的潜在表征的偏差。

设Z是我们想要阻止我们的算法区分的一些敏感属性,例如年龄或种族。简单地从我们的训练数据中删除Z通常是不够的,因为它通常与其他功能高度相关。我们真正想要的是防止我们的模型以任何实质的方式学习依赖于Z的输入。为此,我们训练模型能够同时预测标签Y和阻止联合训练的对手(adversarial)去预测Z。

原理如下:如果我们的原始模型产生的X表示主要用来对关于Z的信息(例如种族)进行编码,则对抗模型可以使用该表示轻松地恢复和预测Z。相反的情况,如果对手未能恢复关于Z的任何信息,那么我们就成功地学习了独立于受保护属性的输入的表示。

我们可以将我们的模型看作是一个多头深度神经网络,其中一个头用于预测Y,另一个头用于预测Z.我们进行正常的梯度反向传递,除非我们在头部发回负信号,通过使用负梯度来预测Z.



形式上,将g(X)视为我们输入的共享学习嵌入。我们让f成为我们的预测函数,其中Y = f(g(X)),并且a是我们的对手,其中Z = a(g(X))。最终目标是为我们的神经网络来学习表示g ^(X),使得f很容易预测Y,但对于a来说却很难预测Z。在优化术语中,我们希望最小化我们的预测损失L_y(f(g(X)),Y)并最大化对抗性损失L_z(a(g(X)),Z)。

为了统一这些优化并控制两者之间的权衡,我们引入J_λ,它是具有负梯度的标识函数,即:

  • J(g(X))= g(X),和

  • DJ / DX =-λd g(X)/ DX。

使用J_λ,其中λ是一个超参数,用于确定模型精度和敏感信息消除之间的权衡,我们可以使用整体优化目标训练我们的神经网络:



在实践中,将对手视为具有其自身权重的单独神经网络可以更容易和更有效。在这种情况下,我们将预测器网络的最后一层的输出馈送到对抗网络的输入中。



由于对手只是想尽量减少自己的损失,我们会像往常一样根据梯度∇_uL_A更新其权重U. 但是,预测变量权重W的更新表达式稍微复杂一些:



表达式中的第一项是预测变量的损失的梯度,并且包括最小化预测损失在内。第三个术语是对手相对于预测者权重的负梯度,包括最大化对手的损失在内。(注意,在这种情况下,α是控制精度/去偏置权衡的超参数)。这种表述的新颖性在于中间的预测术语:删除预测器的梯度更新中有助于对手的所有组件。如果没有这个术语,预测器仍然可以进行有益于对手的更新,如下图所示:



(右上角(g)中的向量是我们预测损失的梯度。如果我们仅仅通过相对于W添加其负梯度来尝试最大化对手的损失,我们最终得到向量g + h,仍然在对手的渐变的正方向上移动。我们还必须删除g到h的投影,以摆脱帮助对手的g的所有组成部分,将我们带到左上角的向量。)

adversarial de-biasing方法的许多变体和改进都存在于我在此处描述的范围之外。就在几天前,我正在和CVPR的一位研究员聊天,他提出的模型最大化了对手预测的熵而不是损失,即网络试图最大限度地混淆对手而不是进行零和博弈来平衡预测精度和偏差消除。

哇,adversarial de-biasing真是太酷了!我该如何使用/了解更多?

  • 代码:Colab教程

  • 论文:Beutel,2017 ; 张,2018年。


II 变分“公平”自动编码器(Variational “Fair” Autoencoders)



另一种学习“公平”数据表示的技术是Variational Fair Autoencoder (VFAE)。VFAE将“公平性”描述为对数据集的某些已知方面明确不变的表示。从概念上讲,这是我最喜欢的技术之一,因为它非常巧妙地将ML偏见中的思想与无监督和半监督表示学习的更广泛的领域联系在一起。实际上,因为它是一种半监督方法,所以在利用未标记数据方面尤其有用。

快速的VAE复习

如果您不熟悉变分自动编码器(VAE),这篇博客文章提供了很好的讲解,Stefano Ermon的课堂笔记为你建立了全面的数学概念。但是,由于VAE对于这种方法和下一种方法都是不可或缺的,我在这里快速地介绍一下。

VAE是一种生成模型,可以学习输入的某些潜在表示的参数化。我们假设存在潜在变量z能够解释x; 我们有一个“编码器”网络q(z|x),它产生正态分布的μ和σ,从中可以对z进行采样,以及“解码器”网络p(x|z),它试图从编码z 中重建 x。这里的关键是我们想要学习编码器和解码器的参数,以最大化我们数据的可能性,但通常情况下计算后验p(z|x)是难以处理的。因此,我们训练神经网络以最大化p(x)的下限:



这个下限的第一项是我们的“重建损失”,它评估:我们的解码器能够从我们采样的编码中恢复输入吗?第二个术语是KL发散正则化器,它鼓励q产生类似于p(z)定义的标准编码,它评估:我们的编码器是否产生有意义的聚类编码?这两个目标一起训练模型来发现潜在的空间,既能准确地捕捉我们的数据的语义,又能在我们的数据中概括/插值。

算法公平:把F放在VFAE中

我们将VFAE公式化为无监督模型,假设每个数据点x都有一定概率从两个“源”生成:1个是观察到的s,它代表我们想要去除的变量,另一个是连续的潜在变量z和它编码剩余的信息。



直观地,我们可以将学习无差别表示的问题想象为恢复此输入背后的潜在概率信息源,以明确地将敏感源(s)与不变源(z)分开。请注意,此方法与前面讨论的对抗性adversarial debiasing方法一样,要求您了解并指定敏感源或特征是什么。

使用上述VAE的下限,我们可以优化解码器p_θ和编码器q_φ以获得z,这是一种捕获关于x的最显著的非敏感信息的编码:



不幸的是,无监督模型有一个明显的问题:如果敏感变量s和标签y实际上是相关的,那么我们可能最终得到z相对于y的简并表示 - 也就是说,实际上没有编码关于该信息的显著信息的标签。为了解决这个问题,我们引入了第二层变量来尝试将z与y相关联,包括标签y本身和另一个潜在变量z2,后者编码z中没有用y解释的剩余变量。注意,在下面的图和表达式中,z现在表示为z1。



直观地,z2将捕获并通过解释消除x依赖的噪声,留下的z1仅负责找到可以解释标签y的x的不变表示,这是我们所期望看到的。

“注入”标签信息在特征提取阶段的妙处是,即使标签是不存在的,我们可以用解码器q_φ(Y | Z1)从其中y数据得知是目前以填补缺失数据。换句话说,这种技术很容易扩展到半监督学习。完整的数学推导很长,无法在文章中展现,你可以在原始论文的第2.2节中找到。

这种方法的最终贡献是使用最大均值差异作为进一步的正则化器来确保模型的“公平性”。虽然注入标签对于防止退化很有用,但如果标签y恰好与敏感变量s相关,则有关该敏感变量的信息仍有可能通过y“泄漏”到我们的表示中。为了解决这个问题,我们在下限引入了一个最终惩罚项,希望z1对s不变 ; 具体地说,我们鼓励分布q_φ(z1| s = 0)和q_φ(z1| s = 1)相似。

该惩罚项是最大均值差异(MMD),其测量两个分布的平均嵌入(或它们各自的特征映射)之间的平方距离。VFAE的最终损失项只是比较当s = 0和s = 1时z1的经验统计数据ψ(·)。



形式上,我们的最终VFAE模型在变量自动编码器架构上扩展了标记数据(x_n,s_n,y_n)和未标记数据(x_m,s_m),并使用MMD来确保我们学习的表示Z相对于s的不变性:

好的,我确信。我怎样才能与VFAE一起潜水?可以翻译成如何进一步学习VFAE

  • 代码:研究代码; Jupyter笔记本(tensorflow)。

  • 论文:Louizos,2017年。

III 训练数据的动态上采样(Dynamic Upsampling of Training Data)



前两种技术都修改了模型的学习表示learned representation。他们使用结果 (预测或关联敏感属性的能力) - 来规范学习的数据表示。下一种方法,称为Debiasing Variational Autoencoder,实际上使用学习表示来重新平衡训练数据。它的前提非常直观:由于培训数据缺乏适当的表示,许多现代ML系统在某些人口统计数据上会失败,因此,让模型了解哪些输入来自未被表示的群体,并在训练期间更频繁地对这些输入进行采样。

与前两种方法不同,这种方法的最大优点是,它不需要您知道或指定数据中的敏感属性; 模型将在训练时自动学习它们。因此,该模型还可以自由地学习比人类注释者所轻易指定的更复杂和细微差别的“欠表示”来源。例如,在面部识别中,人类可能很容易识别哪些人群在训练数据中表现不足,但很难确定哪些姿势或面部表情的特征太少,无法准确预测。

Debiasing Variational Autoencoder提出了一个非常简单的解决方案:如果数据点位于潜在空间的欠表示区域,则在训练中对其进行上采样。我们需要了解这种方法有两个组成部分:1)修改后的VAE模型架构和2)数据重新加权算法。

VAE有一个标准编码器q_φ(z | x)来估算潜在变量,除了不产生k个潜在变量产生标准的2k激活(即每个潜在变量的μ和σ),它产生2k + d输出,其中d是标签y的维度。换句话说,VAE编码器同时执行原始预测任务并学习训练数据的潜在表示。我们还学习了一个标准解码器p_θ(x | z),它重建了学习潜在变量的输入。

总而言之,我们的网络训练有3个损失:预测任务的监督损失,重建输入的重建损失,以及潜在变量的KL分歧损失。



注意,第一项是监督分类损失,接下来的两个术语是VAE损失的标准组成部分。

整体架构看起来像这样:



修改后的VAE架构。请注意,z_0是预测标签,z_1到z_k-1是用于更新采样概率的潜在变量。

现在,对于在潜在空间中表现不足的权重训练点,我们需要找出哪些数据点具有不常见或不常见的潜在表现。为此,我们估计了潜在空间(Z)中变量的频率分布。请注意,给定数据集X,我们可以使用直方图Q_hat(z | X)来近似该分布。随着潜在变量k的数量增加,该直方图的维数可能变得非常大,因此我们进一步使用每个潜在z_i的独立直方图来近似该联合分布:



为了直观地解释直方图Q_i(z_i | X),回想一下潜在变量z_i是由μ_i和σ_i参数化的。进一步而言,由于z_i是以x为条件的,所以每个输入x都有它自己的平均值和标准偏差。直方图Q_i计算这些平均值的频率和整个数据集的标准偏差。对于给定任何输入x,如果Q_i(z_i(x)| X)很小,我们知道它通常具有z_i的不常见值。如果q_j(z_j(x)x)在所有(或多个)潜在变量z_j中很小,我们知道x具有不常见的整体潜在表示。

利用这些柱状图,我们可以使选择用于训练的数据点X的概率与其在潜在空间中的表示频率成反比:



该模型最终将学习将小样本概率w(z(x)x)分配给标准图像,并将较大样本概率分配给非标准图像:



太好了,我已准备好动态重平衡我的所有ML数据集。



  • 代码:遗憾的是我找不到代码:(但是我已经通过电子邮件发送了论文的作者。同时,这个算法是数据重新加权的另一个例子,只是它是在预处理阶段完成的仅使用类标签(而不是在训练时使用潜在表示进行动态加权)。

  • 论文:Amini,2019。


IV 分布式鲁棒优化(Distributionally Robust Optimization)

我们的最终偏差缓解策略直接修改了优化目标。它建议使用分布式鲁棒优化(DRO),它基本上最小化数据集中每个组的最坏情况损失,代替经验风险最小化(ERM)的现状,从而最小化数据集中的平均损失。它可能是所描述的所有方法中最常见的:它与模型无关,并且不要求我们去识别受保护组的身份以及它们在数据集中的比例。

在我们开始之前,需要澄清一些关于DRO的术语。Representation Disparity是指模型实现了整体高精度但存在少数低精度的现象。在我们运行的面部识别示例中,当识别引擎整体表现良好但对某些少数群体表现不佳时就会发生这种情况。Disparity Amplification指的是通过ML模型中的正反馈回路随时间以某种方式放大表示差异的现象。例如,由于性能不佳,少数群体可能会停止使用面部识别引擎,从而停止提供数据。同样,使用预测性警务算法的警官们可能从一开始就针对黑人社区,从而加强了模型的初始(历史和人类)偏见。

这种方法背后的论点是,Representation Disparity是由于优化平均损失而产生的。相反的,通过优化最坏情况组,DRO在ERM变得不合理的情况下依旧能够发挥效用,甚至可以防止此类模型中的差异放大。

在形式上,我们考虑具有K个潜在群体,其中每个群体k占人口的比例⍺_k并且具有潜在分布P_k。假设我们不知道任何人口统计的数据和比例。每个输入Z ~ P_k被查询损失,每组的“风险” - 表示为R_k(θ) - 是那些输入Z的预期损失。

DRO的目标是控制K组中所有最坏情况的风险,即:



但请注意,我们无法使用R_max直接进行优化,因为我们不知道数据集中任何组的基础分布P_k。这就有一个明显的问题:当我们不知道这些群体的分布情况时,我们如何最大限度地减少每个群体发生最坏情况的风险?

答案是我们只考虑所有与我们观察到的总人口分布相近的最坏情况损失。具体来说,我们考虑在经验分布P的某个卡方半径r内的所有分布Q:



因为我们也不知道最坏的组的比例,我们选择的这个半径r基于最小的组⍺_ min。可以得到最大半径的鲁棒性,其中半径r _MAX =(1 /⍺_ min- 1)^2。

直观地说,我们现在正在优化最坏情况的基础分布,这些分布至少构成已知总分布P的百分之a_min。

优化过程的行为看起来是什么样的呢?在某些约束下,R_dro(θ; R _MAX)等效于以下(更加有用)的表达:



其中C =(2 * r_ max +1)^(1/2),并且η是超参数。这个表达式使得DRO的行为更加明显:所有低于η水平损失的数据点都被忽略,而损失远大于η的数据点由于平方项而被加权。下图说明了在实践中使用DRO的这种行为:



从该图的面板(a),可以看到我们的数据集是两个基础分布的混合,其中一个远远超过另一个。优化平均损失的“ERM估计”天生只会针对多数群体进行优化,并产生完全不适合其他分布的θ_erm。同时,如果我们知道哪些数据点属于哪些组并且可以使用R_ max优化每组中的最坏情况风险,那么我们最终将得到与两个组等距的θ_fair。如果组内没有符合条件的,DRO只会忽略所有损失小于η*的示例,并在所有分布的尾端加权高损失例子。结果,DRO找到了一个接近θ_fair的最佳θ_dro*,并且仅略微偏向多数组。

所以,想要使用DRO训练神经网络,我们只需选择η值并计算最佳θ:



由于η是超参数,我们可以对可能的值执行二进制搜索以找到全局最优值。

我已经准备好(凭经验)用DRO来支持!(总之就是一些关于DRO的论文)

  • 代码:Codalab工作表(向Percy 致敬,让他的研究生留在可重复的研究之上)。

  • 论文:Hashimoto,2018。


结论

我希望我所描述的这些算法是有用的,但我也要强调算法的公平性不能成为故事的结尾。即使是最好的技术也可以作为达到目的的手段,在一个由几个世纪的结构性不平等、压迫和剥削所造成的世界里,“谁的目的”的问题往往不会产生令人惊讶的答案。仅仅因为算法是公平的并不意味着它被公平使用 ; 我们有责任批判性地询问从这些技术中获益的人,以及对我们的模型应该或不应该如何使用的直言不讳。为此,我强烈建议大家查看以下内容:


  • “ 模型报告模型卡 ”(2019年),一份标准化简短文件的建议,随附详细说明其预期用途、评估结果、伦理考虑和注意事项等的模型。

  • AI Now Institute提出的算法影响评估框架(2018),

  • 《纽约客》分析了纽约市(2017年)第一部规范“自动决策系统”的法案,以及它遇到的法律、政治和企业障碍。

  • 《算法责任法》于2019年4月提交参议院,并发表了一篇讨论潜在缺陷的意见文章。


原文链接: 

https://towardsdatascience.com/algorithmic-solutions-to-algorithmic-bias-aef59eaf6565

作者简介:Joyce Xu


Deep learning, RL, NLP, CV, and all that jazz. @DeepMindAI, @sidewalklabs, @Stanford


  • https://news.berkeley.edu/story_jump/mortgage-algorithms-perpetuate-racial-bias-in-lending-study-finds/

  • https://www.technologyreview.com/s/612775/algorithms-criminal-justice-ai/

  • https://qz.com/work/1098954/ai-is-the-future-of-hiring-but-it-could-introduce-bias-if-were-not-careful/

  • https://www.brookings.edu/research/credit-denial-in-the-age-of-ai/

  • https://rss.onlinelibrary.wiley.com/doi/full/10.1111/j.1740-9713.2016.00960.x

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

  • AI360:https://aif360.mybluemix.net/

adversarial de-biasing

  • https://colab.research.google.com/notebooks/ml_fairness/adversarial_debiasing.ipynb

  • https://github.com/IBM/AIF360/blob/master/aif360/algorithms/inprocessing/adversarial_debiasing.py

  • https://arxiv.org/pdf/1707.00075.pdf

  • https://arxiv.org/pdf/1801.07593.pdf

VAE

  • https://towardsdatascience.com/intuitively-understanding-variational-autoencoders-1bfe67eb5daf

  • https://ermongroup.github.io/cs228-notes/extras/vae/

VFAE

  • https://github.com/dendisuhubdy/vfae/blob/master/vfae.py

  • https://github.com/yevgeni-integrate-ai/VFAE/blob/master/VFAE_blog.ipynb

  • https://arxiv.org/pdf/1511.00830.pdf

re-weighting

  • https://github.com/IBM/AIF360/blob/master/aif360/algorithms/preprocessing/reweighing.py

  • http://www.aies-conference.com/wp-content/papers/main/AIES-19_paper_220.pdf

DRO

  • https://worksheets.codalab.org/worksheets/0x17a501d37bbe49279b0c70ae10813f4c

  • https://arxiv.org/pdf/1806.08010.pdf

“ 模型报告模型卡 ”

  • https://arxiv.org/pdf/1810.03993.pdf

AI Now Institute提出的算法影响评估框架(2018)

  • https://medium.com/@AINowInstitute/algorithmic-impact-assessments-toward-accountable-automation-in-public-agencies-bd9856e6fdde

《纽约客》

  • https://www.newyorker.com/tech/annals-of-technology/new-york-citys-bold-flawed-attempt-to-make-algorithms-accountable

《算法责任法》

  • https://www.wyden.senate.gov/imo/media/doc/Algorithmic%20Accountability%20Act%20of%202019%20Bill%20Text.pdf


封面图来源:pexels by Abet Llacer






----------------------------------------------------------------------------------------------------------------------
我们尊重原创,也注重分享,文章来源于微信公众号:TalkingData数据学堂,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
----------------------------------------------------------------------------------------------------------------------

鲜花

握手

雷人

路过

鸡蛋

yafeilinux和他的朋友们微信公众号二维码

微信公众号

专注于Qt嵌入式Linux开发等。扫一扫立即关注。

Qt开源社区官方QQ群二维码

QQ交流群

欢迎加入QQ群大家庭,一起讨论学习!

我有话说......