如何利用 Google 开源的 TFCO 构建机器学习模型?

2020 年 2 月 28 日 CSDN

在机器学习模型中引入公平性远非易事,本文就利用Google AI研究院开源的Tensor Flow Constrained Optimization Library(TFCO),来优化机器学习模型的各种目标,包括公平性。

作者 | Jesus Rodriguez
译者 | 弯月,责编 | 郭芮
出品 | CSDN(ID:CSDNnews)

以下为译文:

公平是一个非常主观的概念,在机器学习领域亦是如此。每当最心爱的球队输掉一场激烈的比赛时,我们就会认为裁判“不公”;而当如愿以偿时,我们就会认为结果非常“公平”。由于机器学习模型不能依赖主观性,因此我们需要一种有效的方法来量化公平性。该领域已出现了大量研究,其中大多数都将公平性作为结果优化的问题。最近,Google AI研究院开源了Tensor Flow Constrained Optimization Library(TFCO),我们可以利用该框架来优化机器学习模型的各种目标,包括公平性。
在机器学习模型中引入公平性远非易事。最近苹果信用卡的算法就表现出了强烈的性别偏见,我们可以透过该事件窥见把握公平性的难度。考虑一下理银行贷款申请的模型。该模型的优化目标应该是尽可能将贷款批给那些更可能偿还的客户?还是应该尽可能避免出现拒绝给使用错误标准发放贷款的情况?哪个标准成本更高?模型能否在两个方面同时进行优化?这些问题都是TFCO设计的核心。


TFCO理论

TFCO的工作方式是围绕给定模型的目标施加“公平约束”。在上述银行贷款的TFCO示例中,我们可以选择一个目标函数,当借款人偿还了贷款时对模型进行奖励,还会施加公平性约束,防止模型不能公平地拒绝向某些受保护的人群提供贷款。TFCO通过代理拉格朗日优化(Proxy Lagrangian Optimization)实现了这个高度复杂的目标。
代理拉格朗日优化技术的思想由Google研究院和康奈尔大学于近日联合推出。其核心原则是优化模型中的拉格朗日乘数。这些乘数的作用是寻找函数在多个相等约束条件下的局部极大值或极小值(即选出的变量值必须满足一个或多个等式)。其基本思想是将有约束问题转换为某种形式,以便应用无条件限制问题的导数判别法。
大致来说,拉格朗日乘数法定理表明,对于满足等式约束的任意定点,该点处函数的梯度可以表示为该点处所有约束的梯度线性组合,其系数为拉格朗日乘数。
TFCO扩展了拉格朗日乘数的概念,将一个优化问题建模为一个两人博弈,在该博弈中,一人的优化目标是模型参数,另一人的优化目标是最大化拉格朗日乘数。第一个人通过容易优化的“代理约束”来最小化外部的后悔目标,第二个人会优化相反的后悔目标,来保证满足原始约束。换句话说,第一个人需要决定第二个人应该如何对(可微分的)代理约束条件进行惩罚,同时还需要满足原始的约束条件。

TFCO原理演示


我们使用一个包含两个受保护组(蓝色和橙色)的传统分类器,来可视化地演示一下TFCO的原理。告诉TFCO针对没有公平性约束的线性模型的分类器,优化其整体错误率,就可以产生类似于下面的决策边界:

在某些情况下,有人可能认为该模型是不公平的。例如,带有正标签的蓝色数据,比那些带有正标签的橙色数据更容易收到负的预测。我们可以给模型添加一个约束,最大化机会的均等性(即真阳性率),可以将模型的分布变成下面这样:
类似地,一个同时优化真阳性率和假阳性率的约束如下所示:
最终,选择正确的约束是一项复杂的工作,高度依赖于策略目标,以及机器学习问题本身的性质。例如,假设一个约束会让训练给四个组均等的准确率,但有可能某一个分组中的分类本身就很困难。在这种情况下,唯一满足约束的方法就是将其他三个容易分组的准确率降低到困难组的准确率水平。这并不是我们想要的结果。为了解决这个问题,TFCO中包含了一系列精选的优化问题。


开发者该如何使用?


从开发者的角度来看,TFCO很容易使用。第一步就是导入TFCO库。
import tensorflow as tfimport tensorflow_constrained_optimization as tfco
接下来,我们需要将模型表达成优化问题,代码如下所示。
# Create variables containing the model parameters.weights = tf.Variable(tf.zeros(dimension), dtype=tf.float32, name="weights")threshold = tf.Variable(0.0, dtype=tf.float32, name="threshold")
# Create the optimization problem.constant_labels = tf.constant(labels, dtype=tf.float32)constant_features = tf.constant(features, dtype=tf.float32)def predictions(): return tf.tensordot(constant_features, weights, axes=(1, 0)) - threshold
最后,TFCO优化的约束问题需要写成比率的线性组合,这里“比率”指的是训练数据中某个事件发生的比例(例如,假阳性率指的是负标签的数据被预测为正的数量,除以负标签数据的总量)。将模型表示成优化问题之后,就可以使用TFCO来创建不同的优化,如下所示:
# Like the predictions, in eager mode, the labels should be a nullary function# returning a Tensor. In graph mode, you can drop the lambda.context = tfco.rate_context(predictions, labels=lambda: constant_labels)problem = tfco.RateMinimizationProblem(    tfco.error_rate(context), [tfco.recall(context) >= recall_lower_bound])
现在TFCO只是一个初版,而且仍然需要掌握大量的优化知识才能使用。但是,它提供了非常灵活的基础,方便我们将公平性约束引入到机器学习模型。接下来,TensorFlow社区会在之上构建哪些东西,我们将拭目以待。
原文:https://towardsdatascience.com/google-open-sources-tfco-to-help-build-fair-machine-learning-models-f6d002557796
作者:Jesus Rodriguez,首席科学家与执行合伙人@Invector Labs,CTO@IntoTheBlock。
本文为 CSDN 翻译,转载请注明来源出处。
【End】
在中国企业与「远程办公」正面相遇满月之际,2月29日,CSDN 联合广大「远程办公」工具服务企业共同举办【抗击疫情,科技公司在行动】系列之【远程办公】专题线上峰会活动: 中国「远程办公」大考
扫下方二维码或点击阅读原文免费报名直播+抽取奖品+与大牛交流
提前了解峰会详情,可加小助手微信csdnai,回复远程办公,进直播群
推荐阅读 
疫情病毒全部“抹杀”?用数据模型来解读传播抑制的效果差异!
两成开发者月薪超 1.7 万、算法工程师最紧缺!| 中国开发者年度报告
为诺亚、北大提出GhostNet,使用线性变换生成特征图,准确率超MobileNet v3 | CVPR 2020
真实版“删库跑路”?程序员蓄意破坏线上生产环境!
新知识点!一文告诉你如何调试运行在Docker容器中的远程Node.js应用程序
远程办公是一阵“过渡风”还是会“继续燃烧”?
你点的每一个在看,我认真当成了喜欢
猛戳“ 阅读原文 ”,参与报名吧!
登录查看更多
0

相关内容

【干货书】机器学习Python实战教程,366页pdf
专知会员服务
338+阅读 · 2020年3月17日
Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
专知会员服务
129+阅读 · 2020年3月15日
【Amazon】使用预先训练的Transformer模型进行数据增强
专知会员服务
56+阅读 · 2020年3月6日
【Google】利用AUTOML实现加速感知神经网络设计
专知会员服务
29+阅读 · 2020年3月5日
谷歌机器学习速成课程中文版pdf
专知会员服务
145+阅读 · 2019年12月4日
【机器学习课程】Google机器学习速成课程
专知会员服务
164+阅读 · 2019年12月2日
详解常见的损失函数
七月在线实验室
20+阅读 · 2018年7月12日
如何设计基于深度学习的图像压缩算法
论智
40+阅读 · 2018年4月26日
推荐|机器学习中的模型评价、模型选择和算法选择!
全球人工智能
10+阅读 · 2018年2月5日
深度 | 结合Logistic回归构建最大熵马尔科夫模型
机器之心
4+阅读 · 2017年11月25日
机器学习(23)之GBDT详解
机器学习算法与Python学习
12+阅读 · 2017年10月25日
sklearn集成学习:如何调参?
北京思腾合力科技有限公司
9+阅读 · 2017年10月20日
机器学习(7)之感知机python实现
机器学习算法与Python学习
4+阅读 · 2017年7月23日
Arxiv
5+阅读 · 2018年4月22日
Arxiv
3+阅读 · 2018年3月22日
VIP会员
相关资讯
详解常见的损失函数
七月在线实验室
20+阅读 · 2018年7月12日
如何设计基于深度学习的图像压缩算法
论智
40+阅读 · 2018年4月26日
推荐|机器学习中的模型评价、模型选择和算法选择!
全球人工智能
10+阅读 · 2018年2月5日
深度 | 结合Logistic回归构建最大熵马尔科夫模型
机器之心
4+阅读 · 2017年11月25日
机器学习(23)之GBDT详解
机器学习算法与Python学习
12+阅读 · 2017年10月25日
sklearn集成学习:如何调参?
北京思腾合力科技有限公司
9+阅读 · 2017年10月20日
机器学习(7)之感知机python实现
机器学习算法与Python学习
4+阅读 · 2017年7月23日
Top
微信扫码咨询专知VIP会员