自动化 ML 与整个可复制性/再现性危机

机器算法验证 机器学习 可复制性
2022-03-28 03:35:10

机器学习实现的趋势是让实现者的事情变得越来越容易,这是一个非常自然的工程问题。轻松的 API 可以创建您想要的任何类型的模型,轻松的基础架构来管理数据和模型的版本,轻松地将模型部署为 API。其中一个趋势是AutoML,这是一种在极少数通用超参数上创建模型(在众多模型中)的端到端过程,隐藏了越来越多的常用统计过程,所有这些都旨在减少对理解许多难以学习的统计实践的细微差别。

在整个光谱的另一端是解决许多科学领域发生的可复制性危机的方法,主要是由于统计数据的使用不当:统计和效果显着性的混淆,p-hacking,HARK-ing,统计数据的其他肤浅使用. 所有这一切都是在要求使用这些工具的人更多更好地了解统计思维的细微差别。

缺少有关 AutoML 内部的详细信息:它是否运行 SVM LR具有多个内核、超参数等的 RF?它是否遵循像 Bonferroni 修正这样的基本防守统计数据?或者它只是直接跳入挑选出他最好的 p 值?

我将其设置为工程中的易用性和统计过程中的正确思想之间的二分法。AutoML 似乎是创建成功模型的好东西。但后来我想知道他们是否不仅忽略了统计思维的整个历史,甚至逃避它。

AutoML 研究人员是否成功地考虑到了统计上的细微差别,或者他们是否通过忽略细微差别(在太多模型中选择数据量)来解决更多模型问题?同样,那些统计学家是否也让制作有信誉的模型变得更加困难?作为一个附带问题,将 AutoML 描述为一个更有问题的统计过程是否准确?

我想一个 TL;DR 对这一切是 AutoML 只是 p-hacking 所有模型?

2个回答

我同意 Alex R 的评论,我正在将它们扩展为完整的答案。

我将在这个答案中谈论“黑盒”模型,我的意思是机器学习 (ML) 模型,其内部实现要么未知,要么不被理解。使用某种“Auto ML”框架会产生一个黑盒模型。更一般地说,许多人会将深度学习和大型集成等难以解释的方法视为黑匣子。

人们当然有可能以统计上不严谨的方式使用黑匣子,但我认为这个问题有点误解了我认为的典型用例。

你的模型的组件是重要的,还是只是它的输出?

在许多领域,我们使用回归技术作为尝试了解世界的一种方式。拥有超准确的预测并不是主要目标。通常目标更具解释性,例如尝试查看剂量对存活率的影响。在这里,为模型的组件(例如,您的系数/偏差)获得一个严格的、未经破解的 p 值显着性度量是非常重要的。由于组件很重要,因此您不应该使用黑匣子!

但还有许多其他领域的主要目标只是最“准确”(用您最喜欢的性能指标代替准确度)预测。在这种情况下,我们并不真正关心模型特定组件的 p 值。我们应该关心的是我们模型的性能指标与基线相比的 p 值。这就是为什么您会看到人们将数据拆分为训练集、验证集和保留测试集的原因。为了避免 p-hacking 和/或过度拟合,应该只查看非常少量的测试集。

简而言之,如果您关心使用模型的内部组件来描述我们的世界,那么显然您应该知道内部是什么,并且可能不会使用难以解释甚至未知的技术。但是,如果您只关心模型的输出,那么请确保您有一个健壮的测试集(与训练/验证集、iid 等没有重叠),您不会看太多并且您可能很好即使您的模型是黑匣子,也要去。

那么在面向性能的机器学习中不存在可重复性问题吗?

我想澄清这一点——在面向性能的机器学习中肯定存在可重复性问题。如果您训练数千个模型并在同一测试集上查看它们的性能,您可能会得到不可重现的结果。如果你为你的测试集取一个有偏差的样本,你可能会得到不可重复的结果。如果您有“数据泄漏”,即您的训练/验证集和测试集之间存在重叠,您可能会得到不可重现的结果。

但是这些问题都不是使用黑盒模型所固有的。它们是工匠的问题,而不是工具的问题!

序言:模型(也由 Auto-ML 构建)可用于许多目标,而不仅仅是用于运行测试和 p 值。调查再现性时的第一个问题是定义您究竟想要做什么、如何解释结果以及期望再现什么,所有进一步的考虑都取决于此。

现在假设您实际上对测试/p 值感兴趣,假设 AutoML 提出了从给定数据中选择的某种意义上的最优模型,然后您基于该模型对相同数据运行测试(我确实意识到这不是 100% 与链接的 Wikipedia 页面一致,但从您的帖子中,我猜您有类似的想法,并且至少可以想象一个 AutoML 版本可以做到这一点;实际上存在这样的软件,我只是不知道人们是否会称它为“AutoML”)。

这里的问题是 p 值背后的理论假设模型是假设的,并且测试是独立于数据固定的。当数据选择您的模型时,这里违反了这个假设。这意味着 p 值在技术上是无效的。在某些情况下,这可能相对无害(如果您的测试独立或大致独立于模型选择期间所做的事情),但您不能认为这是理所当然的,只要您不确切知道 AutoML 的作用,没有办法找出来。

更一般地说,如果您对所选模型所做的操作与模型选择无关(例如,如果它是在新数据上完成的,例如对独立数据的预测质量评估被搁置且不用于 AutoML),则此评估不受模型选择;否则,它是并且因此不能被信任泛化到新数据。