阅读:0
听报道
文 | 魏子敏
一篇上了《自然》杂志的学术论文刚刚遭到了数据科学家们的群嘲:研究中出现了一个明显的小学生级别错误——训练数据集和测试数据集大大重叠。
这篇名为Deep learning of aftershock patterns following large earthquakes的论文发表于去年8月,其描述了神经网络如何通过训练,比较准确预测大地震后余震的位置。
论文地址见文末【1】。
专业领域的明星团队和机器学习的小学生级别错误
乍一看,将机器学习用于地震预测,这一研究非常有价值。并且,几位研究者们也自带光环,论文的作者们分别来自哈佛大学、康涅狄格大学和谷歌。
能够经历重重同行评审后,在《自然》杂志上发表一篇文章,可以说是学术圈很值得骄傲的事情了,然而,在论文被发表近一年后。当波士顿软件公司DataRobot的数据科学家Rajiv Shah翻阅该论文时,他发现文章的结果“非常可疑”:神经网络的准确性出乎意料地高。
他尝试去复现这项研究,过程中发现了一个重大问题:用于训练和测试模型的数据有一些重叠。
这有点儿像被告知考试的答案——先告诉模型考试范围,然后从范围里找出问题考试。
在深度学习中这是一个很大的禁忌,甚至有一个专门的名词——data leak来形容这种问题,一般,data leak就意味着测试结果几乎没有实际意义。
“通常,测试集是通过随机抽取数据样本完成的,并且应该不要将其暴露给模型,”在接受海外媒体The Registe采访时,Shah称。“这可以确保您的模型没有从这些数据中学习,并提供了一个强有力的措施来确定可普遍性。由于data leak,测试集并不是真正独立的,因此任何指标都无法推广到真实表现。”
从本质上讲,这意味着该模型严重过拟合了训练数据。因此,它的性能看起来很有希望,因为它正在使用与其训练相同的数据进行测试。它的准确性是人为虚高。
研究人员的前馈神经网络通过检查来自主要地震震动和余震的131,000个地震波模式进行训练。数据被分成描述固定体积的网格单元,模型根据地震引起的地震波的影响,预测每个网格单元的中心是否会发生余震。
如果使用相同的地震波模式来训练和测试神经网络,那么它能够准确预测余震就不足为奇了。然而,从训练数据中未见的新地震中提取数据,并且它可能也无法猜测。Shah认为,神经网络比库仑失效应力变化等更传统的地质方法表现更好的说法根本不正确。
《自然》拒绝承认错误
Rajiv Shah被自己的发现震惊了,他立刻决定给《自然》杂志的邮箱发邮件,但并没有收到回应。
之后,他继续给《自然》的编辑写邮件:“这些错误应该被指出,因为数据科学仍然是一个尚未成熟的新兴领域。此外,不纠正公布的结果将阻碍该领域的研究,因为其他人无法匹配或改进结果。”
他希望他的批评将发表在Nature's Matters Arising部分,这是一个可以在同行评审过程之后发表评论的地方。
但在研究人员自己做出严厉回应之后,《自然》杂志拒绝了Rajiv Shah的建议。
Shah也已经通过他的GitHub账号发布了他向Nature的致信,研究人员的反驳,以及Nature的回复,感兴趣的读者可以自行查看。
Rajiv Shah的Github链接:
https://github.com/rajshah4/aftershocks_issues/tree/master/correspondence
论文作者、哈佛大学的博士后研究员Phoebe DeVries和哈佛大学的地球和行星科学教授Brendan Meade参与了原始研究,他们在回信中承认,他们的模型是在相同数据的子集上进行训练和测试的,但是这对结果的影响并没有那么大。
一名《自然》的编辑回信称,不将Shah的评论纳入额外项目。“我认为这项研究的核心结果不会受到任何影响,我不相信评论会引起非专业人士(即非机器学习从业者)的注意,”他对Shah如此答复。
当海外媒体The Register向《自然》求证时,发言人称,根据“保密原因”,无法进一步讨论。
“出于保密原因,我们不能与作者以外的任何人讨论任何自然论文的具体历史或审查过程。我们将所有通信视为机密,不会确认或拒绝任何可能或可能不会向我们提交的报告。“
那么,重重审核的《自然》为何会犯如此的错误呢?
Shah认为,这一论文乌龙突出了“科技公司之间的不平等竞争领域,比如谷歌等大公司对学术研究的影响”,也说明了,深度学习目前还没有发展到真正成熟的阶段,特别是对于很多基础学科,对于这一技术的利用还很不严谨。
他希望通过自己的“较真儿”行为,能够减少对深度学习的炒作。
最后,在研究中使用机器学习时,到底如何防止data leak呢?
机器学习博主grantpole在一篇博文中曾表示,没有标准的解决方案可以普遍地防止漏泄预测,它需要对数据进行充分的分析,深入了解探索你的数据。
博文链接:
https://blog.csdn.net/lomodays207/article/details/87607569
一般来说,数据漏泄预测因子(特征属性)往往与目标具有很高的相关性。在实际机器学习建模时候,有几点可以关注下:
为了查找可能的Data Leakage,要统计分析与目标target相关的列;
如果你建立一个模型并发现它非常精确,可能就要怀疑是否存在数据泄漏问题了
在交叉验证折叠中使用原始没进过预处理的数据;
使用Pipelines。比如:scikit-learn Pipelines;
使用Holdout Dataset。在使用模型之前,保留一个未使用过的的测试数据集作为对模型的最终健全性检查。
【1】https://www.nature.com/articles/s41586-018-0438-y.epdf?referrer_access_token=b_YV8vAGDCHRwJQwnBHVEtRgN0jAjWel9jnR3ZoTv0PM5gvoT2QOwaxHUHMIC2H7uYEl00NeNt86UEWGiIbT6QezwWdJWS7vW6K7kPZN84jI8DhGeQznbY7cdUBtWibthycDFoF-Z_iT4zuwOjiT-PycyswBhaaP7FQg4mKI6kjlIaAUQVtTCljG5D4vXIMAszX5KvVS-G-qvQVBtQYOBRqr2c7aoEZPbxIxjn7jRzzNI1Hb6YcCqM_YT3NaEQfP&tracking_referrer=www.theregister.co.uk
话题:
0
推荐
财新博客版权声明:财新博客所发布文章及图片之版权属博主本人及/或相关权利人所有,未经博主及/或相关权利人单独授权,任何网站、平面媒体不得予以转载。财新网对相关媒体的网站信息内容转载授权并不包括财新博客的文章及图片。博客文章均为作者个人观点,不代表财新网的立场和观点。