机器之心报道
参与:张倩、shooting
「《nature》、《Science》等或许是最负盛名的期刊,但其学术态度未必是最严谨的。」
最近,四川宜宾、云南楚雄接连发生地震,再次掀起人们对地震的恐慌。预测地震自古以来都是地震科学工作者的奋斗目标。在深度学习如此火爆的今天,人们不禁想到,强大的深度学习能否用于地震预测?
去年 8 月,《Nature》上发表了一篇题为《Deep learning of aftershock patterns following large earthquakes》的火爆论文。该论文由哈佛和谷歌的数据科学家联合撰写,论文一作所属单位是哈佛大学地球与行星科学系。
该论文展示了如何利用深度学习技术预测余震。研究者指出,他们利用神经网络在预测余震位置方面的准确率超越了传统方法。
但很快,这一方法就遭到了深度学习从业者的质疑。一位名叫 Rajiv Shah 的数据科学家表示,论文中使用的建模方法存在一些根本性的问题,因此实验结果的准确性也有待考究。这名数据科学家本着严谨的精神在通过实验验证之后联系了原作和《Nature》,却没得到什么积极的回复。
于是,Rajiv Shah 在 medium 上写了一篇博客揭露论文中存在的根本性缺陷以及《Nature》的不作为,后来这件事又在 Reddit 上引起了广泛的讨论。下面我们回顾一下事件的始末。
文章有点长,目录预览:
- 《Nature》原论文介绍
- Rajiv Shah 博客揭露问题
- 论文作者的回复
- Reddit 热评精选
谷歌&哈佛团队利用深度学习预测余震,准确率空前
这篇名为《Deep learning of aftershock patterns following large earthquakes》的论文展示了如何利用深度学习技术预测余震。
论文指出,解释和预测余震的空间分布非常困难。库仑破裂应力变化可能是解释余震空间分布最常用的判据,但其适用性一直存在争议。于是,研究者使用了深度学习方法来确定一种基于静态应力的准则,该准则无需提前假设破坏的方向就能预测余震的位置。
研究者在超过 131,000 个主震-余震对上训练了一个神经网络,然后在一个包含 30000 多个主震-余震对的独立测试集上测试其预测余震位置的准确率。
研究者利用 ROC 曲线来衡量神经网络预测余震位置在测试数据集上的准确率。为了构建这些曲线,他们绘制了一个二元分类器的真阳性率与该分类器所有可能阈值的假阳性率。ROC 的曲线下面积用来度量模型在所有阈值下的测试性能(如图 1 所示)。
图 1:主震-余震对示例
下图 2 的测试结果表明,神经网络预测余震位置的准确率(AUC 为 0.849)高于经典的库仑破裂应力变化(AUC 为 0.583)。
图 2:模型性能比较。
论文链接:https://www.nature.com/articles/s41586-018-0438-y
论文全文:https://sci-hub.tw/https://www.nature.com/articles/s41586-018-0438-y
Rajiv Shah 博客揭露论文根本缺陷
以下是 Rajiv Shah 题为《Stand Up for Best Practices: Misuse of Deep Learning in Nature』s Earthquake Aftershock Paper》的博客内容。
机器学习炒作的危害
AI、深度学习、预测建模、数据科学等方面的从业者数量在过去的几年里急剧增长。这个混合了多种知识且曾被认为有利可图的领域正在成为一个快速发展的行业。随着人们对 AI 的热情持续高涨,机器学习增强、自动化和 GUI 工具的浪潮将促进预测模型构建者人数的持续增长。
但问题是,尽管使用预测模型的工具变得越发简单,但预测建模所需的知识还不是一种大众化的商品。错误可能是违反直觉且微妙的,你一不小心就会得出错误的结论。
我是一名数据科学家,与数十位数据科学专家共事,每天目睹这些团队努力构建高质量模型。最好的团队通力合作,检查他们的模型以找出问题。有很多问题可能难以被检测到,这样就会得到有问题的模型。
挑毛病的过程一点也不好玩,需要承认那些振奋人心的结果「好得不真实」,或者他们的方法不是正确的方法。换句话说,这是一门严谨的学科,与那些登上头条的性感数据科学炒作没多大关系。
糟糕的方法得到糟糕的结果
大约在一年前,我读到了《Nature》上的一篇论文,论文作者声称他们利用深度学习预测余震达到了前所未有的准确率。读过之后,我对他们的结果产生了深深的怀疑。他们的方法根本不具备一个严谨预测模型的诸多特征。
因此我开始深挖。与此同时,这篇论文成了爆款,而且得到了广泛认可,甚至出现在 TensorFlow 的版本更新公告中,用于说明深度学习的应用。
然而,我在深挖过程中发现了论文的重大缺陷,即导致不真实准确率得分的数据泄漏(data leakage)以及模型选择(当一个较为简单的模型可以提供相同水平的准确率时,完全不必构建一个 6 层的网络)。