点击上方“AI遇见机器学习”,选择“星标”公众号
重磅干货,第一时间送达

文 | 苏剑林(追一科技)
编 | 智商掉了一地

看来以后我们看论文的时候,不仅要关心论文成绩的可复现性,还要留意它们的求和、均值、方差等有没有算错,否则真的是“无奇不有”!!

这篇文章谈一下笔者被前几天出来的一篇“神论文”气到了的经历。

这篇“神论文”是 《How not to Lie with a Benchmark: Rearranging NLP Leaderboards》 ,论文的大致内容是说目前很多排行榜算平均都用算术平均,而它认为几何平均与调和平均更加合理。最关键是它还对GLUE、SuperGLUE等榜单上的模型用几何平均和调和平均重新算了一下排名,结果发现那些超过人类的模型在新的平均方案下都没超过人类了。

看上去是不是觉得挺有意思的?我也觉得挺有意思的,所以打算写一篇文章介绍一下它。结果文章快写完了,然后在对数据的时候,发现里边表格的数据全是乱来的!!!真实的结果完全不支撑它的结论!!!所以,这篇文章就从“表扬大会”变成了“批评大会”...

论文标题:
How not to Lie with a Benchmark: Rearranging NLP Leaderboards

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

胡说八道

首先我们来请出“神论文”的第一个表格,它是关于GLUE榜单上的部分成绩:

▲“神论文”的GLUE榜单计算结果

咱别的不说,这篇“神论文”表格里边的“,”(半角逗号)和“.”(小数点)不分,也是够让人恶心的了(下面SuperGLUE的表格更甚)。不过要只是这种小问题,那忍忍也就算了,最不可忍的是:它里边的AH(算术平均)、GM(几何平均)、HM(调和平均)的计算规则简直是“随心所欲”!

我试了很久,终于试出了该表格的计算规则:

  1. 所有的AH都是用前10个任务的成绩算出来的(虽然上表只显示了前8个任务的成绩);

  2. Human那一行的GM、HM用的是前10个任务的成绩来算的;

  3. 其他行的模型的GM、HM是用全部11个任务的成绩来算的。

由于第11个任务的成绩比其他任务要低,所以这样算出来的模型的GM、HM就比Human的更低,作者就直接得出了在GM、HM之下,人类成绩还是第一名的结论。事实上,如果大家都用同一批任务算,那么AM、GM、HM排名基本无差别。况且,数学思维稍微正常的人都可以看出上述结果的不妥之处:不少任务上模型成绩都远超Human,少数任务上模型不如Human,但也只是低一点点,所以只要是一种正常的平均算法,都不可能得出Human远超模型的结论吧?偏偏作者也就信了...

同样的错误还出现在SuperGLUE上:

▲“神论文”的SuperGLUE榜单计算结果

它的计算规则为:

  1. 所有的AH都是用前8个任务的成绩算出来的;

  2. 所有GM、HM是用全部10个任务的成绩来算的。

事实上,如果AM也用10个任务的成绩来算,那么按照AM排名人类也是第一名。也就是说,只要大家的计算标准一样,那么AM、GM、HM排名并无太大差别。

真心无奈

顺便说,这篇论文还中了NeurIPS 2021的Workshop,虽然Workshop通常都是远不如正式论文,但也不至于乱七八糟到这个程度吧。再看一眼这篇论文的标题,我觉得是不是改为“How not to Lie with this paper”更适合?

看来以后我们看论文的时候,不仅要关心论文成绩的可复现性,还要留意它们的求和、均值、方差等有没有算错~真的是什么奇葩可能性都会存在~

欢迎关注我们,看通俗干货

开局一段扯,数据全靠编?真被一篇“神论文”气到了相关推荐

  1. Python爬虫人工智能大数据全栈视频史上最全合辑教程分享!

    Python爬虫人工智能大数据全栈视频史上最全合辑教程分享! 毫无疑问Python是这两年最火的编程语言,不仅容易上手,且在多个行业都可应用.尤其今年人工智能及大数据的发展,Python将会展现更多的 ...

  2. 大数据全栈式开发语言 – Python

    前段时间,ThoughtWorks在深圳举办一次社区活动上,有一个演讲主题叫做"Fullstack JavaScript",是关于用JavaScript进行前端.服务器端,甚至数据 ...

  3. 叫你别随便重启Redis!!!怎么样,数据全丢了吧~~~

    目录 事情是这样的... Redis持久化数据的两种模式 一.RDB模式 二.AOF模式 三.RDB和AOF之间的关系 四.问题回顾分析 那么该如何开启AOF增量备份模式呢? 解决方法: 1.登录到r ...

  4. ev3编程变量模块_英文视频教学翻译-机器人ev3编程学习的第二十讲:举例讲解数据变量模块编...

    机器人ev3编程学习的第二十讲:举例讲解数据变量模块编- Rob Widger (为了容易理解,在原文的翻译时做了修改 by EV3-TOM) 这一节我给大家讲解使用变量模块的编程,这些我喜欢的例子也 ...

  5. 电瓶车续航测试软件,谁续航最牛:24款电动汽车实测数据全曝光

    原标题:谁续航最牛:24款电动汽车实测数据全曝光 出品 | 搜狐汽车·E电园 摄影 | E电园·评测团队 作者 | 蔡欣宇 编辑 | 彭钊 [ ·1· 有哪些车参与了本届12小时续航测试?] 此次的续 ...

  6. 数据全生命周期中的安全管理

    一般来讲,数据全生命周期是基于数据在组织业务中的流转情况定义的,分为以下6个阶 段. ● 数据采集:在企业内部系统中新生成数据和从外部收集数据的阶段. ● 数据存储:数据以任何数字格式进行物理存储或云 ...

  7. 中国信息安全测评中心:从数据全生命周期看数据泄露防护问题

    摘要:随着大数据分布式计算和分布式存储等新技术的广泛应用,数据分析挖掘.共享交易等新应用场景的出现,导致数据在创造价值.提高政府治理能力的同时,面临数据安全和个人隐私泄露等问题.近年来,数据泄露事件频 ...

  8. Linux 0.11-读硬盘数据全流程-46

    Linux 0.11-读硬盘数据全流程-46 读硬盘数据全流程 如果让你来设计这个函数 鸟瞰操作系统的读操作函数 对 buf 区域的内存做校验 verify_area 执行读操作 file_read ...

  9. socket通信——通过Udp传输方式,将一段文字数据发送出去

    需求:通过Udp传输方式,将一段文字数据发送出去 定义一个Udp发送端 思路: 1.建立updsocket服务 2.提供数据,并将数据封装到数据包中. 3.通过socket服务的发送功能,将数据包发出 ...

最新文章

  1. 微信小程序下拉刷新和上拉加载
  2. 独家 | 一文读懂数据质量和验证检查(附代码)
  3. ASP.NET 2.0的编译模型
  4. visual studio 的git插件推荐
  5. python 冒泡排序_Python中的冒泡排序
  6. UBuntu国内镜像地址下载
  7. 在 eclipse 中 设置 jvm 的 运行时目录
  8. Nest入门教程 - 模块
  9. Java后台通过jxl生成Excel表格
  10. webstorm的个性化设置settings
  11. 解决webstorm out of memory内存不足问题
  12. Python处理excel表格中的数据
  13. 高等数学---第八章多元函数微分学---多元函数的极值与最值
  14. WPS自动生成目录。
  15. NAR:MicrobiomeAnalyst微生物组分析师——统计、可视化和元分析微生物组数据的网页工具
  16. MBTI16型人格测试思维导图 | 找到自己的类型
  17. 华为到底玩的哪些汽车技术?
  18. PyTorch安装教程(带图文)
  19. 手机控制云服务器文件,手机控制云服务器的app
  20. 微信{errcode:48001,errmsg:api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]}

热门文章

  1. Ubuntu 16.04 LTS 下安装PyCharm
  2. 线程池ThreadPoolExecutor
  3. 使用pyjnius和mpxj来读取mpp文件
  4. C++动态数组再总结
  5. MVVM设计模式之精髓简化
  6. Win 2003的“远程桌面”需要进一步管理
  7. 列子御风 大道至简 心诚天人合一
  8. chineseocr
  9. %config InlineBackend.figure_format=svg#矢量图设置
  10. 书评 | 圈内大佬怎么看编程日历