What-If 工具:无需写代码,即可测试机器学习模型
文 / Google AI 软件工程师 James Wexler
构建有效的机器学习 (ML) 系统需要提出许多问题。仅仅训练一个模型,然后放任不管,是远远不够的。而优秀的开发者就像侦探一样,总是不断探索,试图更好地理解自己的模型:数据点的变化对模型的预测结果有何影响?对于不同的群体,例如在历史上被边缘化的人群,模型的表现是否有所不同?用于测试模型的数据集的多样化程度如何?
要回答这些类型的问题并不容易。探索 “What-If” 场景通常意味着编写一次性的自定义代码来分析特定模型。此过程不仅效率低下,而且非编程人员很难参与塑造和改进 ML 模型的过程。Google AI PAIR 计划的一个重点就是让广大用户能够更轻松地检查、评估和调试 ML 系统。
我们发布了 What-If 工具(https://pair-code.github.io/what-if-tool/),这是开源 TensorBoard 网络应用的一个新功能,可以让用户在无需编写代码的情况下分析 ML 模型。在给定 TensorFlow 模型和数据集指针的前提下,What-If 工具可为模型结果探索提供交互式可视界面。
What-If 工具:展示了一组面部图片(共 250 张),以及微笑检测模型得出的结果
What-If 工具拥有各种功能,包括使用 Facets 自动可视化数据集、手动编辑数据集示例并查看相关更改的影响,以及自动生成局部依赖图(显示模型的预测结果如何随任何单个功能的更改而变化)。下面详细探索其中两项功能。
探索数据点上的 What-If 场景
▌反事实
只需点击一下按钮,即可将某个数据点与模型预测不同结果的最相似点进行比较。我们将这些点称为 “反事实”,它们可以清楚显示出模型的决策边界。或者,您也可以手动编辑一个数据点,然后探索模型预测的变化情况。在下方的屏幕截图中,我们将该工具用于二进制分类模型。此模型根据 UCI 人口普查数据集的公开人口普查数据来预测某个人的收入是否超过 5 万美元。这是 ML 研究人员常用的基准预测任务,特别适用于分析算法公平性的情况,我们很快会谈及这个话题。在这个案例中,对于选定的数据点,模型预测此人收入超过 5 万美元的置信度为 73%。该工具自动找出数据集中与此最相似的人(模型预测其收入少于 5 万美元),并将二者进行并排比较。在此案例中,只需对年龄和职业作出微小的改变,模型的预测就会出现大幅变化。
反事实对比
▌表现和算法公平性分析
您也可以探索不同分类阈值的影响,并考虑不同数值公平性标准等限制条件。下方的屏幕截图展示了微笑检测模型的结果,该模型使用开源 CelebA 数据集(由带注解的名人面部图像组成)进行训练。在下图中,我们根据头发是否为棕色,将数据集中的面部图像分成两组,并为其中每组绘制一条 ROC 曲线和预测结果的混淆矩阵,同时提供滑块,设定模型必须在达到一定的置信度,才会判定是否为微笑的面部图像。在此案例中,该工具自动为两组设置了置信度阈值,以优化模型,从而实现机会均等。
比较两组数据在微笑检测模型上的表现,并将其分类阈值设置为满足 “机会均等” 限制条件
▌演示
为了说明 What-If 工具的功能,我们发布了一组使用预训练模型的演示:
检测错误分类:这是一种多分类模型,通过对植物花朵的四次测量来预测植物种类。该工具有助于显示模型的决策边界和导致错误分类的原因。该模型使用 UCI 鸢尾花数据集进行训练。
评估二进制分类模型的公平性:这是上文提及的微笑检测图像分类模型。该工具有助于评估不同子组的算法公平性。在训练模型的过程中,为了展示该工具如何帮助揭示模型中的此类偏见,我们特意没有提供来自特定人群子集的任何示例。评估公平性需要谨慎考虑整体环境,但这是很有用的量化起点。
研究不同子组的模型表现:这是根据人口普查信息预测对象年龄的回归模型。该工具有助于展示模型在不同子组的相对表现,以及不同特点如何分别影响预测结果。该模型使用 UCI 人口普查数据集进行训练。
▌What-If 的实际应用
我们与 Google 内部团队一起测试了 What-If 工具的表现,从中看到这个工具的直接价值。有一个团队很快发现,他们的模型错误地忽略了数据集的一个整体特点,进而修复了之前并未发现的代码错误。另一个团队使用该工具将其示例按表现最佳到最差进行直观排列,进而发现表现不佳的模型示例类型有何模式。
我们希望 Google 内部和外部的人士都能使用此工具,以更好地理解 ML 模型,并开始评估其公平性。此外,由于此代码是开源的,我们欢迎大家为该工具的发展添砖加瓦。
▌致谢
What-If 是众人合作的成果,其成功离不开 Mahima Pushkarna 设计的用户体验,Jimbo Wilson 对 Facets 作出的更新,还有许多其他人提供的意见。我们想感谢测试此工具并提供宝贵反馈的 Google 团队,还要感谢 TensorBoard 团队的一切帮助。
【完】
2018 AI开发者大会
2018 AI开发者大会是一场由中美人工智能技术高手联袂打造的AI技术与产业的年度盛会!是一场以技术落地为导向的干货会议!大会设置了10场技术专题论坛,力邀15+硅谷实力讲师团和80+AI领军企业技术核心人物,多位一线经验大咖带你将AI从云端落地。
点击大会官网,查看嘉宾以及大会议题详细信息
What-If 工具:无需写代码,即可测试机器学习模型相关推荐
- ITK:迭代图像中的区域,而无需写访问权即可访问索引
ITK:迭代图像中的区域,而无需写访问权即可访问索引 内容提要 输出结果 C++实现代码 内容提要 通过有效访问当前索引(无写访问权限)遍历图像的区域. 输出结果 An extensive list ...
- RPA(影刀)无需写代码抓取某东的商品信息
大家好,我是翔宇! 有的小伙伴不会写代码,但也想采集一些数据,RPA就是一个最好的选择.今天我就带大家用RPA(影刀)无需写代码抓取某东的商品信息,主要采集到的数据有以下字段,数据达到近5000条. ...
- 无需写代码的高颜值富集分析神器
富集分析是了解一个基因集功能倾向性的一个方式,在组学研究领域应用广泛.常见的有基于差异基因的Over-representation分析,也就是常说的GO.KEGG富集分析和Functional cla ...
- 无需写代码!谷歌推出机器学习模型分析神器,代号What-If
铜灵 编译整理 量子位 出品 | 公众号 QbitAI 今天,谷歌推出了已开源的TensorFlow可视化工具TensorBoard中一项新功能:What-If Tool,用户可在不编写程序代码的情况 ...
- 特别引人注目的头像_引人注目的:无需编写代码即可创建美观,针对移动设备优化的网站
Web开发和设计对于我们的Web创建者可能会占用大量时间,尤其是在期限紧迫的大型Web项目中. 这是一个使您可以更轻松快捷地创建基本网页的工具-Strikingly . Strikingly是一页纸的 ...
- 无需写代码---建网站
只要一小时,谁都能轻松建立个人网站 2021年自己建网站的步骤 wordpress建站,阿里云上推荐小白用的,全部可视化操作,不用写代码.
- 机器学习hierarchical clustering_厉害了!几行代码搞定机器学习模型
优质文章,第一时间送达! 机器之心编辑部 PyCaret 库支持在「低代码」环境中训练和部署有监督以及无监督的机器学习模型,提升机器学习实验的效率. 想提高机器学习实验的效率,把更多精力放在解决业务问 ...
- 厉害了!几行代码搞定机器学习模型
点击上方"编程派",选择设为"设为星标" 优质文章,第一时间送达! 机器之心编辑部 PyCaret 库支持在「低代码」环境中训练和部署有监督以及无监督的机器学习 ...
- ML.NET 1.0 发布,单击右键即可添加机器学习模型
ML.NET 1.0 终于发布了.ML.NET 是一个跨平台的机器学习框架,旨在让 .NET 开发者更快上手机器学习,它允许 .NET 开发者开发他们自己的模型,并将自定义 ML 注入到应用程序中. ...
最新文章
- css学习任务二:切图写代码
- Jupyter Notebook已出现“返祖现象”,这款工具让你在终端里使用它
- 网络优化正在从经验型优化向大数据关联分析优化转变
- java 反转 控制 注入_控制反转和依赖注入
- 了解CMS(Concurrent Mark-Sweep)垃圾回收器
- 进军人工智能,数学基础很重要?
- rds mysql 磁盘空间,RDS MySQL 空间问题的原因和解决
- Qt工作笔记-QSplitter的使用(老版本里面发现的神控件在新版本内使用)
- linux下qt制作日历,基于QT的多功能日历设计与开发.doc
- AMD将于年内推出高端Polaris图形处理器
- Java基础系列7:国际化程序简介
- Shell脚本修改Nginx upstream配置文件
- Oracle Enterprise Manager Cloud Control 12c 概述
- 通过QQ邮箱中转站分享文件
- Windwos Server 2012 R2 安装LLDP协议驱动程序
- 2017年第八届CSTQB®国际软件测试高峰论坛议题征集启动
- 百度收录如何API提交(java、python)
- Photoshop CS 5 注册方法
- 学术报告PPT的latex模板
- js如何让段落首行缩进2个字符
热门文章
- Ubuntu 17.04 编译安装 Nginx 1.9.9 配置 https 免费证书
- python argparser模块的相关使用
- Java 学习笔记(4)——java 常见类
- 自制操作系统Antz(9)——实现内核 (下) 实现图形化界面
- ASP.NET Core 2 学习笔记(七)路由
- 说到心里的哲理个性签名 学生时代的恋爱无非就是陪伴二字
- U盘安装Ubuntu14.4时遇到分区问题记录
- Android 曲线动画animation,类似加入购物车动画
- Ubuntu下配置Nginx HTTPS
- 【青少年编程】黄羽恒:翻译小工具 -- 利用百度翻译