AI 竞赛没有意义,模型实际不可用,冠军全凭运气?

点击上方“蓝字”关注“AI开发者”

近日,一个大型的新的 CT 脑数据集被发布,其目的是训练模型来检测颅内出血。 由此,Luke Oakden-Rayner 写了一篇名为《AI competitions don’t produce useful models》的博文,这篇文章在社交媒体上引发了激烈讨论。

文章作者 Luke Oakden-Rayner 认为,AI 比赛不会催生在实际中可用的好的模型,其意义到底在哪里? ”他的文章如下。

到目前为止,这个比赛的数据集看起来还不错,尽管我还没有详细研究(魔鬼经常出现在细节中)。

该数据集是为一场竞赛而发布的,和往常一样,它在 Twitter 上掀起了一股友好的竞争风气:

当然,这也引起了很多人的质疑。 有人认为,比赛就像掷硬币,全看运气。 只要有些人的模型和其他人相比更符合数据集,就可以获得高分。

有人认为「既然有一个不变的测试集,你怎么能过度适合? 」,也有人认为「所提出的解决方案决并不打算直接应用」。

随着讨论的进行,我意识到,虽然我们「都知道」竞争结果在临床意义上有点可疑,但我从来没有真正看到一个令人信服的解释——为什么会这样。

我希望通过这篇文章告诉你,为什么比赛并不能构建真正意义上有用的人工智能系统。

  让我们开始讨论吧

辩论不是一件错误的事情

那么什么是医学人工智能竞赛呢? 以下是一些选项:

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

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

  • 让团队建立一个在竞赛测试集中表现最好的模型

  • 浪费时间

现在,我并没有那么疲倦,我跳到最后一个选项(怎样才能让时间花得有价值是一个问题,临床效用只是一个考虑因素)。

但前三个选项呢? 这些模型是否适用于临床任务,它们是否带来了广泛适用的解决方案和足够的新颖性,或者它们只是在竞赛中表现良好,而不是在现实世界中?

(剧透: 我要为后者辩护)。

  好的模型与坏的模型

我们是否应该期待这场竞赛会产生好的模型? 让我们看看组织者怎么说。

酷! 完全同意! 缺乏大型、标记良好的数据集是构建有用的临床人工智能的最大障碍,因此该数据集应该会有所帮助。

但是说数据集是有用的并不是说这个竞赛会产生好的模型。

因此,为了定义我们的术语,我们假设一个好的模型是一个可以在没有遇到过的数据上检测出脑出血情况的模型(模型对数据没有认知)。

与之相反,一个坏的模型指的是不能在未遇到的数据中检测出脑出血的模型。

这些定义是没有争议的。 我相信大赛组织者同意这些定义,他们更希望自己的参赛者构建出好的模型,而不是坏的模型。 事实上,他们显然是以一种旨在推广优秀模型的方式来举办比赛的。

这还不够。

  Epi vs ML,战斗!

如果学术上的争论这么可爱就好了

ML101(这里拟人化了)告诉我们,控制过度拟合的方法是使用一个保持测试集,它里面是模型训练期间没有见过的数据。 这模拟了医生在临床环境中看到新病人的情况。

ML101 还认为,保持数据只适用于对一个模型进行测试。 如果你测试多个模型,那么即使你没有将测试信息泄漏到你的开发过程中,你的最佳结果可能也只是一个异常值,它只是偶然地比你的最差结果好。

因此,如今的竞赛组织者只会制作出具有持久性的测试集,并且只允许每个团队在数据上运行他们的模型一次。 在 ML101 看来,这样问题就解决了。 获胜者只测试了一次,所以没有理由认为他们的模型是靠着异常情况得到这个结果的,他们有最好的模型。

别那么快,伙计。

让我给你介绍一下 Epidemiology 101,他声称自己有一枚神奇的硬币。

Epi101 告诉你掷硬币 10 次。 如果你得到 8 个或更多的人头,这就证实了硬币是魔法(虽然这个断言显然是胡说八道,但你还会跟着玩,因为你知道 8/10 人头等于一个公平硬币的 p 值<0.05,所以它一定是合法的)。

在你不知道的情况下,Epi101 对另外 99 个人做了同样的事情,所有人都认为他们是唯一一个测试硬币的人。 你认为接下来会发生什么?

如果硬币是完全正常的,而不是魔法,大约 5 个人会发现硬币是特别的。 这看起来似乎很明显,但要从个人的角度来考虑——这 5 个人都只做了一次测试。 根据他们的说法,他们有统计上显著的证据表明他们持有一枚「魔法」硬币。

现在想象一下你不是在掷硬币。 假设你们都在一个竞赛测试集中运行一个模型。 与其怀疑你的硬币是不是魔法,你反而希望你的模型是最好的,因为这将为你赢得 25000 美元。

当然,你只能提交一个模型。 如果多余一个,那就是作弊。 其中一个模型可以表现得很好,这相当于掷一个公平的硬币得到 8 个人头,只是一个偶然事件。

  多重假设检验

当然,我们在 Epi101 硬币上看到的效果也适用于我们的竞赛。 由于随机性,有些模型的性能会优于其他模型,即使实际上它们都是一样好的。 从数学上来看,到底是一个团队测试了 100 个模型还是 100 个团队并不重要。

即使某些模型在某种意义上比其他模型要好,除非你真的相信赢家是唯一能够使用 ML-wizard 的,否则你必须接受,至少其他一些参与者会取得类似的结果,因此冠军能够获胜只是因为他们运气好。 真正的「最佳表现」将在某个地方重新出现,可能高于平均水平,但低于胜利者。

Epi101 提到,这种效应被称为多重假设检验。 在竞赛中,你会有很多假设——每个参与者都比其他所有人都好。 对于 100 个参与者,有 100 个假设。

其中一个独立的假设可能会告诉我们有一个具有统计学意义的赢家(p<0.05)。 但综合来看,即使获胜者的计算「获胜」p 值小于 0.05,也并不意味着我们只有 5% 的机会做出不合理的决定。 事实上,如果这是硬币翻转(这个更容易计算,但不是完全不同)游戏,我们将有超过 99% 的机会出现一个或多个人会「赢」,并掷出了 8 个人头的情况!

这就是人工智能竞赛的赢家: 一个在掷硬币时碰巧得到 8 个人头的人。

有趣的是,虽然 ML101 非常清楚,运行 100 个模型,选择效果最好的一个将导致过度适合,但是他们很少讨论这种「过度拟合的人群」。 当你意识到几乎所有的 ML 研究都是对经过对公共数据集进行过度测试得到的,你会觉得这一点非常奇怪……

那么我们如何处理多重假设检验呢? 一切都归结于问题的原因,那就是数据。 Epi101 告诉我们,任何测试集都是目标群体的有偏版本。 在这种情况下,目标人群是「所有 CT 头部成像的患者,有或没有颅内出血」。 让我们来看看这种偏差是如何产生的,举一个假设人口很少的演示例子:

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

现在,让我们对这个总体进行采样,以构建我们的测试集:

随机地,我们最终会有大部分额外的轴(大脑本身以外)出血。 一个在这个测试中表现良好的模型不一定能在真实的病人身上发挥作用。 事实上,你可能会期待一个模型,它真正擅长识别轴外出血。

但 Epi101 不仅指出了问题,他还给出了一个解决方案。

  如此强大

只有一种方法可以得到一个无偏的测试集——如果测试集包括了整个人群! 这样的话,无论哪种模式在测试中表现良好,它在实践中也会是最好的,因为你在所有可能的未来患者身上都测试了它(这看起来很困难)。

这就引出了一个非常简单的想法——随着测试集的增大,测试结果变得更加可靠。 我们实际上可以预测测试集是如何使用功率计算的。

这些是功率曲线。 如果你粗略地了解你的「胜出」模型比下一个最佳模型要好多少,你可以估计你需要多少个测试用例才能可靠地证明它是更好的。

所以要想知道你的模型是否比竞争对手好 10%,你需要大约 300 个测试用例。 您也可以看到,随着模型之间的差异越来越小,所需病例的数量呈指数增长。

我们把这个付诸实践吧。 如果我们看看另一个医学人工智能竞赛,即 SIIM-ACR 气胸分割挑战赛(https://www.kaggle.com/c/siim-acr-pneumothorax-segmentation/overview),我们会发现在排行榜的顶端,骰子得分(介于 0 和 1 之间)的差异可以忽略不计。 请记住,这个比赛有 3200 个案例(这是大概的,他们对骰子分数的贡献并不都一样)。

所以前两名之间的差值是 0.0014… 让我们把它扔进一个样本量计算器。

好的,为了显示这两个结果之间的显著差异,您需要 92 万个病例。

但为什么停在那里? 我们甚至还没有讨论多重假设检验。 即便只有一个假设,只有两个参与者,就需要这么多的案例。

如果我们看看排行榜,有 351 支队伍提交了意见。 规则规定他们可以提交两个模型,所以我们不妨假设至少有 500 个测试。 这肯定会产生一些异常值,就像 500 人掷硬币一样。

Epi101 就像紧急救护一样。 多重假设检验在医学上非常普遍,特别是在基因组学等「大数据」领域。 在过去的几十年里,我们一直在学习如何处理这个问题。 处理这个问题最简单可靠的方法叫做 Bonferroni 校正。

Bonferroni 校正非常简单: 将 p 值除以测试次数,以找到一个「统计显著性阈值」,该阈值已针对所有这些额外的硬币翻转进行了调整。 在这种情况下,我们做 0.05/500。 我们的新 p 值目标是 0.0001,任何比这更差的结果都将被视为支持零假设(即竞争对手在测试集上的表现同样出色)。 我们把它插到我们的功率计算器上。

酷! 它只增加了一点…一个有意义的结果需要 260 万个病例。

现在,你可能会说这里很不公平,排行榜的顶端一定有一小群优秀的模型,他们彼此之间没有明显的不同。 好吧,我们夸大一点。 如果我把第 1 名和第 150 名做比较,肯定没人会抱怨吧?

所以需要的数据还是比我们现有的多。 事实上,我必须去看第 192 名和第 1 名的差距,以找到样本大小足以产生「统计上显著」差异的结果。

但也许这只是气胸的特殊性引起的特殊挑战? 那么其他比赛呢?

在 MURA,我们有一个 207 张 x 光片的测试集,有 70 个团队提交了「每月不超过两个的模型」,所以我们可以大概地说,提交了 100 个模型。 根据这些数字,「第 1 名」的模型只对第 56 位及以下名次的模型来说有统计意义上的差别。

在 RSNA 肺炎检测挑战赛(https://www.kaggle.com/c/rsna-pneumonia-detection-challenge/overview)中,共有 3000 张测试图像,350 个团队各提交一个模型。 第 1 名只与第 30 名及以下相比效果显著。

如果真的要把猫放在鸽子中间,那把什么放在药中间呢?

当我们在 ImageNet 结果中从左到右移动时,同比的改善速度会减慢(效果大小会减小),在数据集上测试的人数也会增加。 我真的无法估计数字,但是根据我们对多重测试的了解,真的有人认为 2010 年中期的 SOTA 不是过拟合了?

   这样的比赛是为了什么?

他们显然不能可靠地找到最好的模型。 它们甚至没有真正揭示出构建优秀模型的有用技术,因为我们不知道百余个模型中的哪一个模型实际使用了一个好的、可靠的方法,而哪一个方法恰好适合未充分利用的测试集。

你和比赛组织者交谈…他们大多会说比赛是为了宣传。 我想这就够了。

人工智能竞赛是有趣的,它可以推动社区建设,人才发掘,品牌推广,吸引外界的注意力。

但人工智能竞赛并不是为了开发有用的模型。

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

AI研习社明天将继续直播 CCAI 2019中国人工智能大会 扫码即可观看

点击

阅读原文

查看:等你来译 | 神经网络优化器总结+

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章