东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

AI 竞赛没有意义:模型根本没用,冠军全凭运气?

  • 2019-10-12
  • 本文字数:5397 字

    阅读完需:约 18 分钟

AI竞赛没有意义:模型根本没用,冠军全凭运气?

Luke Oakden-Rayner 又来了~熟悉他的读者应该记得,2018 年的时候,他曾经写过一篇《人工智能医疗安全:我们有麻烦了!》,以此来表达他个人对 AI 医疗安全的担忧,作为一名放射科医生,他十分关注医疗与计算机科学等未来技术的交汇。

近日,他开始研究人工智能竞赛对实际应用产生的影响,当然还是在他个人比较熟悉的医疗领域,他认为:AI 竞赛无法产生有用的模型,甚至不仅仅在医疗领域。先别急着反驳或者赞同,来品一品 Luke 的这篇文章再做评价也不迟。


今天(9 月 19 日),一个庞大的新 CT 脑部数据集被公布于众,目标是训练模型以检测颅内出血。到目前为止,看起来都不错,尽管我还没有深入研究细节(而魔鬼常在细节中)。


该数据集被公布于众是为了一场竞赛,这显然引发了在推特上通常是友好的竞争:



当然,这也引来了怀疑论者的冷嘲热讽。



然后,讨论持续进行着,讨论的范围很广,从“但是,由于有一个留出法(hold out)测试集,怎么会过拟合呢?”到“从未打算直接应用提出的解决方案”(后者是上次比赛的冠军提到的)。


随着讨论的进行,我意识到,尽管我们“都知道”比赛结果从临床意义上讲是非常可疑的,但是,我从没有真正看到一个令人信服的解释,来解释为什么会这样。


我希望本文能够解释竞赛为什么不是真正关于构建有用的 AI 系统。


免责声明:我写本文的初衷是供我的忠实读者阅读,他们了解我在一系列问题上的一般立场。但是,它在推特和 HackerNews 上传播得很广,而且,很显然,我没有为大量的陈述提供足够的上下文。我打算写个续篇来澄清几件事情,但是,这里是对几个常见批评的快速回复:


  • 我不认为 AlexNet 是个比 ResNet 好的模型。这个立场是荒谬的,尤其是考虑到我所有发表的作品都是使用 resnets 和 densenets,而不是 AlexNets。

  • 我认为,这个误解来自于我没有定义我用到的术语:一个“有用的”模型应该是能够胜任它受过训练的任务的模型。它不是模型架构。如果在竞赛过程中开发的架构广泛有用,那么,它是一个好的架构,但是,提交给竞赛的特定实现不一定是有用的模型。

  • 本文中的统计数据是错误的,但是,它们注定在正确方向上出错了。它们的目的是说明基于人群的过拟合概念,而不是准确性。更好的方法几乎都需要在公开排行榜上没有的信息。我可能在某个时间点更新这些统计数据,以便让它们更准确,但是,它们永远都不会完美。

  • 我在本文中尝试了一些新东西,那是对一个推特讨论的回应,因此,我想看看,我是否能在一天内写下来,以使其与时同进。考虑到我通常的流程是,每篇帖子要写上几个星期及多次重写,这有点冒险。但我认为,这个帖子仍然能达到其目的,但是,我个人认为不值得冒险。如果我再花上 1 天或 2 天,那么,我怀疑,我会在发布前就了解其中的大部分问题。我承认我错了。


让我们来干上一仗吧!


那么,什么是医学 AI 领域中的竞争呢?这里有几个选项:


  • 让团队尝试解决一个临床问题

  • 让团队探索一下如何解决问题,并尝试新颖的解决方案

  • 让团队构建一个在竞争测试集上表现最佳的模型

  • 浪费时间


现在,我没有那么烦恼,直接跳到最后一个选项(值得花时间在什么上是个观点问题,而临床效用只是一个考虑因素。更多相关内容在本文的最后)。


但是,前面那三个选项呢?这些模型适用于临床任务吗?它们是否带来广泛应用的解决方案和新颖性?或者,它们只是竞赛中表现出色,而在现实中表现平平呢?


(剧透:我将讨论后者)。

好模型和坏模型

我们是否应该期望本次竞赛会产生好的模型呢?我们来看看其中一个组织者所说的话。



这很酷。我完全同意,缺乏大型的、标记良好的数据集是构建有用临床 AI 的最大障碍,因此,数据库应该有所帮助。


但是,说到这个数据集可以有用和本次竞赛将产生好的模型可不是一回事。


因此,为了定义我们的术语,比如说,一个好的模型是能够在不可见数据(该模型不了解的情况下)上检测到脑出血的模型。


因此,反过来说,一个坏的模型就是在不可见数据上没有检测到脑出血的模型。


这些定义将不会有争议。Machine Learning 101(以下简称 ML101)。我确信,竞赛组织者同意这些定义,并且更喜欢参赛者产生好模型而不是坏的模型。事实上,他们已经明确组织了旨在推广好模型的竞赛。


这是不够的。

Epi vs ML,开打!

ML101(现在拟人化了)告诉我们,控制过拟合的方式是使用一个留出法测试集,这是在模型训练过程中没有见过的数据。这模拟了在临床环境中看到新病患的情形。


ML101 还说,留出法的数据只能用于一次测试。如果我们测试多个模型,那么,就算我们在开发过程中没有作弊或泄露测试信息,我们的最佳结果也可能是一个异常值,只比偶然得到的最坏结果好一点。


因此,如今的竞赛组织者提供若干留出法测试集,只让每支参赛团队在这些数据上运行其模型一次。ML101 认为问题解决了。获胜者只测试一次,因此,没有理由认为它们是异常值,他们只是有最好的模型。


别急,伙计,我们来看看 Epidemiology 101,它声称自己有一枚神奇的硬币。


Epi101 告诉我们掷这个硬币 10 次。如果我们得到正面的次数达到或超过 8 次,那么,就证明这个硬币很神奇(尽管这个断言显然是胡说八道,但是,我们还是可以继续玩,因为我们知道,10 次中得到 8 次正面相当于对于一个均匀硬币来说 p 值小于 0.05,所以,它一定是合法的)。


在我们不知道的情况下,Epi101 跟其他 99 个人做了同样的事,所有这些人都认为自己是唯一测试这个硬币的人。那么,我们该期望发生什么事情呢?


如果这枚硬币完全正常,一点都不神奇,那么,大概有 5 个人会发现这枚硬币很特别。看起来很明显,但是,请考虑个体的情况。这 5 个人都只进行了一次测试。根据他们的说法,他们有统计学上显著的证据,表明他们拥有一枚“神奇的”硬币。


现在假设我们没有在掷硬币。想象一下,我们都在一个竞赛测试集上运行一个模型。与其想象我们的硬币是否是神奇的,不如希望我们的模型是最好的,可以为我们赚到 25000 美元。


当然,我们只能提交一个模型。否则那将是作弊。模型的其中之一可能表现良好,相当于抛掷一枚均匀的硬币 10 次而得到 8 次正面朝上的结果,只是偶然罢了。


好事情是,规则不允许提交多个模型,不然其他 99 个参赛者及他们的 99 个模型中的任何一个都可以靠运气得奖了……

多重假设检验

我们看到的用 Epi101 的硬币测试效果当然适用于我们的竞赛。由于随机的机会,某些百分比的模型会比其他的表现出色,即便它们都是一样好的。数学不关心测试 100 个模型的是 1 支团队还是 100 支团队。


即使某些模型在某种意义^上比其他的好,除非我们真的认为获胜者具有 ML 巫师(ML-wizard)的独特能力,否则我们必须接受至少其他一些参赛者也会取得类似的结果,因此,获胜者只是因为运气好才赢的。真正的“最佳表现”将排在后面,可能高于平均水平,但排在获胜者之后^^。



Epi101 表示,这种效应称为多重假设检验。如果在一场比赛中,我们有很多假设,每个参赛者比其他参赛者都好。那么,对于 100 个参赛者来说,就有 100 种假设。


单独来讲,这些假设的其中之一可能表示,我们有个具有统计学意义的获胜者(p<0.05)。但是,综合来看,即使获胜者有个计算出来的“获胜”p 值小于 0.05,那也不意味着,我们只有 5%的机会来做出不合理的决定。事实上,如果是掷硬币(容易计算,但毫不奇怪),我们可以有个大于 99%的机会让一个或多个人“获胜”并获得 8 次正面朝上的结果!


这就是 AI 竞赛的获胜者,在掷硬币的时候刚好得到了 8 次正面朝上的结果。


有趣的是,尽管 ML101 很清楚,我们自己运行 100 个模型,并选出最好的,将导致过拟合,他们很少讨论这个“过拟合的人群”。很奇怪,当我们考虑到几乎所有的 ML 研究都是用严重过度测试的公开数据集完成时……


那么,我们怎样应对多重假设检验?这都归结到产生问题的根本原因,也即数据。Epi101 告诉我们,任何测试集都是目标人群的一个有偏差的版本。在这种情况下,目标人群是“有 CT 脑部图像,具有或不具有颅内出血的所有病患”。我们来看看这种偏见是如何产生,采用的是一个小型假设人群的小样本:



在这群人中,我们有很合理的“临床”病例组合。3 例脑内出血(可能与高血压或中风有关),2 例创伤性出血(右侧的是硬膜下出血,左侧的是硬膜外出血)。


现在,我们对这群人取样,构建我们的测试集:



随机的,最终我们得到了轴外(在大脑外部)出血。在这个测试集上表现良好的模型不一定在实际病患那里表现良好。事实上,我们可以预计,在轴外出血上表现很好的模型以脑内出血为代价而获胜。


但是,Epi101 不仅仅是指出问题,它还有解决方案。

如此强大

要有一个没有偏差的测试集,只有一种方法,就是包括全部人!然后,无论什么模型,在测试中表现良好的也将是实践中最好的,因为我们在所有可能的未来病患身上做了测试(看起来很难)。


这导致了一个非常简单的想法,即随着测试集变得更大,我们的测试结果会变得更可靠。实际上,我们可以通过指数计算来预测测试集的可靠性。



这是指数曲线。如果我们有个关于我们的“获胜”模型比次优模型好多少的大概想法,那么,我们可以估计我们需要多少测试病例,以便可靠地表明它更好。


因此,要表明我们的模型比竞争对手的好 10%,我们就需要大约 300 个测试病例。我们还可以看到,随着模型之间的差异变得越来越小,所需的病例数量如何呈指数级增长。


让我们付诸实践吧。如果我们看下另一个医学 AI 竞赛,SIIM-ACR 气胸分割挑战赛,我们可以看到,在排行榜的前几名之间,Dice 得分(范围在 0 到 1 之间)的差异可以忽略不计。请记得,这个竞赛用到的数据集有 3200 个病例(这很慷慨,但是,它们对 Dice 得分的贡献并不均等)。



因此,在前两名之间的差异是 0.0014……让我们将它放入样本容量计算器中。



好了,为了在这两个结果中显示显著的差异,我们需要 92 万个病例。


但是,为什么止步于此呢?我们甚至还没有讨论多重假设检验呢。仅在只有一个假设,意味着只有两个参赛者的情况下,就需要这么荒谬的数量的病例


如果我们看看排行榜,那里有 351 支参赛团队。规则表示,他们可以提交两个模型,因此,我们最好假设至少有 500 个测试模型。这就必定产生异常值,就像 500 个人在那里掷均匀硬币一样。


Epi101 来救场啦。多重假设检验在医学上确实很常见,尤其是在基因组学等“大数据”领域。我们已经用了几十年学习如何处理这些问题。解决这类问题最简单可靠的方法被称为 Bonferroni 校正^^。


Bonferroni 校正特别简单:将 p 值除以测试次数就得到“统计显著性阈值”,该阈值已经针对所有额外的硬币投掷进行了调整。因此,在这种情况下,我们计算 0.5/500 的值。新的 p 值目标是 0.0001,任何比这个差的值将被认为是支持零假设(即竞争对手在测试集上的表现同样出色)。我们把这个值放入我们的指数计数器。



很棒!只提高了一点点……要得到一个有效的结果,需要 260 万个病例:P


现在,你可能会说,我很不公平,在排行榜上的前几名中一定有一些有好模型的小团队,彼此之间没有明显的不同^^^。好吧,大方一点。如果我把第 1 名和第 150 名的模型进行比较的话,肯定没有人会抱怨,对吧?



仍然比我们拥有的数据还要多。事实上,我必须降低到第 192 名位置,以找到这样一个结果,即样本大小要足够产生一个“统计学上显著的”差异。


但是,这可能是特定于气胸挑战比赛?其他比赛会是什么情况?


MURA,有个 207 张 X 光图像的测试集,70 支队伍每个月最多提交 2 个模型,让我们大方点,就说提交了 100 个模型吧。从数字上看,“排名第一的”模型只比排名第 56 及以下的模型有显著的差异。


RSNA肺炎检测挑战赛中,有 3000 张测试图像,350 支团队各提交 1 个模型。排名第一的只与排名第 30 及以下的模型有显著差异。


这真正地造成轩然大波了,医学以外的领域呢?



当我们从左到右地仔细查看 ImageNet 的结果时,发现每年的改进变慢了(有效的范围减小了),而在数据集上进行测试的人数增加了。我无法真正估算出数字,但是,知道我们对多重测试的了解后,还有人真的相信 SOTA 赶在 2010 年中期,只是众包过拟合吗?

那么,比赛的目的是什么?

显然,他们不能可靠地找到最佳模型。他们甚至没有真正揭示有用的技术以构建出色的模型,因为我们不知道,在上百个模型中,哪个实际上使用了一个良好、可靠的方式,哪个模式只是刚好适合动力不足的测试集。


当我们和竞赛组织者提起的时候……他们大多说,竞赛是为了宣传。我想,这就足够了。


AI 竞赛是有趣的,可以建设社区、搜寻人才、推广品牌和吸引注意力。


但是,AI 竞赛无法产生有用的模型


备注:


^我们实际上可以用硬币类比来理解模型的性能。改进模型相当于把硬币弄弯。如果我们善于把硬币弄弯,那么,这样做会让它更有可能落下来的时候正面朝上,但是,除非是 100%的可能性,否则,我们还是无法保证“赢”。如果我们有枚正面朝上的概率为 60%的硬币,而其他人的概率是 50%,那么,从客观上来看,我们有最好的硬币,但是,在 10 次投掷中,结果为 8 次正面朝上的概率仍然只有 17%。比该领域中其他模型拥有的 5%要好,但是,请记住,他们有 99 个。他们当中某个人获得 8 次面朝上的累积机会超过 99%。


^^人们总是说,Bonferroni 校正有点保守,但是,请记住,我们对这些模型之间是否真的不同表示怀疑。我们应该保守一点。


^^^请注意,这里排名第一的模型获得 3 万美元的奖金,而第二名就什么也得不到。竞赛组织者觉得这样区分是合理的。


原文链接:


https://lukeoakdenrayner.wordpress.com/2019/09/19/ai-competitions-dont-produce-useful-models/


公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2019-10-12 15:044601
用户头像

发布了 199 篇内容, 共 81.6 次阅读, 收获喜欢 293 次。

关注

评论

发布
暂无评论
发现更多内容

PlatoFarm将DAO理念发扬光大,让DAO社区受益才能走得远

西柚子

训练营作业-Module2:朋友圈高性能复杂度分析

Jadedev

架构训练营

架构实战营【模块二】作业

michael

架构实战营 「架构实战营」

国内又一款效能度量工具发布,让研发效能真正可量化、可分析、可提升

PingCode

招聘 | Bifrost、Gear、Phala Network等多家波卡生态项目招聘区块链开发者

One Block Community

波卡生态 区块链招聘 bifrost gear Phala Network

RocketMQ—Producer(三)发送方式和消息类型

IT巅峰技术

企业如何度量研发效能?

PingCode

王者荣耀商城异地多活架构设计

Geek_36cc7c

首期Moonlight Builder Workshop | 如何在 Moonbeam 快速开发和部署 DApp

One Block Community

dapp SBUSUART Moonbeam 波卡生态 Scaffold-ETH

不断挖掘“区块链”更大潜能

CECBC

元宇宙大热,是风口还是虎口

CECBC

适合 Kubernetes 初学者的一些实战练习 (六)

Jerry Wang

Docker Kubernetes 云原生 Serverless Kubernetes 4月月更

ECharts 饼图颜色设置教程 - 4 种方式设置饼图颜色

蒋川

eCharts

Linux驱动开发-编写OLED显示屏驱动

DS小龙哥

4月月更

Spring如何解决循环依赖

IT巅峰技术

朋友圈架构设计

踩着太阳看日出

架构训练营

生产环境Redis连接,长时间无响应被服务器断开问题

越长大越悲伤

redis TCP 连接 springboot

Android C++系列:NDK减少so库体积方法总结

轻口味

c++ android 4月月更

架构实战营 - 模块二作业

凯博无线

Flutter 通过自定义路由拦截实现权限管理

岛上码农

flutter ios 移动端开发 安卓开发 4月月更

游戏化与驱动力 —《游戏化实战》读后感

Bruce Talk

敏捷 随笔 Agile

展业四海,服务八方,明道云落地蜀陕豫鄂

明道云

微信朋友圈的高性能复杂度分析

高山觅流水

「架构实战营」

人生之道

williamcai

人生修炼

PlatoFarm将DAO理念发扬光大,让DAO社区受益才能走得远

小哈区块

常用的高情商话术

williamcai

研发管理工具 PingCode 宣布正式支持敏捷开发、Kanban、瀑布开发管理

PingCode

Twitter架构决策

俞凡

架构 大厂实践

RocketMQ—Producer(四)消息发送流程

IT巅峰技术

自己动手写Docker系列 -- 5.4实现进入容器的namespace,exec命令

Docker Go 语言 4月月更

去中心化云存储的前世今生 | 存储技术分享活动回顾

One Block Community

区块链 Substrate 去中心化存储 波卡

AI竞赛没有意义:模型根本没用,冠军全凭运气?_AI&大模型_Luke Oakden-Rayner_InfoQ精选文章