谷歌40人发表59页长文:为何真实场景中ML模型表现不好?

文 | 白鹡鸰

编 | 夕小瑶


大家好哇,我是上周那篇《NLP太卷了,我去研究蛋白质了》的漫画作者白鹡鸰~前不久,在卖萌屋NLP群里默默潜水的白鹡鸰被群友提到的一篇Google几天前放出的59页超长论文炸得飞了起来。

来,大家来感受一下气势浩大的论文首页

文章名字是Underspecification Presents Challenges for Credibility in Modern Machine Learning。论文作者大都来自Google,横跨了计算机视觉、自然语言处理、生物信息多个领域,他们一起分析了真实场景中的机器学习模型表现欠佳的原理。

论文题目
Underspecification Presents Challenges for Credibility in Modern Machine Learning

论文链接:
https://arxiv.org/abs/2011.03395

Arxiv访问慢的小伙伴也可以在【夕小瑶的卖萌屋】订阅号后台回复关键词【1127】下载论文PDF~

众所周知……

在机器学习领域扑腾的朋友们可能都遇到过一个问题:

你拉取了一个美妙的pipeline,训练了若干个小时,测试效果也的确丝滑:

然后,你高高兴兴把模型投入了真实场景,结果它的表现变成了这样:

这差距咋就这么大呢?

谷歌说,这大概率是因为你的模型学到假特征了。拿NLP的情感分析举个例子,假若你的数据库中恰好有有一个张三,这张三既不尊老爱幼,也不遵纪守法,获得了许多负面的评价:“张三真差劲!”。“张三”反反复复和“差劲”一起出现,那么你的模型就有一定概率把“张三”而不是“差劲”学成了检测负面情感的特征词。

可能会觉得,这就是数据集不够完备的问题啊,要不是穷,数据不够多,这模型必然能学好的!但是,什么样的数据集才算得上完备呢?哪怕数据集有上亿样本,也一定会存在采样偏差,那么模型照样可能学到假特征。这就是文章的核心思想之一:机器学习模型普遍会出现学到假特征的情况。

核心论点和亿些例子

文章特地造了一个新词underspecification用来更加规范地描述这一现象:机器学习模型的训练pipeline不变时,能够训练出参数不同但在训练集上表现相同的多个模型。从这一表述当中可以看出文章在试图解释模型会学到假特征的机理:模型训练阶段的参数量往往远多于真实场景中描述数据实际需要的特征数量,进而,这些冗余的参数干扰了关键特征的学习,导致模型存在多解——显然,这么多解当中最多只会有一个正确描述了真实世界的情况,所以显然你通过训练随机得到的那个解大概率不是那个全部特征恰好学习正确且完备的那个解。

白鹡鸰看到这里,觉得十分有道理,并期待着下文出现详细的推导,然而文章却急着举了三个(并没有很直观的)例子来说明underspecification长什么样。

首先是一个流行病学的模型,如下图所示。

▲图1 流行病曲线因参数变化而发生显著的集体痊愈预估总时长变化

这组图描述了潜伏期和传染率两个参数的细小变化会如何影响到整个感染人口数量随天数的变化。如图1所示,在病例上涨的初期,只有有限的40个数据点(图中左侧加粗的蓝色线条),如果要用数学模型来拟合这40个数据,当然可以存在(几乎无限)多种概率分布模型和配套参数的选择了(图中给出了两条可能的曲线代表两个模型对未来的预测结果,蓝色是正态分布模型,红色是伽马分布模型)。所以,尽管两条线的训练loss相同,但是对未来的预测结果(即真实场景中的表现)是有相当大的差异的。但直到未来到来前,我们无法确定哪个模型是正确的。

此外论文还举了一个随机特征模型的例子和一个基因风险评估模型的例子,这里就不展开讲了,感兴趣的小伙伴自行去论文里翻翻细节~

上面的例子容易被误解成数据采集的完整度是提升模型表现的关键,但是从接下来几个较为复杂的机器学习模型的例子,可以清楚地看出模型学习到假特征是与数据集规模无关的普遍问题。

  1. 图像处理:对ImageNet数据集中图像进行对比度、清晰程度、亮度等方面的调整,然后比较ResNet-50和BiT在修改过的图片上的检测精度。如表格所示,稍作扰动,精度就会显著降低(其实就是搬出来了对抗样本的问题)。

DatasetImageNetpixelatecontrastmotion blurbrightnessObjectNet
ResNet-500.759 (0.001)0.197 (0.024)0.091 (0.008)0.100 (0.007)0.607 (0.003)0.259 (0.002)
BiT0.862 (0.001)0.555 (0.008)0.462 (0.019)0.515 (0.008)0.723 (0.002)0.520 (0.005)

表1 图像经过变换后,两类预测器检测物体准确率的变化,括号内为准确率的标准差

  1. 医学图像:测试了在ImageNet数据集上预训练的Inception-V4在迁移到糖尿病相关视网膜病变和肤质数据集上的效果。对检测视网膜病变的模型,使用了不同类型相机拍摄的症状图像作为测试数据,模型精度受到很大影响;对分类肤质的模型,发现对于不同类型肤质预测精度的方差不同。这一部分没有给出太多定量的测试结果,只是简单地说机器学习模型不能暴力迁移到临床数据上。

  2. 自然语言处理:通过分析基于OntoNotes数据集的BERT学习到的特征与刻板印象关联是否正确,检验模型是否正确理解了语义。以性别关联的职业偏见为例,虽然预测器们最终正确率相仿,但并不是每一个预测其都正确理解了偏见的成因。

  3. 临床诊断记录:通过RNN分析美国从2011到2015年703782名急性肾损伤(acute kidney injury, AKI)患者就诊数量在一周内变化的规律(精确到小时),发现模型没能透彻理解就诊人数和各科室工作节奏的关联。

这几个都是领域内挑选的pipelines也是在各个领域公认表现较好的,尽管如此,训练出来的模型仍然被证明会学习到数据中的伪关联,导致在实际任务中表现不佳。看到这里,论文的另一点核心思想也被论证得很明确了:Underspecification是阻碍机器学习模型在真实场景下表现提升的关键因素

问题仍待解决

既然定位了问题,那么如何解决问题呢?遗憾的是,目前还没有什么革命性的办法,只能多做测试! 论文的这一部分写得有点勉强,开始新瓶装旧酒,提(mìng)出(míng)了三类压力测试(stress test):

  1. 分层表现评估(Stratified performance evaluations):选取部分特征,根据这些特征分层数据集,测试在不同层中预测器的表现是否稳定。比如我们把苹果按红绿黄三种颜色分类,然后测试模型在检测这三种苹果时的正确率是否相同。

  2. 迁移表现评估(Shifted performance evaluations):依据特定的规则将数据映射到另一个数据分布上,然后测试预测器表现是否稳定。比如你将一张苹果的照片加了一点点动态模糊(人类依旧能识别),如果模型也能认出这还是个苹果,那它才有可能是一个学到了正确特征的好模型。

  3. 对比评估(Contrastive evaluations):用特例集检验预测器表现。除却上述两种特殊数据测试以外,所有应用场景中可能出现的奇葩案例都应该丢进模型试一试,就像当年那个测试工程师的酒吧笑话一样。

▲你该做多少测试,这下心里有点AC数了吧

这三类测试的设计思想并不新奇,本科概统课上必然提过,归根到底就是举特例举反例。文末进行的讨论也表达了同样的思想,再次强调了大家应当具体问题具体分析,尽可能对模型多做测试

读后感碎碎念

看了这篇文章,白鹡鸰有些失望,开篇气势如虹,仔细一看,问题还是老问题,最期待的原理分析被吃掉了,最后也没有提出什么新颖的解决办法。

文章涉及了很多领域,拼拼凑凑,有点像Google几个小组在各自测评模型后的联合吐槽文,文中存在不少排版和拼写问题(这大概是有一页长的作者团队的必然后果)。篇幅是很长,但没有解决科学问题。花了很多笔墨介绍各领域的背景知识,稍微硬核点的推导只能放到附录。

可以预见的是,工程师们未来在评估模型效果时的工作量又要增加了。乐观地想,模型在真实场景的表现不佳的原理分析仍未定量给出,那也意味着还有研究空间(和发paper空间),而且连大牛们都说了,模型要针对实际数据间的联系进行调整才能在应用中提升表现,这不就是给了大家秉持暴力美学给模型加亿点点细节的正当理由吗[doge]。

萌屋作者:白鹡鸰

白鹡鸰(jí líng)是一种候鸟,天性决定了会横跨很多领域。在上海交大栖息的第五年,进入了名为博士的换毛期。目前以图像语义为食,但私下也对自然语言很感兴趣,喜欢在卖萌屋轻松不失严谨的氛围里浪~~形~~飞~~翔~~

知乎:白鹡鸰,欢迎造访。

作品推荐:

  1. NLP太卷,我去研究蛋白质了~

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

有顶会审稿人、大厂研究员、知乎大V和妹纸

等你来撩哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479667.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

圆形进度条以及百分率指示器 Scroller类的练习

转载时请注明出处,尊重他人的劳动成果,谢谢。 先附上效果图: 这个控件是动态加载到75%的,主要我忘了怎么做动态图,就先放一个静态图在这里表示表示。旁边这个没有没有喜欢的?有想知道的 我可以告诉答案。…

阿里P8架构师谈:从单体架构、到SOA、再到微服务的架构设计详解

本文涉及的内容以及知识点如下: 1、单体架构 2、单体架构的拆分 3、SOA与微服务的区别 4、微服务的优缺点 5、微服务的消息 6、服务集成 7、数据的去中心化 单体架构 Web应用程序发展的早期,大部分web工程是将所有的功能模块(service…

我拿乐谱训了个语言模型!

文 | 花椒最近在刷EMNLP论文的时候发现一篇非常有趣的论文《Learning Music Helps You Read: Using Transfer to Study Linguistic Structure in Language Models》,来自斯坦福大学NLP组。论文有趣的发现是让语言模型先在乐谱上进行训练,再在自然语言上训…

LeetCode 146. LRU缓存机制(哈希链表)

文章目录1. 题目信息2. 解题2.1 手动实现list2.2 使用内置list1. 题目信息 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。 获取数据 get(key) - 如果密钥 (key) 存在于缓…

微服务系列:服务注册与发现的实现原理、及实现优劣势比较

服务注册与发现的来源 首先,服务注册与发现是来自于微服务架构的产物。 在传统的服务架构中,服务的规模处于运维人员的可控范围内。当部署服务的多个节点时,一般使用静态配置的方式实现服务信息的设定。而在微服务应用中,服务实例…

EMNLP 2020论文分析:知识图谱增强语言模型或是未来的发展趋势!

文 | Michael Galkin源 | AI科技评论在EMNLP 2020的论文投递中,知识图谱的研究热度不减,并成为继续推动NLP发展的重要动力之一。在EMNLP 2020中,知识图谱领域有了哪些最新研究进展呢?作者从中选出了30篇文章,对未来2-3…

如何通过反射来解决AlertDialog标题由于字数过多显示不全的问题

转载前请标明出处:http://blog.csdn.net/sahadev_ 先上一下示例图: 这是默认状态下:这是通过反射后修改的结果: 在解决这个问题之前首先需要了解一下AlertDialog的基本构造,所以先从源码看起: 想要知道为什么显示不…

LeetCode 292. Nim 游戏

文章目录1. 题目信息2. 解题1. 题目信息 你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。 你们是聪明人,每一步都是最优解。 编写一个函数…

配送A/B评估体系建设实践

2019年5月6日,美团点评正式推出新品牌“美团配送”,发布了美团配送新愿景:“每天完成一亿次值得信赖的配送服务,成为不可或缺的生活基础设施。”现在,美团配送已经服务于全国400多万商家和4亿多用户,覆盖28…

ListView原理简单介绍(着重介绍getView被调用的一系列过程)

今天出去面试,被面试官问到一个问题,说是如果使用 LayoutInflate.inflate(int resource, ViewGroup root, boolean attachToRoot);这个方法与AbsListView的实现类结合使用的话,会出现什么问题,先看简单的使用过程: Ove…

一人之力,刷爆三路榜单!信息抽取竞赛夺冠经验分享

文 | JayLou娄杰在现如今的NLP竞赛中,信息抽取(IE)任务已占据半壁江山。来,让我们看看今年的一些IE竞赛都有啥:看到如此众多的IE竞赛,心动的JayJay抽空参加了CHIP2020(中国健康信息处理大会&…

pkuseg:一个多领域中文分词工具包

pkuseg简单易用,支持细分领域分词,有效提升了分词准确度。 目录 主要亮点编译和安装各类分词工具包的性能对比使用方式相关论文作者常见问题及解答主要亮点 pkuseg具有如下几个特点: 多领域分词。不同于以往的通用中文分词工具,此…

积木Sketch Plugin:设计同学的贴心搭档

| A consistent experience is a better experience.——Mark Eberman | 一致的体验是更好的体验。——Mark Eberman 《摘自设计师的16句名言》 背景 1.UI一致性项目 积木(Tangram)Sketch插件源于美团外卖UI的一致性项目,该项目自2019年5月份…

简单讲述一下Intent的传值过程

昨晚带女友Android入门,她本是照着一本书敲得,可以运行,后来她自己凭思维自己写了一个,然后出现了值没有传过来的问题,然后简单的了解了一下Intent是如何传递数据的。 我们的例子是这样的: 由A Activity通…

何恺明团队:stop gradient是孪生网络对比学习成功的关键

文 | Happy源 | 极市平台本文是FAIR的陈鑫磊&何恺明大神在无监督学习领域又一力作,提出了一种非常简单的表达学习机制用于避免表达学习中的“崩溃”问题,从理论与实验角度证实了所提方法的有效性;与此同时,还侧面证实了对比学…

美团无人配送CVPR2020论文CenterMask解读

计算机视觉技术是实现自动驾驶的重要部分,美团无人配送团队长期在该领域进行着积极的探索。不久前,高精地图组提出的CenterMask图像实例分割算法被CVPR2020收录,本文将对该方法进行介绍。 CVPR的全称是IEEE Conference on Computer Vision an…

如何使用ListView实现一个带有网络请求,解析,分页,缓存的公共的List页面来大大的提高工作效率

在平常的开发中经常会有很多列表页面,每做一个列表页就需要创建这个布局文件那个Adapter适配器文件等等一大堆与之相关的附属的不必要的冗余文件。如果版本更新迭代比较频繁,如此以往,就会使项目工程变得无比庞大臃肿。 如果看过这篇文章或者…

从信息检索顶会CIKM'20看搜索、推荐与计算广告新进展

文 | 谷育龙Eric源 | 搜索推荐广告排序艺术我是谷育龙Eric,研究方向有深度学习、搜索推荐,喜欢为大家分享深度学习在搜索推荐广告排序应用的文章。CIKM作为信息检索、数据挖掘等领域的国际一流会议,每年都有很多搜索推荐广告领域的精彩论文。…

复杂风控场景下,如何打造一款高效的规则引擎

| 在互联网时代,安全已经成为企业的命脉。美团信息安全团队需要采用各种措施和手段来保障业务安全,从而确保美团平台上的用户和商户利益不会受到侵害。 本文主要介绍了美团在打造自有规则引擎Zeus(中文名“宙斯”)的过程中&#x…

Android消息队列图片记录

很早之前为了给学生讲明白整个消息队列是怎么个情况,于是大概阅读了一下消息队列的整个工作过程,鉴于网上大部分都是文字说明,没有一个图例,于是做出了下面这张图,权当作以后复习之用,也供大家学习参考&…