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从云端落地。
点击大会官网,查看嘉宾以及大会议题详细信息
相关文章:

linux如何安装neo4j,Ubuntu16.04 如何安装neo4j数据库
什么是neo4j数据库?neo4j数据库是图数据库的一种,属于nosql的一种,常见的nosql数据库还有redis、memcached、mongDB等,不同于传统的关系型数据库,nosql数据也有其独特之处,例如图数据库,在处理对…
MSI文件制作全过程
MSI文件制作全过程 这两天学习制作MSI文件用于组策略发布,试了一些做.MSI文件的软件包括Win2000Server光盘带的WinINSTALL LE,实际做出来的效果都不好。最后找到InstallShield AdminStudio5,用它做的MSI文件在组策略中成功发布。下面就以“石…

C语言 带比较器的归并排序
1 #include <stdio.h>2 #include <stdlib.h>3 4 typedef int DataType;5 6 //比较器7 int mycmp(const void * a, const void *b); 8 9 //int (*compar)(const void *, const void *) 函数指针 10 void Sort(DataType * arr, int from, int to, int (*compar)(cons…

iphone adb android,通过ADB获取Android手机信息
1、获取手机体系信息(CPU,厂商名称等)adbshell”cat/system/build.prop|grep”product””2、获取手机体系版别adbshellgetpropro.build.version.release3、获取手机体系api版别adbshellgetpropro.build.version.sdk4、获取手机设备类型adb-dshellgetpropro.product…

浩方平台CS流量评估
因为需要做了一次这样的简单的流量评估,就顺便拿出来给大家共享一下转载于:https://blog.51cto.com/niujh/10164

深度学习深陷可解释性泥淖,而这个研究领域正逐步焕发生机
只讲技术,拒绝空谈!2018 AI开发者大会精彩议程曝光》 福利 11月2日前购票,立享7折优惠!更有学生专享福利!扫码报名↓↓↓

php redis 安装和使用
为什么80%的码农都做不了架构师?>>> mac安装 redis $brew update $brew install redis > Downloading https://homebrew.bintray.com/bottles/redis-4. Already downloaded: /Users/lph/Library/Caches/Homebrew/redis-4.0.2.sierra.bottle.tar.gz &…

怎样在javascript函数中将变量传递给服务端脚本程序?
怎样在javascript函数中将变量传递给服务端脚本程序?(有朋友问上述问题, 愿把结论分享给大家).摘 要: 服务器端脚本运行时, 它只会解释执行<% %>或<?php ?%> 之间的脚本语句, 它会把客户端脚本视作 普通文本. 而客户端脚本运行时, 服务器端脚本又是不可见的(客…

android studio val,Kotlin学习笔记之const val与val
const的使用const 必须修饰valconst 只允许在top-level级别和object中声明,使用方式如下:const val THOUSAND 1000object myObject {const val constNameObject: String "constNameObject"}class MyClass {companion object Factory {const …

算法开发人员的安身之本:如何将机器学习与各行各业进行深度结合
只讲技术,拒绝空谈!2018 AI开发者大会精彩议程曝光》 2018 AI开发者大会 2018 AI开发者大会是一场由中美人工智能技术高手联袂打造的AI技术与产业的年度盛会!是一场以技术落地为导向的干货会议!大会设置了10场技术专题论坛&#x…

android intent email,Android Email Intent
问题Ive set up two buttons. One opens the compose sms intent and the other opens the compose email intent. The sms intent works fine but the email button doesnt respond. Ive created a categorychooser but that doesnt show up....UNTIL I click the sms buttonT…

C#实现的18位×××格式验证算法
18位标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》中做了明确的规定。 GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称"社会保障号码"更名为"公民身份号码"ÿ…

大家都收藏了的最新开源项目Top12!CV、NLP、机器学习一应俱全
参加 2018 AI开发者大会,请点击大会官网 译者 | 林椿眄、Jane 责编 | Jane 出品 | AI科技大本营 【导读】作者整理了近期最新发布及更新的 12 个非常有学习和收藏意义的开源项目。这些项目中包括基于 TensorFlow 的强化学习框架;可以对数据进行结构化处…

CentOS6.5下Gunicorn+Django+nginx部署的过程
2019独角兽企业重金招聘Python工程师标准>>> 本文假设你已经在CentOS下使用Python manage.py runserver 0.0.0.0:8080,能够顺利跑起来,并且被外网访问到了。项目名假设为:blog_project 安装nginx yum -y install nginx 如果安装不…

c7pro android7,三星c7pro和iphone7哪个值得买?三星Galaxy c7 pro和苹果iphone7区别对比详细评测...
三星c7 pro介绍:三星C7 Pro三星C7 Pro可以看作是去年底上市的三星C9 Pro低配版,屏幕变小了,硬件配置也有所降低,不过配备了骁龙625升级版的骁龙626处理器,硬件方面也是颇具看点的,以下是手机详细参数。三星…

NIPS2018 | 腾讯AI Lab入选20篇论文,含2篇Spotlight
1.7亿条数据,比胡同和撸串更真实的北京35岁IT老兵,转型AI,我做错了吗?厉害了,天刚一冷程序员就都换上了衬衫……如何用Python&Fabric打造区块链“淘宝”商城Python 3 字符串中的 STR 和 Bytes 究竟有什么区别&…

windows查看端口占用以及关闭相应的进程
开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-"选择列" 经常,我们在启动应用的时候发现系统需要的端…

bzoj 2730: [HNOI2012]矿场搭建——tarjan求点双
Description 煤矿工地可以看成是由隧道连接挖煤点组成的无向图。为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处。于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖煤点的工人都有…

华为鸿蒙手机官网价格表,曝下半年华为将推出两款鸿蒙手机:国内独享,价格良心...
虽然发声表示自己将全力支持安卓系统,维护安卓生态,但又推出了鸿蒙操作系统,余承东还表示鸿蒙系统取代安卓系统只需要1-2天即可。从这番表态来看,华为应该后续是要安卓鸿蒙两手抓了。安卓系统照常使用,而鸿蒙系统也会进…

PocketPC 全屏的实现
在windows mobile 5.0中实现全屏的方法,和隐藏SIP的方法差不多,只要稍稍改一下就可以了:::CommandBar_Show(m_hWnd, FALSE);//隐藏菜单 ::SHFullScreen(m_hWnd,SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON);//隐藏taskbar与sipSetForegroundWindo…

AI时代,谈数据分析时我们要谈些什么?
参加 2018 AI开发者大会,请点击大会官网 说起数据分析,你能想到的是什么? 根据维基百科的定义,数据分析是一类统计方法,其主要特点是多维性和描述性。有些几何方法有助于揭示不同的数据之间存在的关系,并绘…

清瘦的记录者: 一个比dbutils更小巧、好用的的持久化工具
https://gitee.com/bitprince/memory 1. 概述 1.1 连接、语句和结果集 从JDBC的规范上看,其对数据访问层有相当简洁的抽象:1、连接(connection) 2、语句(statement)、3结果集(result set)。我们对数据库做的事情无非:连接数据库,执…

html 显示消息数量,html实现消息按钮上的数量角标的实例详解
这篇文章主要介绍了html在消息按钮上增加数量角标的实现代码,需要的朋友可以参考下html代码:消息4css代码:/*角标 */.ii{display: none;background: #f00;border-radius: 50%;width: 20px;height: 20px;top: 5px;right: 0px;position: absolute;text-ali…

为什么让A.I.“顶天立地”需要6个多月?
在A.I.的发展中,专注技术or专注应用?这从来不是一道选择题。“技术顶天,应用落地,希望全社会的开发者可以和我们一起开放创新、共建A.I.生态。”2018年3月22日,在科大讯飞主办的「AI大学未来课栈上海栈」,科…

[ASP.NET]状态管理[摘自C#入门经典]
[出处]:来自《C#入门经典》第三版中文版,P505-P506[涉及]:1、状态管理[附注]:看到这个表格总结得还是相当不错的,就摘抄下来了,兴许你看过,但没太在意,那就再看看吧.[正文]:HTTP协议是无状态的。从客户端到服务器的连接…

html表单颜色选择器,如何在Django管理中使用HTML5颜色选择器
我试图在Django的管理页面中实现HTML5 colorpicker。这是我的模型:#model.py...class Category(models.Model):...color models.CharField(max_length7)这是表格:#form.pyfrom django.forms import ModelFormfrom django.forms.widgets import TextInpu…

微软曾经的二号人物永远地离开了
参加 2018 AI开发者大会,请点击 大会官网 他是一位发明家、投资者、考古学家和慈善家,“他对微软做出的不可或缺的贡献”会让人们永远铭记。 据外媒 CNBC 今日早间报道,微软联合创始人之一保罗艾伦(Paul Allen)于当地时…

经理人必须抛弃的十个习惯思维
1、过分的完美主义可能很多经理人总希望自己可以做到完美,于是拟订了诸多工作计划,但往往到最后,连自己也不知道应该如何选择。一名信奉完美主义的美术设计师总是很晚才交上作品,但他没有意识到,准时与作品质量具有同等…

菜鸟学习之linux用户行为日志审计方案
今天学习了了sudo日志审计,专门对使用sudo命令系统的用户记录其执行的相关命令信息说明:所谓sudo命令日志审计,不记录普通用户操作,而是记录执行sudo命令的用户操作1、安装sudo命令,syslog服务[rootqzj ~]# rpm -qa |egrep "sudo|syslog" rsys…

html+服务器控件语法,HtmlForm 服务器控件声明性语法
HtmlForm 服务器控件声明性语法08/20/2007本文内容创建一个服务器端控件,该控件映射到 HTML 元素并允许您为网页中的元素创建一个容器。DefaultButton"string"DefaultFocus"string"EnableViewState"False|True"Id"string"…