0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探索“What-If”场景通常意味着编写一次性的自定义代码来分析特定模型

Tensorflowers 来源:未知 作者:李倩 2018-10-11 11:31 次阅读

构建有效的机器学习 (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 团队的一切帮助。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器学习
    +关注

    关注

    66

    文章

    8406

    浏览量

    132558
  • 数据集
    +关注

    关注

    4

    文章

    1208

    浏览量

    24689

原文标题:What-If 工具:无需写代码,即可测试机器学习模型

文章出处:【微信号:tensorflowers,微信公众号:Tensorflowers】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    揭秘为什么Cloud TPU编写自定义估算器模型

    在本文中,我会逐步介绍编写自定义估算器以便在 Cloud TPU 上运行的全过程。
    的头像 发表于 09-20 09:46 5004次阅读

    使用什么API编写具有已知UUID两者的自定义服务特性?

    和CyByLyIASStValueValueValuy()API。在我的例子中有自定义服务和个特性(4字节)问题1。应该使用什么API编写
    发表于 10-19 16:01

    zynq自定义ip中的时钟频率是多少?

    嗨,我正在使用zynq zc702,我设计了几个自定义ip,它们用verilog模块编写,并且将驻留在PL部分,现在我的设计工作正常,ps和pl通信意味着即用自定义ip的arm完成..
    发表于 03-04 13:02

    我可以编写自定义代码控制没有Motor Pilot的电机吗?

    我得到了 MCSDK 示例,但我怎样才能更进步?我可以编写自定义代码控制没有 Motor Pilot 的电机吗?[STEVAL-SPIN
    发表于 12-22 07:31

    找到个文档描述不同的错误代码对CAN FD模块意味着什么?

    我试图找到个文档描述不同的错误代码对 CAN FD 模块意味着什么。有没有人知道从哪里搜索的链接或想法?我的 CAN FD 外设在某个时候以错误状态 516 告终,我无法找到它的含
    发表于 02-03 06:44

    STATCOM自定义建模及动稳态调压分析

    STATCOM自定义建模及动稳态调压分析:建立了statcom基于功率注入法的稳态模型和基于受控电流源的动态模型,并利用电力系统分析软件提供
    发表于 03-18 16:09 18次下载

    SOPC中自定义外设和自定义指令性能分析

    SOPC中自定义外设和自定义指令性能分析 NiosII是个建立在FPGA上的嵌入式软核处理器,灵活性很强。作为体现NiosII灵活性精髓的两个最主要方面,自
    发表于 03-29 15:12 1610次阅读
    SOPC中<b class='flag-5'>自定义</b>外设和<b class='flag-5'>自定义</b>指令性能<b class='flag-5'>分析</b>

    DOS下自定义时间重启

    DOS环境下,C语言编写自定义时间重启。
    发表于 03-16 09:40 6次下载

    RTWconfigurationguide基于模型设计—自定义

    基于模型设计—自定义目标系统配置指南,RTW自动代码生成相关资料。
    发表于 05-17 16:41 3次下载

    AVR编写1602自定义字符

    AVR编写自定义字符不错的练习题目
    发表于 03-20 14:21 1次下载

    iOS自定义转场动画例程与需要注意的问题

    controller (出现的那个) 个动画控制器 自定义转场和在自定义之前样。对于push和pop,意味着调用UINavigatio
    发表于 09-26 16:41 0次下载
    iOS<b class='flag-5'>自定义</b>转场动画例程与需要注意的问题

    浅析Zephyr应用的代码结构中的自定义驱动

    项目纳入到应用代码目录管理 Zephyr应用的代码结构--自定义开发板: 将自定义board纳入到应用代码目录管理 除了上面两个
    的头像 发表于 08-18 09:08 4776次阅读

    自定义视图组件教程案例

    自定义组件 1.自定义组件-particles(粒子效果) 2.自定义组件- pulse(脉冲button效果) 3.自定义组件-progress(progress效果) 4.
    发表于 04-08 10:48 14次下载

    大型语言模型(LLM)的自定义训练:包含代码示例的详细指南

    近年来,像 GPT-4 这样的大型语言模型 (LLM) 因其在自然语言理解和生成方面的惊人能力而受到广泛关注。但是,要根据特定任务或领域定制LLM,定制培训是必要的。本文提供了有关自定义训练 LLM 的详细分步指南,其中包含
    发表于 06-12 09:35 2748次阅读

    自定义算子开发

    个完整的自定义算子应用过程包括注册算子、算子实现、含自定义算子模型转换和运行含自定义op模型
    的头像 发表于 04-07 16:11 2794次阅读
    <b class='flag-5'>自定义</b>算子开发